{"version":3,"sources":["redux/reducers/auth/index.js","utility/context/IntlGlobalProvider.js","redux/types/auth/index.js","utility/http/constants.ts","utility/http/http-axios.ts","utility/http/http-webtrack.ts","redux/utils/alerts-interceptors/index.tsx","utility/http/http-events.ts","utility/http/interceptors/loading-overlay-interceptor.ts","utility/http/interceptors/auth-token-interceptor.tsx","utility/http/interceptors/configure-interceptors.ts","redux/reducers/layout/index.js","navigation/outside-sidebar/index.js","redux/reducers/navbar/index.js","redux/reducers/static-catalogs/index.tsx","redux/reducers/index.ts","views/screens/Agents/schemas/index.tsx","views/screens/Agents/sagas/index.tsx","views/screens/Divisions/schemas/index.tsx","views/screens/Divisions/sagas/index.tsx","views/screens/Entities/schemas/index.tsx","views/screens/ETAModelRoutes/actions/index.tsx","redux/actions/static-catalogs/countries/index.tsx","views/screens/Entities/sagas/index.tsx","views/screens/Geofences/schemas/index.tsx","views/screens/Geofences/sagas/index.tsx","views/screens/Modules/schemas/index.tsx","views/screens/Modules/sagas/index.tsx","views/screens/Operators/schemas/index.tsx","views/screens/Contacts/schemas/index.ts","views/screens/Operators/sagas/index.tsx","views/screens/Organizations/schemas/index.tsx","views/screens/Organizations/sagas/index.tsx","views/screens/ServiceClasses/schemas/index.tsx","views/screens/ServiceClasses/sagas/index.tsx","views/screens/Subdivisions/schemas/index.tsx","views/screens/Subdivisions/sagas/index.tsx","views/screens/Units/schemas/index.tsx","views/screens/Units/schemas/deviceMetrics/index.tsx","views/screens/Units/schemas/deviceActions/index.tsx","views/screens/Units/schemas/groups/index.tsx","views/screens/Units/schemas/reports/index.tsx","views/screens/Units/schemas/images/index.tsx","views/screens/Units/schemas/sensors/index.tsx","views/screens/Units/sagas/index.tsx","views/screens/Schedules/schemas/index.tsx","views/screens/Schedules/sagas/index.tsx","redux/schemas/bookmarks/index.js","redux/sagas/auth/index.js","views/screens/Routes/schemas/routes/index.tsx","views/screens/Routes/schemas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routes/index.tsx","views/screens/Contacts/sagas/index.ts","views/screens/Routes/sagas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routesAssignments/index.tsx","views/screens/Routes/actions/routesComments/index.tsx","views/screens/Routes/schemas/routesComments/index.tsx","views/screens/Routes/sagas/routesComments/index.tsx","views/screens/Routes/schemas/routesExecutions/index.tsx","views/screens/Routes/sagas/routesExecutions/index.tsx","views/screens/Routes/actions/routesReport/index.tsx","views/screens/Routes/sagas/routesReport/index.tsx","views/screens/Users/schemas/index.tsx","views/screens/Users/sagas/index.tsx","views/screens/Workplans/schemas/workplans/index.tsx","views/screens/Workplans/sagas/workplans/index.tsx","views/screens/Workplans/schemas/workplanAssignments/index.tsx","views/screens/Workplans/sagas/workplansAssignments/index.tsx","views/screens/Workplans/schemas/workplansComments/index.tsx","views/screens/Workplans/services/workplansComments.ts","views/screens/Workplans/sagas/workplansComments/index.tsx","views/screens/Workplans/actions/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutions/index.tsx","views/screens/Workplans/actions/workplansReport/index.tsx","redux/schemas/locations/index.tsx","views/screens/Workplans/sagas/workplansReport/index.tsx","views/screens/Workplans/actions/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansHistoricalVisits/index.tsx","views/screens/Workplans/sagas/workplansVisits/index.tsx","redux/schemas/configurations/index.js","redux/sagas/configurations/index.js","redux/schemas/models/index.tsx","redux/sagas/models/index.tsx","redux/schemas/brands/index.js","redux/sagas/static-catalogs/brands/index.tsx","redux/schemas/currencies/index.js","redux/sagas/static-catalogs/currencies/index.js","redux/schemas/time-zones/index.tsx","redux/sagas/static-catalogs/time-zones/index.tsx","redux/schemas/cellular-providers/index.tsx","redux/sagas/static-catalogs/cellular-providers/index.tsx","redux/schemas/countries/index.tsx","redux/sagas/static-catalogs/countries/index.tsx","redux/schemas/vehicle-makers/index.tsx","redux/sagas/static-catalogs/vehicle-makers/index.tsx","redux/schemas/vehicle-models/index.tsx","redux/sagas/static-catalogs/vehicle-models/index.tsx","redux/schemas/insurance-companies/index.tsx","redux/sagas/static-catalogs/insurance-companies/index.tsx","redux/schemas/insurance-agents/index.tsx","redux/sagas/static-catalogs/insurance-agents/index.tsx","redux/schemas/sensor-brands/index.tsx","redux/sagas/static-catalogs/sensor-brands/index.tsx","redux/schemas/sensor-models/index.tsx","redux/sagas/static-catalogs/sensor-models/index.tsx","redux/schemas/sensor-measures/index.tsx","redux/sagas/static-catalogs/sensor-measures/index.tsx","redux/schemas/payment-methods/index.ts","views/screens/VehicleFuel/services/paymentMethodsService.ts","redux/sagas/static-catalogs/payment-methods/index.tsx","redux/schemas/location-classes/index.js","redux/sagas/static-catalogs/location-classes/index.tsx","views/screens/SIMs/schemas/index.tsx","views/screens/SIMs/sagas/index.tsx","views/screens/Vehicles/schemas/index.tsx","views/screens/Vehicles/sagas/index.tsx","views/screens/Assets/schemas/index.tsx","views/screens/Assets/sagas/index.tsx","views/screens/Sensors/schemas/index.tsx","views/screens/Sensors/sagas/index.tsx","views/screens/Locations/schemas/index.tsx","views/screens/Locations/schemas/importLocations.tsx","views/screens/Locations/sagas/index.tsx","views/screens/Drivers/schemas/index.tsx","views/screens/Drivers/sagas/index.tsx","views/screens/Jobs/schemas/index.tsx","views/screens/Jobs/schemas/importJobs/index.tsx","views/screens/Jobs/sagas/backlog/index.tsx","views/screens/Jobs/sagas/board/index.tsx","views/screens/Jobs/schemas/jobsByUser/index.tsx","views/screens/Jobs/sagas/report/index.tsx","views/screens/Jobs/sagas/index.tsx","views/screens/Groups/sagas/index.tsx","views/screens/Quotations/schemas/index.tsx","views/screens/Quotations/sagas/index.tsx","views/screens/Contracts/schemas/index.tsx","views/screens/Contracts/sagas/index.tsx","views/screens/ContractTemplates/schemas/index.tsx","views/screens/ContractTemplates/sagas/index.tsx","views/screens/Customers/schemas/index.tsx","views/screens/Customers/sagas/index.tsx","views/screens/Offices/schemas/index.tsx","views/screens/Offices/services/index.ts","views/screens/Offices/sagas/index.tsx","views/screens/Forms/schemas/index.tsx","views/screens/Forms/services/forms.ts","views/screens/Forms/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/catalogs/categories/index.ts","views/screens/vehicleMaintenance/services/categoriesService.ts","views/screens/vehicleMaintenance/sagas/catalogs/categories/index.ts","views/screens/MaintenanceLines/schemas/index.tsx","views/screens/MaintenanceLines/services/index.ts","views/screens/MaintenanceLines/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/preventiveNotices/notices/index.ts","views/screens/vehicleMaintenance/services/noticeService.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/services/providersService.ts","views/screens/vehicleMaintenance/sagas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/services/workmanshipService.ts","views/screens/vehicleMaintenance/sagas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/spareParts/index.ts","views/screens/vehicleMaintenance/services/sparePartsService.ts","views/screens/vehicleMaintenance/sagas/catalogs/spareParts/index.ts","views/screens/Protocols/schemas/index.tsx","views/screens/Protocols/services/protocols.ts","views/screens/Protocols/sagas/index.tsx","views/screens/ETAModelRoutes/schemas/index.tsx","views/screens/ETAModelRoutes/services/index.tsx","views/screens/ETAModelRoutes/sagas/index.tsx","views/screens/Notifications/schemas/index.tsx","views/screens/Notifications/sagas/index.tsx","redux/sagas/index.tsx","redux/storeConfig/store.js","views/screens/Units/types/index.tsx","redux/utils/alerts/index.tsx","utility/icomoon/index.js","redux/sagas/settings/apibaseurl.js","views/screens/Forms/types.tsx","views/screens/Entities/constants/index.tsx","views/screens/Groups/types/index.tsx","views/screens/Organizations/types.tsx","views/screens/Jobs/types/backlog/index.tsx","views/screens/Workplans/types/workplans/index.tsx","views/screens/Quotations/types.tsx","views/screens/Geofences/types/index.tsx","views/screens/Routes/types/routesExecutions/index.tsx","@core/layouts/components/menu/screens/index.tsx","views/screens/Routes/types/routes/index.tsx","views/screens/Locations/types/index.tsx","views/screens/Users/types/index.tsx","views/screens/Drivers/types/index.tsx","views/screens/Sensors/types.tsx","views/screens/Schedules/types.tsx","views/screens/Assets/types.tsx","views/screens/Modules/types.tsx","views/screens/Operators/types.tsx","views/screens/SIMs/types.tsx","views/screens/MaintenanceLines/types.tsx","views/screens/Agents/types.tsx","views/screens/Vehicles/types.tsx","views/screens/Customers/types.tsx","views/screens/ServiceClasses/types.tsx","views/screens/Units/actions/index.tsx","views/screens/Telemetry/utils/index.js","views/screens/Contracts/types.tsx","views/screens/ContractTemplates/types.tsx","views/screens/Offices/types.tsx","views/screens/Divisions/types.tsx","views/screens/Subdivisions/types.tsx","views/screens/Workplans/types/workplansExecutions/index.tsx","views/screens/Contacts/types/index.ts","views/screens/Protocols/types/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer/index.tsx","redux/types/static-catalogs/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter/index.tsx","utility/types.ts","utility/Utils.ts","views/screens/Entities/reducers/index.tsx","views/screens/vehicleMaintenance/types/catalogs/categories/index.ts","views/screens/vehicleMaintenance/types/catalogs/providers/index.ts","views/screens/vehicleMaintenance/types/catalogs/spareParts/index.ts","views/screens/vehicleMaintenance/types/catalogs/workmanship/index.ts","views/screens/Workplans/types/workplansAssignments/index.tsx","views/screens/Schedules/reducers/index.tsx","views/screens/Routes/types/routesComments/index.tsx","views/formComponents/DropdownInput/index.tsx","views/formComponents/TextInput/index.tsx","views/screens/Notifications/types.tsx","views/screens/Units/utils.tsx","views/screens/Geofences/actions/index.tsx","views/screens/Routes/types/routesAssignments/index.tsx","views/screens/Workplans/types/workplansExecutionLocations/index.tsx","views/screens/Workplans/types/workplansComments/index.tsx","views/screens/Geofences/reducers/index.tsx","views/formComponents/NumericalInput/index.tsx","redux/actions/auth/index.js","views/screens/Units/reducers/unitLiveStatus/index.tsx","views/screens/Units/reducers/index.tsx","views/screens/Units/services/index.ts","views/screens/Quotations/actions/index.tsx","views/screens/Schedules/actions/index.tsx","views/screens/vehicleMaintenance/permissions.ts","redux/types/static-catalogs/countries/index.tsx","views/screens/Locations/reducers/importedLocations/index.tsx","views/screens/Locations/reducers/index.tsx","views/screens/Contacts/actions/index.ts","views/screens/Locations/actions/index.tsx","views/screens/Organizations/actions/index.tsx","views/screens/Jobs/actions/backlog/index.tsx","views/screens/Organizations/reducers/index.tsx","views/screens/Groups/actions/index.tsx","views/screens/Forms/actions/index.tsx","views/screens/Groups/schemas/index.tsx","views/screens/Workplans/actions/workplans/index.tsx","views/screens/Routes/reducers/routesExecutions/index.tsx","views/components/DefaultButton/index.tsx","views/screens/Jobs/types/board/index.tsx","env.js","views/screens/Routes/actions/routes/index.tsx","views/screens/Jobs/types/index.tsx","views/screens/Workplans/types/workplansVisits/index.tsx","views/screens/Divisions/reducers/index.tsx","views/screens/Entities/views/FetchEntities/index.tsx","views/screens/Routes/utils/index.tsx","views/screens/Entities/types/index.tsx","views/formComponents/CheckBoxInput/index.tsx","views/screens/Subdivisions/reducers/index.tsx","views/screens/Workplans/permissions.ts","views/components/Toolbar/index.tsx","views/screens/Users/actions/index.tsx","views/screens/Jobs/services/jobs.ts","views/screens/Agents/actions/index.tsx","views/screens/Operators/actions/index.tsx","views/screens/Reports/permissions.ts","views/screens/Routes/reducers/routesReport/index.tsx","views/screens/Routes/reducers/routes/index.tsx","views/screens/Routes/permissions.ts","views/screens/Entities/actions/index.tsx","utility/http/interceptors/interceptor-utils.ts","views/screens/Drivers/actions/index.tsx","views/screens/Modules/actions/index.tsx","views/screens/Jobs/types/report/index.tsx","views/screens/Routes/types/routesReport/index.tsx","views/screens/Workplans/types/workplansReport/index.tsx","views/screens/ServiceClasses/actions/index.tsx","views/screens/Offices/actions/index.tsx","views/screens/Assets/actions/index.ts","views/screens/ContractTemplates/actions/index.tsx","views/screens/Customers/actions/index.tsx","views/screens/Divisions/actions/index.tsx","views/screens/Subdivisions/actions/index.tsx","views/screens/Contracts/actions/index.tsx","views/screens/Sensors/actions/index.tsx","views/screens/SIMs/actions/index.tsx","views/screens/Operators/reducers/index.tsx","views/screens/Vehicles/actions/index.tsx","views/screens/Routes/types/routeCheckpoints/index.tsx","utility/timeUtils/timeInSeconds.ts","views/formComponents/DateInput/index.tsx","redux/types/static-catalogs/vehicle-makers/index.tsx","redux/types/static-catalogs/vehicle-models/index.tsx","redux/types/static-catalogs/insurance-companies/index.tsx","redux/types/static-catalogs/insurance-agents/index.tsx","redux/types/navbar/index.js","@core/components/avatar/index.js","views/screens/Contacts/reducers/index.ts","views/screens/MaintenanceLines/actions/index.tsx","redux/types/static-catalogs/brands/index.js","redux/types/configurations/index.js","redux/types/models/index.tsx","redux/types/static-catalogs/cellular-providers/index.tsx","views/components/Table/index.tsx","views/screens/Offices/reducers/index.tsx","views/screens/Protocols/actions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter/index.ts","views/screens/TrackingUnits/permissions.ts","views/formComponents/TimeInput/index.tsx","views/components/Map/utils/index.tsx","views/screens/Locations/permissions.ts","views/screens/vehicleMaintenance/paths.ts","views/screens/Workplans/reducers/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansAssignments/index.tsx","views/formComponents/Membership/hooks/useMembership.tsx","views/formComponents/Membership/index.tsx","views/formComponents/SwitchInput/index.tsx","views/formComponents/MultiSelectInput/index.tsx","views/screens/Jobs/utils/index.tsx","views/screens/Customers/reducers/index.tsx","views/screens/Geofences/permissions.ts","redux/reducers/static-catalogs/location-classes/index.js","views/screens/ETAModelRoutes/types/index.tsx","views/components/DefaultSimpleButton/index.tsx","views/screens/Groups/reducers/index.tsx","redux/reducers/configurations/index.js","views/screens/vehicleMaintenance/actions/catalogs/categories/index.ts","views/screens/Routes/actions/routesExecutions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer/index.ts","views/components/DeleteButton/index.tsx","views/components/TitleH4/index.js","views/screens/Drivers/reducers/index.tsx","views/formComponents/LocationDropDown/index.tsx","views/screens/Agents/reducers/index.tsx","views/components/MediaGallery/index.tsx","views/screens/Units/permissions.ts","views/screens/VehicleFuel/permissions.ts","views/screens/Notifications/actions/index.tsx","views/screens/Workplans/services/workplans.ts","views/screens/Telemetry/permissions.ts","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate/index.ts","views/components/Map/components/MapGeofenceEdit/index.tsx","views/components/Map/components/MapGeofences/index.tsx","views/components/Map/components/MapLocationEdit/index.tsx","views/components/Map/components/MapLocations/index.tsx","views/components/Map/components/MapObjectsBounds/index.tsx","views/components/Map/utils/poliyline.js","views/components/Map/utils/lrm-google.js","views/components/Map/components/RouteItem/index.tsx","views/components/Map/components/SlidingPaneAddAlternateRoute/index.tsx","views/components/Map/components/SlidingPaneEditRoute/index.tsx","views/components/Map/components/MapRouteEdit/useMapRouteEdit.tsx","views/components/Map/components/MapRouteEdit/index.tsx","views/screens/Routes/views/SlidingPaneRouteInformation/index.tsx","views/components/Map/components/MapRoutes/index.tsx","views/components/Map/components/RulerControl/index.tsx","views/components/Map/components/ToolbarGeofencesControl/index.tsx","views/components/Map/components/ToolbarHomeControl/index.tsx","views/components/Map/components/ToolbarLocationsControl/index.tsx","views/components/Map/components/ToolbarRoutesControl/index.tsx","views/components/Map/components/ToolbarUnitsControl/index.tsx","views/components/Map/index.tsx","views/screens/Users/reducers/index.tsx","views/screens/Forms/reducers/index.tsx","views/screens/Drivers/services/drivers.ts","views/screens/Organizations/services/index.ts","views/screens/Notifications/permissions.ts","views/screens/Routes/actions/routesAssignments/index.tsx","views/screens/Groups/services/groups.ts","views/screens/vehicleMaintenance/actions/catalogs/spareParts/index.ts","redux/types/static-catalogs/sensor-measures/index.tsx","views/screens/Routes/services/routes.ts","views/screens/vehicleMaintenance/actions/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/actions/catalogs/providers/index.ts","views/components/EditButton/index.tsx","views/formComponents/SlidingPaneForm/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/categories/index.ts","navigation/vertical/affiliations.js","navigation/vertical/inventories.js","navigation/vertical/schedules.js","navigation/vertical/groups.js","navigation/vertical/drivers.js","navigation/vertical/people.js","navigation/vertical/users.js","navigation/vertical/customers.js","views/screens/Contacts/sidebarLayout.ts","views/screens/Offices/sidebarLayout.tsx","navigation/vertical/catalogs.js","navigation/vertical/notifications.js","views/screens/Forms/sidebarLayout.ts","navigation/vertical/administrations.js","views/screens/Workplans/sidebarLayout.tsx","views/screens/Routes/sidebarLayout.tsx","views/screens/Optimizations/sidebarLayout.tsx","navigation/vertical/vehicleFuel.js","navigation/vertical/vehicleMaintenance.tsx","navigation/vertical/operations.js","views/screens/Telemetry/sidebarLayout.tsx","navigation/vertical/telemetry.js","navigation/vertical/maps.js","views/screens/Dashboard/sidebarLayout.ts","views/screens/Locations/sidebarLayout.tsx","navigation/vertical/geofences.js","navigation/vertical/pointsOfInterest.js","navigation/vertical/reports.js","navigation/vertical/trackingUnits.js","navigation/vertical/general.js","navigation/vertical/contracts.js","navigation/vertical/generalCRM.js","views/screens/Jobs/sidebarLayout.ts","views/screens/SafeDriver/sidebarLayout.ts","navigation/vertical/apps.js","navigation/vertical/businessPartners.js","navigation/vertical/generalAdmin.js","navigation/vertical/console.js","navigation/vertical/protocol.js","navigation/vertical/generalMonitoringCenter.js","navigation/vertical/index.js","redux/types/static-catalogs/location-classes/index.js","redux/types/static-catalogs/time-zones/index.tsx","redux/types/static-catalogs/currencies/index.ts","redux/types/static-catalogs/sensor-brands/index.tsx","redux/types/static-catalogs/sensor-models/index.tsx","redux/types/static-catalogs/payment-methods/index.ts","views/screens/Workplans/reducers/workplansAssignments/index.tsx","views/screens/Locations/services/locations.ts","views/screens/Sensors/services/sensors.ts","views/formComponents/ContactsDropdown/index.tsx","views/screens/Assets/reducers/index.tsx","views/screens/Routes/actions/routeCheckpoints/index.tsx","views/screens/SIMs/reducers/index.tsx","views/screens/Routes/paths.ts","views/screens/Geofences/services/geofences.ts","views/formComponents/CustomersDropdown/index.tsx","views/screens/Sensors/reducers/index.tsx","views/screens/Jobs/permissions.ts","views/screens/Telemetry/paths.ts","views/screens/Jobs/actions/board/index.tsx","views/screens/Workplans/actions/workplansComments/index.tsx","redux/actions/navbar/index.js","views/formComponents/UnitsDropdown/index.tsx","views/components/DropdownInput/index.tsx","configs/themeConfig.js","views/screens/Users/services/index.ts","views/screens/Vehicles/reducers/index.tsx","views/screens/Quotations/reducers/index.tsx","views/screens/ServiceClasses/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/Contracts/reducers/index.tsx","views/screens/ContractTemplates/reducers/index.tsx","views/screens/Schedules/permissions.ts","views/formComponents/OfficesDropdown/index.tsx","views/screens/Locations/views/SlidingPaneEditLocation/index.tsx","views/screens/VehicleFuel/paths.ts","views/screens/Units/reducers/deviceActions/index.tsx","views/screens/Units/reducers/deviceMetrics/index.tsx","views/screens/Units/reducers/groups/index.tsx","views/screens/Units/reducers/images/index.tsx","views/screens/Units/reducers/reports/index.tsx","views/screens/Units/reducers/sensors/index.tsx","redux/actions/static-catalogs/location-classes/index.js","views/components/Map/components/MarkerClusterGroup/index.tsx","views/screens/Workplans/paths.ts","views/screens/Jobs/paths.ts","views/screens/Jobs/actions/index.tsx","views/formComponents/GeofenceShapeDropdownInput/index.tsx","views/formComponents/WebtrackCustomInput/index.tsx","views/screens/Customers/services/index.ts","views/screens/MaintenanceLines/reducers/index.tsx","views/formComponents/RadioButtonInput/index.tsx","views/screens/Schedules/utils.tsx","views/screens/Modules/reducers/index.tsx","views/screens/SIMs/services/index.ts","views/screens/Routes/views/RoutesAssignUnitScreen/SelectAssignmentTypeTab.tsx","views/screens/Routes/reducers/routesAssignments/index.tsx","views/screens/Protocols/reducers/index.tsx","views/screens/ServiceClasses/permissions.ts","views/screens/Routes/services/routesAssignments.ts","views/screens/Notifications/paths.ts","views/screens/Jobs/actions/report/index.tsx","views/screens/Routes/services/routesComments.ts","views/screens/Routes/reducers/routesComments/index.tsx","views/screens/Routes/reducers/routeCheckpoints/index.tsx","views/screens/Forms/permissions.ts","views/screens/Protocols/permissions.ts","views/formComponents/ManualHourmeterAdjustment/index.tsx","views/formComponents/SlidingPaneManualHourmeterAdjustment/index.tsx","views/screens/Units/hooks/useGetUnitAssets.ts","views/screens/Units/views/SlidingPaneShareUnitLocation/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalPositionsReport/index.tsx","views/screens/Units/services/unitImages.ts","views/screens/Units/views/SlidingPaneUnitImages/index.tsx","views/screens/Units/hooks/useGetUnitScripts.ts","views/screens/Units/hooks/useInsertUnitScript.ts","views/screens/Units/views/SlidingPaneUnitSendScripts/index.tsx","views/screens/Units/views/UnitFuel/index.tsx","views/screens/Units/views/UnitTemperature/index.tsx","views/screens/Units/views/SlidingPaneUnitInformation/index.tsx","views/components/Map/components/MapUnits/index.tsx","views/components/ReportViewerButton/index.tsx","views/components/AddButton/index.tsx","views/components/TabsWrapper/TabsCardContent.js","views/components/TabsWrapper/TabsContent.js","views/components/TabsWrapper/index.tsx","hooks/useRerender/index.ts","hooks/useBoolean/index.ts","views/components/FilesGallery/SlidingPaneEditFileName/index.tsx","views/components/FilesGallery/index.tsx","redux/actions/static-catalogs/currencies/index.js","views/screens/Notifications/services/index.ts","hooks/useWebtrackServiceOnAction/index.ts","assets/data/locales/es.ts","assets/data/locales/en.ts","utility/context/Internationalization.js","views/formComponents/UsersDropdown/index.tsx","redux/actions/static-catalogs/time-zones/index.tsx","redux/reducers/static-catalogs/brands/index.js","redux/reducers/static-catalogs/countries/index.tsx","views/screens/Routes/schemas/routesAssignments/index.tsx","redux/actions/static-catalogs/brands/index.js","views/screens/Geofences/utils/index.tsx","views/screens/Workplans/reducers/workplansComments/index.tsx","views/screens/ServiceClasses/paths.ts","views/screens/TrackingUnits/paths.ts","redux/actions/configurations/index.js","redux/actions/models/index.tsx","redux/actions/static-catalogs/vehicle-makers/index.tsx","redux/actions/static-catalogs/vehicle-models/index.tsx","views/formComponents/LocationClassesDropdownInput/index.tsx","redux/actions/static-catalogs/cellular-providers/index.tsx","views/components/Map/components/RotatedMarker/index.tsx","redux/actions/static-catalogs/insurance-companies/index.tsx","redux/actions/static-catalogs/insurance-agents/index.tsx","redux/actions/static-catalogs/sensor-brands/index.tsx","redux/actions/static-catalogs/sensor-models/index.tsx","redux/actions/static-catalogs/sensor-measures/index.tsx","views/screens/Jobs/reducers/importedJobs/index.tsx","views/screens/Jobs/reducers/backlog/index.tsx","views/formComponents/ManualOdometerAdjustment/index.tsx","views/formComponents/SlidingPaneManualOdometerAdjustment/index.tsx","views/formComponents/ImageUploader/ImgUtils.js","views/formComponents/ImageUploader/index.js","views/screens/Routes/services/routeExecution.ts","assets/images/logo sync /^/.//.*logoName/.png$","views/screens/Vehicles/services/index.ts","views/screens/Assets/services/index.ts","views/components/TabsWrapper/Tabs.js","views/screens/Modules/services/index.ts","views/screens/Workplans/services/workplansAssignments.ts","views/components/ButtonIconDropdown/index.tsx","views/screens/BusinessPartners/paths.ts","views/screens/Locations/paths.ts","views/screens/Geofences/paths.ts","views/screens/Workplans/services/workplansVisits.ts","views/components/Map/components/MapBaseLayers/index.tsx","views/screens/Operators/permissions.ts","views/screens/Organizations/permissions.ts","views/screens/Agents/permissions.ts","views/screens/Divisions/permissions.ts","views/screens/Subdivisions/permissions.ts","views/screens/Schedules/paths.ts","views/screens/Forms/paths.ts","views/screens/Optimizations/permissions.ts","views/components/TableTimePicker/index.tsx","views/components/Map/components/ToolbarUnitTrajectoryControl/index.tsx","assets/images/logo/logo.png","redux/actions/static-catalogs/payment-methods/index.tsx","views/components/Collapse/index.tsx","views/screens/Reports/services/index.ts","redux/reducers/static-catalogs/currencies/index.tsx","@core/components/spinner/Fallback-spinner.js","views/screens/Routes/views/RoutesAssignUnitScreen/RoutesAssignUnitContext.tsx","views/formComponents/DriverDropDown/index.tsx","views/formComponents/EventsDropdown/index.tsx","views/formComponents/ScheduleDropdown/index.tsx","views/components/ControlChart/index.tsx","views/screens/Groups/permissions.ts","assets/images/logo sync /^/.//.*logo/.svg$","views/formComponents/DurationInput/index.tsx","views/formComponents/TextEditorInput/index.tsx","views/screens/Drivers/hooks/useGetDriverImages.ts","views/screens/Reports/paths.ts","redux/reducers/static-catalogs/time-zones/index.tsx","views/screens/Notifications/views/listSystemNotifications/utils.tsx","views/screens/vehicleMaintenance/reducers/catalogs/spareParts/index.ts","views/screens/Units/hooks/useGetDowntimeBinnacle.ts","views/formComponents/SlidingPaneDowntimeBinnacle/index.tsx","views/formComponents/FormsDropdown/index.tsx","views/formComponents/SlidingPanePreviewDriverImages/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/workmanship/index.ts","views/screens/Contracts/paths.ts","views/formComponents/SlidingPaneAddEditContact/index.tsx","views/screens/Operators/services/operators.ts","views/screens/Jobs/components/JobPriorityDropdownInput/index.js","views/components/SimpleAlertMessage/index.tsx","redux/reducers/models/index.tsx","views/screens/Sensors/permissions.ts","views/screens/Users/permissions.ts","redux/reducers/static-catalogs/vehicle-makers/index.tsx","redux/reducers/static-catalogs/vehicle-models/index.tsx","views/screens/Locations/services/locationImages.ts","views/screens/Locations/views/SlidingpanelLocationImages/index.tsx","views/screens/Locations/views/SlidingpanelLocationInformation/index.tsx","views/screens/Reports/hooks/useGetEventActivityDropdown.ts","views/formComponents/ColorPicker/index.tsx","views/screens/Jobs/components/JobTypeDropdownInput/index.js","views/screens/Jobs/components/JobStatusDropdownInput/index.js","views/formComponents/GeofenceDropDown/index.tsx","views/screens/Notifications/reducers/index.tsx","views/screens/Operators/paths.ts","views/screens/Organizations/paths.ts","views/screens/Agents/paths.ts","views/screens/Divisions/paths.ts","views/screens/Subdivisions/paths.ts","views/screens/Modules/paths.ts","views/screens/Vehicles/paths.ts","views/screens/SIMs/paths.ts","views/screens/Sensors/paths.ts","views/screens/Assets/paths.ts","views/screens/Modules/permissions.ts","views/screens/Vehicles/permissions.ts","views/screens/SIMs/permissions.ts","views/screens/Assets/permissions.ts","views/screens/Groups/paths.ts","views/screens/Drivers/paths.ts","views/screens/People/paths.ts","views/screens/Users/paths.ts","views/screens/Customers/paths.ts","views/screens/Customers/permissions.ts","views/screens/Optimizations/paths.ts","views/screens/Dashboard/paths.ts","views/screens/Quotations/paths.ts","views/screens/SafeDriver/paths.ts","views/screens/Console/paths.ts","views/screens/Console/permissions.ts","views/screens/Protocols/paths.ts","redux/reducers/static-catalogs/cellular-providers/index.tsx","utility/context/Can.js","views/screens/Entities/services/index.ts","views/screens/Entities/hooks/useGetBinnacle.ts","views/screens/Entities/hooks/useInsertBinnacleComment.ts","views/formComponents/SlidingPaneEntityBinnacle/index.tsx","views/screens/Entities/utils/index.ts","views/screens/ETAModelRoutes/reducers/index.tsx","views/formComponents/SlidingPaneAddEditCustomer/index.tsx","views/screens/Offices/views/SlidingPaneEditOffice/index.tsx","views/formComponents/GoogleLocationDropDown/index.tsx","views/screens/Operators/hooks/useGetOperatorContacts.ts","views/screens/Organizations/hooks/useGetContacts.ts","views/screens/Geofences/views/SlidingpanelGeofenceInformation/index.tsx","views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput/index.tsx","views/screens/vehicleMaintenance/components/CategoriesDropdownInput/index.tsx","views/components/ShiftSlide/index.tsx","views/components/TriggerSlide/index.tsx","views/formComponents/ThemeDropdown/index.tsx","views/screens/Routes/hooks/useGetAlternateRoutes.ts","views/formComponents/SlidingPaneStartUnitDowntime/index.tsx","views/screens/Organizations/hooks/useGetDowntimeReasons.ts","views/screens/Reports/views/byUnit/reportScriptHistory/utils.tsx","views/screens/Units/hooks/useGetUnitTemperatureHistory.ts","views/screens/vehicleMaintenance/reducers/catalogs/providers/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer/index.ts","views/screens/Drivers/permissions.ts","views/screens/People/permissions.ts","views/screens/Contacts/paths.ts","views/screens/Offices/paths.ts","views/screens/Offices/permissions.ts","views/screens/Dashboard/permissions.ts","views/screens/ContractTemplates/paths.ts","views/screens/Contracts/permissions.ts","views/screens/ContractTemplates/permissions.ts","views/screens/Quotations/permissions.ts","views/screens/SafeDriver/permissions.ts","redux/reducers/static-catalogs/payment-methods/index.tsx","redux/reducers/static-catalogs/insurance-companies/index.tsx","redux/reducers/static-catalogs/insurance-agents/index.tsx","redux/reducers/static-catalogs/sensor-brands/index.tsx","redux/reducers/static-catalogs/sensor-models/index.tsx","redux/reducers/static-catalogs/sensor-measures/index.tsx","redux/sagas/settings/tokenLifeTime.js","views/screens/Routes/services/routeCheckpoints.ts","views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators.tsx","views/screens/Units/hooks/useGetUnitSpecialFunctions.ts","views/screens/Units/hooks/useGetSpecialFunctionsDropdown.ts","views/formComponents/SpecialFunctionsDropdown/index.tsx","views/formComponents/SlidingPaneUnitSpecialFunctions/SlidingPaneEditUnitSpecialFunctions/index.tsx","views/formComponents/SlidingPaneUnitSpecialFunctions/index.tsx","views/screens/Jobs/reducers/board/index.tsx","views/screens/Jobs/reducers/report/index.tsx","views/screens/Jobs/reducers/index.tsx","views/screens/ExternalLogin/views/SharedLinkUnitLocation/SlidingPaneSharedLinkUnitInformation/index.tsx","views/components/Map/components/MapUnitsPublic/index.tsx","views/components/Map/context/GoogleMapsContext.tsx","views/components/Map/context/useGoogleMapsScript.ts","views/screens/vehicleMaintenance/components/dropDownIcons/options.tsx","views/screens/vehicleMaintenance/components/dropDownIcons/index.tsx","assets/images/logo sync /^/.//.*logo/.png$","globals.js","assets/images/logo/logo.svg","assets/images/logo/cass/logo.svg","assets/images/logo/kripton/logo.svg","assets/images/logo/oneguard/logo.svg","assets/images/logo/prosegur/logo.svg","assets/images/logo/schooltracker/logo.svg","assets/images/logo/scm/logo.svg","assets/images/logo/tzultaka/logo.svg","assets/images/logo/cass/logoName.png","assets/images/logo/kripton/logoName.png","assets/images/logo/logoName.png","assets/images/logo/oneguard/logoName.png","assets/images/logo/prosegur/logoName.png","assets/images/logo/schooltracker/logoName.png","assets/images/logo/scm/logoName.png","assets/images/logo/tzultaka/logoName.png","assets/images/logo/cass/logo.png","assets/images/logo/kripton/logo.png","assets/images/logo/oneguard/logo.png","assets/images/logo/prosegur/logo.png","assets/images/logo/schooltracker/logo.png","assets/images/logo/scm/logo.png","assets/images/logo/tzultaka/logo.png","configs/acl/ability.js","configs/acl/initialAbility.js","utility/context/ThemeColors.js","@core/components/ripple-button/index.js","serviceWorker.js","index.js"],"names":["tokenRefreshFailCount","state","action","type","types","auth","combineReducers","token","payload","newToken","user","camelcaseKeys","jwtDecode","mapOptions","console","log","enableLocationClustering","locationMapLabelAlwaysOn","activateUnitTrackMode","unitMapLabelAlwaysOn","unitsLabelContent","zoomLevelToStartClustering","newImage","imageName","userImageUrl","homeScreenId","mapEntitiesFilterTab","membership","navigationOptions","productId","isAuthenticating","isUpdatingMapSettingsConfiguration","isUpdatingProfileGeneralInformation","isUpdatingProfilePassword","isUpdatingProfileMapOptions","isRefreshing","error","refreshingError","catalogFilters","catalog","filters","initialValues","authPersistConfig","key","storage","localforage","stateReconciler","autoMergeLevel2","blacklist","persistReducer","getOwnState","getUser","getAuthToken","getIsAuthenticating","getIsUpdatingProfileInformation","getisUpdatingMapSettingsConfiguration","getIsUpdatingProfileMapOptions","getIsUpdatingProfilePassword","getAuthenticatingError","getAuthUserID","user_id","getAuthExpiration","exp","getAuthUsername","username","getAuthUser","getAuthUserForMembership","getAuthUserTimezoneName","zoneName","Intl","DateTimeFormat","resolvedOptions","timeZone","getAuthUserCountryIdsForGoogleSearch","countriesForGoogleSearch","getAuthUserMapEntitiesFilterTab","Number","getAuthUserMapGroupIdActive","mapGroupIdActive","getAuthUserUnitsMarkerRotationActive","unitMarkersRotation","getAuthUserMapHomeCenter","homeLatitude","homeLongitude","getAuthUserMapHomeZoom","homeZoom","isAuthenticated","getAuthUserPermissions","permissions","split","getAuthUserOrganizationId","organizationId","getAuthUserDivisionId","divisionId","getAuthUserSubdivisionId","subdivisionId","getAuthUserAccessLevelId","accessLevelId","getAuthUserHomeScreenId","parseInt","getNavigationProduct","getAuthUserMembershipFilters","filterOperatorId","filterOrganizationId","operatorId","includes","organizationSelectors","allowNullOrganizationId","getAuthUserOperatorId","getAuthUserHasPermissionsAny","some","userPer","getAuthUserHasPermissionByAccessLevels","accessLevels","isAuthUserSystemOrOperator","getAuthUserHasPermissionsEvery","every","getUserCatalogFilters","getAuthSystems","distance","distanceSystem","capacity","capacitySystem","volume","volumeSystem","temperature","temperatureSystem","distance2","distance2System","speed","speedSystem","fuel","fuelSystem","fuel2","fuel2System","performance","getParsers","convertMetersToAuthUserDistanceSystem","meters","metricSystemId","convertKilometersToAuthUserDistanceSystem","kilometers","convertAuthUserDistanceSystemToMeters","authUserDistanceSystem","convertAuthUserDistanceSystemToKilometers","convertGalonsToAuthUserCapacitySystem","gal","convertAuthUserCapacitySystemToGalons","authUserCapacitySystem","convertLitersToAuthUserCapacitySystem","lt","convertAuthUserCapacitySystemToLiters","convertCubicMetersToAuthUserVolumeSystem","cubicMeters","convertAuthUserVolumeSystemToCubicMeters","authUserVolumeSystem","convertAuthUserVolumeSystemToCubicCentimeters","c","authUserTemperatureSystem","authUserDistance2System","kilometersPerHour","authUserSpeedSystem","kmPerGal","authUserFuelSystem","kmPerLiter","galPerHour","authUserFuel2System","litersPerHour","getIsRefreshingToken","getRefreshingError","getTokenRefreshFailCount","intl","IntlGlobalProvider","children","useIntl","appIntl","AUTHENTICATION_STARTED","AUTHENTICATION_COMPLETED","AUTHENTICATION_FAILED","AUTHENTICATION_FAILED_CLEAR","AUTHENTICATION_IDENTITY_CLEARED","AUTHENTICATION_SET_MEMBERSHIP","AUTHENTICATION_USER_INFORMATION_STARTED","AUTHENTICATION_USER_INFORMATION_COMPLETED","TOKEN_REFRESH_STARTED","TOKEN_REFRESH_FORCE_STARTED","TOKEN_REFRESH_COMPLETED","TOKEN_REFRESH_FAILED","PROFILE_UPDATE_GENERAL_INFORMATION_STARTED","PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED","PROFILE_UPDATE_GENERAL_INFORMATION_FAILED","PROFILE_UPDATE_PASSWORD_STARTED","PROFILE_UPDATE_PASSWORD_COMPLETED","PROFILE_UPDATE_PASSWORD_FAILED","PROFILE_UPDATE_PICTURE_STARTED","PROFILE_UPDATE_PICTURE_COMPLETED","PROFILE_UPDATE_PICTURE_FAILED","PROFILE_UPDATE_MAP_OPTIONS_STARTED","PROFILE_UPDATE_MAP_OPTIONS_COMPLETED","PROFILE_UPDATE_MAP_OPTIONS_FAILED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED","PROFILE_UPDATE_HOME_SCREEN_STARTED","PROFILE_UPDATE_HOME_SCREEN_COMPLETED","PROFILE_UPDATE_HOME_SCREEN_FAILED","PROFILE_CHANGE_PRODUCT_STARTED","PROFILE_CHANGE_PRODUCT_COMPLETED","PROFILE_CHANGE_PRODUCT_FAILED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED","PROFILE_SET_CATALOGS_FILTERS","headers","Accept","promiseWith","data","Promise","resolve","HttpWebtrack","baseURL","API_BASE_URL","configMessage","configAction","setConfigMessage","setConfigActions","config","service","this","axios","create","path","a","get","Authorization","response","responseType","patch","post","put","delete","getSuccessMessage","genderType","getFailMessage","handleSuccess","successTimer","useSuccessTimer","alertObject","object","formatMessage","id","name","undefined","customMessage","messageId","message","success","Swal","fire","icon","text","timer","timerProgressBar","showConfirmButton","position","toast","didOpen","addEventListener","stopTimer","resumeTimer","customClass","confirmButton","content","iconColor","buttonsStyling","alerts","successAction","handleError","mixin","status","errorTimer","customMessageError","errorAction","reject","httpWebtrack","methods","authTokenInterceptor","session","endDateAdjustment","ConfigureWebtrackInterceptor","store","interceptors","request","use","x","method","toUpperCase","axiosResponse","conf","getState","initialState","isRTL","themeConfig","layout","menuCollapsed","item","window","localStorage","getItem","JSON","parse","menu","isCollapsed","initialMenuCollapsed","menuHidden","isHidden","menuPinner","isPinner","contentWidth","layoutReducer","setItem","title","size","iconName","navLink","suggestions","sidebar","sidebarOptions","outsideSidebarOptions","bookmarks","query","isFetchingBookmarks","navbar","navbarTypes","objectToUpdate","find","isBookmarked","bookmarkIndex","findIndex","push","splice","getUserBookmarks","staticCatalogs","currencies","timeZones","countries","providers","vehicleMakers","vehicleModels","insuranceCompanies","insuranceAgents","sensorBrands","sensorModels","sensorMeasures","paymentMethods","locationClasses","brands","reducer","operators","organizations","divisions","subdivisions","serviceClasses","agents","modules","entities","people","workplans","locations","drivers","monitoringUsers","routes","schedules","units","categories","workmanship","geofences","sims","vehicles","assets","sensors","forms","jobs","groups","quotations","organizationContracts","contractTemplates","customers","offices","form","formReducer","noticesByOdometer","noticesByDate","noticesByHourmeter","spareParts","maintenanceLines","protocols","userNotifications","etaModels","rootReducer","newState","authTypes","removeItem","agent","schema","Entity","idAttribute","Array","fetchAgentsList","watchFetchAgentsList","partialFetchAgentsList","watchPartialFetchAgentsList","addAgent","watchAddAgentsStarted","editAgent","watchEditAgentsStarted","removeAgent","watchRemoveAgentStarted","fetchAgent","watchAgentFetchStarted","select","authSelectors","call","fetch","body","stringify","json","jsonResult","resultData","map","result","normalize","schemas","actions","errorMessage","errorNumber","number","toString","takeEvery","entityTypeId","entitySelectors","date","userFetchDate","agentId","addedAgent","agentName","editedAgent","selectors","oldAgent","isAuth","agentSelectors","deletedAgent","division","fetchDivisionsList","watchFetchDivisionsList","partialFetchDivisionsList","watchPartialFetchDivisionsList","addDivision","watchAddDivisionsStarted","editDivision","watchEditDivisionsStarted","removeDivision","watchRemoveDivisionStarted","addedDivision","divisionName","editedDivision","oldDivision","deletedDivision","entity","startFetchingDestinations","completeFetchingDestination","order","failFetchingDestination","startFetchingCountries","failFetchingCountries","startPartialFetchingCountries","fetchEntitiesList","watchFetchEntitiesList","updateEntities","watchUpdateEntities","entitiesToUpdate","isEntityUpdatedFunction","isEntityUpdated","all","index","entityTypes","unitsActions","subdivisionsActions","maintenanceLinesActions","vehicleActions","modulesActions","agentActions","serviceClassesActions","isDropdown","operatorsActions","divisionsActions","formsActions","organizationsActions","organizationContractsActions","contractTemplatesActions","customersActions","contactsActions","workplansActions","geofencesActions","bounds","schedulesActions","routesActions","simActions","countriesActions","locationActions","officeActions","driverActions","assetsActions","sensorsActions","jobActions","groupsActions","protocolsActions","destinationActions","notificationsActions","geofence","fetchGeofencesList","watchFetchGeofencesList","partialFetchGeofencesList","watchPartialFetchGeofencesList","addGeofence","watchAddGeofencesStarted","editGeofence","watchEditGeofencesStarted","removeGeofence","watchRemoveGeofenceStarted","assignGeofenceUnit","watchAssignGeofenceUnit","removeGeofenceAssignation","removeAllAssigmentsByGeofences","removeAllAssigmentsByUnits","watchRemoveGeofenceAssignation","watchRemoveAllAssignmentsByGeofences","watchRemoveAllAssignmentsByUnits","editGeofenceAssignation","watchEditGeofenceAssignation","fetchGeofenceById","watchFetchGeofenceById","filterBounds","getGeofencesListService","minLat","maxLat","minLng","maxLng","dispatch","showInMapGeofences","saveGeofenceService","geofenceId","addedGeofence","oldGeofence","editedGeofence","deleteGeofenceService","assignation","length","unitGeofences","unitGeofenceInfo","getGeofenceByIdService","moduleSchema","fetchModulesList","watchFetchModulesList","partialFetchModulesList","watchPartialFetchModulesList","addModule","watchAddModulesStarted","editModule","watchEditModulesStarted","removeModule","watchRemoveModuleStarted","fetchModule","watchModuleFetchStarted","getModulesListService","module","deviceId","identifier","addedModule","editedModule","oldModule","moduleId","deletedModule","operator","contact","contacts","fetchOperatorsList","watchFetchOperatorsList","partialFetchOperatorsList","watchPartialFetchOperatorsList","addOperator","watchAddOperatorsStarted","editOperator","watchEditOperatorsStarted","removeOperator","watchRemoveOperatorStarted","editOperatorStandardPrices","watchEditOperatorStandardPricesStarted","addedOperator","operatorData","operatorName","editedOperator","operatorContacts","contactSchemas","contactActions","oldOperator","operatorSelectors","deletedOperator","standardPrices","editedOperatorStandardPrices","organization","fetchOrganizationsList","watchFetchOrganizationsList","partialFetchOrganizationsList","watchPartialFetchOrganizationsList","addOrganization","watchAddOrganizationsStarted","editOrganization","watchEditOrganizationsStarted","saveConsolidableEvents","watchSaveConsolidableEventsStarted","removeOrganization","watchRemoveOrganizationStarted","checkRegistrationCode","watchRegistrationCodeStarted","assigCode","watchCodeAssignStarted","addOrganizationDowntimeReason","watchAddOrganizationDowntimeReasonsStarted","editOrganizationDowntimeReason","watchEditOrganizationDowntimeReasonsStarted","removeOrganizationDowntimeReason","watchRemoveOrganizationDowntimeReasonsStarted","editWorkplanOrdersConfiguration","watchEditWorkplanOrdersConfiguration","getOrganizationsListService","organizationList","usersData","usersList","orderStatusIds","orderStatusIdList","usersByOrganization","groupBy","orderStatusByOrganization","forEach","sacUsers","isSelected","addedOrganization","organizationData","quotationId","quotationActions","baseQuotationId","organizationName","organizationTaxNumber","taxNumber","organizationType","oldOrganization","editedOrganization","consolidableEvents","deleteOrganizationService","code","validCode","RegistrationCodeStatus","registrationCode","registrationMails","registrationDivisionId","registrationSubdivisionId","allowedApplications","downtimeReason","reasonId","addedDowntimeReason","reasonDescription","altText","editedDowntimeReason","saveWorkplanOrderConfigurationService","orderTag","orderVolumeUnit","useWorkplanOrders","updatedOrganization","serviceClass","fetchServiceClassesList","watchFetchServiceClassesList","addServiceClass","watchAddServiceClassesStarted","editServiceClass","watchEditServiceClassesStarted","removeServiceClass","watchRemoveServiceClassStarted","fetchServiceClass","watchServiceClassFetchStarted","urlGet","serviceClassId","addedServiceClass","serviceClassName","editedServiceClass","oldServiceClass","deletedServiceClass","subdivision","fetchSubdivisionsList","watchFetchSubdivisionsList","partialFetchSubdivisionsList","watchPartialFetchSubdivisionsList","addSubdivision","watchAddSubdivisionsStarted","editSubdivision","watchEditSubdivisionsStarted","removeSubdivision","watchRemoveSubdivisionStarted","addedSubdivision","editedSubdivision","subdivisionName","oldSubdivision","deletedSubdivision","unit","deviceMetric","deviceMetrics","deviceAction","deviceActions","group","report","reports","image","images","sensor","fetchUnitsList","watchFetchUnitsList","partialFetchUnitsList","watchPartialFetchUnitsList","fetchUnitsLiveStatusList","watchFetchUnitsLiveStatusList","fetchUnitInformation","watchFetchUnitInformationStarted","fetchUnitHistoricalPositionsReport","watchFetchUnitHistoricalPositionsStarted","fetchUnitTrajectory","watchFetchUnitTrajectoryStarted","executeDeviceAction","watchExecuteDeviceAction","addUnit","watchAddUnitsStarted","editUnit","watchEditUnitsStarted","acknowledgeUnitEvent","watchAcknowledgeUnitEvent","removeUnit","watchRemoveUnitStarted","activeUnits","watchActiveUnits","assignDriver","watchAssignDriverUnitsStarted","startUnitDowntime","watchStartUnitDowntimeStarted","endUnitDowntime","watchEndUnitDowntimeStarted","createSharedLink","watchCreateSharedLinkUnitStarted","updateSim","watchUpdateSim","fetchUnitById","watchFetchUnitById","getUnitsListService","ENTITY_UNITS","getUnitsLiveStatusListService","unitId","getUnitInformationService","unitData","unitMetrics","deviceMetricsSchemas","deviceMetricsEntities","deviceMetricsOrder","unitActions","deviceActionsSchemas","deviceActionsEntities","deviceActionsOrder","groupsData","groupsSchemas","groupsEntities","groupsOrder","unitReports","reportsSchemas","reportsEntities","reportsOrder","unitImages","imagesSchemas","imagesEntities","imagesOrder","unitSensorMeasures","sensorsSchemas","sensorsEntities","sensorsOrder","reportType","startDate","endDate","idleSpeed","getUnitHistoricalPositionsReportService","parkedPositions","i","polyline","positions","limit","getUnitTrajectoryService","deviceActionId","parameters","executeDeviceActionService","addedUnit","unitName","editedUnit","oldUnit","acknowledgeUnitEventService","unitBody","unitsName","multiple","driverName","plural","mainStateId","mainStateDate","emails","ttl","sharedLink","requestData","oldUnitId","additionalOnSuccess","updateSimCardService","camelize","getUnitByIdService","schedule","fetchSchedulesList","watchFetchSchedulesList","partialFetchSchedulesList","watchPartialFetchSchedulesList","addSchedule","watchAddSchedulesStarted","editSchedule","watchEditSchedulesStarted","addShift","watchAddShiftStarted","editScheduleShift","watchEditSchedulesShiftStarted","removeSchedule","watchRemoveScheduleStarted","scheduleId","addedSchedule","scheduleName","editedSchedule","oldSchedule","scheduleSelectors","scheduleDeleted","bookmark","login","watchLoginStarted","userInformationRequest","watchUserInformationRequest","refreshToken","watchRefreshTokenStarted","forceRefreshToken","watchForceRefreshToken","fetchUserBookmarks","watchFetchUserBookmarksStarted","updateUserBookmarks","watchUpdateUserBookmarkssStarted","updateProfileGeneralInformation","watchUpdateProfileGeneralInformationStarted","updateMapProfileSettings","watchUpdateMapProfileSettingsStarted","updateProfileMapOptions","watchUpdateProfileMapOptionsStarted","updateProfilePassword","watchUpdateProfilePasswordStarted","updateHomeScreen","watchUpdateProfileHomeScreenStarted","changeProduct","watchChangeProductStarted","updateMapFilterTabPinned","watchUpdateMapFilterTabPinnedStarted","userData","userId","responseSuperAdmin","jsonResultUser","responseRestaurantAdmin","expiration","now","Date","getTime","TOKEN_LIFE_TIME","non_field_errors","delay","bookmarkSetting","filter","setting","settingId","bookmarkSettingValue","settingValue","bookmarkIds","optionsSuggestions","userBookmarks","newSuggestions","navbarActions","navbarSelectors","userBookmarksSettingsValue","ub","values","serviceId","route","routeCheckpoint","value","routeId","checkpointId","routeCheckpoints","fetchRoutesList","watchFetchRoutesList","partialFetchRoutesList","watchPartialFetchRoutesList","addRoute","watchAddRoutesStarted","editRoute","watchEditRoutesStarted","removeRoute","watchRemoveRouteStarted","removeRoutes","watchRemoveRoutesStarted","copyRoute","watchCopyRouteStarted","getRoutesListService","saveRouteService","addedRoute","routeData","addedCheckpoints","checkpointList","chk","segmentPath","pathArray","routePathId","parseFloat","latitude","longitude","routeGroupId","schemasRouteCheckpoints","checkpoints","oldRoute","editedRoute","editedCheckpoints","routeDeleted","deleteRouteService","routeName","routeIds","deleteRoutesService","newRouteId","newRouteName","fetchContactsList","watchFetchContactsList","addContact","watchAddContactsStarted","editContact","watchEditContactsStarted","removeContact","watchRemoveContactsStarted","selected","contactId","addedContact","contactName","editedContact","oldContact","contactBody","contactsName","fetchRouteCheckpointsList","watchFetchRouteCheckpointsList","getRouteCheckpointsListService","finalResultData","fetchAssignmentsList","watchFetchAssignmentsList","editAssignment","watchEditAssignmentsStarted","removeAssignment","watchRemoveAssignmentStarted","importRouteAssignments","watchImportRouteAssignments","getRouteAssignmentsListService","resultDataByDate","assignmentsByDate","typeId","resultDataBySchedule","assignmentsBySchedule","orderByDate","orderBySchedule","assignment","routeAssignmentId","oldAssignment","saveAssignmentService","editedAssignment","deletedAssignment","deleteAssignmentService","routeAssignments","importRouteAssignmentsService","failFetchingComments","completeAddingComment","oldId","comment","failAddingComment","completeEditingComment","failEditingComment","oldComment","completeRemovingComment","routeCommentId","failRemovingComment","comments","fetchCommentsList","watchFetchCommentsList","addComment","watchAddCommentsStarted","editComment","watchEditCommentsStarted","removeComment","watchRemoveCommentStarted","getRouteCommentsListService","saveCommentService","addedComment","editedComment","deletedComment","deleteCommentService","routeExecution","routesExecutions","fetchRoutesExecutions","watchFetchRoutesExecutions","editRouteExecution","watchEditRouteExecutionStarted","changeToAlternateRoute","watchChangeToAlternateRouteStarted","assignRouteExecutionUnit","watchAsignRouteExecutionUnit","indicators","scheduledBySchedule","totalNotShown","routesList","oldRouteExecution","saveRouteExecutionService","editedRouteExecution","reason","changeToAlternateRouteService","errorTxt","completeFetchingRoutesReport","unitsEntities","unitsOrder","routesEntities","routesOrder","failFetchingRoutesReport","fetchRoutesReport","watchFetchRoutesReport","unitsSchemas","routesSchemas","routeExecutions","routesExecutionsSchemas","monitoringUser","fetchMonitoringUsersList","watchFetchMonitoringUsersList","partialFetchMonitoringUsersList","watchPartialFetchMonitoringUsersList","addMonitoringUser","watchAddMonitoringUsersStarted","editMonitoringUser","watchEditMonitoringUsersStarted","removeMonitoringUser","watchRemoveMonitoringUserStarted","updateMonitoringUserPassword","watchUpdateMonitoringUserPasswordStarted","saveRolesAndPermissions","watchSaveMonitoringUserRolesAndPermissionsStarted","assignSchedule","watchAssignScheduleUsersStarted","unassignSchedule","watchUnassignScheduleUsersStarted","fetchMonitoringUserById","watchFetchMonitoringUserById","getUsersListService","saveUserService","addedMonitoringUser","userName","oldUserName","oldMonitoringUser","editedMonitoringUser","users","usersName","loggedUsername","authActions","rolesAndPermissions","userInSession","userAssignSchedule","monitoringUserId","getUserByIdService","workplan","fetchWorkplansList","watchFetchWorkplansList","partialFetchWorkplansList","watchPartialFetchWorkplansList","fetchWorkplanLocationsList","watchFetchWorkplanLocationsList","addWorkplan","watchAddWorkplansStarted","editWorkplan","watchEditWorkplansStarted","removeWorkplan","watchRemoveWorkplanStarted","copyWorkplan","watchCopyWorkplanStarted","assignOriginGeofence","watchAssignOriginGeofenceStarted","assignWorkGeofence","watchAssignWorkGeofenceStarted","assignDestinationGeofence","watchAssignDestinationGeofenceStarted","groupId","getWorkplansListService","workplanId","saveWorkplanService","addedWorkplan","oldWorkplan","editedWorkplan","workplanSelectors","workplanDeleted","deleteWorkplanService","workplanName","newWorkplanId","newWorkplanName","geofenceSelectors","originGeofenceId","workplanIds","geofenceName","originExitWindow","originValidationWindow","workGeofenceId","workGeofenceArriveWindow","workGeofenceMaxTime","destinationGeofenceId","assignmentBySchedule","assignmentByDateTime","assignmentsByDateTime","watchFetchWorkplansAssignmentsList","editAssignmentBySchedule","watchEditWorkplanAssignmentByScheduleStarted","editAssignmentByDateTime","watchEditWorkplanAssignmentByDateTimeStarted","removeWorkplanAssignment","watchRemoveWorkplanAssignmentStarted","getWorkplansAssignmentsListService","resultDataWS","withScheduleList","resultDataWDT","withDateTimeList","withScheduleOrder","withDateTimeOrder","assignmentId","assignmentType","assignmentDeleted","deleteWorkplanAssignmentService","assignmentName","baseUrl","getWorkplanCommentsListService","configActions","configureInterceptors","workplanCommentId","watchFetchWorkplansCommentsList","watchAddWorkplansCommentStarted","watchRemoveWorkplansCommentStarted","visitId","locationId","commentId","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","getAllEntitiesInGroupService","additionalOnSave","saveGroupService","groupName","owners","addedGroup","entityType","params","saveGroupWithEntitiesService","editedGroup","oldGroup","deleteGroupService","isAsesor","asesorUsername","leaveGroupService","partialEntityUrl","workPlanId","userNameInSession","profileId","getGroupByIdService","quotation","fetchQuotationsList","watchFetchQuotationsList","partialFetchQuotationsList","watchPartialFetchQuotationsList","addQuotation","watchAddQuotationsStarted","copyQuotation","watchCopyQuotationsStarted","editQuotation","watchEditQuotationsStarted","approveDenyQuotationManagement","watchApproveDenyQuotationManagementStarted","acceptDenyQuotationCustomer","watchAcceptDenyQuotationCustomerStarted","scheduleQuotation","watchScheduleQuotationsStarted","checkQuotationScheduling","watchCheckQuotationSchedulingStarted","setTimesupQuotation","watchSetTimesupQuotationStarted","removeQuotation","watchRemoveQuotationStarted","addedQuotation","quotationNumber","fromQuotationId","copiedQuotation","editedQuotation","oldQuotation","approve","accept","quotationName","quotationLink","quotationScheduled","quotationIdDB","isScheduled","quotationStatus","isTimesup","showAlerts","deletedQuotation","organizationContract","fetchOrganizationContractsList","watchFetchOrganizationContractsList","partialFetchOrganizationContractsList","watchPartialFetchOrganizationContractsList","addOrganizationContract","watchAddOrganizationContractsStarted","editOrganizationContract","watchEditOrganizationContractsStarted","removeOrganizationContract","watchRemoveOrganizationContractStarted","contractId","addedOrganizationContract","contractNumber","editedOrganizationContract","oldOrganizationContract","deletedOrganizationContract","contractTemplate","fetchContractTemplatesList","watchFetchContractTemplatesList","partialFetchContractTemplatesList","watchPartialFetchContractTemplatesList","addContractTemplate","watchAddContractTemplatesStarted","editContractTemplate","watchEditContractTemplatesStarted","removeContractTemplate","watchRemoveContractTemplateStarted","templateId","addedContractTemplate","templateName","editedContractTemplate","oldContractTemplate","deletedContractTemplate","customer","fetchCustomersList","watchFetchCustomersList","partialFetchCustomersList","watchPartialFetchCustomersList","addCustomer","watchAddCustomersStarted","editCustomer","watchEditCustomersStarted","removeCustomer","watchRemoveCustomerStarted","getCustomersListService","saveCustomerService","customerId","addedCustomer","addedOffice","office","oldCustomer","editedCustomer","editedOffice","deleteCustomerService","getOfficesListService","saveOfficeService","officeId","officeName","deleteOfficeService","fetchOfficesList","watchFetchOfficesList","partialFetchOfficesList","watchPartialFetchOfficesList","addOffice","watchAddOfficesStarted","editOffice","watchEditOfficesStarted","removeOffice","watchRemoveOfficeStarted","oldOffice","formSchema","sectionSchema","sections","questionSchema","questions","responseSchema","questionResponse","mergeStrategy","entityA","entityB","util","responses","getFormsListService","getFormByIdService","getFormsSectionsListService","getFormsQuestionsListService","saveFormService","organizationFormId","formName","saveExternalFormService","saveResponseFormService","resendResponseFormService","fetchFormsList","watchFetchFormsList","partialFetchFormsList","watchPartialFetchFormsList","fetchFormById","watchFetchFormById","fetchSections","watchFetchSections","fetchQuestions","watchFetchQuestions","addForm","watchAddFormsStarted","editForm","watchEditFormsStarted","addFormExternal","watchAddExternalFormsStarted","editFormExternal","watchEditExternalFormsStarted","removeForm","watchRemoveFormStarted","saveResponse","watchResponseAddedStarted","getResponses","watchResponseFetchStarted","resendResponse","watchResponseResendStarted","formId","formList","sectionList","questionList","resultForm","resultSections","resultQuestions","addedForm","oldForm","editedForm","deletedForm","organizationFormName","formResponse","definition","answers","camelDefinition","finalObject","uniq","answer","responseIds","category","saveCategory","categoryName","categoryId","deleteCategory","getCategoryList","fetchCategoriesList","watchFetchCategoriesList","partialFetchCategoriesList","watchPartialFetchCategoriesList","addCategory","watchAddCategoriesStarted","editCategory","watchEditCategoriesStarted","removeCategory","watchRemoveCategoryStarted","addedData","tempId","maintenanceLine","getMaintenanceLinesListService","saveMaintenanceLineService","maintenanceLineId","maintenanceLineName","deleteMaintenanceLineService","copyMaintenanceLineService","fetchMaintenanceLinesList","watchFetchMaintenanceLinesList","partialFetchMaintenanceLinesList","watchPartialFetchMaintenanceLinesList","addMaintenanceLine","watchAddMaintenanceLinesStarted","editMaintenanceLine","watchEditMaintenanceLinesStarted","removeMaintenanceLine","watchRemoveMaintenanceLineStarted","copyMaintenanceLine","watchCopyMaintenanceLineStarted","mapStringToObject","range","odometer","description","maintenanceRangeId","r","maintenanceRangesByHourMeter","maintenanceRangesByOdometer","addedMaintenanceLine","oldMaintenanceLine","editedMaintenanceLine","copiedMaintenanceLine","notice","noticeId","notices","saveNoticeByOdometer","saveNoticeByHourmeter","saveNoticeByDate","deleteNotice","getNoticeByOdometerList","getNoticeByDateList","getNoticeByHourmeterList","renewNoticeByOdometer","renewNoticeByHourmeter","fetchNoticesList","watchFetchNoticesList","partialFetchNoticesList","watchPartialFetchNoticesList","addNotice","watchAddNoticesStarted","editNotice","watchEditNoticesStarted","renewNotice","watchRenewNoticesStarted","removeNotice","watchRemoveNoticeStarted","entitiesCop","getPreventiveNoticesByOdometerFormattedData","saveProviderCategory","providerName","providerId","deleteProviderCategory","getProviderList","partialFetchProvidersList","watchPartialFetchProvidersList","addProvider","watchAddProvidersStarted","editProvider","watchEditProvidersStarted","removeProvider","watchRemoveProviderStarted","workmanships","saveWorkmanshipCategory","workmanshipId","deleteWorkmanshipCategory","getWorkmanshipsList","fetchWorkmanshipsList","watchFetchWorkmanshipsList","partialFetchWorkmanshipsList","watchPartialFetchWorkmanshipsList","addWorkmanship","watchAddWorkmanshipsStarted","editWorkmanship","watchEditWorkmanshipsStarted","removeWorkmanship","watchRemoveWorkmanshipStarted","sparePart","saveSparePartCategory","sparePartName","sparePartId","deleteSparePartCategory","getSparePartList","fetchSparePartsList","watchFetchSparePartsList","partialFetchSparePartsList","watchPartialFetchSparePartsList","addSparePart","watchAddSparePartsStarted","editSparePart","watchEditSparePartsStarted","removeSparePart","watchRemoveSparePartStarted","protocol","getProtocolsListService","saveProtocolService","protocolId","protocolName","deleteProtocolService","fetchProtocolsList","watchFetchProtocolsList","partialFetchProtocolsList","watchPartialFetchProtocolsList","addProtocol","watchAddProtocolStarted","editProtocol","watchEditProtocolStarted","removeProtocol","watchRemoveProtocolStarted","addedProtocol","oldProtocol","editedProtocol","Destination","Destinations","getDestinationListService","fetchETAMonitoringDestinationList","watchFetchETAModelList","destinations","userNotification","fetchUserNotificationsList","watchFetchUserNotificationsList","partialFetchUserNotificationsList","watchPartialFetchUserNotificationsList","markAsReadUserNotifications","watchMarkAsReadUserNotification","getUserNotificationsListService","getSystemNotificationsListService","notificationIds","markUserNotificationsAsReadService","resultIds","notificationId","mainSaga","fork","watchFetchNoticesList2","watchPartialFetchNoticesList2","watchAddNoticesStarted2","watchEditNoticesStarted2","watchRemoveNoticeStarted2","watchRenewNoticesStarted2","watchFetchNoticesList3","watchPartialFetchNoticesList3","watchAddNoticesStarted3","watchEditNoticesStarted3","watchRemoveNoticeStarted3","watchRenewNoticesStarted3","watchFetchProvidersList2","sagaMiddleware","createSagaMiddleware","persistConfig","timeout","persistedReducer","composeEnhancers","compose","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","trace","traceLimit","runSaga","run","injectEnhancer","createInjectorsEnhancer","createReducer","createStore","applyMiddleware","persistor","persistStore","UNITS_FETCH_STARTED","UNITS_FETCH_COMPLETED","UNITS_FETCH_FAILED","UNITS_PARTIAL_FETCH_STARTED","UNITS_PARTIAL_FETCH_COMPLETED","UNITS_PARTIAL_FETCH_FAILED","UNIT_FETCH_STARTED","UNIT_FETCH_COMPLETED","UNIT_FETCH_FAILED","UNIT_ADD_TO_STATE","UNITS_LIVE_STATUS_FETCH_STARTED","UNITS_LIVE_STATUS_FETCH_COMPLETED","UNITS_LIVE_STATUS_FETCH_FAILED","UNIT_INFORMATION_FETCH_STARTED","UNIT_INFORMATION_FETCH_COMPLETED","UNIT_INFORMATION_FETCH_FAILED","UNIT_POSITIONS_FETCH_STARTED","UNIT_POSITIONS_FETCH_COMPLETED","UNIT_POSITIONS_FETCH_FAILED","UNIT_POSITIONS_RESET_IS_FETCHED","UNIT_TRAJECTORY_FETCH_STARTED","UNIT_TRAJECTORY_FETCH_COMPLETED","UNIT_TRAJECTORY_FETCH_FAILED","UNIT_EXECUTE_DEVICE_ACTION","UNIT_ADD_STARTED","UNIT_ADD_COMPLETED","UNIT_ADD_FAILED","UNIT_EDIT_STARTED","UNIT_EDIT_COMPLETED","UNIT_EDIT_FAILED","UNIT_ACKNOWLEDGE_STARTED","UNIT_ACKNOWLEDGE_COMPLETED","UNIT_ACKNOWLEDGE_FAILED","UNIT_REMOVE_STARTED","UNIT_REMOVE_COMPLETED","UNIT_REMOVE_FAILED","UNIT_SELECTED","UNITS_ALL_SELECTED","UNIT_DESELECTED","UNITS_ALL_DESELECTED","UNIT_SHOW_IN_MAP","UNITS_ALL_SHOW_IN_MAP","UNIT_HIDE_IN_MAP","UNITS_ALL_HIDE_IN_MAP","UNIT_FETCH_INTERVAL","UNIT_SHARED_LINK_INTERVAL","UNIT_ACTIVE_TRACKING_FETCH_INTERVAL","UNIT_IDLE_SPEED","UNIT_DATA_LIMIT_FOR_CLUSTERING","SET_DATE_RANGE","UNITS_ACTIVE_STARTED","UNITS_ACTIVE_COMPLETED","UNITS_ACTIVE_FAILED","UNITS_ASSIGN_DRIVER_STARTED","UNITS_ASSIGN_DRIVER_COMPLETED","UNIT_CREATE_SHARE_LINK_STARTED","UNIT_CREATE_SHARE_LINK_COMPLETED","UNIT_CREATE_SHARE_LINK_FAILED","UNIT_CLEAR_SHARE_LINK","UNIT_START_DOWNTIME_STARTED","UNIT_START_DOWNTIME_COMPLETED","UNIT_START_DOWNTIME_FAILED","UNIT_END_DOWNTIME_STARTED","UNIT_END_DOWNTIME_COMPLETED","UNIT_END_DOWNTIME_FAILED","UNIT_UPDATE_DEVICE_STARTED","UNIT_UPDATE_DEVICE_COMPLETED","UNIT_UPDATE_DEVICE_FAILED","UNIT_UPDATE_SIM_STARTED","UNIT_UPDATE_SIM_COMPLETED","UNIT_UPDATE_SIM_FAILED","UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED","UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED","showSuccessMessage","showConfirmationMessage","confirmText","actionNot","confirmButtonClass","showCancelButton","width","cancelButton","confirmButtonText","cancelButtonText","focusConfirm","focusCancel","then","isConfirmed","showConfirmationWithCheckboxMessage","props","inputLabel","initialValue","input","inputValue","inputPlaceholder","showConfirmationMessageToast","showErrorAlertFailChanges","showErrorAlertReportNoAvailable","allowOutsideClick","showLoadingReport","showLoading","showErrorAlertFailChangesToast","showErrorAlertWarning","showSuccessCreatedMessage","showSuccessEditedMessage","showSuccessApprovedDeniedMessage","showSuccessAcceptedDeniedMessage","showSuccessScheduledMessage","showSuccessRolesAndPermissionsSavedMessage","showSuccessAssignedMessage","showSuccessUnassignedMessage","showSuccessDeletedMessage","showSuccessRemovedFromGroupMessage","showSuccessAddedToGroupMessage","showSuccessDisabledMessage","showSuccessCancelNotificationMessage","showFailCreatedMessage","showFailEditedMessage","showFailDeletedMessage","showDeleteConfirmationMessage","objectType","objectName","isDisabled","isUnassign","deleteWarning","showLeaveConfirmationMessage","showRemoveFromGroupConfirmationMessage","objectCount","isMultiple","showDeleteConfirmationMessageMultiple","objectsQuantity","withReactContent","loader","loaderHtml","closeLoading","close","showInformationMessage","CustomToastNotificationContent","messageType","className","img","imgWidth","imgHeight","getMessageTypeAvatarProps","style","marginTop","dangerouslySetInnerHTML","__html","showUserNotificationAlert","messageTitle","ToasterContainer","document","createElement","html","ReactDOM","render","willClose","unmountComponentAtNode","iconSet","require","Icon","color","env","REACT_APP_API_BASE_URL","FORMS_FETCH_STARTED","FORMS_FETCH_COMPLETED","FORMS_FETCH_FAILED","FORM_FETCH_STARTED","FORM_FETCH_COMPLETED","FORM_FETCH_FAILED","FORMS_PARTIAL_FETCH_STARTED","FORMS_PARTIAL_FETCH_COMPLETED","FORMS_PARTIAL_FETCH_FAILED","FORM_SECTIONS_FETCH_STARTED","FORM_SECTIONS_FETCH_COMPLETED","FORM_SECTIONS_FETCH_FAILED","FORM_QUESTIONS_FETCH_STARTED","FORM_QUESTIONS_FETCH_COMPLETED","FORM_QUESTIONS_FETCH_FAILED","FORM_ADD_STARTED","FORM_ADD_COMPLETED","FORM_ADD_FAILED","FORM_SECTION_ADD_STARTED","FORM_EDIT_STARTED","FORM_EDIT_COMPLETED","FORM_EDIT_FAILED","FORM_EXTERNAL_ADD_STARTED","FORM_EXTERNAL_EDIT_STARTED","FORM_REMOVE_STARTED","FORM_REMOVE_COMPLETED","FORM_REMOVE_FAILED","FORM_RESPONSE_SAVE_STARTED","FORM_RESPONSE_SAVE_COMPLETED","FORM_RESPONSE_SAVE_FAILED","FORM_SELECTED","FORMS_ALL_SELECTED","FORM_DESELECTED","FORMS_ALL_DESELECTED","FORMS_ALL_QUESTIONS_CLEARED","FORM_SECTION_ADDED","FORM_SECTION_DELETED","FORM_SECTION_MOVED","FORM_SECTION_NAME_EDITED","FORM_SECTION_COPIED","FORM_SECTION_CHANGE_COLLAPSED","FORM_SECTIONS_SET","FORM_ROW_ADDED","FORM_ROW_DELETED","FORM_ROW_MOVED","FORM_ROW_NAME_EDITED","FORM_QUESTION_ADDED","FORM_QUESTION_DELETED","FORM_QUESTION_MOVED","FORM_QUESTION_COPIED","FORM_QUESTION_SET","FORM_QUESTION_NAME_EDITED","FORM_QUESTION_HEIGHT_EDITED","FORM_QUESTION_CHANGE_COLLAPSED","FORM_RESPONSE_FETCH_STARTED","FORM_RESPONSE_FETCH_COMPLETED","FORM_RESPONSE_FETCH_FAILED","FORM_RESPONSE_RESEND_STARTED","FORM_RESPONSE_RESEND_COMPLETED","FORM_RESPONSE_RESEND_FAILED","FORM_ANSWER_ADDED","FORM_ANSWER_MOVED","FORM_ANSWER_EDITED","FORM_ANSWER_DELETED","FORM_ANSWER_SELECTED","FORM_ANSWER_DESELECTED","FORM_RESPONSES_CLEARED","FORM_QUESTIONS_CLEARED","ENTITY_SUBDIVISONS","ENTITY_VEHICLES","ENTITY_SIM_CARDS","ENTITY_MODULES","ENTITY_DRIVERS","ENTITY_AGENTS","ENTITY_SERVICE_CLASSES","ENTITY_USERS","ENTITY_OPERATORS","ENTITY_DIVISIONS","ENTITY_ORGANIZATIONS","ENTITY_CONTACTS","ENTITY_WORKPLANS","ENTITY_GEOFENCES","ENTITY_SCHEDULES","ENTITY_FORMS","ENTITY_ROUTES","ENTITY_COUNTRIES","ENTITY_LOCATIONS","ENTITY_ASSETS","ENTITY_SENSORS","ENTITY_JOBS_BACKLOG","ENTITY_GROUPS","ENTITY_ORGANIZATION_CONTRACTS","ENTITY_CUSTOMERS","ENTITY_MAINTENANCE_LINES","ENTITY_CONTRACT_TEMPLATES","ENTITY_QUOTATIONS","ENTITY_OFFICES","ENTITY_PROTOCOLS","ENTITY_DESTINATIONS","ENTITY_USER_NOTIFICATIONS","defaultEntitiesToFetchAftetLogin","AUDIT_ENTITY_UNIT_MAIN_STATE_TYPE_ID_LOOKUP","AUDIT_ENTITY_UNIT_STATUS_LOOKUP","AUDIT_ENTITY_UNIT_THEME_ID_LOOKUP","AUDIT_ENTITY_UNIT_TYPE_ID_LOOKUP","GROUPS_FETCH_STARTED","GROUPS_FETCH_COMPLETED","GROUPS_FETCH_FAILED","GROUP_FETCH_STARTED","GROUP_FETCH_COMPLETED","GROUP_FETCH_FAILED","GROUPS_PARTIAL_FETCH_STARTED","GROUPS_PARTIAL_FETCH_COMPLETED","GROUPS_PARTIAL_FETCH_FAILED","GROUPS_ALL_ENTITIES_FETCH_STARTED","GROUPS_ALL_ENTITIES_FETCH_COMPLETED","GROUPS_ALL_ENTITIES_FETCH_FAILED","GROUP_EDIT_STARTED","GROUP_EDIT_COMPLETED","GROUP_EDIT_FAILED","GROUP_ADD_STARTED","GROUP_ADD_COMPLETED","GROUP_ADD_FAILED","GROUP_ADD_WITH_ENTITIES_STARTED","GROUP_ADD_WITH_ENTITIES_COMPLETED","GROUP_ADD_WITH_ENTITIES_FAILED","GROUP_REMOVE_STARTED","GROUP_REMOVE_COMPLETED","GROUP_REMOVE_FAILED","GROUP_LEAVE_STARTED","GROUP_LEAVE_COMPLETED","GROUP_LEAVE_FAILED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED","GROUP_REMOVE_ENTITIES_STARTED","GROUP_REMOVE_ENTITIES_COMPLETED","GROUP_ADD_ENTITIES_STARTED","GROUP_ADD_ENTITIES_COMPLETED","GROUP_USER_PROFILE_EDIT_STARTED","GROUP_USER_PROFILE_EDIT_COMPLETED","GROUP_SELECTED","GROUPS_ALL_SELECTED","GROUP_DESELECTED","GROUPS_ALL_DESELECTED","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","ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_STARTED","ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_COMPLETED","ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_FAILED","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","GEOFENCES_FETCH_STARTED","GEOFENCES_FETCH_COMPLETED","GEOFENCES_FETCH_FAILED","GEOFENCE_FETCH_STARTED","GEOFENCE_FETCH_COMPLETED","GEOFENCE_FETCH_FAILED","GEOFENCES_PARTIAL_FETCH_STARTED","GEOFENCES_PARTIAL_FETCH_COMPLETED","GEOFENCES_PARTIAL_FETCH_FAILED","GEOFENCE_ADD_STARTED","GEOFENCE_ADD_COMPLETED","GEOFENCE_ADD_FAILED","GEOFENCE_EDIT_STARTED","GEOFENCE_EDIT_COMPLETED","GEOFENCE_EDIT_FAILED","GEOFENCE_REMOVE_STARTED","GEOFENCE_REMOVE_COMPLETED","GEOFENCE_REMOVE_FAILED","GEOFENCE_SELECTED","GEOFENCES_ALL_SELECTED","GEOFENCE_DESELECTED","GEOFENCES_ALL_DESELECTED","GEOFENCE_SHOW_IN_MAP","GEOFENCES_ALL_SHOW_IN_MAP","GEOFENCE_HIDE_IN_MAP","GEOFENCES_ALL_HIDE_IN_MAP","GEOFENCE_ASSIGN_UNIT_STARTED","GEOFENCE_ASSIGN_UNIT_COMPLETED","GEOFENCE_ASSIGN_UNIT_FAILED","GEOFENCE_ASSIGNATION_REMOVE_STARTED","GEOFENCE_ASSIGNATION_REMOVE_COMPLETED","GEOFENCE_ASSIGNATION_REMOVE_FAILED","GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED","GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED","GEOFENCE_ASSIGNATION_EDIT_STARTED","GEOFENCE_ASSIGNATION_EDIT_COMPLETED","GEOFENCE_ASSIGNATION_EDIT_FAILED","ROUTES_EXECUTIONS_FETCH_STARTED","ROUTES_EXECUTIONS_FETCH_COMPLETED","ROUTES_EXECUTIONS_FETCH_FAILED","ROUTE_EXECUTION_EDIT_STARTED","ROUTE_EXECUTION_EDIT_COMPLETED","ROUTE_EXECUTION_EDIT_FAILED","ROUTES_EXECUTION_CANCEL_STARTED","ROUTES_EXECUTION_CANCEL_COMPLETED","ROUTES_EXECUTION_CANCEL_FAILED","ROUTES_EXECUTION_FINALIZE_STARTED","ROUTES_EXECUTION_FINALIZE_COMPLETED","ROUTES_EXECUTION_FINALIZE_FAILED","ROUTES_EXECUTION_REMOVE_STARTED","ROUTES_EXECUTION_REMOVE_COMPLETED","ROUTES_EXECUTION_REMOVE_FAILED","ROUTES_EXECUTION_COMPLETE_STARTED","ROUTES_EXECUTION_COMPLETE_COMPLETED","ROUTES_EXECUTION_COMPLETE_FAILED","ROUTES_EXECUTION_PAUSE_STARTED","ROUTES_EXECUTION_PAUSE_COMPLETED","ROUTES_EXECUTION_PAUSE_FAILED","ROUTES_EXECUTION_START_STARTED","ROUTES_EXECUTION_START_COMPLETED","ROUTES_EXECUTION_START_FAILED","ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED","ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED","ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED","ROUTES_EXECUTION_SHARE_STARTED","ROUTES_EXECUTION_SHARE_COMPLETED","ROUTES_EXECUTION_SHARE_FAILED","ROUTES_EXECUTION_ASSIGN_UNIT_STARTED","ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED","ROUTES_EXECUTION_ASSIGN_UNIT_FAILED","DASHBOARD","MAP","REPORTS","TRACKING_UNITS","GEOFENCES_CATALOG","ASSIGNED_GEOFENCES","LOCATIONS_CATALOG","IMPORT_LOCATIONS","BACKLOG_JOBS","JOBS_BOARD","JOBS_REPORT","JOBS_WORK_ACTIVITY","SAFE_DRIVER","LOGISTIC_ROUTE_CATALOG","LOGISTIC_ROUTE_MONITOR","LOGISTIC_ROUTE_REPORT","ASSIGN_LOGISTIC_ROUTE","WORK_PLAN_CATALOG","WORK_PLAN_MONITOR","WORK_PLAN_REPORT","ASSIGN_WORK_PLAN","TEMPERATURE_TELEMETRY","FUEL_TELEMETRY_MONITOR","PREVENTIVE_NOTICES","SPAREPARTS_CATALOG","WORKMANSHIPS_CATALOG","SPAREPARTS_CATEGORIES_CATALOG","SPAREPARTS_PROVIDERS_CATALOG","GENERAL_MAINTENANCE_REPORT","BY_CATEGORY_REPORT","BY_UNIT_REPORT","BY_WORKSHOP_REPORT","IMPORT_MAINTENANCE_TICKETS","NEW_TICKET","IMPORT_FUEL_TICKETS","FUEL_TICKETS_CONSOLIDATED_REPORT","FUEL_TICKETS_REPORT_BY_UNIT","OPERATOR","ORGANIZATION","DIVISION","SUBDIVISION","SERVICE_CLASSES","AGENT","GROUPS","SHIFT","TRIGGER","USERS","DRIVERS","PEOPLE","FORMS_CATALOG","ANSWERS_FORMS","DEVICES","SIMS","SENSORS","ASSETS","VEHICLES","EMAIL_NOTIFICATIONS","CONSOLE_NOTIFICATIONS","WEB_SERVICE_NOTIFICATIONS","IMPORT_JOBS","SCHEDULED_WORKPLANS","FUEL_TELEMETRY_REPORT","CONTRACTS","FLEET","CUSTOMERS","CONTACTS","MAINTENANCE_RANGES","CONTRACT_TEMPLATES","QUOTATIONS","OPTIMIZATIONS","IMPORT_ROUTE_ASSIGNMENTS","RECORD_MULTIPLE_TICKETS","BUSINESS_PARTNERS","WEB_SERVICE_RATES","TELEMETRY_UNITS","WORKSHOP_ADD_ORDER","TELEMETRY_OBD2","FUEL_TELEMETRY_REPORT_BY_VEHICLES","PROTOCOL_CATALOG","SYSTEM_NOTIFICATIONS","LOGISTIC_ROUTE_ETA_MONITOR","ROUTES_FETCH_STARTED","ROUTES_FETCH_COMPLETED","ROUTES_FETCH_FAILED","ROUTES_PARTIAL_FETCH_STARTED","ROUTES_PARTIAL_FETCH_COMPLETED","ROUTES_PARTIAL_FETCH_FAILED","ROUTE_ADD_STARTED","ROUTE_ADD_COMPLETED","ROUTE_ADD_FAILED","ROUTE_EDIT_STARTED","ROUTE_EDIT_COMPLETED","ROUTE_EDIT_FAILED","ROUTE_REMOVE_STARTED","ROUTE_REMOVE_COMPLETED","ROUTE_REMOVE_FAILED","ROUTES_REMOVE_STARTED","ROUTES_REMOVE_COMPLETED","ROUTES_REMOVE_FAILED","ROUTE_SELECTED","ROUTES_ALL_SELECTED","ROUTE_DESELECTED","ROUTES_ALL_DESELECTED","ROUTE_COPY_STARTED","ROUTE_COPY_COMPLETED","ROUTE_COPY_FAILED","ROUTE_SHOW_IN_MAP","ROUTE_HIDE_IN_MAP","ROUTES_ALL_SHOW_IN_MAP","ROUTES_ALL_HIDE_IN_MAP","ROUTES_SHARED_LINK_INTERVAL","LOCATIONS_FETCH_STARTED","LOCATIONS_FETCH_COMPLETED","LOCATIONS_FETCH_FAILED","LOCATION_FETCH_STARTED","LOCATION_FETCH_COMPLETED","LOCATION_FETCH_FAILED","LOCATIONS_PARTIAL_FETCH_STARTED","LOCATIONS_PARTIAL_FETCH_COMPLETED","LOCATIONS_PARTIAL_FETCH_FAILED","LOCATION_ADD_STARTED","LOCATION_ADD_COMPLETED","LOCATION_ADD_FAILED","LOCATION_EDIT_STARTED","LOCATION_EDIT_COMPLETED","LOCATION_EDIT_FAILED","LOCATION_REMOVE_STARTED","LOCATION_REMOVE_COMPLETED","LOCATION_REMOVE_FAILED","LOCATIONS_IMPORT_STARTED","LOCATIONS_IMPORT_COMPLETED","LOCATIONS_IMPORT_FAILED","LOCATION_SELECTED","LOCATIONS_ALL_SELECTED","LOCATION_DESELECTED","LOCATIONS_ALL_DESELECTED","LOCATION_SHOW_IN_MAP","LOCATIONS_ALL_SHOW_IN_MAP","LOCATION_HIDE_IN_MAP","LOCATIONS_ALL_HIDE_IN_MAP","LOCATION_DATA_LIMIT_FOR_CLUSTERING","LOCATION_DATA_LIMIT_FOR_SHOW_ON_MAP","MONITORING_USERS_FETCH_STARTED","MONITORING_USERS_FETCH_COMPLETED","MONITORING_USERS_FETCH_FAILED","MONITORING_USERS_PARTIAL_FETCH_STARTED","MONITORING_USERS_PARTIAL_FETCH_COMPLETED","MONITORING_USERS_PARTIAL_FETCH_FAILED","MONITORING_USER_ADD_STARTED","MONITORING_USER_ADD_COMPLETED","MONITORING_USER_ADD_FAILED","MONITORING_USER_EDIT_STARTED","MONITORING_USER_EDIT_COMPLETED","MONITORING_USER_EDIT_FAILED","MONITORING_USER_REMOVE_STARTED","MONITORING_USER_REMOVE_COMPLETED","MONITORING_USER_REMOVE_FAILED","MONITORING_USER_FETCH_STARTED","MONITORING_USER_FETCH_COMPLETED","MONITORING_USER_FETCH_FAILED","MONITORING_USER_SELECTED","MONITORING_USERS_ALL_SELECTED","MONITORING_USER_DESELECTED","MONITORING_USERS_ALL_DESELECTED","MONITORING_USER_UPDATE_PASSWORD_STARTED","MONITORING_USER_UPDATE_PASSWORD_COMPLETED","MONITORING_USER_UPDATE_PASSWORD_FAILED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED","USERS_ASSIGN_SCHEDULE_STARTED","USERS_ASSIGN_SCHEDULE_COMPLETED","USERS_UNASSIGN_SCHEDULE_STARTED","USERS_UNASSIGN_SCHEDULE_COMPLETED","USERS_FILTER_LIMIT","DRIVERS_FETCH_STARTED","DRIVERS_FETCH_COMPLETED","DRIVERS_FETCH_FAILED","DRIVERS_PARTIAL_FETCH_STARTED","DRIVERS_PARTIAL_FETCH_COMPLETED","DRIVERS_PARTIAL_FETCH_FAILED","DRIVER_ADD_STARTED","DRIVER_ADD_COMPLETED","DRIVER_ADD_FAILED","DRIVER_EDIT_STARTED","DRIVER_EDIT_COMPLETED","DRIVER_EDIT_FAILED","DRIVER_REMOVE_STARTED","DRIVER_REMOVE_COMPLETED","DRIVER_REMOVE_FAILED","DRIVER_SELECTED","DRIVERS_ALL_SELECTED","DRIVER_DESELECTED","DRIVERS_ALL_DESELECTED","START_IMPORT_DRIVERS_UNITS_IMPORT","COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT","START_MASSIVE_DRIVERS_ASSIGNMENT","COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT","DRIVER_ASSIGN_SENSOR_STARTED","DRIVER_ASSIGN_SENSOR_COMPLETED","DRIVER_UNASSIGN_SENSOR_STARTED","DRIVER_UNASSIGN_SENSOR_COMPLETED","SENSORS_FETCH_STARTED","SENSORS_FETCH_COMPLETED","SENSORS_FETCH_FAILED","SENSORS_PARTIAL_FETCH_STARTED","SENSORS_PARTIAL_FETCH_COMPLETED","SENSORS_PARTIAL_FETCH_FAILED","SENSOR_FETCH_STARTED","SENSOR_FETCH_COMPLETED","SENSOR_FETCH_FAILED","SENSOR_ADD_STARTED","SENSOR_ADD_COMPLETED","SENSOR_ADD_FAILED","SENSOR_EDIT_STARTED","SENSOR_EDIT_COMPLETED","SENSOR_EDIT_FAILED","SENSOR_REMOVE_STARTED","SENSOR_REMOVE_COMPLETED","SENSOR_REMOVE_FAILED","SENSOR_SELECTED","SENSORS_ALL_SELECTED","SENSOR_DESELECTED","SENSORS_ALL_DESELECTED","IDENTIFIER_CHECK_STARTED","IDENTIFIER_CHECK_COMPLETED","IDENTIFIER_CHECK_FAILED","START_SENSOR_CALIBRATION_STARTED","START_SENSOR_CALIBRATION_COMPLETED","START_SENSOR_CALIBRATION_FAILED","FINALIZE_SENSOR_CALIBRATION_STARTED","FINALIZE_SENSOR_CALIBRATION_COMPLETED","FINALIZE_SENSOR_CALIBRATION_FAILED","SCHEDULES_FETCH_STARTED","SCHEDULES_FETCH_COMPLETED","SCHEDULES_FETCH_FAILED","SCHEDULES_PARTIAL_FETCH_STARTED","SCHEDULES_PARTIAL_FETCH_COMPLETED","SCHEDULES_PARTIAL_FETCH_FAILED","SCHEDULE_ADD_STARTED","SCHEDULE_ADD_COMPLETED","SCHEDULE_ADD_FAILED","SCHEDULE_SHIFT_ADD_STARTED","SCHEDULE_SHIFT_ADD_COMPLETED","SCHEDULE_SHIFT_ADD_FAILED","SCHEDULE_EDIT_STARTED","SCHEDULE_EDIT_COMPLETED","SCHEDULE_EDIT_FAILED","SCHEDULE_SHIFT_EDIT_STARTED","SCHEDULE_SHIFT_EDIT_COMPLETED","SCHEDULE_SHIFT_EDIT_FAILED","SCHEDULE_REMOVE_STARTED","SCHEDULE_REMOVE_COMPLETED","SCHEDULE_REMOVE_FAILED","SCHEDULE_SELECTED","SCHEDULES_ALL_SELECTED","SCHEDULE_DESELECTED","SCHEDULES_ALL_DESELECTED","ASSETS_FETCH_STARTED","ASSETS_FETCH_COMPLETED","ASSETS_FETCH_FAILED","ASSETS_PARTIAL_FETCH_STARTED","ASSETS_PARTIAL_FETCH_COMPLETED","ASSETS_PARTIAL_FETCH_FAILED","ASSET_ADD_STARTED","ASSET_ADD_COMPLETED","ASSET_ADD_FAILED","ASSET_EDIT_STARTED","ASSET_EDIT_COMPLETED","ASSET_EDIT_FAILED","ASSET_REMOVE_STARTED","ASSET_REMOVE_COMPLETED","ASSET_REMOVE_FAILED","ASSET_SELECTED","ASSETS_ALL_SELECTED","ASSET_DESELECTED","ASSETS_ALL_DESELECTED","ASSET_IDENTIFIER_CHECK_STARTED","ASSET_IDENTIFIER_CHECK_COMPLETED","ASSET_IDENTIFIER_CHECK_FAILED","ASSET_SECURITY_SEAL_CODE_CHECK_STARTED","ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED","ASSET_SECURITY_SEAL_CODE_CHECK_FAILED","MODULES_FETCH_STARTED","MODULES_FETCH_COMPLETED","MODULES_FETCH_FAILED","MODULES_PARTIAL_FETCH_STARTED","MODULES_PARTIAL_FETCH_COMPLETED","MODULES_PARTIAL_FETCH_FAILED","MODULE_FETCH_STARTED","MODULE_FETCH_COMPLETED","MODULE_FETCH_FAILED","MODULE_ADD_STARTED","MODULE_ADD_COMPLETED","MODULE_ADD_FAILED","MODULE_EDIT_STARTED","MODULE_EDIT_COMPLETED","MODULE_EDIT_FAILED","MODULE_REMOVE_STARTED","MODULE_REMOVE_COMPLETED","MODULE_REMOVE_FAILED","MODULE_SELECTED","MODULES_ALL_SELECTED","MODULE_DESELECTED","MODULES_ALL_DESELECTED","MODULE_DIRTY","MODULE_FILTER_LIMIT","OPERATORS_FETCH_STARTED","OPERATORS_FETCH_COMPLETED","OPERATORS_FETCH_FAILED","OPERATORS_PARTIAL_FETCH_STARTED","OPERATORS_PARTIAL_FETCH_COMPLETED","OPERATORS_PARTIAL_FETCH_FAILED","OPERATOR_ADD_STARTED","OPERATOR_ADD_COMPLETED","OPERATOR_ADD_FAILED","OPERATOR_EDIT_STARTED","OPERATOR_EDIT_COMPLETED","OPERATOR_EDIT_FAILED","OPERATOR_REMOVE_STARTED","OPERATOR_REMOVE_COMPLETED","OPERATOR_REMOVE_FAILED","OPERATOR_SELECTED","OPERATOR_DESELECTED","OPERATORS_ALL_SELECTED","OPERATORS_ALL_DESELECTED","OPERATOR_EDIT_STANDARD_PRICES_STARTED","OPERATOR_EDIT_STANDARD_PRICES_FAILED","OPERATOR_EDIT_STANDARD_PRICES_COMPLETED","SIMS_FETCH_STARTED","SIMS_FETCH_COMPLETED","SIMS_FETCH_FAILED","SIM_FETCH_STARTED","SIM_FETCH_COMPLETED","SIM_FETCH_FAILED","SIMS_PARTIAL_FETCH_STARTED","SIMS_PARTIAL_FETCH_COMPLETED","SIMS_PARTIAL_FETCH_FAILED","SIM_ADD_STARTED","SIM_ADD_COMPLETED","SIM_ADD_FAILED","SIM_EDIT_STARTED","SIM_EDIT_COMPLETED","SIM_EDIT_FAILED","SIM_REMOVE_STARTED","SIM_REMOVE_COMPLETED","SIM_REMOVE_FAILED","SIM_SELECTED","SIMS_ALL_SELECTED","SIM_DESELECTED","SIMS_ALL_DESELECTED","SIMS_FILTER_LIMIT","MaintenanceNoticeTypes","MAINTENANCE_LINES_FETCH_STARTED","MAINTENANCE_LINES_FETCH_COMPLETED","MAINTENANCE_LINES_FETCH_FAILED","MAINTENANCE_LINES_PARTIAL_FETCH_STARTED","MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED","MAINTENANCE_LINES_PARTIAL_FETCH_FAILED","MAINTENANCE_LINE_ADD_STARTED","MAINTENANCE_LINE_ADD_COMPLETED","MAINTENANCE_LINE_ADD_FAILED","MAINTENANCE_LINE_EDIT_STARTED","MAINTENANCE_LINE_EDIT_COMPLETED","MAINTENANCE_LINE_EDIT_FAILED","MAINTENANCE_LINE_REMOVE_STARTED","MAINTENANCE_LINE_REMOVE_COMPLETED","MAINTENANCE_LINE_REMOVE_FAILED","MAINTENANCE_LINE_COPY_STARTED","MAINTENANCE_LINE_COPY_COMPLETED","MAINTENANCE_LINE_COPY_FAILED","MAINTENANCE_LINE_SELECTED","MAINTENANCE_LINES_ALL_SELECTED","MAINTENANCE_LINE_DESELECTED","MAINTENANCE_LINES_ALL_DESELECTED","AGENTS_FETCH_STARTED","AGENTS_FETCH_COMPLETED","AGENTS_FETCH_FAILED","AGENTS_PARTIAL_FETCH_STARTED","AGENTS_PARTIAL_FETCH_COMPLETED","AGENTS_PARTIAL_FETCH_FAILED","AGENT_FETCH_STARTED","AGENT_FETCH_COMPLETED","AGENT_FETCH_FAILED","AGENT_ADD_STARTED","AGENT_ADD_COMPLETED","AGENT_ADD_FAILED","AGENT_EDIT_STARTED","AGENT_EDIT_COMPLETED","AGENT_EDIT_FAILED","AGENT_REMOVE_STARTED","AGENT_REMOVE_COMPLETED","AGENT_REMOVE_FAILED","AGENT_SELECTED","AGENTS_ALL_SELECTED","AGENT_DESELECTED","AGENTS_ALL_DESELECTED","VEHICLES_FETCH_STARTED","VEHICLES_FETCH_COMPLETED","VEHICLES_FETCH_FAILED","VEHICLES_PARTIAL_FETCH_STARTED","VEHICLES_PARTIAL_FETCH_COMPLETED","VEHICLES_PARTIAL_FETCH_FAILED","VEHICLE_ADD_STARTED","VEHICLE_ADD_COMPLETED","VEHICLE_ADD_FAILED","VEHICLE_EDIT_STARTED","VEHICLE_EDIT_COMPLETED","VEHICLE_EDIT_FAILED","VEHICLE_REMOVE_STARTED","VEHICLE_REMOVE_COMPLETED","VEHICLE_REMOVE_FAILED","VEHICLE_SELECTED","VEHICLES_ALL_SELECTED","VEHICLE_DESELECTED","VEHICLES_ALL_DESELECTED","VEHICLE_LICENSE_PLATE_CHECK_STARTED","VEHICLE_LICENSE_PLATE_CHECK_COMPLETED","VEHICLE_LICENSE_PLATE_CHECK_FAILED","CUSTOMERS_FETCH_STARTED","CUSTOMERS_FETCH_COMPLETED","CUSTOMERS_FETCH_FAILED","CUSTOMERS_PARTIAL_FETCH_STARTED","CUSTOMERS_PARTIAL_FETCH_COMPLETED","CUSTOMERS_PARTIAL_FETCH_FAILED","CUSTOMER_ADD_STARTED","CUSTOMER_ADD_COMPLETED","CUSTOMER_ADD_FAILED","CUSTOMER_EDIT_STARTED","CUSTOMER_EDIT_COMPLETED","CUSTOMER_EDIT_FAILED","CUSTOMER_REMOVE_STARTED","CUSTOMER_REMOVE_COMPLETED","CUSTOMER_REMOVE_FAILED","CUSTOMER_SELECTED","CUSTOMERS_ALL_SELECTED","CUSTOMER_DESELECTED","CUSTOMERS_ALL_DESELECTED","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","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","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","consumption","historicalFuelEconomy","unitsWithoutPerformance","hasNoPerformance","dowtimeUnits","u","unitsWithoutRecentData","v2","allFilters","unitsWithDischarges","filterTelemetryData","unitsWithoutDischarges","poorPerformance","performanceStatusNew","regularPerformance","goodPerformance","overPerformance","excessivePerformance","goodUnitsPercent","min","max","vehiclesData","property","filtered","dec2binReverse","dec","binary","reversedBinary","reverseBinary","floor","dec2bin","searchUseMetric","metricsMask","bitNumber","Metrics","ACCState","MetricId","MetricName","BitNumber","UseInVehicles","UseInAssets","UseInPeople","OrderNumber","ACCX","ACCY","ACCZ","AD1","AD2","AppVersion","BackupBattery","Battery","CellNumber","CoverTamperState","DoorState","FirmwareVersion","GSMSignalLevel","HardwareVersion","ICCID","IsCharging","MainVoltage","MCC","MNC","OverSpeedState","PadlockAuthorizationType","PadlockState","PLMN","Satellites","ShockSensorState","TrailerID","DriverId","SolarVoltage","getSummaryDataForDynamicTable","performanceSummary","statuses","row","weekNumber","statusLowerCase","toLowerCase","total","toFixed","Object","keys","useCombinedFuelHistory","samples","fuelEvents","selectedSensor","useMemo","fuelHistory","resultFinal","event","unitPositionLogId","sampleMatch","fuelSamples","sample","eventId","ORGANIZATION_CONTRACTS_FETCH_STARTED","ORGANIZATION_CONTRACTS_FETCH_COMPLETED","ORGANIZATION_CONTRACTS_FETCH_FAILED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED","ORGANIZATION_CONTRACT_ADD_STARTED","ORGANIZATION_CONTRACT_ADD_COMPLETED","ORGANIZATION_CONTRACT_ADD_FAILED","ORGANIZATION_CONTRACT_EDIT_STARTED","ORGANIZATION_CONTRACT_EDIT_COMPLETED","ORGANIZATION_CONTRACT_EDIT_FAILED","ORGANIZATION_CONTRACT_REMOVE_STARTED","ORGANIZATION_CONTRACT_REMOVE_COMPLETED","ORGANIZATION_CONTRACT_REMOVE_FAILED","ORGANIZATION_CONTRACT_SELECTED","ORGANIZATION_CONTRACTS_ALL_SELECTED","ORGANIZATION_CONTRACT_DESELECTED","ORGANIZATION_CONTRACTS_ALL_DESELECTED","CONTRACT_TEMPLATES_FETCH_STARTED","CONTRACT_TEMPLATES_FETCH_COMPLETED","CONTRACT_TEMPLATES_FETCH_FAILED","CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED","CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED","CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED","CONTRACT_TEMPLATE_ADD_STARTED","CONTRACT_TEMPLATE_ADD_COMPLETED","CONTRACT_TEMPLATE_ADD_FAILED","CONTRACT_TEMPLATE_EDIT_STARTED","CONTRACT_TEMPLATE_EDIT_COMPLETED","CONTRACT_TEMPLATE_EDIT_FAILED","CONTRACT_TEMPLATE_REMOVE_STARTED","CONTRACT_TEMPLATE_REMOVE_COMPLETED","CONTRACT_TEMPLATE_REMOVE_FAILED","CONTRACT_TEMPLATE_SELECTED","CONTRACT_TEMPLATES_ALL_SELECTED","CONTRACT_TEMPLATE_DESELECTED","CONTRACT_TEMPLATES_ALL_DESELECTED","OFFICES_FETCH_STARTED","OFFICES_FETCH_COMPLETED","OFFICES_FETCH_FAILED","OFFICES_PARTIAL_FETCH_STARTED","OFFICES_PARTIAL_FETCH_COMPLETED","OFFICES_PARTIAL_FETCH_FAILED","OFFICE_ADD_STARTED","OFFICE_ADD_COMPLETED","OFFICE_ADD_FAILED","OFFICE_EDIT_STARTED","OFFICE_EDIT_COMPLETED","OFFICE_EDIT_FAILED","OFFICE_REMOVE_STARTED","OFFICE_REMOVE_COMPLETED","OFFICE_REMOVE_FAILED","OFFICE_SELECTED","OFFICES_ALL_SELECTED","OFFICE_DESELECTED","OFFICES_ALL_DESELECTED","DIVISIONS_FETCH_STARTED","DIVISIONS_FETCH_COMPLETED","DIVISIONS_FETCH_FAILED","DIVISIONS_PARTIAL_FETCH_STARTED","DIVISIONS_PARTIAL_FETCH_COMPLETED","DIVISIONS_PARTIAL_FETCH_FAILED","DIVISION_ADD_STARTED","DIVISION_ADD_COMPLETED","DIVISION_ADD_FAILED","DIVISION_EDIT_STARTED","DIVISION_EDIT_COMPLETED","DIVISION_EDIT_FAILED","DIVISION_REMOVE_STARTED","DIVISION_REMOVE_COMPLETED","DIVISION_REMOVE_FAILED","DIVISION_SELECTED","DIVISIONS_ALL_SELECTED","DIVISION_DESELECTED","DIVISIONS_ALL_DESELECTED","SUBDIVISIONS_FETCH_STARTED","SUBDIVISIONS_FETCH_COMPLETED","SUBDIVISIONS_FETCH_FAILED","SUBDIVISIONS_PARTIAL_FETCH_STARTED","SUBDIVISIONS_PARTIAL_FETCH_COMPLETED","SUBDIVISIONS_PARTIAL_FETCH_FAILED","SUBDIVISION_ADD_STARTED","SUBDIVISION_ADD_COMPLETED","SUBDIVISION_ADD_FAILED","SUBDIVISION_EDIT_STARTED","SUBDIVISION_EDIT_COMPLETED","SUBDIVISION_EDIT_FAILED","SUBDIVISION_REMOVE_STARTED","SUBDIVISION_REMOVE_COMPLETED","SUBDIVISION_REMOVE_FAILED","SUBDIVISION_SELECTED","SUBDIVISIONS_ALL_SELECTED","SUBDIVISION_DESELECTED","SUBDIVISIONS_ALL_DESELECTED","COLORS","WORKPLANS_EXECUTIONS_FETCH_STARTED","WORKPLANS_EXECUTIONS_FETCH_COMPLETED","WORKPLANS_EXECUTIONS_FETCH_FAILED","WORKPLAN_EXECUTION_FETCH_STARTED","WORKPLAN_EXECUTION_FETCH_COMPLETED","WORKPLAN_EXECUTION_FETCH_FAILED","WORKPLANS_EXECUTION_CANCEL_STARTED","WORKPLANS_EXECUTION_CANCEL_COMPLETED","WORKPLANS_EXECUTION_CANCEL_FAILED","WORKPLANS_EXECUTION_FINALIZE_STARTED","WORKPLANS_EXECUTION_FINALIZE_COMPLETED","WORKPLANS_EXECUTION_FINALIZE_FAILED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED","WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED","WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED","WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED","WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED","WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED","WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED","CONTACTS_FETCH_STARTED","CONTACTS_FETCH_COMPLETED","CONTACTS_FETCH_FAILED","CONTACTS_PARTIAL_FETCH_STARTED","CONTACTS_PARTIAL_FETCH_COMPLETED","CONTACTS_PARTIAL_FETCH_FAILED","CONTACT_ADD_STARTED","CONTACT_ADD_COMPLETED","CONTACT_ADD_FAILED","CONTACT_EDIT_STARTED","CONTACT_EDIT_COMPLETED","CONTACT_EDIT_FAILED","CONTACT_REMOVE_STARTED","CONTACT_REMOVE_COMPLETED","CONTACT_REMOVE_FAILED","CONTACT_FETCH_STARTED","CONTACT_FETCH_COMPLETED","CONTACT_FETCH_FAILED","CONTACT_SELECTED","CONTACTS_ALL_SELECTED","CONTACT_DESELECTED","CONTACTS_ALL_DESELECTED","PROTOCOLS_FETCH_STARTED","PROTOCOLS_FETCH_COMPLETED","PROTOCOLS_FETCH_FAILED","PROTOCOLS_PARTIAL_FETCH_STARTED","PROTOCOLS_PARTIAL_FETCH_COMPLETED","PROTOCOLS_PARTIAL_FETCH_FAILED","PROTOCOLS_ADD_STARTED","PROTOCOLS_ADD_COMPLETED","PROTOCOLS_ADD_FAILED","PROTOCOLS_EDIT_STARTED","PROTOCOLS_EDIT_COMPLETED","PROTOCOLS_EDIT_FAILED","PROTOCOLS_REMOVE_STARTED","PROTOCOLS_REMOVE_COMPLETED","PROTOCOLS_REMOVE_FAILED","PROTOCOLS_SELECTED","PROTOCOLS_ALL_SELECTED","PROTOCOLS_DESELECTED","PROTOCOLS_ALL_DESELECTED","NOTICES_BY_ODOMETER_FETCH_STARTED","NOTICES_BY_ODOMETER_FETCH_COMPLETED","NOTICES_BY_ODOMETER_FETCH_FAILED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_ODOMETER_ADD_STARTED","NOTICE_BY_ODOMETER_ADD_COMPLETED","NOTICE_BY_ODOMETER_ADD_FAILED","NOTICE_BY_ODOMETER_EDIT_STARTED","NOTICE_BY_ODOMETER_EDIT_COMPLETED","NOTICE_BY_ODOMETER_EDIT_FAILED","NOTICE_BY_ODOMETER_RENEW_STARTED","NOTICE_BY_ODOMETER_RENEW_COMPLETED","NOTICE_BY_ODOMETER_RENEW_FAILED","NOTICE_BY_ODOMETER_REMOVE_STARTED","NOTICE_BY_ODOMETER_REMOVE_COMPLETED","NOTICE_BY_ODOMETER_REMOVE_FAILED","NOTICES_BY_DATE_FETCH_STARTED","NOTICES_BY_DATE_FETCH_COMPLETED","NOTICES_BY_DATE_FETCH_FAILED","NOTICES_BY_DATE_PARTIAL_FETCH_STARTED","NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED","NOTICES_BY_DATE_PARTIAL_FETCH_FAILED","NOTICE_BY_DATE_ADD_STARTED","NOTICE_BY_DATE_ADD_COMPLETED","NOTICE_BY_DATE_ADD_FAILED","NOTICE_BY_DATE_EDIT_STARTED","NOTICE_BY_DATE_EDIT_COMPLETED","NOTICE_BY_DATE_EDIT_FAILED","NOTICE_BY_DATE_RENEW_STARTED","NOTICE_BY_DATE_RENEW_COMPLETED","NOTICE_BY_DATE_RENEW_FAILED","NOTICE_BY_DATE_REMOVE_STARTED","NOTICE_BY_DATE_REMOVE_COMPLETED","NOTICE_BY_DATE_REMOVE_FAILED","NOTICES_BY_HOURMETER_FETCH_STARTED","NOTICES_BY_HOURMETER_FETCH_COMPLETED","NOTICES_BY_HOURMETER_FETCH_FAILED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_HOURMETER_ADD_STARTED","NOTICE_BY_HOURMETER_ADD_COMPLETED","NOTICE_BY_HOURMETER_ADD_FAILED","NOTICE_BY_HOURMETER_EDIT_STARTED","NOTICE_BY_HOURMETER_EDIT_COMPLETED","NOTICE_BY_HOURMETER_EDIT_FAILED","NOTICE_BY_HOURMETER_RENEW_STARTED","NOTICE_BY_HOURMETER_RENEW_COMPLETED","NOTICE_BY_HOURMETER_RENEW_FAILED","NOTICE_BY_HOURMETER_REMOVE_STARTED","NOTICE_BY_HOURMETER_REMOVE_COMPLETED","NOTICE_BY_HOURMETER_REMOVE_FAILED","OperatingSystem","Browser","DeviceType","PacketType","FuelCalibrationCommand","optionKeySpecialCharacters","å","ç","ƒ","ˆ","µ","ø","π","œ","ß","optionShiftSpecialCombinations","Å","ı","Ç","Î","Ï","Ó","Ô","Ò","Â","Ø","Œ","Í","ˇ","Á","formatHtmlToText","htmlStr","htmlToText","wordwrap","getDateWithoutTimezoneOffset","getTimezoneOffset","toISOString","slice","generateHourMinuteLabel","seconds","hours","minutes","generateDayHourMinuteSecondLabel","days","generateHourMinuteSecondStr","isUserLoggedIn","getUserData","selectThemeColors","theme","colors","primary25","primary","neutral10","neutral20","neutral30","isValidEmail","email","test","String","numberWithCommas","posiciones","decimalLength","indexOf","substr","trunc","replace","formatAmount","n","isValidNumber","isBitSet","b","pos","isIterable","obj","Symbol","iterator","getDateColumnsInDateRange","stacked","dateArray","setDate","getDate","dateTitle","getFullYear","getMonth","fieldName","customKey","staticText","getDay","getWeekColumns","weeks","columns","week","startWeekDate","DateTime","fromISO","toFormat","endWeekDate","weekColumns","headerText","customAttributes","class","userTimezoneOffset","convertExcelDateToSystemDate","excelDate","format","isAlphaNumeric","alpha","valueToValidate","trim","isNotNullOrUndefined","validateColumns","dataInfo","columnDefinitions","rules","cd","rowIndex","invalidColumns","colValue","colIndex","required","validation","validator","column","originalRowId","rowIsValid","validators","isAlphaNumericOrEmpty","isValidNumberOrEmpty","validLast4Digits","isNumber","is4Digits","is4DigitsNumber","e","isValidDate","isValid","isValidExcelDate","validateRequiredValue","validateUniqueValue","columnName","isValidDayOfTheWeek","formattedDayOfTheWeek","formatDate","weekday","locale","isValidBoolean","toValidate","isValidLatitude","parsedValue","isNaN","isValidLongitude","isValidBit","normalizeString","normalizeInputText","parseToNumber","isNaNOrNullable","dateFormatter","dateFormat","m","parseToBoolean","parsers","parseToString","isDate","parseToDate","serial","utcDays","dateInfo","fractionalDay","totalSeconds","excelDateToJSDate","parseToBit","parseToDateTime","exceldate","zone","setZone","keepLocalTime","toJSDate","timeToSeconds","time","getHours","getMinutes","getSeconds","timeToMinutes","getMinutesFromDate","getTotalSecondsFromDate","getSecondsFromDateHours","getSecondsFromDateMinutes","getSecondsFromDate","createDateWithHoursAndMinutes","newDate","setHours","setMinutes","setSeconds","setMilliseconds","secondsToMilliseconds","generateDateLabelByDate","getDaysHoursInDateRange","difference","ceil","generateDateArray","generateDayLabelByDate","isNotInObject","isInObject","isNotNaNOrNullable","areNotNullOrUndefined","arr","parseSecondsToHours","parseHoursToSeconds","parseSecondsToHoursWithEpsilon","EPSILON","getTimeInMinutes","getTimeInSeconds","getNextElementInArray","array","currentIdx","nextElement","Error","getPreviousElementInArray","getDifferenceBetweenDatesHHMMSS","duration","minutesSeconds","utc","asHours","getDaysBetweenDateAndTodayRef","startYear","daysInMonth","yearDiff","monthDiff","dayDiff","weekDiff","hexToRgbA","hex","isHex","substring","getZeroIfNaNOrNullable","getDateStrFormatted","hasDBDateFormat","isMoment","getDateAsKey","getIsMobile","navigator","userAgent","getShortDate","transform","target","isArray","camelCase","isObject","truncateStr","charAt","formatNumber","useSelectedLocale","numberToValidate","regexIsNumber","localeToUse","newNumberFormatted","toLocaleString","testIsNumber","getUseCRM","REACT_APP_PRODUCT_CRM","getUseConsole","REACT_APP_PRODUCT_CONSOLE","getUseLoginext","REACT_APP_USE_LOGINEXT","getIsWebtrackUser","webtrackEmail","getHourFromStringTime","hour","getMinutesFromStringTime","isEmptyData","obj1","obj2","isNotEmptyData","joinTexts","items","by","formatList","stripHtml","temp","innerHTML","textContent","roundWithEpsilon","formatHourMeter","hourMeter","getSecondsBetweenDates","start","getKeyboardModifiers","ctrl","alt","shift","parsedKey","isMobile","isBrowserMobile","platform","os","Unknown","startsWith","Windows","MacOS","Linux","IOS","Android","isBrowserChrome","isBrowserFirefox","isBrowserSafari","browser","Chrome","Firefox","Safari","deviceType","Mobile","Desktop","getDeviceInfo","shiftKey","metaKey","altKey","KeyboardEvent","DOM_KEY_LOCATION_RIGHT","ctrlKey","toBit","scrollDown","setTimeout","scrollBy","top","innerHeight","behavior","byId","timestamp","auditDate","union","userUpdateByEntity","unitsTypes","subdivisionsTypes","maintenanceLinesTypes","vehicleTypes","modulesTypes","agentsTypes","serviceClassesTypes","operatorsTypes","divisionsTypes","formsTypes","organizationsTypes","monitoringUsersTypes","workplansTypes","geofencesTypes","schedulesTypes","routesTypes","simsTypes","locationTypes","officeTypes","driverTypes","assetsTypes","sensorsTypes","jobsTypes","groupsTypes","customersTypes","contractsTypes","contractTemplatesTypes","toUTCString","notificationTypes","isFetchingList","isFetchedList","errorFetchingList","entitiesPersistConfig","getEntity","getUserUpdateByEntityTimestamp","getUserUpdateByEntityDate","getUserUpdateByEntityOperatorId","getUserUpdateByEntityOrganizationId","updateEntityByTimestamp","entityTimestamp","userUpdateEntityOperatorId","userUpdateEntityOrganizationId","areAllEntitiesUpdated","areUpdated","isFetchedListEntities","CATEGORIES_FETCH_STARTED","CATEGORIES_FETCH_COMPLETED","CATEGORIES_FETCH_FAILED","CATEGORIES_PARTIAL_FETCH_STARTED","CATEGORIES_PARTIAL_FETCH_COMPLETED","CATEGORIES_PARTIAL_FETCH_FAILED","CATEGORY_ADD_STARTED","CATEGORY_ADD_COMPLETED","CATEGORY_ADD_FAILED","CATEGORY_EDIT_STARTED","CATEGORY_EDIT_COMPLETED","CATEGORY_EDIT_FAILED","CATEGORY_REMOVE_STARTED","CATEGORY_REMOVE_COMPLETED","CATEGORY_REMOVE_FAILED","PROVIDERS_FETCH_STARTED2","PROVIDERS_FETCH_COMPLETED2","PROVIDERS_FETCH_FAILED2","PROVIDERS_PARTIAL_FETCH_STARTED2","PROVIDERS_PARTIAL_FETCH_COMPLETED2","PROVIDERS_PARTIAL_FETCH_FAILED2","PROVIDER_ADD_STARTED","PROVIDER_ADD_COMPLETED","PROVIDER_ADD_FAILED","PROVIDER_EDIT_STARTED","PROVIDER_EDIT_COMPLETED","PROVIDER_EDIT_FAILED","PROVIDER_REMOVE_STARTED","PROVIDER_REMOVE_COMPLETED","PROVIDER_REMOVE_FAILED","SPAREPARTS_FETCH_STARTED","SPAREPARTS_FETCH_COMPLETED","SPAREPARTS_FETCH_FAILED","SPAREPARTS_PARTIAL_FETCH_STARTED","SPAREPARTS_PARTIAL_FETCH_COMPLETED","SPAREPARTS_PARTIAL_FETCH_FAILED","SPAREPART_ADD_STARTED","SPAREPART_ADD_COMPLETED","SPAREPART_ADD_FAILED","SPAREPART_EDIT_STARTED","SPAREPART_EDIT_COMPLETED","SPAREPART_EDIT_FAILED","SPAREPART_REMOVE_STARTED","SPAREPART_REMOVE_COMPLETED","SPAREPART_REMOVE_FAILED","WORKMANSHIPS_FETCH_STARTED","WORKMANSHIPS_FETCH_COMPLETED","WORKMANSHIPS_FETCH_FAILED","WORKMANSHIPS_PARTIAL_FETCH_STARTED","WORKMANSHIPS_PARTIAL_FETCH_COMPLETED","WORKMANSHIPS_PARTIAL_FETCH_FAILED","WORKMANSHIP_ADD_STARTED","WORKMANSHIP_ADD_COMPLETED","WORKMANSHIP_ADD_FAILED","WORKMANSHIP_EDIT_STARTED","WORKMANSHIP_EDIT_COMPLETED","WORKMANSHIP_EDIT_FAILED","WORKMANSHIP_REMOVE_STARTED","WORKMANSHIP_REMOVE_COMPLETED","WORKMANSHIP_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_FETCH_STARTED","WORKPLAN_ASSIGNMENT_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_FETCH_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED","omit","scheduleIds","scheduleIdState","isPartialFetchingList","isAdding","isEditing","isRemoving","errorPartialFetchingList","errorAdding","errorEditing","errorRemoving","getSchedule","originGeofence","workGeofence","destinationGeofence","divisionSelectors","subdivisionSelectors","originGeofenceName","workGeofenceName","destinationGeofenceName","checkSequenceLabel","checkSequence","getScheduleByPrivateCode","privateCode","getSchedulesList","getScheduleByPrivateCodeByMembership","getScheduleListByMembership","scheduleStatus","getSelectedSchedules","selectedSchedules","getTriggersList","scheduleType","getTriggersListByMembership","getShiftsList","getShiftsListByMembership","getShiftListByMembershipDetail","shiftTimes","flattenDeep","day","startTime","endTime","getSelectedSchedule","isPartialFetchingListSchedules","isFetchingListSchedules","isAddingSchedule","isEditingSchedule","isRemovingSchedule","getPartialFetchingListSchedulesErrors","getFetchingListSchedulesErrors","getAddingScheduleErrors","getEditingScheduleErrors","getRemovingScheduleErrors","ROUTES_EXECUTION_COMMENTS_FETCH_STARTED","ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED","ROUTES_EXECUTION_COMMENTS_FETCH_FAILED","ROUTES_EXECUTION_COMMENT_ADD_STARTED","ROUTES_EXECUTION_COMMENT_ADD_COMPLETED","ROUTES_EXECUTION_COMMENT_ADD_FAILED","ROUTES_EXECUTION_COMMENT_EDIT_STARTED","ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED","ROUTES_EXECUTION_COMMENT_EDIT_FAILED","ROUTES_EXECUTION_COMMENT_REMOVE_STARTED","ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED","ROUTES_EXECUTION_COMMENT_REMOVE_FAILED","Option","components","SingleValue","NoOptionsMessage","filterOption","candidate","showOptionFilter","label","_","deburr","err","label_intl","IconOption","display","flexDirection","iconSVG","src","height","marginRight","IconSingleValue","cache","CellMeasurerCache","defaultHeight","fixedWidth","MenuList","rows","rowRenderer","parent","columnIndex","measure","registerChild","ref","disableWidth","containerStyle","backgroundColor","maxWidth","rowCount","rowHeight","DropdownInput","field","fieldstate","hasPlaceholder","options","isInModal","forceinitialvalue","onClear","additionalonchangefunction","menuIsOpen","minWidth","onInputChange","onFocus","inputProps","getComputedStyle","useEffect","onChangeFinal","isInArray","o","onChange","for","addonType","prependcomponent","styles","menuPortal","zIndex","provided","control","boxShadow","isFocused","border","process","singleValue","fontWeight","fontSize","lineHeight","transition","menuList","placeholder","triggeredAction","onSelect","onBlur","isClearable","option","fieldValue","optValue","selectedValue","noOptionsMessage","maxMenuHeight","menuPortalTarget","querySelector","appendcomponent","TextInput","autocompleteinput","topRightComponent","disabled","errorinvalidmessage","errorvalidatemessage","autoComplete","invalid","defaultProps","USER_NOTIFICATIONS_FETCH_STARTED","USER_NOTIFICATIONS_FETCH_COMPLETED","USER_NOTIFICATIONS_FETCH_FAILED","USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED","USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED","USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED","USER_NOTIFICATION_READ_STARTED","USER_NOTIFICATION_READ_COMPLETED","USER_NOTIFICATION_READ_FAILED","USER_NOTIFICATION_SHOWN","USER_NOTIFICATION_SELECTED","USER_NOTIFICATION_DESELECTED","USER_NOTIFICATION_ALL_SELECTED","USER_NOTIFICATION_ALL_DESELECTED","MainStateType","ONLINE","textColor","tooltip","shortIntl","OFFLINE","OFF","MOVING","ON_IDLE","ON_STANDBY","ON_STARTED","DOWNTIME","ON_STOPPED","ON_MOVING","STOPPED","OPPORTUNITY_CHARGE","DISCONNECTED","getIconByStatId","GetMainStateById","GetMainStateStyle","GetMainStateName","mainState","mainStateTitle","downTimeReason","extraMessage","getUnitIcon","themeId","getUnitActionIcon","getUnitMainStateIconAndSize","getUnitHeadingIcon","heading","getUnitHeadingFormat","getDatesDifferenceString","date1","date2","getTimeDifferenceString","abs","getIconByDatesDifference","getUnitsCompleteData","liveUnit","selectedOrganizationId","unitLiveStatus","speedFormat","convertKilometersPerHourToAuthUserSpeedSystem","odometerFormat","speedLimit","distanceFormat","historicalPositions","deviceMetricsSelectors","deviceActionsSelectors","groupsSelectors","reportsSelectors","imagesSelectors","sensorsSelectors","hourMeterFormat","mainStateName","downtimeReasonDescription","fromNow","headingFormat","allPositions","isShownInMap","getSpecialFunctionParams","specialFunctionId","Controller","membershipFilters","sm","defaultValue","param1","fieldState","allowZero","param2","param3","usersFilters","param4","allowNulls","enableTime","showTime","locationsFilters","eventsFilters","startFetchingGeofences","completeFetchingGeofences","showInMap","failFetchingGeofences","startFetchingGeofence","completeFetchingGeofence","failFetchingGeofence","startPartialFetchingGeofences","completePartialFetchingGeofences","failPartialFetchingGeofences","startAddingGeofence","completeAddingGeofence","failAddingGeofence","startEditingGeofence","completeEditingGeofence","failEditingGeofence","startRemovingGeofence","completeRemovingGeofence","failRemovingGeofence","startRemovingGeofenceAssignation","startRemovingAllAssignmentsByGeofences","startRemovingAllAssignmentsByUnits","completeRemovingGeofenceAssignation","failRemovingGeofenceAssignation","startEditingGeofenceAssignation","completeEditingGeofenceAssignation","failEditingGeofenceAssignation","showGeofenceInMap","showAllGeofencesInMap","geofenceIds","hideGeofenceInMap","hideAllGeofencesInMap","startAssignUnitsGeofences","completeAssignUnitsGeofences","failAssignUnitsGeofences","ROUTES_ASSIGNMENTS_FETCH_STARTED","ROUTES_ASSIGNMENTS_FETCH_COMPLETED","ROUTES_ASSIGNMENTS_FETCH_FAILED","ROUTES_ASSIGNMENT_EDIT_STARTED","ROUTES_ASSIGNMENT_EDIT_COMPLETED","ROUTES_ASSIGNMENT_EDIT_FAILED","ROUTES_ASSIGNMENT_REMOVE_STARTED","ROUTES_ASSIGNMENT_REMOVE_COMPLETED","ROUTES_ASSIGNMENT_REMOVE_FAILED","ROUTES_ASSIGNMENTS_IMPORT_STARTED","ROUTES_ASSIGNMENTS_IMPORT_COMPLETED","ROUTES_ASSIGNMENTS_IMPORT_FAILED","WORKPLANS_EXECUTION_LOCATION_ADD_STARTED","WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED","WORKPLANS_EXECUTION_LOCATION_ADD_FAILED","WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED","WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED","WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED","WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED","WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED","WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED","WORKPLAN_COMMENTS_FETCH_STARTED","WORKPLAN_COMMENTS_FETCH_COMPLETED","WORKPLAN_COMMENTS_FETCH_FAILED","WORKPLAN_COMMENT_ADD_STARTED","WORKPLAN_COMMENT_ADD_COMPLETED","WORKPLAN_COMMENT_ADD_FAILED","WORKPLAN_COMMENT_REMOVE_STARTED","WORKPLAN_COMMENT_REMOVE_COMPLETED","WORKPLAN_COMMENT_REMOVE_FAILED","isShowInMap","geofenceIdState","isFetchingGeofence","geofencesPersistedConfig","whitelist","getGeofence","getGeofencesList","geofenceStatus","getParentGeofencesList","isParentGeofence","getSubGeofencesList","parentGeofenceId","getGeofencesListByMembership","geofencesList","getGeofenceByPrivateCodeByMembership","getParentGeofencesListByMembership","getSubGeofencesListByMembership","isPartialFetchingListGeofences","isFetchingListGeofences","isAddingGeofence","isEditingGeofence","isRemovingGeofence","isFetchingGeofenceById","NumericalInput","step","useNumberSpinner","metric","allowUndefined","allowDecimals","decimalsPrecision","autoCompleteInput","forceShowDecimals","useState","setInputValue","authSystems","useSelector","handleChangeNumber","newValue","isEmptyString","hasNumberFormat","validate","onKeyDown","preventDefault","readonly","startLogin","password","completeLogin","failLogin","logout","setSessionMembership","authenticationUserInformationCompleted","startRefreshToken","startForceRefreshToken","completeRefreshToken","failRefreshToken","startUpdatingProfileGeneralInformation","completeUpdatingProfileGeneralInformation","failUpdatingProfileGeneralInformation","startUpdatingProfilePassword","completeUpdatingProfilePassword","failUpdatingProfilePassword","completeUpdatingProfilePicture","startUpdatingProfileHomeScreen","completeUpdatingProfileHomeScreen","failUpdatingProfileHomeScreen","startChangingProduct","completeChangingProduct","failChangingProduct","startUpdatingProfileMapOptions","completeUpdatingProfileMapOptions","failUpdatingProfileMapOptions","startUpdatingMapSettingsConfiguration","completeUpdatingMapSettingsConfiguration","failUpdatingMapSettingsConfiguration","startUpdatingMapFilterTabPinned","completeUpdatingMapFilterTabPinned","failUpdatingMapFilterTabPinned","setCatalogFilters","fetchDate","trajectory","eventName","eventParam","eventTextColor","eventColor","isFetchingLiveStatusList","isFetchingInformation","isFetchingPositions","isAcknowledgeEvent","isFetchedPosition","errorFetchingLiveStatusList","errorFetchingInformation","errorEditingInformation","isFetchingTrajectory","getUnit","downtimeReasonId","deviceModelName","deviceIdentifier","brandName","newUnit","unitPublicId","imsi","cellularNumber","mobileOperatorId","mobileOperatorName","unitStatus","unitStatusName","unitIdState","isEditingDowntime","isCreatingSharedLink","oldMainStateIds","hasAlreadyFetched","errorUpdatingDevice","isUpdatingDevice","isFetchingUnit","isUpdatingSimCard","unitsPersistedConfig","isCreatingSharedLinkUnit","sharedLinkUnit","oldUnitMainStateIds","getUnitLiveStatus","getUnitsList","getUnitsSpecificList","list","getActiveUnitsList","getActiveUnitsListByMembership","getActiveUnitsListByPartialMembership","useOperator","useOrganization","useDivision","useSubdivision","getSelectedUnits","selectedUnits","getUnitByPrivateCode","getUnitByIdOrPrivateCode","getSelectedUnit","isPartialFetchingListUnits","isFetchingListUnits","haveUnitsBeenFetched","isAddingUnit","isEditingUnit","isEditingUnitDowntime","isRemovingUnit","isFetchingUnitById","isEditingSimCard","isEditingDevice","getPartialFetchingListUnitsErrors","getFetchingListUnitsErrors","getAddingUnitErrors","getEditingUnitErrors","getRemovingUnitErrors","getUnitLiveFetchDate","selectorsUnitLiveStatus","getUnitsLiveStatusList","isFetchingListUnitsLiveStatus","isFetchingUnitInformation","isFetchingUnitPositions","isAcknowledgeUnitEvent","isFetchedUnitPosition","isFetchingUnitTrajectory","getFetchingListUnitsLiveStatusErrors","getFetchingUnitInformationErrors","changeUnitSubState","getRouteAssignments","getFleetService","getUnitDeviceActionParametersService","getUnitDeviceActionsService","getPublicUnitHistoricalPositionsReportService","getUnitRunningTimeByHour","getUnitScriptHistory","getUnitTemperatureHistory","getUnitFuelHistory","getAssetFuelHistory","getUnitFuelSamples","getUnitFuelInformation","getUnitFuelEvents","getDowntimeBinnacleService","getUserAssignedUnits","removeUserAssignedUnits","addUserAssignedUnits","updateOdometer","updateHourmeter","updateDeviceService","getUnitsListByFiltersService","getUnitAssetsService","getUnitScriptsSerivice","insertUnitScriptService","getSharedLinkUnitService","getUnitSpecialFunctionsService","getSpecialFunctionsDropdownService","updateUnitSpecialFunctionService","deleteUnitSpecialFunctionService","getUnitsAdministrativeDetailsReportService","getUnitsAdministrativeSummaryReportService","getUnitsLiveStatusByIdsService","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","startFetchingOrganizations","completeFetchingOrganizations","failFetchingOrganizations","startPartialFetchingOrganizations","failPartialFetchingOrganizations","startAddingOrganization","completeAddingOrganization","failAddingOrganization","startEditingOrganization","completeEditingOrganization","failEditingOrganization","startSavingConsolidableEvents","completeSavingConsolidableEvents","failSavingConsolidableEvents","startRemovingOrganization","completeRemovingOrganization","failRemovingOrganization","selectOrganization","deselectOrganization","deselectAllOrganizations","organizationIds","startCheckingCode","completeCheckingCode","startAssigningCode","completeAssigningCode","failAssigningCode","startAddingOrganizationDowntimeReason","completeAddingOrganizationDowntimeReason","failAddingOrganizationDowntimeReason","startEditingOrganizationDowntimeReason","completeEditingOrganizationDowntimeReason","failEditingOrganizationDowntimeReason","oldDowntimeReason","startRemovingOrganizationDowntimeReason","completeRemovingOrganizationDowntimeReason","failRemovingOrganizationDowntimeReason","startUpdatingWorkplanOrdersConfiguration","completeUpdatingWorkplanOrdersConfiguration","failUpdatingWorkplanOrdersConfiguration","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","organizationIdState","isAddingDowntimeReason","isEditingDowntimeReason","isRemovingDowntimeReason","errorAddingDowntimeReason","errorEditingDowntimeReason","errorRemovingDowntimeReason","isConfiguringWorkplanOrders","errorUpdatingWokgplanConfiguration","getOrganizationOperator","getOrganizationOperatorName","getOrganization","getOrganizationName","getOrganizationsList","organizationStatus","getOrganizationsListByMembership","getOrganizationsListBySelectedOperator","getSelectedOrganizations","selectedOrganizations","getSelectedOrganization","getOrganizationStatusOrderIds","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","startFetchingForms","completeFetchingForms","failFetchingForms","startPartialFetchingForms","completePartialFetchingForms","failPartialFetchingForms","startFetchingForm","completeFetchingForm","formOrder","sectionsOrder","questionOrder","failFetchingForm","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","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","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","routesComments","isFetchingExecutions","isEditingExecution","isCancelingExecution","isFinalizingExecution","isCompletingExecution","isRemovingExecution","isSharingExecution","isPausingExecution","isStartingExecution","isUpdatingManualTransitExecution","isChangingToAlternateRoute","errorFetchingExecutions","errorEditingExecution","errorCancelingExecution","errorFinalizingExecution","errorCompletingExecution","errorRemovingExecution","errorPausingExecution","errorStartingExecution","errorUpdatingManualTransitExecution","errorSharingExecution","errorChangingToAlternateRoute","getRoutesExecution","getRouteExecutionInformation","getRoutesExecutionsList","getIndicatorsInformation","correctRunning","onOrigin","onDestination","onRoute","atCheckpoint","incorrectRunning","paused","offRoute","eao","unauthorizedReturn","running","scheduled","finalized","canceled","getTotalNotShown","getIndicators","viewTotalIndicator","viewScheduledIndicator","bigIndicator","details","info","onTime","late","popoverTitle","popoverBody","viewRunningIndicator","getExecutionsStatus","labels","series","viewRouteByStatusGraph","getRunningStatus","viewRouteRunningGraph","isFetchingRoutesExecutions","isEditingRouteExecution","isCancelingRoutesExecution","isFinalizingRoutesExecution","isCompletingRoutesExecution","isRemovingRoutesExecution","isPausingRoutesExecution","isStartingRoutesExecution","isUpdatingManualTransitRoutesExecution","isSharingRoutesExecution","isChangingToAlternateRouteExecution","getFetchingRoutesExecutionsErrors","getCancelingRoutesExecutionErrors","getFinalizingRoutesExecutionErrors","getCompletingRoutesExecutionErrors","getRemovingRoutesExecutionErrors","getPausingRoutesExecutionErrors","getStartingRoutesExecutionErrors","getUpdatingManualTransitRoutesExecutionErrors","getSharingRoutesExecutionErrors","getChangingToAlternateRouteErrors","DefaultButton","isLoading","handleClick","tooltipMessage","iconSize","visible","tooltipPosition","tooltipOpen","setTooltipOpen","Ripple","onClick","as","animation","role","aria-hidden","placement","isOpen","toggle","trigger","JOBS_BOARD_FETCH_STARTED","JOBS_BOARD_FETCH_COMPLETED","JOBS_BOARD_FETCH_FAILED","JOBS_BOARD_CHANGE_STATUS_STARTED","JOBS_BOARD_CHANGE_STATUS_COMPLETED","JOBS_BOARD_CHANGE_STATUS_FAILED","startFetchingRoutes","completeFetchingRoutes","failFetchingRoutes","startPartialFetchingRoutes","completePartialFetchingRoutes","failPartialFetchingRoutes","startAddingRoute","completeAddingRoute","routeInformation","failAddingRoute","startEditingRoute","completeEditingRoute","failEditingRoute","startRemovingRoute","completeRemovingRoute","failRemovingRoute","startRemovingRoutes","completeRemovingRoutes","failRemovingRoutes","selectRoute","selectAllRoutes","deselectRoute","deselectAllRoutes","startCopyRoute","completeCopyRoute","failCopyRoute","showRouteInMap","showAllRoutesInMap","hideRouteInMap","hideAllRoutesInMap","JOB_FETCH_STARTED","JOB_FETCH_COMPLETED","JOB_FETCH_FAILED","WORKPLANS_VISITS_FETCH_STARTED","WORKPLANS_VISITS_FETCH_COMPLETED","WORKPLANS_VISITS_FETCH_FAILED","WORKPLANS_ALL_VISITS_FETCH_STARTED","WORKPLANS_ALL_VISITS_FETCH_COMPLETED","WORKPLANS_ALL_VISITS_FETCH_FAILED","divisionIds","divisionIdState","getDivision","getDivisionsList","divisionStatus","getDivisionsListByMembership","getDivisionsListBySelectedOrganization","getSelectedDivisions","selectedDivisions","getSelectedDivision","isPartialFetchingListDivisions","isFetchingListDivisions","isAddingDivision","isEditingDivision","isRemovingDivision","getPartialFetchingListDivisionsErrors","getFetchingListDivisionsErrors","getAddingDivisionErrors","getEditingDivisionErrors","getRemovingDivisionErrors","FetchEntities","useUnits","unitsFilters","useSubdivisions","subdivisionsFilters","useMaintenanceLines","maintenanceLinesFilters","useVehicles","vehiclesFilters","useSims","simsFilters","useModules","modulesFilters","useDrivers","driversFilters","useAgents","useServiceClasses","serviceClassesFilters","useServiceClassesDropdown","useUsers","useOperators","useDivisions","divisionsFilters","useOrganizations","useContacts","useWorkplans","workplansFilters","useGeofences","geofencesFilters","useSchedules","useForms","useRoutes","routesFilters","useCountries","useLocations","useOffices","officesFilters","useAssets","assetsFilters","useSensors","useJobsBacklog","jobsBacklogFilters","useGroups","groupsFilters","useOrganizationContracts","organizationContractsFilters","useContractTemplates","contractTemplatesFilters","useCustomers","customersFilters","useProtocols","protocolsFilters","useUserNotifications","userNotificationFilters","useDestinations","intervalTime","destinationsFilters","additionalEntities","useDispatch","entitiesSelectors","fetchEntitiesWithFilters","finalEntities","fetchEntities","fetchDivisions","fetchSubdivisions","fetchMaintenanceLines","fetchLocations","fetchOffices","fetchDrivers","fetchWorkplans","fetchGeofences","fetchRoutes","fetchUnits","fetchVehicles","fetchAssets","jobsFilters","allowNullOperatorId","fetchUsers","fetchDestinations","fetchCustomers","fetchGroups","fetchOrganizationContracts","fetchContracTemplates","fetchModules","fetchSims","fetchServiceClasses","fetchProtocols","fetchUserNotifications","getRouteExecutionStatusLabel","routeStatus","routeStatusLabel","routeStatusLabelInfo","convertKilometersPerLiterToAuthUserFuelSystem","isDeviceOpenLabel","isDeviceOpen","stopStatus","speedLabel","routeProgressLabel","routeProgress","distanceToCheckpointLabel","distanceToCheckpoint","distanceLabel","fuelConsumption","performanceOnRoute","distanceProgress","completionTypes","globalNotificationFrecs","startTimeWindow","routesEvents","routesTimelineEvents","routesCheckpointsIcons","iconTxt","getRouteStatusColorClass","getMarker","iconId","latLng","L","marker","getIcon","checkpointClassDefaultColor","checkpointTextDefaultColor","divIcon","iconAnchor","popupAnchor","getRouteBounds","latlngPolylines","performanceTemplate","args","performanceUnit","performanceRanges","percentage","translation","valueNodeRef","useRef","marginLeft","VALIDATION_ERROR_TYPES","getValidationErrorIcon","errors","level","getValidationErrorColor","validateDateTimesDiff","firstDate","secondDate","diffInMilliseconds","diffInMillisecondsAsInt","isSame","duplicatedUnitRouteAssignmentValidator","assignedUnitsFromDatabase","commonValues","unitsRoutesAssignmentsFromState","unitsRoutesAssignment","correlative","assignmentTypeNumber","hasAssignmentAtSameHourOrScheduleNextRun","existingAssignments","comparePredicate","AssignmentTypes","ByDate","stepperStartDate","assignmentStartDate","existingAssignment","existingAssignmentStartDate","REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT","stepperNextRunDate","nextRunDate","existingAssignmentNextRunDate","unitRoutAssignmentNextRunDate","scheduleNextRunDate","unitRouteAssignment","getRouteInformationFormat","speedLimitFormat","getRouteUnitFormat","realDistanceLabel","realDistance","calculatedDistanceLabel","calculatedDistance","effectivenessLabel","effectiveness","getRoutesRouteInformationFormat","fuelConsumptionLabel","getRouteExecutionInformationFormat","durationLabel","completionDate","cancelDate","transitDurationLabel","transitDate","ENTITIES_FETCH_STARTED","ENTITIES_FETCH_COMPLETED","ENTITIES_FETCH_FAILED","ENTITIES_RESET_IS_FETCHED","ENTITIES_UPDATE_STARTED","ENTITIES_UPDATE_COMPLETED","ENTITIES_UPDATE_FAILED","CheckboxInput","UUIDv4","classNameCustom","inline","checked","subdivisionIds","subdivisionIdState","getSubdivision","getSubdivisionsList","subdivisionStatus","getSubdivisionsListByMembership","getSubdivisionsListBySelectedDivision","getSelectedSubdivisions","selectedSubdivisions","getSelectedSubdivision","isPartialFetchingListSubdivisions","isFetchingListSubdivisions","isAddingSubdivision","isEditingSubdivision","isRemovingSubdivision","getPartialFetchingListSubdivisionsErrors","getFetchingListSubdivisionsErrors","getAddingSubdivisionErrors","getEditingSubdivisionErrors","getRemovingSubdivisionErrors","viewWorkplanModule","assignWorkplan","searchWorkplans","viewPlansIndicator","viewLocationsIndicator","viewVisitsIndicator","viewExecutionIndicator","viewArrivalEffectivnessGraph","viewPermanenceEffectivenessGraph","viewLocationsUnitsEffectivenessGraph","changeUnit","finalizeWorkplanAssignment","viewWorkplanMonitor","cancelWorkplanAssignment","viewWorkplanReport","deleteWorkplan","viewWorkplanCatalog","scheduledWorkplanList","scheduledWorkplanEdit","scheduledWorkplanDelete","loginextConfiguration","ordersConfiguration","Toolbar","buttons","child","startFetchingMonitoringUsers","completeFetchingMonitoringUsers","failFetchingMonitoringUsers","startFetchingMonitoringUser","completeFetchingMonitoringUser","failFetchingMonitoringUser","startPartialFetchingMonitoringUsers","completePartialFetchingMonitoringUsers","failPartialFetchingMonitoringUsers","startAddingMonitoringUser","completeAddingMonitoringUser","failAddingMonitoringUser","startEditingMonitoringUser","completeEditingMonitoringUser","failEditingMonitoringUser","startRemovingMonitoringUser","completeRemovingMonitoringUser","failRemovingMonitoringUser","deselectAllMonitoringUsers","monitoringUserIds","startUpdatingMonitoringUserPassword","completeUpdatingMonitoringUserPassword","failUpdatingMonitoringUserPassword","startSavingMonitoringUserRolesAndPermissions","completeSavingMonitoringUserRolesAndPermissions","startAssigningScheduleUsers","completeAssigningScheduleUsers","completeUnassigningScheduleUsers","startUnassigningScheduleUsers","jobTitle","getJobsReportByUserListService","startFetchingAgents","completeFetchingAgents","failFetchingAgents","startPartialFetchingAgents","completePartialFetchingAgents","failPartialFetchingAgents","startFetchingAgent","completeFetchingAgent","failFetchingAgent","startAddingAgent","completeAddingAgent","failAddingAgent","startEditingAgent","completeEditingAgent","failEditingAgent","startRemovingAgent","completeRemovingAgent","failRemovingAgent","selectAgent","deselectAgent","startFetchingOperators","completeFetchingOperators","failFetchingOperators","startPartialFetchingOperators","completePartialFetchingOperators","failPartialFetchingOperators","startAddingOperator","completeAddingOperator","failAddingOperator","startEditingOperator","completeEditingOperator","failEditingOperator","startEditingOperatorStandardPrices","completeEditingOperatorStandardPrices","startRemovingOperator","completeRemovingOperator","failRemovingOperator","selectOperator","deselectOperator","mileageReport","hourMetersReport","runningTimeReport","unitActivity","byUnitStopSummaryReport","byUnitScriptsHistoryReport","consolidatedStopSummaryReport","consolidatedOpportunityOfCharge","consolidatedUnitActivityReport","consolidatedEventActivityReport","parkedGeofenceReport","fuelSensorReport","scheduledReports","scheduledReportsCreate","scheduledReportsEdit","scheduledReportsDelete","systemCommunicationsDiagReport","systemNotificationsReport","accommodationChargesReport","administrativeReports","byUnitReports","consolidatedReports","listReports","deepSearch","consumptionAPIReport","readWebEvents","markReadedWebEvents","consolidatedSummary","readAPICost","systemUserHistory","systemAdministrativeReport","routesReport","unitsById","routesById","isFetchingReport","errorFetchingReport","routesAssignments","routeIdState","isCopying","errorCopying","routesPersistConfig","getRoute","routeSelectorsCheckpoints","getRoutesList","getRoutesListByMembership","isPartialFetchingListRoutes","isFetchingListRoutes","isAddingRoute","isEditingRoute","routesSelectorsExecutions","isFetchingListRouteCheckpoints","deleteRoute","assignRoute","deleteRouteAssignment","completeRouteAssignment","finalizeRouteAssignment","cancelRouteAssignment","viewDestinationIndicator","viewRouteCatalog","searchRoutes","viewRouteMonitor","viewRouteReport","viewExtraFieldsInRouteAssignment","changeCompletionType","shareRouteAssignment","routeETAMonitor","startFetchingEntities","startFetchingEntitiesAfterLogin","completeFetchingEntities","failFetchingEntities","resetIsFetchedEntities","startUpdatingEntities","completeUpdatingEntities","failUpdatingEntities","startFetchingDrivers","completeFetchingDrivers","failFetchingDrivers","startPartialFetchingDrivers","completePartialFetchingDrivers","failPartialFetchingDrivers","startAddingDriver","completeAddingDriver","failAddingDriver","startEditingDriver","completeEditingDriver","failEditingDriver","startRemovingDriver","completeRemovingDriver","failRemovingDriver","selectDriver","deselectAllDrivers","driverIds","completeMassiveDriversAssignment","errorMassiveDriversAssignment","completeImportDriver","startDriverAssignSensor","completeDriverAssignSensor","startDriverUnassignSensor","completeDriverUnassignSensor","startFetchingModules","completeFetchingModules","failFetchingModules","startPartialFetchingModules","completePartialFetchingModules","failPartialFetchingModules","startFetchingModule","completeFetchingModule","failFetchingModule","startAddingModule","completeAddingModule","failAddingModule","startEditingModule","completeEditingModule","failEditingModule","startRemovingModule","completeRemovingModule","failRemovingModule","deselectModule","deselectAllModules","moduleIds","JOBS_REPORT_FETCH_STARTED","JOBS_REPORT_FETCH_COMPLETED","JOBS_REPORT_FETCH_FAILED","ROUTES_REPORT_FETCH_STARTED","ROUTES_REPORT_FETCH_COMPLETED","ROUTES_REPORT_FETCH_FAILED","WORKPLANS_REPORT_FETCH_STARTED","WORKPLANS_REPORT_FETCH_COMPLETED","WORKPLANS_REPORT_FETCH_FAILED","startFetchingServiceClasses","isWebPage","completeFetchingServiceClasses","failFetchingServiceClasses","startPartialFetchingServiceClasses","completeFetchingServiceClass","failFetchingServiceClass","startAddingServiceClass","completeAddingServiceClass","failAddingServiceClass","startEditingServiceClass","completeEditingServiceClass","failEditingServiceClass","startRemovingServiceClass","completeRemovingServiceClass","failRemovingServiceClass","selectServiceClass","deselectAllServiceClasses","serviceClassIds","startFetchingOffices","completeFetchingOffices","failFetchingOffices","startPartialFetchingOffices","completePartialFetchingOffices","failPartialFetchingOffices","startAddingOffice","completeAddingOffice","failAddingOffice","startEditingOffice","completeEditingOffice","failEditingOffice","startRemovingOffice","completeRemovingOffice","failRemovingOffice","selectOffice","deselectOffice","startFetchingAssets","completeFetchingAssets","failFetchingAssets","startPartialFetchingAssets","completePartialFetchingAssets","failPartialFetchingAssets","startAddingAsset","completeAddingAsset","failAddingAsset","startEditingAsset","completeEditingAsset","failEditingAsset","startRemovingAsset","completeRemovingAsset","failRemovingAsset","selectAsset","deselectAsset","startCheckingSecuritySealCode","completeCheckingSecuritySealCode","startFetchingContractTemplates","completeFetchingContractTemplates","failFetchingContractTemplates","startPartialFetchingContractTemplates","completePartialFetchingContractTemplates","failPartialFetchingContractTemplates","startAddingContractTemplate","completeAddingContractTemplate","failAddingContractTemplate","startEditingContractTemplate","completeEditingContractTemplate","failEditingContractTemplate","startRemovingContractTemplate","completeRemovingContractTemplate","failRemovingContractTemplate","selectContractTemplate","deselectAllContractTemplates","templateIds","startFetchingCustomers","completeFetchingCustomers","failFetchingCustomers","startPartialFetchingCustomers","completePartialFetchingCustomers","failPartialFetchingCustomers","startAddingCustomer","completeAddingCustomer","failAddingCustomer","startEditingCustomer","completeEditingCustomer","failEditingCustomer","startRemovingCustomer","completeRemovingCustomer","failRemovingCustomer","selectCustomer","deselectCustomer","startFetchingDivisions","completeFetchingDivisions","failFetchingDivisions","startPartialFetchingDivisions","completePartialFetchingDivisions","failPartialFetchingDivisions","startAddingDivision","completeAddingDivision","failAddingDivision","startEditingDivision","completeEditingDivision","failEditingDivision","startRemovingDivision","completeRemovingDivision","failRemovingDivision","selectDivision","deselectDivision","startFetchingSubdivisions","completeFetchingSubdivisions","failFetchingSubdivisions","startPartialFetchingSubdivisions","completePartialFetchingSubdivisions","failPartialFetchingSubdivisions","startAddingSubdivision","completeAddingSubdivision","failAddingSubdivision","startEditingSubdivision","completeEditingSubdivision","failEditingSubdivision","startRemovingSubdivision","completeRemovingSubdivision","failRemovingSubdivision","selectSubdivision","deselectSubdivision","startFetchingOrganizationContracts","completeFetchingOrganizationContracts","failFetchingOrganizationContracts","startPartialFetchingOrganizationContracts","completePartialFetchingOrganizationContracts","failPartialFetchingOrganizationContracts","startAddingOrganizationContract","completeAddingOrganizationContract","failAddingOrganizationContract","startEditingOrganizationContract","completeEditingOrganizationContract","failEditingOrganizationContract","startRemovingOrganizationContract","completeRemovingOrganizationContract","failRemovingOrganizationContract","selectOrganizationContract","deselectAllOrganizationContracts","contractIds","startFetchingSensors","completeFetchingSensors","failFetchingSensors","startPartialFetchingSensors","completePartialFetchingSensors","failPartialFetchingSensors","startAddingSensor","completeAddingSensor","failAddingSensor","startEditingSensor","completeEditingSensor","failEditingSensor","startRemovingSensor","completeRemovingSensor","failRemovingSensor","selectSensor","deselectSensor","sensorCalibrationStartStarted","sensorCalibrationStartCompleted","sensorCalibrationStartFail","sensorCalibrationFinalizeStarted","sensorCalibrationFinalizeCompleted","sensorCalibrationFinalizeFail","startFetchingSims","completeFetchingSims","failFetchingSims","startFetchingSim","completeFetchingSim","failFetchingSim","startPartialFetchingSims","completePartialFetchingSims","failPartialFetchingSims","startAddingSim","completeAddingSim","failAddingSim","startEditingSim","completeEditingSim","failEditingSim","startRemovingSim","completeRemovingSim","failRemovingSim","deselectSim","operatorIds","operatorIdState","isEditingStandardPrices","errorEditingStandardPrices","getOperator","getOperatorsList","operatorStatus","getSelectedOperator","selectedOperators","isEditingOperatorStandardPrices","startFetchingVehicles","completeFetchingVehicles","failFetchingVehicles","startPartialFetchingVehicles","completePartialFetchingVehicles","failPartialFetchingVehicles","startAddingVehicle","completeAddingVehicle","failAddingVehicle","startEditingVehicle","completeEditingVehicle","failEditingVehicle","startRemovingVehicle","completeRemovingVehicle","failRemovingVehicle","selectVehicle","deselectVehicle","ROUTE_CHECKPOINTS_FETCH_STARTED","ROUTE_CHECKPOINTS_FETCH_COMPLETED","ROUTE_CHECKPOINTS_FETCH_FAILED","ROUTE_CHECKPOINTS_CLEAR","timeInSeconds","minute","DateInput","maxDate","minDate","isRange","defaultHour","defaultMinute","additionalTimeProps","startRef","startButtonRef","endRef","endButtonRef","prevValue","setPrevValue","prevValueRange","setPrevValueRange","cursor","current","flatpickr","open","Spanish","english","mode","selectedDates","startOf","endOf","onClose","VEHICLE_MAKERS_FETCH_STARTED","VEHICLE_MAKERS_FETCH_COMPLETED","VEHICLE_MAKERS_FETCH_FAILED","VEHICLE_MODELS_FETCH_STARTED","VEHICLE_MODELS_FETCH_COMPLETED","VEHICLE_MODELS_FETCH_FAILED","INSURANCE_COMPANIES_FETCH_STARTED","INSURANCE_COMPANIES_FETCH_COMPLETED","INSURANCE_COMPANIES_FETCH_FAILED","INSURANCE_AGENTS_FETCH_STARTED","INSURANCE_AGENTS_FETCH_COMPLETED","INSURANCE_AGENTS_FETCH_FAILED","HANDLE_SEARCH_QUERY","GET_BOOKMARKS_FETCH_STARTED","GET_BOOKMARKS_FETCH_COMPLETED","GET_BOOKMARKS_FETCH_FAILED","UPDATE_BOOKMARKED_STARTED","UPDATE_BOOKMARKED_COMPLETED","UPDATE_BOOKMARKED_FAILED","Avatar","forwardRef","imgClassName","initials","badgeUp","badgeColor","badgeText","Tag","tag","contentStyles","rest","classnames","str","results","getInitials","pill","originalContactId","contactIdState","isFetching","errorFetching","getContact","getContactsList","getSelectedContact","selectedContacts","isFetchingListContacts","isEditingContact","isAddingContact","startFetchingMaintenanceLines","completeFetchingMaintenanceLines","failFetchingMaintenanceLines","startPartialFetchingMaintenanceLines","completePartialFetchingMaintenanceLines","failPartialFetchingMaintenanceLines","startAddingMaintenanceLine","completeAddingMaintenanceLine","failAddingMaintenanceLine","startEditingMaintenanceLine","completeEditingMaintenanceLine","failEditingMaintenanceLine","startRemovingMaintenanceLine","completeRemovingMaintenanceLine","failRemovingMaintenanceLine","startCopyMaintenanceLine","completeCopyMaintenanceLine","failCopyMaintenanceLine","selectMaintenanceLine","deselectMaintenanceLine","BRANDS_FETCH_STARTED","BRANDS_FETCH_COMPLETED","BRANDS_FETCH_FAILED","CONFIGURATIONS_FETCH_STARTED","CONFIGURATIONS_FETCH_COMPLETED","CONFIGURATIONS_FETCH_FAILED","MODELS_FETCH_STARTED","MODELS_FETCH_COMPLETED","MODELS_FETCH_FAILED","PROVIDERS_FETCH_STARTED","PROVIDERS_FETCH_COMPLETED","PROVIDERS_FETCH_FAILED","Table","TableComponent","version","enablePersistence","omitPersistenceKeys","enableVirtualization","rerender","selectAll","deselectAll","initialFilterColumns","sortSettings","actionSave","onDrop","onDeselect","changeSelected","rerenderSelected","allowSorting","allowRowDragAndDrop","allowPaging","pageSize","allowResizing","allowReordering","allowFiltering","allowMultipleSelection","sortedColumn","frozenColumns","initialSelectedRowIndex","persistSelectIndexes","toolbarOptions","allowExcelExport","toolbarClick","setTableRef","allowGrouping","groupSettings","usingAdvancedFilters","disableFilterFields","changeState","show","setShow","setLocale","stateRef","changeKey","setTooltip","tableColumns","setTableColumns","selectedRowIndexes","setSelectedRowIndexes","scrollLeft","setScrollLeft","intlContext","useContext","IntlContext","dataTable","dataRowTableId","currentLocale","setCulture","notFoundMessage","L10n","load","grid","EmptyRecord","savedVersion","headerModule","autoFitColumns","sortedColumnIndex","direction","reset","useDeepCompareEffect","getFilteredRecords","selectRowsByRange","selectedRows","getElementById","clearSelection","compareDeps","col","hide","selectRows","scrollModule","refresh","toolbar","allowEditing","t","beforeRender","arg","idColumnTooltip","indexColumnTooltip","getAttribute","parentElement","tooltipColumn","childElementCount","classList","contains","cssClass","tooltipText","showColumnChooser","cellSave","rowData","rowDrop","dataSource","assign","gridLines","rowSelected","rowIndexes","rowDeselected","deselect","pageSettings","currentPage","filterSettings","resizeSettings","selectionSettings","enableSimpleMultiRowSelection","selectedRowIndex","dataBound","editSettings","allowAdding","allowDeleting","noRecordsTemplate","actionComplete","requestType","newColumnsOrder","getColumns","stackedColumn","j","autoFit","stackedStackedColumn","isPrimaryKey","editType","editTemplate","headerTemplate","formatColumn","displayAsCheckBox","template","hasTooltip","freeze","edit","textAlign","valueAccessor","tooltipTemplate","aggregateType","customAggregate","customAggregateFn","footerTemplate","aggregateText","Count","services","Resize","Filter","Sort","Page","Search","Freeze","Reorder","Aggregate","Edit","RowDD","VirtualScroll","ExcelExport","ColumnChooser","Group","officeIds","officeIdState","getOffice","averageCapacityFormat","averageCapacity","minCapacityFormat","minCapacity","maxCapacityFormat","maxCapacity","getOfficesList","officeStatus","getOfficesListByMembership","getNotAssignedOfficesListByCustomer","getSelectedOffice","selectedOffices","isPartialFetchingListOffices","isFetchingListOffices","startFetchingProtocols","completeFetchingProtocols","failFetchingProtocols","patload","startPartialFetchingProtocols","completePartialFetchingProtocols","failPartialFetchingProtocols","startAddingProtocol","completeAddingProtocol","failAddingProtocol","startEditingProtocol","completeEditingProtocol","failEditingProtocol","startRemovingProtocol","completeRemovingProtocol","failRemovingProtocol","selectProtocol","deselectAllProtocols","protocolIds","startFetchingNotices","completeFetchingNotices","failFetchingNotices","startAddingNotice","completeAddingNotice","failAddingNotice","startEditingNotice","completeEditingNotice","failEditingNotice","oldNotice","startRenewNotice","completeRenewNotice","failRenewNotice","startRemovingNotice","completeRemovingNotice","failRemovingNotice","trackingUnitsList","trackingUnitsCreate","trackingUnitsEdit","trackingUnitsDelete","viewUnitMap","lastCommunicationDate","downtime","readDowntimeReasons","addDowntimeReasons","editDowntimeReasons","removeDowntimeReasons","changeToInactive","changeToPlaced","changeToActivated","changeToRemoved","changeToCanceled","cellularProvider","viewUnitSpecialFunctions","addUnitSpecialFunctions","editUnitSpecialFunctions","deleteUnitSpecialFunctions","TimeInput","minTime","inFormat","defaultDate","noCalendar","time_24hr","dateValue","useScript","url","script","$","async","appendChild","getRectBoundsFromLatLng","radius","dy","dx","cos","PI","minLatitude","minLongitude","maxLatitude","maxLongitude","getIsInnerGeoreferenceFromLatLng","unitPositions","matches","unitPosition","matchStatus","getRectangleFromLatLng","getTriangleFromLatLng","searchLocation","listLocations","importLocation","listPrivateOrganizationLocations","listLocationsOnMap","searchLocations","searchExternalLocations","paths","maintenanceLineList","addWorkshopOrders","typesLocations","workplanExecutionLocationIdState","locationSelectors","boundsCustomColor","getPropertyValue","locationVisitStatus","locationClassDefaultColor","jobStatusLabel","sequenceComplianceLabel","validSequence","locationVisitStatusLabel","getLocationsListByVisit","getAddingLocationErrors","getEditingLocationErrors","getRemovingLocationErrors","startFetchingAssignments","completeFetchingAssignmentsWithSchedule","completeFetchingAssignmentsWithDateTime","failFetchingAssignments","completeRemovingAssignmentWithSchedule","completeRemovingAssignmentWithDateTime","failRemovingAssignment","completeEditingAssignmentWithSchedule","failEditingAssignmentWithSchedule","completeEditingAssignmentWithDateTime","failEditingAssignmentWithDateTime","defaultOptions","colSize","showAllOperator","showAllOrganization","showAllAgent","showAllDivision","showAllSubdivision","showAllGroup","useUserOperator","useUserOrganization","useUserAgent","useUserDivision","useUserSubdivision","useUserGroup","setUserOperator","setUserOrganization","setUserAgent","setUserDivision","setUserSubdivision","setUserGroup","useAgent","useGroup","isOperatorDisabled","isOrganizationDisabled","isAgentDisabled","isDivisionDisabled","isSubdivisionDisabled","isGroupDisabled","Dropdowns","shouldUnregister","newMembership","membershipDefaultValue","membershipOptions","useController","operatorField","operatorFieldState","organizationField","organizationFieldState","divisionField","divisionFieldState","subdivisionField","subdivisionFieldState","groupField","groupFieldState","operatorsList","organizationsList","divisionsList","filterOrganization","subdivisionsList","agentsList","agentsSelectors","groupList","finalOnChange","Col","subdivisionPlaceholder","Membership","showDropdowns","isInitialize","setIsInitialize","setMembershipDefaultValue","setMembershipOptions","updateOptions","membershipAccessLevel","AuthSelectors","updateUserMembership","userMembership","updateModel","useMembership","Spinner","SwitchInput","onAfterChange","MultiValue","MultiValueLabel","alignItems","justifyContent","badge","IconMultipleValue","identifierIcon","MultiSelectInput","canCreate","underText","innerOptions","setOptions","op","renderToString","multiValue","SelectComponent","CreatableSelect","Select","isMulti","selectedOptions","onCreate","isValidNewOption","currentValue","formatCreateLabel","inputValueNormalized","underIcon","iconAction","iconDisabled","iconTooltip","iconStyle","successColor","warningColor","dangerColor","infoColor","getJobDescriptionTemplate","jobDescription","ReactHtmlParser","getJobPriorityColor","priority","getJobPriorityTemplate","priorityColor","getJobTypeIcon","jobBacklogTypeId","jobTypesList","jobTypeId","getJobTypeTemplate","center","getJobRequesterTemplate","requesterUserName","requestUserImageUrl","requesterCompleteName","getJobRequesterInfoTemplate","getUsersText","getJobUsersRowTemplate","userSplit","idx","completeName","getJobNotificationEmailsTemplate","nemail","getJobUsersInfoTemplate","getJobFormsInfoTemplate","formSplit","formResponsesCount","getJobFilesInfoTemplate","md","fileSplit","file","fileName","fileUrl","fileExtension","getTotalEstimatedTimeTemplate","estimatedDurationText","getTotalExecutionTimeTemplate","totalExecutionIsOnTime","totalExecutionTime","estimatedDuration","totalExecutionTimeColor","totalExecutionTimeText","getJobStatusColor","colorsJobStatus","getJobStatusColorClass","getJobStatusIcon","getJobStatusTemplate","jobStatusText","cardJobTemplate","startDateFormat","dueDateFormat","getJobStatusTitleColumnsTemplate","count","intlTasks","getJobStatusText","today","getJobLocationTemplate","onJobLocationCheck","getJobLocationInfoTemplate","mapLocationsOptions","hideMarkersByZoom","clusterMarkers","showLocations","setMapPositionToLocationBounds","useRectangleBounds","useSlidingpanelLocationInformation","locationClassIconName","rulerControlOptions","useControl","followingJobsSuccessChangeStatus","propertyChange","successJobs","flush","minsToDurationTimeText","mins","secondsInAHour","timeArray","convertHtmlToText","tempDivElement","innerText","customerIds","customerIdState","getCustomer","getCustomersList","customerStatus","getCustomersListByMembership","getNotAssignedCustomersList","getSelectedCustomer","selectedCustomers","isPartialFetchingListCustomers","isFetchingListCustomers","listGeofencesOnMap","listGeofences","listAsignedGeofences","asignGeofenceToUnit","unasignGeofenceToUnit","getLocationClass","getLocationClassIconName","lc","getLocationClassesList","isFetchingListLocationClasses","haveLocationClassesBeenFetched","ETAMONITORING_DESTINATIONS_FETCH_STARTED","ETAMONITORING_DESTINATIONS_FETCH_COMPLETED","ETAMONITORING_DESTINATIONS_FETCH_FAILED","DefaultSimpleButton","usersToAdd","isInGroup","locationsCount","workPlansCount","userCount","unitCount","geofenceCount","driverCount","entitiesToAdd","userImage","workPlanName","notifyAdmin","notifyOwner","shape","notifyEmails","driverPhoto","licenseNumber","licenseType","licenseExpireDate","entityId","groupIdState","isFetchingAllEntities","isLeaving","errorFetchingAllEntities","errorLeaving","isFetchingGroup","errorFetchingGroup","groupsPersistedConfig","getGroup","getGroupsList","groupStatus","getUnfilteredSelectedGroup","getAllGroupsList","getSelectedGroup","selectedGroups","isPartialFetchingListGroups","isFetchingListGroups","isFetchingGroupById","configurationId","getConfigurationsList","getConfiguration","startFetchingCategories","completeFetchingCategories","failFetchingCategories","startAddingCategory","completeAddingCategory","failAddingCategory","startEditingCategory","completeEditingCategory","failEditingCategory","oldCategory","startRemovingCategory","completeRemovingCategory","failRemovingCategory","completeFetchingRoutesExecutions","failFetchingRoutesExecutions","startEditRouteExecution","completeEditRouteExecution","failEditRouteExecution","completeChangeToAlternateRoute","failChangeToAlternateRoute","completeAssignUnitRoutesExecutions","failAssignUnitRoutesExecutions","DeleteButton","tooltipLabel","TitleH4","textId","textTransform","driverIdState","isImportingDriversAndUnitsList","importDriversAndUnits","isAssigningDrivers","driversPersistedConfig","getDriver","getDriversList","driverStatus","getDriversListByMembership","getDriverByPrivateCode","getDriverByPrivateCodeByMembership","getSelectedDriver","selectedDrivers","getDriverByIdOrPrivateCode","isPartialFetchingListDrivers","isFetchingListDrivers","logo","REACT_APP_FLAVOR","default","LocationsDropdownInput","byLocationClassId","useGoogleLocations","createFromGoogleLocations","useLabel","notAssigned","initialLocationType","showOrganization","setGooglePlaceId","isOpenSlidingPane","setIsOpenSlidingPane","editingLocation","setEditingLocation","locationType","setLocationType","locationByPlaceId","resetValue","setResetValue","locationsPermissions","closeSlidingPane","enableDispatch","dispatchNotificationFreq","dispatchEmails","dispatchCompletionType","locationTypeId","agentIds","agentIdState","getAgent","getAgentsList","agentStatus","getAgentsListByMembership","getSelectedAgent","selectedAgents","isFetchingListAgents","SwiperCore","Navigation","Pagination","EffectFade","EffectCube","EffectCoverflow","Autoplay","Lazy","Virtual","Thumbs","defaultGalleryParams","effect","spaceBetween","initialSlide","centeredSlides","autoplay","disableOnInteraction","pauseOnMouseEnter","reverseDirection","loop","navigation","pagination","clickable","MediaGallery","isRtl","classNameImg","onSlideChange","useThumbs","classNameThumbs","heightThumbs","lightboxIndex","setLightboxIndex","isLightboxOpen","setIsLightboxOpen","thumbsSwiper","paramsThumbsDefault","slidesPerView","freeMode","watchSlidesVisibility","watchSlidesProgress","onSwiper","galleryOptions","thumbs","swiper","dir","activeIndex","fullImageUrl","imageId","discourageDownloads","reactModalStyle","overlay","imageTitle","imageCaption","imageDescription","mainSrc","nextSrc","prevSrc","onCloseRequest","onMovePrevRequest","onMoveNextRequest","imagesPath","activeSlideId","listFleet","deviceAction1","deviceAction2","deviceAction3","deviceAction4","deviceAction5","deviceAction6","deviceAction8","deviceAction9","deviceAction11","deviceAction12","deviceAction13","deviceAction20","deviceAction21","deviceAction22","deviceAction23","deviceAction30","deviceAction31","deviceAction32","deviceAction33","deviceAction34","deviceAction35","deviceAction36","deviceAction50","deviceAction51","deviceAction52","deviceAction53","deviceAction54","deviceAction55","deviceAction56","deviceAction57","deviceAction60","deviceAction61","deviceAction70","deviceAction71","deviceAction80","deviceAction81","deviceAction90","deviceAction91","deviceAction92","deviceAction93","deviceAction100","deviceAction1000","deviceAction1001","deviceAction1002","deviceAction1003","deviceAction1004","deviceAction1005","deviceAction1006","deviceAction1007","deviceAction1008","deviceAction1009","deviceAction1010","deviceAction1011","deviceAction1200","sendScripts","addTicket","consolidatedReport","recordMultiple","startFetchingUserNotifications","completeFetchingUserNotifications","failFetchingUserNotifications","startPartialFetchingUserNotifications","completePartialFetchingUserNotifications","failPartialFetchingUserNotifications","startReadingUserNotification","completeReadingUserNotification","notifications","failReadingUserNotification","userNotificationShown","workplansBulkInsert","isNew","temperatureCatalog","temperatureStadistics","fuelCatalog","fuelReport","fuelStadistics","tirePressureCatalog","obd2Monitor","telemtryUnits","MapGeofenceEdit","useMap","showGeofence","onGeofenceEdit","usePopovers","isMapFullScreen","zoomMapAfterEdit","zoomMapToGeofence","geofenceGeoJSON","WKBtoGeoJSON","geofenceWktString","feature","coordinates","flyToBounds","toBounds","geoJson","getBounds","wkt","geometry","wkx","Geometry","toGeoJSON","geofenceRef","pm","enableLayerDrag","enable","removeLayerBelowMinVertexCount","draggable","openPopup","Circle","GeoJSON","coordsToLatLng","pathOptions","eventHandlers","click","parseGeoJSON","toWkt","getRadius","layer","Popup","Rectangle","coordsToLatLngs","Polygon","paddingBottomRight","paddingTopLeft","maxZoom","animate","getZoom","MapGeofences","useLeafletContext","useMapEvents","moveend","displayGeofences","isSelectedSomething","setIsSelectedSomething","showGeofences","useIsShownGeofence","selectedGeofenceIds","setMapPositionToGeofenceBounds","useSlidingpanelGeofenceInformation","initialShowSlidingPanelGeofenceInformationOpen","initialGeofenceInformationOpenId","editingGeofenceParent","setEditingGeofenceParent","editingGeofenceParentRef","startClusteringAt","resetMapHome","showGeofenceInformationSlidepanel","setShowGeofenceInformationSlidepanel","initialGeofenceId","setInitialGeofenceId","selectedGeofence","setSelectedGeofence","mainGeofence","geofenceActions","coords","flatten","coordinate","fitBounds","latLngBounds","bound","LatLng","initialGeofenceInformation","WrapperMarkerClusterGroup","Fragment","wrapperProps","MarkerClusterGroup","geofencesBounds","setGeofencesBounds","overlaps","onClickGeofence","zIndexOffset","Tooltip","offset","SlidingpanelGeofenceInformation","closeSlidepanel","isSlidepanelOpen","MapLocationEdit","showLocation","onLocationDragend","zoomMapToLocation","ll","markerRef","preventMarkerRemoval","popupRef","Marker","latlng","getLatLng","MapLocations","displayMarkers","useIsShownLocation","selectedLocationIds","initialShowSlidingPanelLocationInformationOpen","initialLocationInformationOpenId","editingLocationParent","setEditingLocationParent","editingLocationParentRef","selectedLocationInTable","zoomLimitSet","spiderfyProps","showLocationInformationSlidepanel","setShowLocationInformationSlidepanel","initialLocationId","setInitialLocationId","selectedLocation","setSelectedLocation","isStartClusteringAtSet","setIsStartClusteringAtSet","loc","initialLocationInformation","markersComponents","setMarkersComponents","newMarkers","riseOnHover","locationClassContent","permanent","Media","spiderfyActivated","setSpiderfyActivated","disableClusteringAtZoom","spiderfyOnMaxZoom","spiderfyState","SlidingpanelLocationInformation","MapObjectsBounds","setMapPositionToUnitBounds","setMapPositionToUnitPositionsBounds","setMapPositionToRouteBounds","rerenderMapObjectBounds","s","zoomMapToObjects","encode","factor","output","fromCharCode","flipped","reverse","decode","precision","latitude_change","lat","lng","byte","pow","charCodeAt","fromGeoJSON","geojson","Routing","Google","Class","extend","initialize","travelMode","google","maps","TravelMode","DRIVING","unitSystem","UnitSystem","METRIC","provideRouteAlternatives","directionsService","DirectionsService","Util","_flatten","arrs","concat","_decodePolyline","latlngs","_maneuverToInstructionType","maneuver","waypoints","callback","context","that","directions","geometryOnly","origin","destination","waypoint","stopover","DirectionsStatus","OK","iroute","summary","totalDistance","legs","leg","steps","previousValue","totalTime","indices","indicesSecondary","waypointIndices","nWaypoint","stepsPoints","points","via_waypoints","si","via_waypoint","step_index","sp","step_interpolation","inputWaypoints","actualWaypoints","instructions","exit","RouteItem","formValues","createdLocations","addCheckpoint","editCheckpoint","editPath","deleteCheckpoint","addNewMarkerOnMap","addGoogleLocationToCheckpoint","addLocationToCheckpoint","deleteLocationOfCheckpoint","mouseEnter","setMouseEnter","tooltipAddOpen","setTooltipAddOpen","tooltipEditOpen","setTooltipEditOpen","tooltipEditOpen2","setTooltipEditOpen2","tooltipEditSegmentOpen","setTooltipEditSegmentOpen","dropDownLocations","checkpointName","ListGroupItem","onMouseEnter","onMouseLeave","Row","onSelectChangeLocationType","InputGroupText","inputs","initialTab","hasButtonSubmit","hasButtonCancel","SlidingPaneAddAlternateRoute","isGeneratingRoute","alternateRoutes","setAlternateRoutes","useForm","handleSubmit","watch","rerenderMap","setRerenderMap","showOriginalRoute","setShowOriginalRoute","showAlternateRoute","setShowAlternateRoute","selectedRoute","routeSelectors","alternateRoute","routesOnMap","pathColor","routeCheckpointsActions","overlayClassName","onRequestClose","Map","mapRoutesOptions","showRoutes","useSlidingPaneRouteInformation","mapObjectsBoundsOptions","ar","Button","SlidingPaneEditRoute","subtitle","closeSlidingPaneForm","distanceRoute","setCheckpoints","selectedTab","setSelectedTab","isOpenSlidingPaneAddAlternateRoute","setSlidingPaneAddAlternateRoute","errorsKeys","isSaving","TabsWrapper","initialActiveTab","activeTab","setActiveTab","tabIndex","useCardContent","tabs","tabId","tabsContent","component","WebtrackCustomInput","FormGroup","Label","setList","AddButton","getLatLngs","getNullIfNaN","converted","useMapRouteEdit","routePaths","setEditingRouteParent","formState","isGeneratingRouteRef","React","useCenterRoute","isStartingEdit","setIsStartingEdit","setDistanceRoute","counterGenerateRouteRef","checkpointsRef","setPaths","pathsRef","drawingRouteCheckpoint","setDrawingRouteCheckpoint","drawingRouteCheckpointRef","setCreatedLocations","createdLocationsRef","isOpenSlidingPaneEditRoute","setOpenSlidingPaneEditRoute","widthSlidingPaneEditRoute","setWidthSlidingPaneEditRoute","isOpenSlidingPaneForm","setOpenSlidingPaneForm","slidingPaneEditRoutesProps","setSlidingPaneEditRouteProps","slidingPaneFormProps","setSlidingPaneFormProps","slidingPaneFormPropsRef","editingRoute","setEditingRoute","editingRouteRef","copyPolylineLatLngs","setCopyPolylineLatLngs","copyPolylineLatLngsRef","alternateRoutesRef","useGetAlternateRoutes","deleteObjectsOnMap","newLocations","checkpoint","uuidv4","addTo","on","DomEvent","stopPropagation","secondsSegmentStopTime","segmentStopAuthorized","segmentWithoutStopTime","segmentStopTime","secondsSegmentTripMinTime","segmentTripMinTime","secondsSegmentTripMaxTime","segmentTripMaxTime","lastCheckpointsRef","element","updateMarkersOnMap","updatePathsOnMap","centerRoute","geocodeByLatLng","routePlace","formatted_address","radiusFormat","convertMetersToAuthUserDistance2System","addCreatedLocationToCheckpoint","catch","removeLayer","rectangle","chkpt","checkpointsWithLatLng","router","OSRMv1","serviceUrl","simplify","point","segmentDistance","updateDistances","getBoundsZoom","completionTimeByUser","abbreviation","defaultContacts","globalNotificationEmails","globalNotificationFrec","initialFetch","notificationEvents","distances","lastPointLatLngs","routeActions","convertAuthUserSpeedSystemToKilometersPerHour","completionTime","pointDistance","isInteger","stopType","stopMinTime","stopMaxTime","segmentSpeedLimit","inputCheckpoint","setIcon","setBounds","convertAuthUserDistance2SystemToMeters","setLatLngs","latLngs","disable","setStyle","setEditPathInputs","segmentSpeedLimitFormat","segmentDistanceFormat","customTranslation","tooltips","placeMarker","setLang","refreshTooltips","enableDraw","continueDrawing","markerEditable","markerStyle","newLocation","MapRouteEdit","SlidingPaneForm","isInMap","showRoute","createRoute","EditButton","routePermissions","sourceName","targetName","MapRoutes","useIsShownRoute","initialShowSlidingPanelRouteInformationOpen","initialShowSlidingPanelRouteCreateOpen","initialShowSlidingPanelRouteEditOpen","initialRouteInformationOpenId","editingRouteParent","showRouteInformationSlidingPane","setShowRouteInformationSlidingPane","openEditSlidingPane","setOpenEditSlidingPane","initialRouteId","setInitialRouteId","routesBounds","setRoutesBounds","setSelectedRoute","isFetchingCheckpoints","zoomMapToRoutes","intersects","initialRouteInformation","Polyline","SlidingPaneRouteInformation","RulerControl","listenMapControlChanges","container","layerContainer","pmOptions","tooltipTextDraganddelete","tooltipTextResume","tooltipTextAdd","tooltipTextFinish","tooltipTextDelete","tooltipTextMove","measureControlClasses","measureControlLabel","ReactDOMServer","renderToStaticMarkup","clearControlLabel","measureControlTitleOn","measureControlTitleOff","showClearControl","clearControlTitle","showUnitControl","unitControlTitle","metres","landmiles","nauticalmiles","polylineMeasure","addControl","removeControl","ToolbarGeofencesControl","setShowGeofences","newGeofences","setNewGeofencesLayers","newGeofencesLayersRef","isOpenSlidingPaneFormRef","slidingPaneProps","setSlidingPaneProps","slidingPanePropsRef","editingGeofence","setEditingGeofence","editingGeofenceRef","isSatMonitor","REACT_APP_SAT_MONITOR","_shape","initialRadius","editing","bindPopup","customValidation","geofenceAddress","geofenceAddres","setRadius","radioButtons","parentGeofences","subGeofenceWktString","isActivationGeofence","getExtraGeofenceSaveValues","vertexCount","longitude2","latitude2","vertexCsv","geofenceWKT","remove","prevlayers","ImmediateSubAction","Toolbar2","Action","myAction","prototype","addHooks","viewGeofences","toolbarIcon","disableLayerDrag","closePopup","createNewCircleGeofence","createNewRectangleGeofence","createNewPolygonGeofence","cancelGeofence","disableDraw","geofencesOptions","subToolbar","geofencePermissions","GeofencesToolbar","Control","geofencesToolbar","onClickCancelButton","setShowGeofence","ToolbarHomeControl","selectedLayer","layer_id","homeFunction","centerLatLng","getCenter","wrap","homeLayer","setHomeAction","useToolbar","ToolbarLocationsControl","setShowLocations","setNewMarkers","newMarkersRef","editingLocationRef","_icon","setLatLng","createNewLocationAction","locationAddress","prevMarkers","viewLocations","cancelLocation","locationsOptions","locationPermissions","LocationsToolbar","locationsToolbar","SlidingPaneEditLocation","setShowLocation","ToolbarRoutesControl","setShowRoutes","createNewRouteAction","cancelRoute","routesOptions","RoutesToolbar","routesToolbar","ToolbarUnitsControl","showUnits","setShowUnits","setSelectedUnit","handleShowUnitsOnMap","createNewUnitAction","cancelUnit","unitsOptions","UnitsToolbar","unitsToolbar","MapsBasic","mapBaseLayersOptions","homeToolbarOptions","locationsToolbarOptions","geofencesToolbarOptions","routesToolbarOptions","unitsToolbarOptions","trajectoryToolbarOptions","mapLocationsOptionsToolbar","mapLocationEditOptions","mapGeofencesOptionsToolbar","mapGeofencesOptions","mapGeofenceEditOptions","mapRoutesOptionsToolbar","mapUnitsOptionsToolbar","mapUnitsOptions","mapUnitsPublicOptions","startRerender","zoom","fetchMapObjects","history","useHistory","setMap","setMapControlChanges","listenMapControlChangesLayers","setMapControlChangesLayers","showTrajectory","setShowTrajectory","activateShowGeofences","setActivateShowGeofences","mapInitialized","setMapInitialized","zoomClusterLimit","setZoomClusterLimit","isClusterLimitSet","setIsClusterLimitSet","setMapBounds","isFetchingLocations","isFetchingGeofences","initialMapCenter","initialZoom","mapPosition","setMapPosition","MQ","mapLocationEditOptionsToolbar","setMapLocationEditOptionsToolbar","mapGeofenceEditOptionsToolbar","setMapGeofenceEditOptionsToolbar","selectedUnit","selectedUnitRef","initialUnitInformationOpenId","fetchMapItemsWithBounds","useCallback","debounce","boundsFilters","handleMapMovement","boundsFilter","getSouthWest","getNorthEast","mapZoomLevel","off","setSpiderfyState","invalidateSize","MapContainer","preferCanvas","whenCreated","leafletMap","MapBaseLayers","useIsShownUnit","MapUnits","useSlidingpanelUnitInformation","MapUnitsPublic","ToolbarUnitTrajectoryControl","mapRouteEditOptions","roleId","userNameState","isUpdatingMonitoringUserPassword","getMonitoringUser","getMonitoringUsersList","userStatus","getMonitoringUsersSpecificList","getSelectedMonitoringUser","selectedMonitoringUsers","isFetchingMonitoringUser","isFetchingListMonitoringUsers","isAddingMonitoringUser","isEditingMonitoringUser","isRemovingMonitoringUser","isChangingMonitoringUserPassword","formIdState","removed","oldSectionIndex","sectionsById","useDropDownRows","sectionToCopy","newRows","newQuestions","isRequired","isPrivate","newQuestionA","newAnswers","oldQuestionIndex","oldQuestion","sectionTypeId","sectionRows","questionTypeId","questionName","selectedAnswer","isFetchingFormById","getForm","getFormSections","getFormSectionsList","section","getFormSection","getFormQuestions","getFormQuestionsList","getFormQuestion","getFormsList","organizationFormStatus","getFormsSpecificList","getFormsListByMembership","getSelectedForm","selectedForms","getSections","getSectionOrder","allowOtherOption","getSection","getSelectedResponseDetails","selectedResponses","isFetchingForm","isFetchingListForms","isFetchingById","getDriverInformationService","getDriverImagesService","getSensorsForPeople","importDriversService","getConsolidableEvents","getDowntimeReasons","getContactsService","saveLoginextConfigurationService","listEmailNotification","addEmailNotification","removeEmailNotification","listConsoleNotification","addConsoleNotification","removeConsoleNotification","listWebServiceNotification","addWebServiceNotification","removeWebServiceNotification","listSystemNotification","addSystemNotification","removeSystemNotification","editSystemNotification","completeFetchingAssignments","entitiesByDate","entitiesBySchedule","startEditingAssignment","completeEditingAssignment","failEditingAssignment","startRemovingAssignment","completeRemovingAssignment","completeImportingRouteAssignments","failImportingRouteAssignments","getAvailableUsersForGroup","getAvailableLocationsForGroup","getAvailableWorkplansForGroup","getAvailableUnitsForGroup","getAvailableGeofencesForGroup","getAvailableDriversForGroup","verifyUserExistsAndNotInGroup","pinUserGroupIdService","startFetchingSpareParts","completeFetchingSpareParts","failFetchingSpareParts","startAddingSparePart","completeAddingSparePart","failAddingSparePart","startEditingSparePart","completeEditingSparePart","failEditingSparePart","oldSparePart","startRemovingSparePart","completeRemovingSparePart","failRemovingSparePart","SENSOR_MEASURES_FETCH_STARTED","SENSOR_MEASURES_FETCH_COMPLETED","SENSOR_MEASURES_FETCH_FAILED","SENSOR_MEASURES_CLEAR","getAlternateRoutesService","getRouteService","startFetchingWorkmanships","completeFetchingWorkmanships","failFetchingWorkmanships","startAddingWorkmanship","completeAddingWorkmanship","failAddingWorkmanship","startEditingWorkmanship","completeEditingWorkmanship","failEditingWorkmanship","oldWorkmanship","startRemovingWorkmanship","completeRemovingWorkmanship","failRemovingWorkmanship","startFetchingProviders","completeFetchingProviders","failFetchingProviders","startAddingProvider","completeAddingProvider","failAddingProvider","startEditingProvider","completeEditingProvider","failEditingProvider","oldProvider","startRemovingProvider","completeRemovingProvider","failRemovingProvider","idTable","useTable","heightTable","columnsTable","onSelectTable","onDeselectTable","change","innerControl","innerHandleSubmit","isInnerForm","setIsInnerForm","saving","save","WrapperInput","wrapperInputProps","categoryIdState","getCategoriesList","getCategory","getCategoriesListByMembership","isFetchingListCategories","haveCategoriesBeenFetched","operatorPermissions","operatorList","organizationPermissions","organizationCatalog","divisionPermissions","listDivision","subdivisionPermissions","subdivisionCatalog","serviceClassPermissions","listServiceClass","agentPermissions","agentList","operatorPaths","listOperator","screenId","screens","agentPaths","listAgent","organizationPaths","listOrganization","divisionPaths","subdivisionPaths","listSubdivision","serviceClassPaths","modulePermissions","listModule","modulePaths","simPermissions","listSim","simPaths","sensorPermissions","listSensor","sensorPaths","assetPermissions","assetCatalog","assetPaths","listAsset","vehiclePermissions","listVehicle","vehiclePaths","listShift","listTrigger","listGroup","listDrivers","listPerson","listPeople","listUsers","listCustomers","listCustomer","listContact","listOffices","listOffice","listConsoleNotifications","listEmailNotifications","listWebServiceNotifications","listSystemNotifications","listForms","answersFormReport","answersReportForms","header","affiliations","catalogs","inventories","workplanList","workplanMonitor","workplanReport","scheduledWorkplan","workplanAssignUnit","routeList","routeMonitor","routeReport","routeAssignUnit","viewOptimizations","listOptimization","vehicleFuel","vehicleMaintenance","optimizations","telemetryUnits","telemetryTemperature","telemetryFuelMonitor","telemetryFuelReport","telemetryFuelReportByVehicles","telemetryOBD2","telemetry","dashboard","geofencesAssignedList","consolidatedUnitMainStateReport","reportList","unitPermissions","listTrackingUnits","trackingUnits","pointsOfInterest","contractTemplatesPermissions","listTemplate","contractTemplatesPaths","organizationContractPermissions","listContract","organizationContractPaths","quotationPermissions","listQuotation","quotationPaths","listQuotations","contracts","listJobsBacklog","backlog","jobsImport","import","jobsBoard","board","jobsReport","jobsWorkingActivity","workingActivityReport","safedriver","safeDriver","businessPartnersPaths","editPartner","webServiceRates","businessPartners","listProtocol","createProtocol","deleteProtocol","protocolsList","general","apps","operations","administrations","sidebarOptionsCRM","generalCRM","sidebarOptionsMonitoring","generalMonitoringCenter","sidebarOptionsAdmin","generalAdmin","getOptions","optionNav","link","childrenOptions","LOCATION_CLASSES_FETCH_STARTED","LOCATION_CLASSES_FETCH_COMPLETED","LOCATION_CLASSES_FETCH_FAILED","TIME_ZONES_FETCH_STARTED","TIME_ZONES_FETCH_COMPLETED","TIME_ZONES_FETCH_FAILED","CURRENCIES_FETCH_STARTED","CURRENCIES_FETCH_COMPLETED","CURRENCIES_FETCH_FAILED","SENSOR_BRANDS_FETCH_STARTED","SENSOR_BRANDS_FETCH_COMPLETED","SENSOR_BRANDS_FETCH_FAILED","SENSOR_MODELS_FETCH_STARTED","SENSOR_MODELS_FETCH_COMPLETED","SENSOR_MODELS_FETCH_FAILED","PAYMENT_METHODS_FETCH_STARTED","PAYMENT_METHODS_FETCH_COMPLETED","PAYMENT_METHODS_FETCH_FAILED","workplansAssignments","bySchedule","byDateTime","byScheduleOrder","assignmentIdState","byDateTimeOrder","isFetchingAssignments","errorFetchingAssignments","getWorkplansAssignment","getWorkplansAssignmentsByScheduleListByMembership","getWorkplansAssignmentsByScheduleList","getWorkplansAssignmentsByDateTimeListByMembership","getWorkplansAssignmentsByDateTimeList","isFetchingWorkplansAssignments","uniqueIdentifier","getFuelCalibrationPubSubUrl","sendPubSubFuelCalibrationCommand","ContactsDropdown","extraContacts","contactTypeId","setContactsIn","contactsIn","setNewContact","closeSlidingPaneAddEditContact","prependcomponentFun","appendcomponentFun","defaultJobTitle","changeSelectedContacts","addEditContactSlideOpen","openAddEditContactSlide","newContact","changeNewContact","selectAndEditContact","ContactSelectors","userContactsEmails","useGetOperatorContacts","areFetchingOperatorContacts","isFetchingOperatorContacts","operatorPublicContacts","useGetContacts","organizationPublicContacts","areFetchingOrganizationContacts","formatContactsForDropdown","contactsToShow","userContacts","OrganizationContacts","usedEmails","filteredContacts","addNotIncludedContacts","filterContactByAcces","contactsToAdd","defaultContact","contactToAdd","selectedContact","setSelectedContact","prevContacts","newContactData","string","selectedValues","operatorContact","organizationContact","userContact","isSelectedOnCreate","isEditingFromMulti","onSave","editedContactData","assetIds","assetIdState","validIdentifier","validSecuritySealCode","getAsset","getAssetsList","assetStatus","getAssetListByMembership","getSelectedAsset","selectedAssets","isValidIdentifier","isValidSecuritySealCode","isPartialFetchingListAssets","isFetchingListAssets","startFetchingRouteCheckpoints","completeFetchingRouteCheckpoints","failFetchingRouteCheckpoints","simIds","simIdState","isFetchingSim","getSim","getSimsList","simCardStatus","getSelectedSim","selectedSims","isAddingSim","isEditingSim","isRemovingSim","isFetchingSimById","routeEdit","getCpGeofence","getUnitGeofences","getUnitGeofenceInfo","getAssignments","getUnassignedEntities","CustomersDropdown","appendAddCustomer","enableSelectLocation","customerSelectors","isOpenShiftPane","setOpenShiftPane","selectedCustomer","setSelectedCustomer","id_dropdwon","customerName","closeSlidingPaneAddEditCustomer","sensorIds","calibrationState","sensorIdState","getSensor","getSensorsList","sensorStatus","getSensorsListByMembership","getSelectedSensor","selectedSensors","removeJobBacklog","listAsignedJobsBacklog","asignJobBacklogToUnit","listOwnLocations","addLocations","editLocations","assignLocations","listLocationImages","addLocationImages","removeLocationImages","completeFetchingJobsBoard","failFetchingJobsBoard","completeChangeStatusJobsBoard","failChangeStatusJobsBoard","startFetchingComments","completeFetchingComments","startAddingComment","startRemovingComment","completeFetchingBookmarks","startFetchingBookmarks","failFetchingBookmarks","updateBookmarkedStarted","updateBookmarkedCompleted","updateBookmarkedFailed","handleSearchQuery","val","UnitsDropdown","usePartialMembership","unitTypeId","meta","touched","initial","opt","app","appName","appLogoImage","appLogo","skin","routerTransition","footer","customizer","REACT_APP_CUSTOMIZER","scrollTop","availabilityUserNameService","getRoles","getPermissionGroups","getRolePermissionGroups","getScreens","updateUserStatus","getUsersListByFiltersService","getUserByAutoComplete","vehicleIds","vehicleIdState","getVehicle","getVehiclesList","vehicleStatus","getVehiclesListByMembership","isLicenseValid","getSelectedVehicle","selectedVehicles","isPartialFetchingListVehicles","isFetchingListVehicles","denyRequisitionReason","deniedCustomerReason","timesup","quotationIdState","isScheduling","isCheckingSchedule","isSettingTimesup","isApprovingDenyingManagement","getQuotation","getQuotationsSpecificList","getQuotationsList","getSelectedQuotation","selectedQuotations","isPartialFetchingListQuotations","isFetchingListQuotations","isAddingQuotation","isCopyingQuotation","isSchedulingQuotation","isSettingTimesupQuotation","isCheckingScheduleQuotation","serviceClassIdState","getServiceClass","getServiceClassList","getSelectedServiceClass","selectedServiceClasses","isFetchingListServiceClasses","isFetchingExecution","isManualTransitExecution","isChangingExecutionUnit","errorFetchingExecution","errorChangingExecutionUnit","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","isAddingWorkplan","isEditingWorkplan","contractIdState","getOrganizationContract","getOrganizationContractsList","getSelectedOrganizationContract","selectedOrganizationContracts","isPartialFetchingListOrganizationContracts","isFetchingListOrganizationContracts","templateIdState","getContractTemplate","getContractTemplatesList","getSelectedContractTemplate","selectedContractTemplates","isPartialFetchingListContractTemplates","isFetchingListContractTemplates","deleteSchedule","OfficesDropdown","appendAddOffice","isMainOffice","selectedOffice","setSelectedOffice","UncontrolledTooltip","SlidingPaneEditOffice","closeSlidingPaneEditOffice","mapHomeCenter","customerId1","initialLatitude","initialLongitude","initialLocationClassIconName","setLatitude","setLongitude","updateEditingLocation","locationClassesSelectors","closeSlidingPaneFunction","LocationClassesDropdownInput","customerId2","getDeviceAction","deviceMetricId","getDeviceMetric","getImage","reportId","getReport","startFetchingLocationClasses","completeFetchingLocationClasses","failFetchingLocationClasses","createPathComponent","ctx","_c","clusterProps","spiderLegPolylineOptions","pmIgnore","weight","opacity","removeOutsideVisibleBounds","chunkedLoading","iconCreateFunction","cluster","childCount","getChildCount","DivIcon","Point","clusterEvents","entries","propName","prop","markerClusterGroup","clearLayers","eventAsProp","clusterEvent","Children","isValidElement","leaflet","mapLayer","addLayer","instance","workplanEdit","startFetchingJob","completeFetchingJob","failFetchingJob","GeofenceShapeDropdownInput","gs","onchange","textType","TextEditorInput","DurationInput","useDays","useHours","useMinutes","useSeconds","ColorPicker","JobTypeDropdownInput","JobPriorityDropdownInput","JobStatusDropdownInput","subGeofences","FormsDropdown","UsersDropdown","ScheduleDropdown","showScheduleInformation","NoticeTypeDropdownInput","CategoriesDropdownInput","ThemeDropdown","importCustomersService","maintenanceLineIds","maintenanceLineIdState","getMaintenanceLine","getMaintenanceLinesList","maintenanceLineStatus","getMaintenanceLinesListByMembership","MaintenanceLinesByOdometer","maintenanceNoticeTypeId","getSelectedMaintenanceLine","selectedMaintenanceLines","isPartialFetchingListMaintenanceLines","isFetchingListMaintenanceLines","RadioButtonsInput","radioButton","boolean","addScheduleDescription","relativeIntervalDay","1","2","3","4","5","6","7","frequencyDescription","frequencyInterval","8","sDays","frequencyRecurrenceFactor","16","32","frequencyRelativeInterval","frequencyType","daysList","msToTime","parsed","milliseconds","minutesToTime","timeAsMilliseconds","minutesToMilliseconds","moduleIdState","dirty","getModule","getModulesList","device","deviceStatus","getSelectedModule","selectedModules","isFetchingModule","isAddingModule","isEditingModule","isRemovingModule","getSimsListDropdownService","importSIMsService","getSimsListByFiltersService","updateSimStatusService","AlreadyLeftTheOrigin","SelectAssignmentTypeTab","useAssignmentContext","stepper","updateAssignmentType","outline","alreadyLeftTheOrigin","useSharedLink","next","routeAssignmentIdState","isImportingAssignments","getRoutesAssignment","getRoutesAssignmentsListByType","getRoutesAssignmentsList","isFetchingRoutesAssignments","protocolIdState","protocolsPersistedConfig","getProtocol","getProtocolsListByMembership","getProtocolsList","isPartialFetchingListProtocols","isFetchingListProtocols","isAddingProtocol","isEditingProtocol","deleteServiceClass","getAssignedUnitsListService","listNotifications","completeFetchingJobsReport","entitiesByUser","orderByUser","failFetchingJobsReport","routeCommentIdState","isFetchingComments","errorFetchingComments","getRoutesComment","routeCheckpointId","typesRoutes","getRouteCheckpointsList","getRouteCheckpoint","getRouteCheckpointsListByRoute","getFetchingListRouteCheckpointsErrors","fillForm","listAllUserAnswersForm","ButtonTypes","SlidingPaneManualHourmeterAdjustment","handleAction","useWebtrackServiceOnAction","newHourMeter","newHourmeter","ManualHourmeterAdjustment","buttonType","useBoolean","setTrue","setFalse","useGetUnitAssets","setAssets","setIsFetching","SlidingPaneShareUnitLocation","isSlidingPaneOpen","isLinkCreated","setIsLinkCreated","showDateInput","setShowDateInput","durations","add","prev","clipboard","writeText","linkExpirationDate","receivers","durationId","SlidingPaneUnitHistoricalPositionsReport","columnInfo","background","padding","borderRadius","borderStyle","borderColor","gpsDate","margin","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","getBaseUrl","pathname","reportDataSource","dataSets","orderBy","headingArrows","ignition","isIgnitionOn","distanceAllPositions","RotatedMarker","rotationAngle","rotationOrigin","showUnitHistoryOnlyNormalPositionsMarkers","lineWidth","showUnitHistoryConsoleEventMarkers","ReportViewerButton","channelName","useEmbbededChannel","reportPath","saveUnitImage","deleteUnitImage","SlidingPaneUnitImages","addImageInitial","isLoadingUnitImages","setIsLoadingUnitImages","activeSlideImage","setActiveSlideImage","addImage","setAddImage","imageUrl","setUploadImage","saveUnitImageAsync","defaultImageValues","unitImageSave","imageTypeId","isDefault","deleteUnitImageAsync","unitImageDelete","slideId","Form","ImageUploader","cropShape","showGrid","aspect","onSuccessChangeFunction","onFailureChangeFunction","otherValues","onChangeImage","functionAfterUpload","filesPath","submitting","useGetUnitScripts","scriptsChats","setData","isFetchingScripts","useInsertUnitScript","execute","submittingSave","SlidingPaneUnitSendScripts","closeSlidingPaneSendScripts","useRerender","authUserId","newScript","fetchScriptsInterval","containerRef","firstLoad","setFirstLoad","executeSave","setExecuteSave","scriptToSave","setScriptToSave","secondary","REACT_APP_SECONDARY_COLOR","getScriptStatus","getStatusStyles","Badge","scrollHeight","sentDate","scriptDate","isProcessed","scriptTypeDescription","deviceActionDescription","Divider","scriptText","UnitFuel","measureId","measureTypeId","metricDescription","measurementUnitId","numberValue","UnitTemperature","showHistTemperature","setShowHistTemperature","showTable","setShowTable","isOpenDateRangeForm","setIsOpenDateRangeForm","isOpenSensorForm","setIsOpenSensorForm","setSensorId","setMeasureId","controlSensor","watchSensor","defaultValues","useGetUnitTemperatureHistory","formValuesSensor","formValuesDateRange","Dropdown","isDefaultPrevented","DropdownToggle","DropdownMenu","measurementUnitName","ControlChart","metricValue","upperLimit","lowerLimit","titleTooltip","bulletRadius","maxValue","minValue","SlidingPaneUnitInformation","setIsTrajectoryDisable","isFollowUnitPositionEnabled","setIsFollowUnitPositionEnabled","handleRecenterMapPosition","fetchInformationInterval","showAddImageSlidingPane","setShowAddImageSlidingPane","showHistPositionsReportSlidingPane","setShowHistPositionsReportSlidingPane","downtimeBinnacleSlideOpen","openDowntimeBinnacleSlide","showShareUnitLocationSlidingPane","setShowShareUnitLocationSlidingPane","showSendScriptsSlidingPane","setShowSendScriptsSlidingPane","showChangeStatusSlidingPane","setShowChangeStatusPane","showUnitImagesSlidingPane","setShowUnitImagesSlidingPane","previewDriverImagesSlideOpen","openPreviewDriverImagesSlide","openSpecialFunctionsSlidingPane","setOpenSpecialFunctionsSlidingPane","entityBinnacleSlideOpen","openEntityBinnacleSlide","isFetchingUnitData","setIsFetchingUnitData","isOpenModal","setIsOpenModal","shareWhatsAppLink","appMapEmbedLink","setAppMapEmbedLink","closeModal","copyLocationLinkToClipboard","intlLastEvent","userPermissions","permissionState","currentStatus","battery","useInActive","useInPeople","hidden","mainVoltage","sizeIcon","useInVehicles","isCharging","customChartTooltip","isSelectable","solarVoltage","backupBattery","doorState","coverTamperState","padlockState","padlockAuthorizationType","satellites","linealChart","gsmSignalLevel","plmn","mcc","mnc","cellNumber","trailerId","appVersion","useInAppCollapse","informationType","simCellularNumber","cellularProviderName","serialNumber","deviceImei","devicePropertyTypeId","vehicleMakerName","vehicleModelName","chasis","motor","availableIndicators","indicator","unitIndicators","unitAssetInformation","assetTypeId","assetData","followPositionButtonState","setFollowPositionButtonState","copyLatLong","alias","ButtonIconDropdown","tooltipPlacement","onlyIconDropDown","buttonIcons","iconFixed","wazeLink","whatsappLink","encodeURIComponent","googleMapsLink","useGoogleMaps","googleMapsApiKey","isEmpty","driverPhoneNumber","driverTotalFiles","ManualOdometerAdjustment","privateCode2","requireUserConfirmation","requireParameters","param","inputType","deviceActionParameterId","parameterName","parameterComments","doAction","driverBloodType","driverLicenseNumber","driverLicenseType","driverLicenseExpireDate","driverUseGlasses","driverBloodSugarProblems","SlidingPaneStartUnitDowntime","SlidingPaneDowntimeBinnacle","closeSlidingPaneDowntimeBinnacle","SlidingPanePreviewDriverImages","closeSlidingPanePreviewDriverImages","SlidingPaneEntityBinnacle","entityName","closeSlidingPaneEntityBinnacle","SlidingPaneUnitSpecialFunctions","Modal","centered","ModalHeader","overflow","href","left","rel","allowFullScreen","ModalFooter","useLocation","useMediaQuery","selectedUnitIds","useSlidingPaneUnitInformation","usePermanentPopover","initialShowSlidingPanelUnitInformationOpen","trackUnitNewWindowActive","isUnitsRotationMarkersActive","selectedUnitState","fetchPositionInterval","showUnitInformationSlidingPane","setShowUnitInformationSlidingPane","setMapPositionToUnitsBounds","zoomMapToUnit","firstUnit","initialUnitInformation","trayectoryPolyline","setTrayectoryPolyline","trajectoryPositions","setTrajectoryPositions","trajectoryParkedPositionsMarkers","setTrajectoryParkedPositionsMarkers","isTrajectoryDisable","trayectoryFetched","setTrayectoryFetched","sort","antPolyline","antPath","dashArray","pulseColor","hardwareAccelerated","prevPositions","rotationStyle","rotation","mirror","ignitionState","l","isVisible","isDataReady","isTextButton","onReportOpen","buttonClicked","setButtonClicked","channel","BroadcastChannel","isReportViewerOpen","setIsReportViewerOpen","isActive","isReportOpen","postReportData","infoHeader","tableHeaderColor","audit","partnerLogo","ds","datasets","postMessage","reportDetail","TabsContent","Card","CardBody","TabContent","tabContent","TabPane","vertical","checkbox","align","Tabs","toggleTab","TabsCardContent","paddingLeft","dependencies","setRerender","setValue","SlidingPaneEditFileName","closeSlidingPaneEditFileName","isImg","editFileName","CardImg","fileId","onSubmit","breakpoints","700","FileGallery","FilePreview","onClickImage","deleteFile","editFileNameSlideOpen","openEditFileNameSlide","objectFit","marginBottom","paddingTop","paddingBottom","textOverflow","wordWrap","maxHeight","startFetchingCurrencies","completeFetchingCurrencies","failFetchingCurrencies","getNotificationsListService","getConsoleListService","getWebServiceListService","saveNotifications","deleteNotifications","saveUserNotificationService","deleteUserNotificationService","additionalActions","additionalOnError","setResponse","setError","res","newRes","es","alertsEs","oldEs","vehicleFueli18n","workplansi18n","routesi18n","fileUploadi18n","mapi18n","operatorsi18n","organizationsi18n","divisionsi18n","subdivisionsi18n","agentsi18n","serviceClassesi18n","modulesi18n","vehiclesi18n","assetsi18n","usersi18n","simsi18n","locationi18n","driveri18n","sensorsi18n","unitsi18n","schedulesi18n","vehicleMaintenancei18n","maintenanceLinesi18n","paymentMethodsi18n","formsi18n","geofencesi18n","jobsi18n","safeDriveri18n","dashboardi18n","trackingUnitsi18n","reportsi18n","peoplei18n","notificationsi18n","telemetryi18n","operationsi18n","groupsi18n","consolei18n","contractsi18n","customersi18n","entitiesi18n","contractTemplatesi18n","quotationsi18n","officesi18n","optimizationsi18n","businessPartneri18n","protocolsi18n","etaModeli18n","newObj","replaceUnit","en","alertsEn","oldEn","notificationi18n","menuMessages","messagesEs","userMessagesEs","messagesEn","userMessagesEn","Context","createContext","IntlProviderWrapper","localStorageLang","messages","setMessages","loadCldr","numberingSystems","gregorian","numbers","timeZoneNames","weekData","messageEsGrid","messageEsDateTimePicker","Provider","switchLanguage","lang","defaultLocale","resetDropdown","monitoringUserSelectors","componentKey","userAccessLevel","startFetchingTimeZones","completeFetchingTimeZones","failFetchingTimeZones","getBrandsList","getBrand","isFetchingListBrands","haveBrandsBeenFetched","countryId","countryIds","getCountriesList","getCountry","isFetchingListCountries","assignmentByDate","idBySchedule","startFetchingBrands","completeFetchingBrands","failFetchingBrands","providedCoordinates","GeometryCollection","geometries","vertex","commentIdState","getWorkplansComment","getWorkplansCommentsListByFilters","getWorkplansCommentsList","isFetchingWorkplansComments","editTrackingUnits","startFetchingConfigurations","completeFetchingConfigurations","failFetchingConfigurations","startFetchingModels","completeFetchingModels","failFetchingModels","startFetchingVehicleMakers","completeFetchingVehicleMakers","failFetchingVehicleMakers","startFetchingVehicleModels","completeFetchingVehicleModels","failFetchingVehicleModels","injectIntl","locationClassesActions","setRotationAngle","setRotationOrigin","startFetchingInsuranceCompanies","completeFetchingInsuranceCompanies","failFetchingInsuranceCompanies","startFetchingInsuranceAgents","completeFetchingInsuranceAgents","failFetchingInsuranceAgents","startFetchingSensorBrands","completeFetchingSensorBrands","failFetchingSensorBrands","startFetchingSensorModels","completeFetchingSensorModels","failFetchingSensorModels","startFetchingSensorMeasures","completeFetchingSensorMeasures","failFetchingSensorMeasures","clearSensorMeasures","jobsBacklog","jobIds","jobIdState","isRescheduling","jobsBacklogPersistedConfig","getJobBacklog","SlidingPaneManualOdometerAdjustment","distanceMeasure","parser","SimpleAlertMessage","newOdometer","createImage","Image","setAttribute","getRadianAngle","degreeValue","getCroppedImg","imageSrc","pixelCrop","fileType","canvas","getContext","maxSize","safeArea","sqrt","translate","rotate","drawImage","getImageData","putImageData","y","toDataURL","dataUrlToFile","dataUrl","blob","File","getRotatedImage","toBlob","URL","createObjectURL","readFile","reader","FileReader","readAsDataURL","ORIENTATION_TO_ANGLE","baseStyle","flex","borderWidth","activeStyle","acceptStyle","rejectStyle","showPreview","buttonConfirmTextId","buttonCancelTextId","dragndropTextId","uploadTextId","fileTypes","useDropzone","maxFiles","acceptedFiles","getRootProps","fileRejections","getInputProps","isDragActive","isDragAccept","isDragReject","onFileChange","imageDataUrl","getOrientation","orientation","setCroppedImage","setImageSrc","setFileType","setFileName","crop","setCrop","setRotation","setZoom","croppedAreaPixels","setCroppedAreaPixels","croppedImage","isLoadingImage","setIsLoadingImage","onCropComplete","croppedArea","uploadImage","Headers","append","FormData","jsonResponse","responseAfterUpload","onCropChange","onRotationChange","onZoomChange","Slider","aria-labelledby","getRouteExecutionsReportService","getRouteExecutionService","getRouteExecutionsMonitorService","getRouteReportService","shareRouteExecutionService","manualTransitRouteExecutionService","startRouteExecutionService","setIsExecutingAction","newRouteStatus","pauseRouteExecutionService","finalizeRouteExecutionService","completeRouteExecutionService","cancelRouteExecutionService","removeRouteExecutionService","getSharedLinkRoutesService","webpackContext","req","webpackContextResolve","__webpack_require__","exports","getFuelTanksAndSealTypes","getVehiclesListDropdownService","getBrandsAndModelsService","saveBrandService","saveModelService","deleteBrandService","deleteModelService","importVehiclesService","getUnitsAssetsService","getAvailableSensorsService","getFuelTanksService","getAssetsTemperatureAreas","getAssetTypes","pinActive","setPin","pills","tab","IconTag","IconFeather","active","checkboxComponent","usePin","getModulesDropdown","importModulesService","updateModuleStatusService","getModulesListByFiltersService","saveWorkplanAssignmentByScheduleService","saveWorkplanAssignmentByDateTimeService","iconSelected","setIsOpen","tooltipOptionsOpen","setTooltipOptionsOpen","activeIcon","setActiveIcon","renderIconItem","buttonIcon","tooltipmessage","prevState","toggleTooltip","caret","right","geofencesAssign","forceUseMapquestMaps","forceUseGoogleMaps","forceUseHereMaps","forceUseBingMaps","mapquestConsumerKey","osmmap","gmRoadmap","gmHybrid","gmSatellite","gmTerrain","gmTraffic","bing","bing_satelite","bing_hibrido","here_layer","here_satelite_layer","mqOsm","mqHybrid","mqSatellite","mqDark","mqLight","useMapquestMaps","useBingMaps","useHereMaps","baseMapLayers","OpenStreetMap","TileLayer","attribution","hybridLayer","satelliteLayer","darkLayer","lightLayer","gridLayer","googleMutant","addGoogleLayer","bing_api_key","bingMapsApiKey","BingLayer","hereMapsAppId","hereMapsAppCode","tileLayer","app_id","app_code","layerGroup","Layers","operatorAdd","operatorEdit","operatorDelete","organizationAdd","organizationEdit","organizationDelete","agentAdd","agentEdit","agentDelete","deleteDivision","subdivisionAdd","subdivisionEdit","subdivisionDelete","editForms","reportForms","reportAnswerForms","addOptimizations","editOptimizations","deleteOptimizations","TableTimePicker","getValue","strictMode","enabled","floatLabelType","toDate","TrajectoryToolbar","trajectoryToolbar","postion","startFetchingPaymentMethods","completeFetchingPaymentMethods","failFetchingPaymentMethods","AppCollapse","accordion","titleKey","contentKey","blockContent","borderCard","defaultActive","openCollapse","setOpenCollapse","handleCollapseToggle","collapsed","baseUrlVehicleFuel","baseUrlEventActivity","baseUrlScheduledReports","baseUrlUnit","baseUrlNotification","getConsolidatedMileageData","getConsolidatedRunningTimeData","getConsolidatedVehicleActivity","getEventActivityDropdown","getTotalEventsActivity","getConsolidatedSummary","getAllUnitsEventsActivity","getUnitEventsActivity","getFuelSupplyHistory","getScheduledReportsList","getAvailableReports","saveScheduledReport","deleteScheduledReport","getCommunicationDiagnostics","getNotificationsReport","getNotificationsReportWithComments","getNotificationsComments","saveNotificationComment","deleteNotificationComment","cancelNotificationsService","processNotificationsService","getApiRequestReportData","getUserHistoryService","currencyId","getCurrency","getCurrenciesList","isFetchingListCurrencies","haveCurrenciesBeenFetched","SpinnerComponent","AssignmentContext","AssignmentProvider","changeStepper","setAssignmentType","setCommonValues","assignedUnits","setAssignedUnits","setAssignmentsByDate","setAssignmentsBySchedule","partialUpdatedAssignmentsByDate","setPartialUpdatedAssignmentsByDate","partialUpdatedAssignmentsBySchedule","setPartialUpdatedAssignmentsBySchedule","unitRouteAssignments","setUnitRouteAssignments","resetForms","startResetForms","schedulesSelectors","validateAssignments","assignments","validationFilters","isValidationNeeded","validationErrors","validatorErrors","resetAssignments","setStepper","updateCommonValues","revalidateUnitRouteAssignments","validatedItems","updateAssignedUnits","uniqueUnitIdValues","Set","oldStatus","removeAllAssignments","removeAllCompletedAssignments","completedAssignments","el","updateUnitRouteAssignments","providedAssignments","newAssignments","newDataIdx","newAssignment","newItems","removeUnitRouteAssignment","syncAssignmentsByDate","partialUpdates","hasOwnProperty","completionType","completionTimeByUserInSec","automaticMonitoringWhenArrivingAtOrigin","startTimeWindowInSec","customField1","customField2","customField3","customField4","customField5","customField6","Yes","isSpecialCargo","completionTimeInMinutes","syncAssignmentsBySchedule","partialUpdateSelectedAssignmentsByDate","partialChanges","partialUpdateAssignmentsByDate","partialUpdateSelectedAssignmentsBySchedule","partialUpdateAssignmentsBySchedule","DriversDropdownInput","driverSelectors","driverPhotoUrl","EventsDropdown","useGetEventActivityDropdown","eventTypes","isFetchingEventTypes","selectedEvents","changeSelectedEvents","eventType","eventPrimaryColor","appendAddSchedule","showFrequency","showExecution","filterValidNextRun","selector","hasPermission","selectedSchedule","unfilteredSchedules","closeShiftPane","closeSchedulePane","isOpenTriggerPane","am4core","am4themes_animated","dataColor","axisRanges","fillOpacity","showFullChart","customColorTooltip","domRefId","tensionX","chart","chartIsReady","setChartIsReady","memoizedData","memoizedAxisRanges","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","series3","bullet3","propertyFields","yAxis","circle","getFillFromObject","events","tooltipDataItem","dataContext","legend","scrollbarX","bottomAxesContainer","getIndex","clear","axisFill","above","invalidate","addUsersToGroup","removeUsersFromGroup","addLocationsToGroup","removeLocationsFromGroup","addWorkplansToGroup","removeWorkplansFromGroup","addUnitsToGroup","removeUnitsFromGroup","addGeofencesToGroup","removeGeofencesFromGroup","addDriversToGroup","removeDriversFromGroup","appConfiguration","valueSec","onBlurInput","customDecorators","wildcardGroups","wildcards","wildcardGroup","EditorState","createWithContent","ContentState","createFromBlockArray","htmlToDraft","contentBlocks","entityMap","editorState","setEditorState","removeWildcardKey","wildcardProps","invoke","editorStateAux","contentState","startIndex","endIndex","end","htmlValue","draftToHtml","convertToRaw","getCurrentContent","newContent","decorators","strategy","contentBlock","matchArr","wildcardsRegex","RegExp","wildcard","getText","targetRange","getSelection","newContentState","Modifier","insertText","moveSelectionToEnd","insertWildcardKey","wrapperStyle","backgroundClip","toolbarStyle","editorStyle","localization","onEditorStateChange","newEditorState","preserveSelectionOnBlur","useGetDriverImages","update","driverImages","isFetchingDriverImages","reportMileage","reportHourMeters","reportHourOpportunityCharge","reportRunningTime","reportByUnitStopSummary","reportByUnitScriptsHistory","reportConsolidatedStopSummary","reportConsolidatedUnitActivity","reportConsolidatedEventActivity","reportParkedGeofence","reportScheduledReports","reportSystemCommunicationsDiag","reportSystemNotifications","reportSystemApiConsumption","reportConsolidatedSummary","reportSystemUserHistory","reportSystemAdministrative","timeZoneId","getTimeZone","getTimeZonesList","isFetchingListTimeZones","haveTimezonesBeenFetched","getFilteredEntityTypesOptions","entityTypesOptions","userAccessLevelId","getMessageTypesStyles","getMessageTypePill","getMessageStatusPill","responseSparePart","newSparePart","confirmedSparePart","sparePartIdState","getSparePart","getSparePartsList","getSparePartsListByMembership","haveSparePartsBeenFetched","useGetDowntimeBinnacle","downtimeBinnacle","isFetchingDowntimeBinnacle","binnacle","initialDateRange","setIsReportOpen","currentDate","startDateRange","endDateRange","organizationFormTypeId","selectFirst","formSelectors","isSelectedFirst","setIsSelectedFirst","executeGetDriverImages","setExecuteGetDriverImages","fileTitle","workmanshipIdState","getWorkmanship","getWorkmanshipsListByMembership","haveWorkmanshipsBeenFetched","editContract","listContractVersions","consolidateContract","SlidingPaneAddEditContact","contactSelectors","initialValuesRedux","reduxContacts","contactStatus","unfilteredContacts","pattern","phoneNumber","birthDate","identification","nacionality","homeAddress","isShared","contactIdAux","createContact","contactIn","getOperatorContactsService","getOperatorStandardPricesService","priorities","variant","getModelsList","getModel","deleteSensor","measurementHistory","locationSensor","viewCalibrationTable","addUser","editUser","removeUser","changePasswordUser","loadRolesPermissions","editUserPermissions","loadUserPermissions","suspendUser","reactivateUser","role1000","role1001","role1002","role1003","role1005","role1009","role1012","role1015","role1016","role1020","role1023","customerAccessLevel","divisionAccessLevel","organizationAccessLevel","systemAccessLevel","agentAccessLevel","operatorAccessLevel","gpsAccessLevel","vehicleMakerId","getVehicleMakersList","getVehicleMaker","vehicleModelId","getVehicleModelsList","getVehicleModel","getVehicleModelsListByMaker","makerId","saveLocationImage","locationImageId","getLocationImages","deleteLocationImage","SlidepanelLocationImages","locationImages","setLocationImages","isLoadingLocationImages","setIsLoadingLocationImages","getLocationImagesAsync","imagePath","saveLocationImageAsync","locationImageSave","deleteLocationImageAsync","locationImageDelete","SlidepanelLocationInformation","onEditLocation","showLocationImagesSlidepanel","setShowLocationImagesSlidepanel","showAddImageSlidepanel","setShowAddImageSlidepanel","isOpenSlidingPaneEditLocation","setOpenSlidingPaneEditLocation","editingLocationLocal","setEditingLocationLocal","locationsRouteParam","updatedLocation","getAllEvents","userOrganizationId","setEventTypes","eventActivity","displayColorPicker","setDisplayColorPicker","reactCSS","swatch","popover","cover","bottom","onChangeComplete","disableAlpha","presetColors","jobTypes","jobType","GeofencesDropdownInput","subGeofence","notifId","shownAtLogin","notification","isMarkingAsRead","errorMarkingAsRead","getUserNotificationsList","getUserNotification","getPermanentUserNotifications","showToast","toastTime","getUnreadUserNotifications","isFetchingListUserNotifications","deleteModule","reactivateModule","reactivateSim","assetAdd","assetEdit","assetDelete","editDrivers","editPeople","editUsers","assignUnitsToUser","rolesPermissionsUsers","addCustomers","editCustomers","removeCustomers","editOptimization","editQuotations","followUpQuotations","webPageQuotations","sendingDiscountQuotations","getProvidersList","getProvider","getProvidersListByCountry","AbilityContext","createContextualCan","Consumer","insertBinnacleCommentService","useGetBinnacle","binnacleList","isFetchingBinnacle","getBinnacleService","auditBinnacle","fullBinnacleSorted","AuditDate","useInsertBinnacleComment","newComment","updateBinnacle","setUpdateBinnacle","valuesToSave","setValuesToSave","getBinnacleType","binnacleType","binnacleCategoryId","resolveEntityIntlLookUp","i18nLookup","resolveUnitsIntlLookUp","formatBinnacleLog","binnacleLog","i18NLookup","i18nDescription","i18NDescription","binnacleComment","resolveEntityIntlDescription","CardText","destinationId","getDestinationsList","modelName","getDestination","isFetchingListDestinations","SlidingPaneAddEditCustomer","locationPrivateCode","getValues","toLocaleTimeString","customerActions","businessName","taxId","customerAddress","customerEmails","contactName1","phone1","contactName2","phone2","contactName3","phone3","averageTime","createCustomer","createOffice","GoogleLocationsDropdownInput","userCountryCode","countryCode","countrySelectors","userCountriesIds","setGoogleLocation","getLatLngFromGoogle","geocodeByAddress","onChangeFinalGoogleLocation","place_id","REACT_APP_GOOGLE_ICON","selectProps","loadingMessage","autocompletionRequest","componentRestrictions","setContacts","SlidepanelGeofenceInformation","onEditGeofence","editingGeofenceLocal","setEditingGeofenceLocal","editingGeofenceLocalRef","onGeofenceDragend","updatedGeofence","geofencesRouteParam","bringToBack","noticeTypeOptions","noticeTypeId2","noticeTypeName","DropdownNotices","noticeType","DropDownCategories","Categorieselectors","categoryActions","connect","frequency","oneTimeDate","plus","oneTimeTime","local","recurrenceRange","sunday","utility","monday","tuesday","wednesday","thursday","friday","saturday","monthlyDay","frequencyDaily","frequencyWeekly","frequencyMonthly","frequencyDailyInterval","frequencyWeeklyInterval","isMonthlyRelative","relativeMonth","weekDaysList","frequencyDayType","stateProps","dispatchProps","ownProps","innerSelected","changeInnerSelected","shiftDays","setShiftDays","currentSchedule","scheduleShifts","daysToAdd","validDays","newDay","currentDay","newDayStartTime","newDayEndTime","currentDayStartTime","currentDayEndTime","errorDays","totalDays","shiftDay","startime","scheduleActions","saveShift","getScheduleTypes","getFrequency","getRelativeMonth","getWeekDaysList","getWeeklyFrequency","schedulePrivateCode","frequencyMonthlyInterval","noEndDate","selectedScheduleType","selectedFrequency","toISODate","toISOTime","valuesToDispatch","saveTrigger","themes","setThemes","fixedThemes","getExecution","setDowntime","useGetDowntimeReasons","downtimeReasons","isFetchingDowntimeReasons","mainStates","subMainStateId","temperatureHistory","providerIdState","getProvidersListByMembership","haveProvidersBeenFetched","noticeIdState","getNoticesList","getNotice","getNoticesListByMembership","getNoticesListByMembershipAndState","stateType","progress","massAssignment","addPerson","editPerson","removePerson","sensorConfiguration","addOffices","editOffices","removeOffices","addContract","deleteContract","addTemplate","deleteTemplate","listQuote","editQuote","addQuote","deleteQuote","denyByManagement","denyByCustomer","approveByManagement","acceptByCustomer","previewQuotation","followUpQuotation","paymentMethodId","getPaymentMethod","getPaymentMethodsList","isFetchingListPaymentMethods","havePaymentMethodsBeenFetched","getInsuranceCompaniesList","getInsuranceCompaniesListByCountry","company","getInsuranceAgentsList","getInsuranceAgentsListByCountry","sensorBrandId","getSensorBrand","getSensorBrandsList","getSensorModel","getSensorModelsBySensorBrand","getSensorModelsList","getSensorMeasuresList","getSensorMeasure","REACT_APP_TOKEN_LIFE_TIME","getPublicRouteCheckpointsListService","firstOccurrence","lack","p","noticeProgressLabel","noticeMessageFormatted","noticeMessage","progress2","noticeTypeId2Format","noticeTypeId","getPreventiveNoticesByOdometerIndicators","permissons","onAllClick","onCurrentsClick","onExpiredClick","useGetUnitSpecialFunctions","specialFunctions","setSpecialFunctions","SpecialFunctionsDropdown","existingSpecialFunctionIds","useGetSpecialFunctionsDropdown","specialFunction","SlidingPaneEditUnitSpecialFunctions","refetchSpecialFunctions","isOnMap","refetch","setRefetch","isChangingStatus","errorChangingStatus","jobsBoardPersistedConfig","byIdUsers","orderUsers","jobsReportPersistedConfig","getJob","isFetchingJob","SlidingPaneSharedLinkUnitInformation","unitImage","MainStateDate","sharedLinkRoute","isDesktop","openSharedLinkUnitInformationSlidingPane","setOpenSharedLinkUnitInformationSlidingPane","openSharedLinkUnitInformationTooltip","setOpenSharedLinkUnitInformationTooltip","setUnitPositionHistoryReady","useLiveUnitFetchInterval","startLiveUnitRerender","sharedLinkUnitLocation","unitHistoricalPositions","mapOnSlidingPane","showConsoleEvents","zoomMapToUnitMobile","wordBreak","overflowWrap","whiteSpace","libraries","MapProvider","apiKey","useJsApiLoader","scriptLoaded","isLoaded","loadError","useGoogleMapsScript","CatalogIconsOptions","optionId","DropdownIcons","DropdownCategoriesIcons","Field","createReactClass","jQuery","jquery","existingAbility","ability","Ability","subject","ThemeColors","ThemeContext","setColors","getHex","light","main","danger","warning","dark","mounted","setMounted","isRippling","setIsRippling","setCoords","rect","getBoundingClientRect","clientX","clientY","Boolean","hostname","registerLicense","LazyApp","lazy","debug","accessToken","environment","captureUncaught","captureUnhandledRejections","ErrorBoundary","ReactRouterRoute","Route","fallback","newestOnTop","serviceWorker","ready","registration","unregister"],"mappings":";g/EAyCMA,G,QAAwB,WAA2B,IAA1BC,EAAyB,uDAAjB,KAAMC,EAAW,uCACtD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACH,OAAOH,EAAQ,EAEjB,QACE,OAAOA,KA4QPI,EAAOC,YAAgB,CAC3BC,MAhTY,WAA2B,IAA1BN,EAAyB,uDAAjB,KAAMC,EAAW,uCACtC,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,KAET,KAAKA,IACH,OAAOF,EAAOM,QAAQD,MAExB,KAAKH,IACH,OAAOF,EAAOM,QAAQC,SAExB,KAAKL,IACH,OAAOF,EAAOM,QAAQR,uBAAyBA,GAAyB,EAAI,KAAOC,EAErF,KAAKG,IAGL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4RXS,KAzQW,WAA2B,IAA1BT,EAAyB,uDAAjB,KAAMC,EAAW,uCACrC,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,KAET,KAAKA,IACH,OAAOO,IAAcC,YAAUV,EAAOM,QAAQD,QAEhD,KAAKH,IACH,OAAOO,IAAcC,YAAUV,EAAOM,QAAQC,WAEhD,KAAKL,IAGL,KAAKA,IACH,OAAO,KAET,KAAKA,IAEL,KAAKA,IACH,OAAO,2BAAKH,GAAUC,EAAOM,SAC/B,KAAKJ,IACH,IAAMS,EAAU,eAAQX,EAAOM,SAG/B,OAFAM,QAAQC,IAAI,CAAEF,eAEP,2BACFZ,GADL,IAEEe,yBAA0BH,EAAWG,yBAA2B,EAAI,EACpEC,yBAA0BJ,EAAWI,yBAA2B,EAAI,EACpEC,sBAAuBL,EAAWK,sBAAwB,EAAI,EAC9DC,qBAAsBN,EAAWM,qBAAuB,EAAI,EAC5DC,kBAAmBP,EAAWO,kBAC9BC,2BAA4BR,EAAWQ,6BAI3C,KAAKjB,IACH,IAAMkB,EAAQ,eAAQpB,EAAOM,SAC7B,OAAO,2BACFP,GADL,IAEEsB,UAAWD,EAASC,UACpBC,aAAcF,EAASE,eAI3B,KAAKpB,IACH,IAAMqB,EAAevB,EAAOM,QAC5B,OAAO,2BACFP,GADL,IAEEwB,aAAcA,IAIlB,KAAKrB,IACH,IAAMsB,EAAuBxB,EAAOM,QACpC,OAAO,2BACFP,GADL,IAEEyB,qBAAsBA,IAI1B,QACE,OAAOzB,IA4MX0B,WAvMiB,WAAyB,IAAxB1B,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKC,IACH,MAAO,GAET,KAAKA,IACH,IAAMuB,EAAazB,EAAOM,QAC1B,OAAOmB,EAET,QACE,OAAO1B,IA8LX2B,kBAzLwB,WAAuC,IAAtC3B,EAAqC,uDAA7B,CAAE4B,UAAW,GAAK3B,EAAW,uCAC9D,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAMyB,EAAY3B,EAAOM,QACzB,OAAO,2BACFP,GADL,IAEE4B,cAIJ,QACE,OAAO5B,IA+KX6B,iBA1KuB,WAA4B,IAA3B7B,EAA0B,wDAAXC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IAGL,KAAKA,IACH,OAAO,EAET,KAAKA,IACH,OAAO,EAET,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyJX8B,mCArIyC,WAA4B,IAA3B9B,EAA0B,wDAAXC,EAAW,uCACpE,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4HX+B,oCArJ0C,WAA4B,IAA3B/B,EAA0B,wDAAXC,EAAW,uCACrE,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4IXgC,0BAxGgC,WAA4B,IAA3BhC,EAA0B,wDAAXC,EAAW,uCAC3D,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAGT,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8FXiC,4BAzHkC,WAA4B,IAA3BjC,EAA0B,wDAAXC,EAAW,uCAC7D,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAGT,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+GXkC,aA1FmB,WAA4B,IAA3BlC,EAA0B,wDAAXC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IAGL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+EXmC,MAzDY,WAA2B,IAA1BnC,EAAyB,uDAAjB,KAAMC,EAAW,uCACtC,OAAQA,EAAOC,MACb,KAAKC,IAGL,KAAKA,IAGL,KAAKA,IACH,OAAO,KAET,KAAKA,IACH,OAAOF,EAAOM,QAAQ4B,MAExB,QACE,OAAOnC,IA2CXoC,gBA3EsB,WAA2B,IAA1BpC,EAAyB,uDAAjB,KAAMC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IAGL,KAAKA,IACH,OAAO,KAET,KAAKA,IACH,OAAOF,EAAOM,QAAQ4B,MAExB,QACE,OAAOnC,IAgEXD,wBACAsC,eAxCqB,WAAyB,IAAxBrC,EAAuB,uDAAf,GAAIC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IAGL,KAAKA,IAGL,KAAKA,IACH,OAAO,KAET,KAAKA,IACH,MAA4CF,EAAOM,QAA3C+B,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,QAASC,EAA1B,EAA0BA,cAC1B,OAAO,2BACFxC,GADL,IAEEsC,UACAC,UACAC,kBAGJ,QACE,OAAOxC,MAsBPyC,EAAoB,CACxBC,IAAK,OACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CACT,4BACA,sCACA,qCACA,8BACA,qBAMWC,sBAAeP,EAAmBrC,GAG1C,IAAM6C,EAAc,SAACjD,GAAD,OAAWA,EAAMI,MAE/B8C,EAAU,SAAClD,GAAD,OAAWiD,EAAYjD,GAAOS,MAGxC0C,EAAe,SAACnD,GAAD,OAAWiD,EAAYjD,GAAOM,OAC7C8C,EAAsB,SAACpD,GAAD,OAAWiD,EAAYjD,GAAO6B,kBAEpDwB,EAAkC,SAACrD,GAAD,OAC7CiD,EAAYjD,GAAO+B,qCACRuB,EAAwC,SAACtD,GAAD,OACnDiD,EAAYjD,GAAO8B,oCACRyB,EAAiC,SAACvD,GAAD,OAC5CiD,EAAYjD,GAAOiC,6BACRuB,EAA+B,SAACxD,GAAD,OAAWiD,EAAYjD,GAAOgC,2BAC7DyB,EAAyB,SAACzD,GAAD,OAAWiD,EAAYjD,GAAOmC,OACvDuB,EAAgB,SAAC1D,GAAD,OAC3BiD,EAAYjD,GAAOS,KAAOwC,EAAYjD,GAAOS,KAAKkD,QAAU,MACjDC,EAAoB,SAAC5D,GAAD,OAC/BiD,EAAYjD,GAAOS,KAAOwC,EAAYjD,GAAOS,KAAKoD,IAAM,MAC7CC,EAAkB,SAAC9D,GAAD,OAC7BiD,EAAYjD,GAAOS,KAAOwC,EAAYjD,GAAOS,KAAKsD,SAAW,MAClDC,EAAc,SAAChE,GAAD,uBAAWiD,EAAYjD,GAAOS,YAA9B,QAAsC,IACpDwD,EAA2B,SAACjE,GAAD,2BAAC,eAAD,QAAC,EACnCiD,EAAYjD,GAAOS,YADe,QACP,IADO,UAElCwC,EAAYjD,GAAO0B,kBAFe,QAED,KAG1BwC,EAA0B,SAAClE,GAAD,OACrCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAK0D,SACtBlB,EAAYjD,GAAOS,KAAK0D,SAE1BC,KAAKC,iBAAiBC,kBAAkBC,UAEjCC,EAAuC,SAACxE,GAAD,OAClDiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAKgE,yBACtBxB,EAAYjD,GAAOS,KAAKgE,yBAE1B,MAEOC,EAAkC,SAAC1E,GAAD,OAC7CiD,EAAYjD,GAAOS,KAAOkE,OAAO1B,EAAYjD,GAAOS,KAAKgB,sBAAwB,MAEtEmD,EAA8B,SAAC5E,GAAD,OACzCiD,EAAYjD,GAAOS,KAAOwC,EAAYjD,GAAOS,KAAKoE,iBAAmB,MAE1DC,EAAuC,SAAC9E,GAAD,QAClDiD,EAAYjD,GAAOS,MAAsD,GAA/CwC,EAAYjD,GAAOS,KAAKsE,qBAOvCC,EAA2B,SAAChF,GAAD,OACtCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAKwE,cAAgBhC,EAAYjD,GAAOS,KAAKyE,cAC9D,CAACjC,EAAYjD,GAAOS,KAAKwE,aAAchC,EAAYjD,GAAOS,KAAKyE,eAEjE,CAAC,OAAQ,QACFC,EAAyB,SAACnF,GAAD,OACpCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAK2E,SACtBnC,EAAYjD,GAAOS,KAAK2E,SAE1B,IACOC,EAAkB,SAACrF,GAAD,OAAkC,MAAvBmD,EAAanD,IAC1CsF,EAAyB,SAACtF,GAAD,eACpCiD,EAAYjD,GAAOS,KACyB,KAAxC,UAAAwC,EAAYjD,GAAOS,YAAnB,eAAyB8E,aACvB,GADF,UAEEtC,EAAYjD,GAAOS,YAFrB,aAEE,EAAyB8E,YAAYC,MAAM,KAC7C,IAEOC,EAA4B,SAACzF,GAAD,OACvCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAKiF,eACtBzC,EAAYjD,GAAOS,KAAKiF,eAE1B,MAEOC,EAAwB,SAAC3F,GAAD,OACnCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAKmF,WACtB3C,EAAYjD,GAAOS,KAAKmF,WAE1B,MAEOC,EAA2B,SAAC7F,GAAD,OACtCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAKqF,cACtB7C,EAAYjD,GAAOS,KAAKqF,cAE1B,MAEOC,EAA2B,SAAC/F,GAAD,OACtCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAKuF,cACtB/C,EAAYjD,GAAOS,KAAKuF,cAE1B,MAEOC,EAA0B,SAACjG,GAAD,eACrCiD,EAAYjD,GAAOS,OACf,UAAAwC,EAAYjD,GAAOS,YAAnB,eAAyBe,cACvB0E,SAAQ,UAACjD,EAAYjD,GAAOS,YAApB,aAAC,EAAyBe,cAEpC,MAEO2E,EAAuB,SAACnG,GAAD,eAClCiD,EAAYjD,GAAO2B,oBACf,UAAAsB,EAAYjD,GAAO2B,yBAAnB,eAAsCC,WACpCsE,SAAQ,UAACjD,EAAYjD,GAAO2B,yBAApB,aAAC,EAAsCC,WAEjD,MAEOwE,EAA+B,SAACpG,EAAD,GAAwD,IAO3C,EAPHqG,EAA6C,EAA7CA,iBAAkBC,EAA2B,EAA3BA,qBACtE,EAIIrC,EAAyBjE,GAH3BgG,EADF,EACEA,cADF,EAEEO,WAFF,EAGEb,eAGF,MAAI,CAAC,EAAG,GAAI,GAAI,IAAIc,SAASN,SAASF,IAChCK,IAAqBC,EAChB,CACLC,WAAYF,EACZX,eAAgB,OAEVW,GAAoBC,EACrB,CACLC,WAAU,UAAEE,kBAAsCzG,EAAOsG,UAA/C,aAAE,EAAoEC,WAChFb,eAAgBY,GAEVD,GAAqBC,EAOtB,CACLC,WAAYF,EACZX,eAAgBY,GARX,CAELC,WAAY,KACZb,eAAgB,MAQb,CACLgB,yBAAyB,EACzBH,WAAY,KACZb,eAAgB,OAITiB,EAAwB,SAAC3G,GAAD,OACnCiD,EAAYjD,GAAOS,MACfwC,EAAYjD,GAAOS,KAAK8F,WACtBtD,EAAYjD,GAAOS,KAAK8F,WAE1B,MACOK,EAA+B,SAAC5G,GAAD,IAAQuF,EAAR,uDAAsB,GAAtB,OAC1CA,EAAYsB,MAAK,SAACC,GAAD,OAAaxB,EAAuBtF,GAAOwG,SAASM,OAE1DC,EAAyC,SAAC/G,GAAD,IAAQgH,EAAR,uDAAuB,GAAvB,OACpDA,EAAaR,SAASN,SAASlC,EAAYhE,GAAOgG,iBAEvCiB,EAA6B,SAACjH,GAAD,MACxC,CAAC,EAAG,GAAI,IAAIwG,SAASN,SAASlC,EAAYhE,GAAOgG,iBAEtCkB,EAAiC,SAAClH,GAAD,IAAQuF,EAAR,uDAAsB,GAAtB,OAC5CA,EAAY4B,OAAM,SAACL,GAAD,OAAaxB,EAAuBtF,GAAOwG,SAASM,OAE3DM,GAAwB,SAACpH,GAAD,OAAWiD,EAAYjD,GAAOqC,gBAoBtDgF,GAAiB,SAACrH,GAAW,IAAD,gCACjCsH,EAAQ,UAAGrE,EAAYjD,UAAf,iBAAG,EAAoBS,YAAvB,aAAG,EAA0B8G,eACrCC,EAAQ,UAAGvE,EAAYjD,UAAf,iBAAG,EAAoBS,YAAvB,aAAG,EAA0BgH,eAE3C,MAAO,CACLH,WACAE,WACAE,OAAM,UAAEzE,EAAYjD,UAAd,iBAAE,EAAoBS,YAAtB,aAAE,EAA0BkH,aAClCC,YAAW,UAAE3E,EAAYjD,UAAd,iBAAE,EAAoBS,YAAtB,aAAE,EAA0BoH,kBACvCC,UAAS,UAAE7E,EAAYjD,UAAd,iBAAE,EAAoBS,YAAtB,aAAE,EAA0BsH,gBACrCC,MAAK,UAAE/E,EAAYjD,UAAd,iBAAE,EAAoBS,YAAtB,aAAE,EAA0BwH,YACjCC,KAAI,UAAEjF,EAAYjD,UAAd,iBAAE,EAAoBS,YAAtB,aAAE,EAA0B0H,WAChCC,MAAK,UAAEnF,EAAYjD,UAAd,iBAAE,EAAoBS,YAAtB,aAAE,EAA0B4H,YACjCC,YAAY,GAAD,OAAKhB,EAAL,YAAiBE,KAInBe,GAAa,SAACvI,GAAD,gBAOxBwI,sCAAuC,SAACC,GAAD,aACrCA,GAAgD,IAAtC,UAAAzE,EAAYhE,UAAZ,eAAoB0I,gBAAsB,KAAO,MAI7DC,0CAA2C,SAACC,GAAD,aACzCA,GAAoD,IAAtC,UAAA5E,EAAYhE,UAAZ,eAAoB0I,gBAAsB,MAAQ,IAIlEG,sCAAuC,SAACC,GAAD,aACrCA,GAAgE,IAAtC,UAAA9E,EAAYhE,UAAZ,eAAoB0I,gBAAsB,KAAO,MAG7EK,0CAA2C,SAACD,GAAD,aACzCA,GAAgE,IAAtC,UAAA9E,EAAYhE,UAAZ,eAAoB0I,gBAAsB,MAAQ,IAa9EM,sCAAuC,SAACC,GAAD,aACrCA,GAA6C,IAAtC,UAAAjF,EAAYhE,UAAZ,eAAoB0I,gBAAsB,QAAU,IAI7DQ,sCAAuC,SAACC,GAAD,aACrCA,GAAgE,IAAtC,UAAAnF,EAAYhE,UAAZ,eAAoB0I,gBAAsB,QAAU,IAIhFU,sCAAuC,SAACC,GAAD,aACrCA,GAA4C,IAAtC,UAAArF,EAAYhE,UAAZ,eAAoB0I,gBAAsB,EAAI,UAItDY,sCAAuC,SAACH,GAAD,aACrCA,GAAgE,IAAtC,UAAAnF,EAAYhE,UAAZ,eAAoB0I,gBAAsB,EAAI,UAQ1Ea,yCAA0C,SAACC,GAAD,aACxCA,GAAqD,IAAtC,UAAAxF,EAAYhE,UAAZ,eAAoB0I,gBAAsB,QAAW,IAItEe,yCAA0C,SAACC,GAAD,aACxCA,GAA8D,IAAtC,UAAA1F,EAAYhE,UAAZ,eAAoB0I,gBAAsB,QAAW,IAI/EiB,8CAA+C,SAACD,GAAD,aAC7CA,GAA8D,IAAtC,UAAA1F,EAAYhE,UAAZ,eAAoB0I,gBAAsB,QAAW,GAAK,MAtE5D,+DA2EuB,SAACgB,GAAD,OACtB,IAAvBA,KA5EsB,2DAoFmB,SAACE,GAAD,aACH,IAAtC,UAAA5F,EAAYhE,UAAZ,eAAoB0I,gBAA2B,EAAJkB,EAAS,EAAI,GAAKA,KArFvC,2DAyFmB,SAACC,GAAD,aACH,IAAtC,UAAA7F,EAAYhE,UAAZ,eAAoB0I,gBACoB,EAAI,GAAvCmB,EAA4B,IAC7BA,KA5FkB,wDAoGgB,SAACpB,GAAD,aACtCA,GAAgD,IAAtC,UAAAzE,EAAYhE,UAAZ,eAAoB0I,gBAAsB,MAAQ,MArGtC,wDAyGgB,SAACoB,GAAD,aACtCA,GAAiE,IAAtC,UAAA9F,EAAYhE,UAAZ,eAAoB0I,gBAAsB,MAAQ,MA1GvD,+DAkHuB,SAACqB,GAAD,aAC7CA,GAA2D,IAAtC,UAAA/F,EAAYhE,UAAZ,eAAoB0I,gBAAsB,MAAQ,MAnHjD,+DAuHuB,SAACsB,GAAD,aAC7CA,GAA6D,IAAtC,UAAAhG,EAAYhE,UAAZ,eAAoB0I,gBAAsB,MAAQ,MAxHnD,+DAqIuB,SAACuB,GAAD,eACP,IAAtC,UAAAjG,EAAYhE,UAAZ,eAAoB0I,gBAChBuB,EAAW,OAC2B,IAAtC,UAAAjG,EAAYhE,UAAZ,eAAoB0I,gBACpBuB,EAAW,MACXA,KA1IkB,+DA8IuB,SAACC,GAAD,eACP,IAAtC,UAAAlG,EAAYhE,UAAZ,eAAoB0I,gBACK,OAArBwB,EACsC,IAAtC,UAAAlG,EAAYhE,UAAZ,eAAoB0I,gBACC,MAArBwB,EACAA,KAnJkB,+DAuJuB,SAACC,GAAD,eACP,IAAtC,UAAAnG,EAAYhE,UAAZ,eAAoB0I,gBACH,OAAbyB,EACsC,IAAtC,UAAAnG,EAAYhE,UAAZ,eAAoB0I,gBACN,OAAbyB,EAAuB,MACxBA,KA5JkB,+DAgKuB,SAACD,GAAD,eACP,IAAtC,UAAAlG,EAAYhE,UAAZ,eAAoB0I,gBAChBwB,EAAqB,OACiB,IAAtC,UAAAlG,EAAYhE,UAAZ,eAAoB0I,gBACnBwB,EAAqB,OAAU,MAChCA,KArKkB,2DAiLmB,SAACE,GAAD,aACzCA,GAAoD,IAAtC,UAAApG,EAAYhE,UAAZ,eAAoB0I,gBAAsB,OAAS,MAlL3C,2DAsLmB,SAAC2B,GAAD,aACzCA,GAA6D,IAAtC,UAAArG,EAAYhE,UAAZ,eAAoB0I,gBAAsB,OAAS,MAvLpD,2DA2LmB,SAAC4B,GAAD,aACzCA,GAAuD,IAAtC,UAAAtG,EAAYhE,UAAZ,eAAoB0I,gBAAsB,EAAI,WA5LzC,2DAgMmB,SAAC2B,GAAD,aACzCA,GAA6D,IAAtC,UAAArG,EAAYhE,UAAZ,eAAoB0I,gBAAsB,EAAI,WAjM/C,GAqMb6B,GAAuB,SAACvK,GAAD,OAAWiD,EAAYjD,GAAOkC,cAGrDsI,GAAqB,SAACxK,GAAD,OAAWiD,EAAYjD,GAAOoC,iBAGnDqI,GAA2B,SAACzK,GAAD,OAAWiD,EAAYjD,GAAOD,wB,8BC9vBtE,6EAII2K,EAJJ,SAMO,SAASC,EAAT,GAA2C,IAAbC,EAAY,EAAZA,SAEnC,OADAF,EAAOG,cACAD,EAIF,SAASE,IACd,OAAOJ,I,iCCbT,0uCAIO,IAAMK,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAA8B,8BAC9BC,EAAkC,kCAElCC,EAAgC,gCAEhCC,EAA0C,0CAC1CC,EACX,4CAEWC,EAAwB,wBACxBC,EAA8B,8BAC9BC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EACX,6CACWC,EACX,+CACWC,EACX,4CAEWC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EACX,oDACWC,EACX,sDACWC,EACX,mDAEWC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EACX,+CACWC,EACX,iDACWC,EACX,8CAEWC,EAA+B,gC,yGC/D/BC,EAAU,CACrB,eAAgB,mBAChBC,OAAQ,oB,mDCAGC,EAAc,SAAIC,GAC7B,OAAO,IAAIC,SAAW,SAACC,GAAD,OAAaA,EAAQF,OCgC9BG,E,kDAbb,aAAe,IAAD,8BACZ,cAAM,CAAEC,QAASC,IAAcR,aAJjCS,mBAGc,IAFdC,kBAEc,IAIdC,iBAAmB,SAACF,GAClB,EAAKA,cAAgBA,GALT,EAQdG,iBAAmB,SAACF,GAClB,EAAKA,aAAeA,GATR,E,UDhBhB,WAGE,WAAYG,GAAc,yBAF1BC,aAEyB,EACvBC,KAAKD,QAAUE,IAAMC,OAAOJ,GAJhC,uFAOE,WAAmBK,EAAchO,GAAjC,eAAAiO,EAAA,sEACyBJ,KAAKD,QAAQM,IAAIF,EAAM,CAC5ClB,QAAS,CAAEqB,cAAc,UAAD,OAAYnO,MAFxC,cACQoO,EADR,yBAISpB,EAAYoB,EAASnB,OAJ9B,gDAPF,oHAcE,WAAae,EAAchO,GAA3B,eAAAiO,EAAA,sEACyBJ,KAAKD,QAAQM,IAAIF,EAAM,CAC5ClB,QAAS,CAAEqB,cAAc,UAAD,OAAYnO,IACpCqO,aAAc,gBAHlB,cACQD,EADR,yBAKSpB,EAAYoB,EAASnB,OAL9B,gDAdF,iHAsBE,WAAae,EAAcL,GAA3B,eAAAM,EAAA,sEACyBJ,KAAKD,QAAQM,IAAOF,EAAML,GADnD,cACQS,EADR,yBAESpB,EAAeoB,EAASnB,OAFjC,gDAtBF,mHA2BE,WAAYe,EAAc/N,GAA1B,eAAAgO,EAAA,sEACyBJ,KAAKD,QAAQU,MAAMN,EAAM/N,GADlD,cACQmO,EADR,yBAESpB,EAAYoB,EAASnB,OAF9B,gDA3BF,kHAgCE,WAAoBe,EAAc/N,EAAc0N,GAAhD,eAAAM,EAAA,sEACyBJ,KAAKD,QAAQW,KAAKP,EAAM/N,EAAS0N,GAD1D,cACQS,EADR,yBAESpB,EAAeoB,EAASnB,OAFjC,gDAhCF,mHAqCE,WAAUe,GAAV,+BAAAC,EAAA,6DAAwBhO,EAAxB,+BAAuC,GAAI0N,EAA3C,gCACyBE,KAAKD,QAAQY,IAAIR,EAAM/N,EAAS0N,GADzD,cACQS,EADR,yBAESpB,EAAYoB,EAASnB,OAF9B,gDArCF,kHA0CE,WAAae,GAAb,eAAAC,EAAA,sEACyBJ,KAAKD,QAAQa,OAAOT,GAD7C,cACQI,EADR,yBAESpB,EAAYoB,EAASnB,OAF9B,gDA1CF,gE,0DEkHMyB,EAAoB,SAACC,EAAgChP,GACzD,OAAQgP,GACN,IAAK,eACH,MAAM,UAAN,OAAiBhP,EAAjB,6BACF,IAAK,aACH,MAAM,UAAN,OAAiBA,EAAjB,0BACF,IAAK,iBACH,MAAM,UAAN,OAAiBA,EAAjB,qBACF,IAAK,eACH,MAAM,UAAN,OAAiBA,EAAjB,kBACF,QACE,MAAO,0BA0KPiP,EAAiB,SAACD,EAAgChP,GACtD,OAAQgP,GACN,IAAK,eACH,MAAM,UAAN,OAAiBhP,EAAjB,0BACF,IAAK,aACH,MAAM,UAAN,OAAiBA,EAAjB,uBACF,IAAK,iBACH,MAAM,UAAN,OAAiBA,EAAjB,kBACF,IAAK,eACH,MAAM,UAAN,OAAiBA,EAAjB,eACF,QACE,MAAO,uBCzRAkP,EAAgB,SAC3BT,EACAb,EACAC,GAEA,GAAID,EAAe,CACjB,MAAwDA,EAAhDuB,oBAAR,MAAuB,IAAvB,IAAwDvB,EAA3BwB,uBAA7B,SACMC,EAAmC,CACvCC,OAAQzE,cAAU0E,cAAc,CAC9BC,GAAI5B,EAAc0B,SAEpBG,KAAM7B,EAAc6B,KACpBT,WAAYpB,EAAcoB,WAC1BG,aAAgBC,EAAkBD,OAAeO,EACjDC,cAAe/B,EAAc+B,eAG/B,OAAQ/B,EAAc5N,QACpB,IAAK,UDsF8B,SAACgO,GACxC,IAAM4B,EAAYb,EAAkBf,EAAOgB,WAAY,WAEjDa,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAO,IACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,ICpHZC,CAAiC5B,GACjC,MACF,IAAK,UDgL8B,SAACrB,GACxC,IAAM4B,EAAYb,EAAkBf,EAAOgB,WAAY,WAEjDa,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOmB,aACdiB,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,IC9MZC,CAAiC5B,GACjC,MACF,IAAK,QDmH6B,SAACrB,GACvC,IAAM4B,EAAYb,EAAkBf,EAAOgB,WAAY,UAEjDa,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOmB,aACdiB,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,ICjJZC,CAAgC5B,GAChC,MACF,IAAK,SD6M6B,SAACrB,GACvC,IAAM4B,EAAYb,EAAkBf,EAAOgB,WAAY,UAEjDa,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOmB,aACdiB,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,IC3OZC,CAAgC5B,GAChC,MACF,IAAK,SACCzB,EAAc+B,gBD+Ie3B,EC/IgCqB,EDgJvEU,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKlC,EAAO2B,eAChBQ,MAAOnC,EAAOmB,aACdiB,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,MAnBoB,IAAChD,ECxIvC,OAHA,OAAIH,QAAJ,IAAIA,OAAJ,EAAIA,EAAcqD,gBAAerD,EAAaqD,cAAczC,EAASnB,MAG9DmB,GAGI0C,EAAc,SACzBjP,EACA0L,EACAC,GACI,IAAD,EDCkCG,ECAvB+B,IAAKqB,MAAM,CACvBb,OAAO,EACPD,SAAU,UACVD,mBAAmB,EACnBF,MAAO,MA6BL,GA1BJ,OAAQjO,QAAR,IAAQA,GAAR,UAAQA,EAAOuM,gBAAf,OAAQ,EAAiB4C,OA0BjBzD,EAAe,CACjB,IAAMyB,EAAmC,CACvCC,OAAQzE,cAAU0E,cAAc,CAC9BC,GAAI5B,EAAc0B,SAEpBG,KAAM7B,EAAc6B,KACpBT,WAAYpB,EAAcoB,WAC1BsC,WAAqC,WAAzB1D,EAAc5N,OAAsB,IAAO4N,EAAc0D,WACrEC,mBAAoB3D,EAAc2D,oBAGpC,OAAQ3D,EAAc5N,QACpB,IAAK,UDkMuB,SAACgO,GACrC,IAAM4B,EAAYX,EAAejB,EAAOgB,WAAY,WAE9Ca,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOsD,WACdlB,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,ICxNRC,CAA8B5B,GAC9B,MACF,IAAK,UDqPuB,SAACrB,GACrC,IAAM4B,EAAYX,EAAejB,EAAOgB,WAAY,WAE9Ca,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOsD,WACdlB,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,IC3QRC,CAA8B5B,GAC9B,MACF,IAAK,SD6QsB,SAACrB,GACpC,IAAM4B,EAAYX,EAAejB,EAAOgB,WAAY,UAE9Ca,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOsD,WACdlB,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,ICnSRC,CAA6B5B,GAC7B,MACF,IAAK,QDoNsB,SAACrB,GACpC,IAAM4B,EAAYX,EAAejB,EAAOgB,WAAY,UAE9Ca,EACc,MAAlB7B,EAAO8B,QACHjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,OAAQtB,EAAOsB,OAAQG,KAAMzB,EAAOyB,OAExCzB,EAAO8B,QAEbC,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOnC,EAAOsD,WACdlB,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,IC1ORC,CAA6B5B,GAK7B,MACF,IAAK,SACCzB,EAAc2D,qBD9DSvD,EC8DyCqB,ED7D9EU,IAAKC,KAAK,CACRC,KAAM,QACNC,KAAK,GAAD,OAAKlC,EAAOuD,oBAChBpB,MAAOnC,EAAOsD,WACdlB,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,MCoDlB,OAHA,OAAInD,QAAJ,IAAIA,OAAJ,EAAIA,EAAc2D,cAAa3D,EAAa2D,YAAYtP,GAGjDqL,QAAQkE,OAAOvP,IChJlBwP,EAAe,I,MAAIjE,GAEnBkE,EAAU,CAAC,OAAQ,MAAO,U,wCCKnBC,EAAoB,uCAAG,WAAO5D,EAAa6D,GAApB,SAAAvD,EAAA,6DAClC,OAAIuD,QAAJ,IAAIA,OAAJ,EAAIA,EAASxR,SACX2N,EAAOb,QAAQqB,cAAf,wBAAyCqD,QAAzC,IAAyCA,OAAzC,EAAyCA,EAASxR,QAFlB,6CAKtB2N,GALsB,IAKdV,KAAMwE,YAAiB,OAAC9D,QAAD,IAACA,OAAD,EAACA,EAAQV,SALlB,2CAAH,wDCgBlB,KACbyE,6BAtBmC,SAACC,EAAYN,GFGhDA,EAAazD,QAAQgE,aAAaC,QAAQC,KACxC,SAACnE,GAIC,OAHI2D,EAAQ/K,MAAK,SAACwL,GAAD,aAAOA,KAAC,UAAKpE,EAAOqE,cAAZ,aAAK,EAAeC,kBAGtCtE,KAET,SAAC9L,GAEC,OAAOqL,QAAQkE,OAAOvP,MAI1BwP,EAAazD,QAAQgE,aAAaxD,SAAS0D,KACzC,SAACI,GAKC,OAJIZ,EAAQ/K,MAAK,SAACwL,GAAD,aAAOA,KAAC,UAAKG,EAAcvE,OAAOqE,cAA1B,aAAK,EAA6BC,kBAIpDC,KAET,SAACrQ,GAEC,OAAOqL,QAAQkE,OAAOvP,MAI1BwP,EAAazD,QAAQgE,aAAaC,QAAQC,KACxC,SAACnE,GAIC,OAHI2D,EAAQ/K,MAAK,SAACwL,GAAD,aAAOA,KAAC,UAAKpE,EAAOqE,cAAZ,aAAK,EAAeC,kBAGtCtE,KAET,SAAC9L,GAEC,OAAOqL,QAAQkE,OAAOvP,MAI1BwP,EAAazD,QAAQgE,aAAaxD,SAAS0D,KACzC,SAACI,GAKC,OAJIZ,EAAQ/K,MAAK,SAACwL,GAAD,aAAOA,KAAC,UAAKG,EAAcvE,OAAOqE,cAA1B,aAAK,EAA6BC,kBAIpDC,KAET,SAACrQ,GAEC,OAAOqL,QAAQkE,OAAOvP,MEnD1BwP,EAAazD,QAAQgE,aAAaC,QAAQC,KACxC,SAACK,GAAe,IAAD,EACPX,EAAO,UAAGG,EAAMS,kBAAT,aAAG,EAAkBtS,KAClC,OAAOyR,EAAqBY,EAAMX,MAEpC,SAAC3P,GACC,OAAOqL,QAAQkE,OAAOvP,MAG1BwP,EAAazD,QAAQgE,aAAaxD,SAAS0D,KACzC,SAAC1D,GACC,OAAOS,EAAcT,EAAUiD,EAAa9D,cAAe8D,EAAa7D,iBAE1E,SAAC3L,GACC,OAAOiP,EAAYjP,EAAOwP,EAAa9D,cAAe8D,EAAa7D,oB,2kBCXnE6E,GAAe,CACnBC,MAAOC,KAAYC,OAAOF,MAC1BG,cAT2B,WAC3B,IAAMC,EAAOC,OAAOC,aAAaC,QAAQ,iBAEzC,OAAOH,EAAOI,KAAKC,MAAML,GAAQH,KAAYC,OAAOQ,KAAKC,YAM1CC,GACfC,WAAYZ,KAAYC,OAAOQ,KAAKI,SACpCC,WAAYd,KAAYC,OAAOQ,KAAKM,SACpCC,aAAchB,KAAYC,OAAOe,cAqBpBC,GAlBO,WAAmC,IAAlC9T,EAAiC,uDAAzB2S,GAAc1S,EAAW,uCACtD,OAAQA,EAAOC,MACb,IAAK,uBACH,OAAO,2BAAKF,GAAZ,IAAmB6T,aAAc5T,EAAOM,UAC1C,IAAK,wBAEH,OADA0S,OAAOC,aAAaa,QAAQ,gBAAiB9T,EAAOM,SAC7C,2BAAKP,GAAZ,IAAmB+S,cAAe9S,EAAOM,UAC3C,IAAK,qBACH,OAAO,2BAAKP,GAAZ,IAAmByT,WAAYxT,EAAOM,UACxC,IAAK,qBACH,OAAO,2BAAKP,GAAZ,IAAmB2T,WAAY1T,EAAOM,UACxC,IAAK,aACH,OAAO,2BAAKP,GAAZ,IAAmB4S,MAAO3S,EAAOM,UACnC,QACE,OAAOP,I,sCChCE,IACb,CACEyP,GAAI,kBACJuE,MAAO,kBACP9D,KAAM,eAAC,KAAD,CAAM+D,KAAM,KAClB1O,YAAa,GACb2O,SAAU,QACVC,QAAS,sB,UCHPxB,GAAe,CACnByB,YAAY,GAAD,oBACNC,KAAmBC,OADb,aAEND,KAAmBE,MAExBC,UAAW,GACXC,MAAO,GACPC,qBAAqB,GAkDRC,GA/CA,WAAmC,IAAlC3U,EAAiC,uDAAzB2S,GAAc1S,EAAW,uCAC/C,OAAQA,EAAOC,MACb,KAAK0U,KACH,OAAO,2BAAK5U,GAAZ,IAAmByU,MAAOxU,EAAOM,UACnC,KAAKqU,KACH,OAAO,2BACF5U,GADL,IAEEwU,UAAWvU,EAAOM,QAAQiU,UAC1BJ,YAAanU,EAAOM,QAAQ6T,YAC5BM,qBAAqB,IAEzB,KAAKE,KACH,OAAO,2BACF5U,GADL,IAEE0U,qBAAqB,IAEzB,KAAKE,KACH,OAAO,2BACF5U,GADL,IAEE0U,qBAAqB,IAEzB,KAAKE,KACH,IAAIC,EAGJ7U,EAAMoU,YAAYU,MAAK,SAAC9B,GAClBA,EAAKvD,KAAOxP,EAAOM,QAAQkP,KAC7BuD,EAAK+B,cAAgB/B,EAAK+B,aAC1BF,EAAiB7B,MAKrB,IAAMgC,EAAgBhV,EAAMwU,UAAUS,WAAU,SAAC5C,GAAD,OAAOA,EAAE5C,KAAOxP,EAAOM,QAAQkP,MAQ/E,OANuB,IAAnBuF,EACFhV,EAAMwU,UAAUU,KAAKL,GAErB7U,EAAMwU,UAAUW,OAAOH,EAAe,GAGjC,eAAKhV,GACd,QACE,OAAOA,IAOAiD,GAAc,SAACjD,GAAD,OAAWA,EAAM2U,QAG/BS,GAAmB,SAACpV,GAAD,OAAWiD,GAAYjD,GAAOwU,W,mJCnC/Ca,GAjBQhV,YAAgB,CACrCiV,gBACAC,eACAC,eACAC,eACAC,mBACAC,mBACAC,wBACAC,qBACAC,kBACAC,kBACAC,oBACAC,oBACAC,qBACAC,cCqBIC,GAAU/V,YAAgB,CAC9BD,gBACA0S,UACAuD,cACAC,wBACAC,oBACAC,uBACAC,mBACAC,WACA/B,UACAgC,YACAC,aACAC,WACAC,cACAC,cACAC,YACAC,oBACAC,WACAC,oBACAC,gBACAC,eACAC,gBACAC,cACAlC,kBACAmC,SACAC,aACAC,WACAC,YACAC,UACAC,SACAC,WACAC,eACAC,0BACAC,sBACAC,cACAC,YACAC,KAAMC,IACNC,sBACAC,kBACAC,uBACA/C,cACAgD,eACAC,qBACAC,cACAC,sBACAC,gBA6CaC,GA1CK,SAAC9Y,EAAOC,GAC1B,IAAI8Y,EAAQ,eAAQ/Y,GAEpB,IAAKC,EACH,OAAOmW,GAGLnW,EAAOC,OAAS8Y,MAElB9F,aAAa+F,WAAW,QACxB/F,aAAa+F,WAAW,YAExBrW,IAAYqW,WAAW,gBAcvBF,EAAW,CACTlB,KAFE7X,EAVF6X,KAaAC,OAHE9X,EATF8X,OAaAlB,SAJE5W,EARF4W,SAaAM,OALElX,EAPFkX,OAaAJ,UANE9W,EANF8W,UAaAC,UAPE/W,EALF+W,UAaAC,QAREhX,EAJFgX,QAaA5W,KATEJ,EAHFI,KAaAmX,UAVEvX,EAFFuX,UAaAH,MAXEpX,EADFoX,QAeJ,OAAOhB,GAAQ2C,EAAU9Y,I,gECpIdiZ,GAAQ,IAAIC,KAAOC,OAC9B,SACA,GACA,CAAEC,YAAa,YAEJ3C,GAAS,IAAIyC,KAAOG,MAAMJ,I,mDCO7BK,I,aAwCOC,I,aAOPC,I,aA0COC,I,aAOPC,I,aA6COC,I,aAOPC,I,aAkDOC,I,aAOPC,I,aA4COC,I,aAOPC,I,aAsCOC,IAtSjB,SAAUX,GAAgBtZ,GAA1B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,cAAqC,CAC9D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZrE,EAjBtB,EAiBUE,SAAYF,OACZmE,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAA+BtE,EAAQmE,IApBzD,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAA2B7Y,IA3B7C,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAA2B7Y,IApCzC,uDAwCO,SAAUqX,KAAV,kEACL,OADK,SACC6B,aAAUlb,KAA4BoZ,IADvC,wCAOP,SAAUE,GAAuBxZ,GAAjC,4FAGiB,OAHjB,SAEUqb,EAAerb,EAAOM,QAFhC,SAGuB4Z,aAAOoB,IAA2CD,GAHzE,OAImB,OADTE,EAHV,gBAIyBrB,aAAOC,oBAJhC,mCAMoB,OANpB,UAM0BD,aAAOC,iBANjC,QAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,cAAqC,CAC9D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,IACtCpO,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAsBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAjBzE,EAqBYC,aAAUH,EAAYI,IAFZrE,EAnBtB,EAmBUE,SAAYF,OACZmE,EApBV,EAoBUA,OApBV,UAsBc/L,aAAIkM,KAAsCtE,EAAQmE,IAtBhE,gCA6BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA1BlC,UA6BcrM,aAAIkM,KAAkC7Y,IA7BpD,gCAsCI,OAtCJ,0BAiCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAnCpB,UAsCUpM,aAAIkM,KAAkC7Y,IAtChD,uDA0CO,SAAUuX,KAAV,kEACL,OADK,SACC2B,aAAUlb,KAAoCsZ,IAD/C,wCAOP,SAAUE,GAAS1Z,GAAnB,oFAGmB,OAFXiZ,EAAQjZ,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,eAAsC,CAC/D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBtB,GAApB,IAA2BwC,QAAS,QAC1CtO,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM4L,EAAajb,KAAcga,EAAWnN,MAlBpD,UAmBcuB,aAAIkM,KAA4B9B,EAAMwC,QAASC,IAnB7D,QAoBQzK,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMwJ,EAAM0C,YAxBtB,wBAgCQ,OALMzZ,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAAwB9B,EAAMwC,QAASvZ,IAhCzD,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAAwB9B,EAAMwC,QAASvZ,IAzCrD,uDA6CO,SAAUyX,KAAV,kEACL,OADK,SACCyB,aAAUlb,KAAyBwZ,IADpC,wCAOP,SAAUE,GAAU5Z,GAApB,4FAGmB,OAFXiZ,EAAQjZ,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,eAAsC,CAC/D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACDtB,IAEL9L,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OAVboO,EARZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAqBQ,OADM8L,EAAcnb,KAAcga,EAAWnN,MApBrD,UAqBcuB,aAAIkM,KAA6Ba,IArB/C,QAsBQ3K,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMmM,EAAYD,YA1B5B,wBAiC6B,OAJfzZ,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA/BlC,UAiCmChB,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAOkZ,EAAMwC,YAjCrF,QAkCQ,OAlCR,SAiCgBK,EAjChB,EAiCgBA,SAjChB,UAkCcjN,aAAIkM,KAAyBe,EAAU5Z,IAlCrD,gCA4CyB,OA5CzB,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4C+Bf,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAOkZ,EAAMwC,YA5CjF,QA6CI,OA7CJ,SA4CYK,EA5CZ,EA4CYA,SA5CZ,UA6CUjN,aAAIkM,KAAyBe,EAAU5Z,IA7CjD,uDAkDO,SAAU2X,KAAV,kEACL,OADK,SACCuB,aAAUlb,KAA0B0Z,IADrC,wCAOP,SAAUE,GAAY9Z,GAAtB,sFAGmB,OAFTyb,EAAYzb,EAAOM,QAAnBmb,QADV,kBAGyBvB,aAAOC,oBAHhC,OAIyB,OADf4B,EAHV,gBAI+B7B,cAAO,SAACna,GAAD,OAAWic,IAAwBjc,EAAO0b,MAJhF,UAIUQ,EAJV,QAKQF,EALR,iBAMoB,OANpB,UAM0B7B,aAAOC,iBANjC,QAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEkB,YACvBtO,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAA8BU,IAlBhD,QAmBQxK,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMwM,EAAaN,YAvB7B,wBA+BQ,OALMzZ,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA5BlC,UA+BcrM,aAAIkM,KAA0BU,EAASvZ,IA/BrD,gCAwCI,OAxCJ,0BAmCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GArCpB,UAwCUpM,aAAIkM,KAA0BU,EAASvZ,IAxCjD,uDA4CO,SAAU6X,KAAV,kEACL,OADK,SACCqB,aAAUlb,KAA4B4Z,IADvC,wCAOP,SAAUE,GAAWha,GAArB,oFAGmB,OAFXyb,EAAUzb,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAiC8N,GAAW,CACrEpJ,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OAPboO,EARZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADMmJ,EAAQxY,KAAcga,EAAWnN,MAjB/C,UAkBcuB,aAAIkM,KAA8B9B,IAlBhD,gCAyBQ,OALM/W,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAtBlC,UAyBcrM,aAAIkM,KAA0B7Y,IAzB5C,gCAkCI,OAlCJ,0BA6BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA/BpB,UAkCUpM,aAAIkM,KAA0B7Y,IAlCxC,uDAsCO,SAAU+X,KAAV,kEACL,OADK,SACCmB,aAAUlb,KAA2B8Z,IADtC,wC,uBClTMkC,GAAW,IAAIhD,KAAOC,OACjC,YACA,GACA,CAAEC,YAAa,eAEJ9C,GAAY,IAAI4C,KAAOG,MAAM6C,I,aCMhCC,I,aAiDOC,I,aAMPC,I,aAwDOC,I,aAMPC,I,aA6COC,I,aAOPC,I,aAkDOC,I,aAOPC,I,aA2COC,IA7QjB,SAAUT,GAAmBnc,GAA7B,oGAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,OAQmB,OARnB,SAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAFtB,kBAQyByU,aAAOC,oBARhC,mCAUoB,OAVpB,UAU0BD,aAAOC,iBAVjC,QAWuB,OADX9Z,EAVZ,iBAW6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBjU,aACAb,mBAEF0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAnBnC,QAsByB,OAXboO,EAXZ,iBAsB+BA,EAAS+L,OAtBxC,WAsBYC,EAtBZ,SAuBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAvB/C,iBA6BQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAxBzE,EA4BYC,aAAUH,EAAYI,IAFZxE,EA1BtB,EA0BUK,SAAYL,UACZsE,EA3BV,EA2BUA,OA3BV,UA6Bc/L,aAAIkM,KAAkCzE,EAAWsE,EAAQtU,EAAYb,IA7BnF,gCAoCQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAjClC,UAoCcrM,aAAIkM,KAA8B7Y,IApChD,gCA6CI,OA7CJ,0BAwCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA1CpB,UA6CUpM,aAAIkM,KAA8B7Y,IA7C5C,uDAiDO,SAAUka,KAAV,kEACL,OADK,SACChB,aAAUlb,KAA+Bic,IAD1C,wCAMP,SAAUE,GAA0Brc,GAApC,wGAOiB,OAPjB,WAMQA,EAAOM,QAHT+a,EAHN,EAGMA,aACYjV,EAJlB,EAIME,WACgBD,EALtB,EAKMZ,eALN,SAOuByU,aAAOoB,IAA2CD,GAPzE,OAQ2C,OADjCE,EAPV,gBAQiDrB,aAC3CC,gCACA,CACE/T,mBACAC,yBAZR,OAgBmB,OAhBnB,SAQYC,EARZ,EAQYA,WAAYb,EARxB,EAQwBA,eARxB,UAgByByU,aAAOC,oBAhBhC,oCAkBoB,OAlBpB,UAkB0BD,aAAOC,iBAlBjC,QAmBuB,OADX9Z,EAlBZ,iBAmB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,EAAMjV,aAAYb,mBACxD0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAxBnC,QA2ByB,OARboO,EAnBZ,iBA2B+BA,EAAS+L,OA3BxC,WA2BYC,EA3BZ,SA4BUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SA5B/C,iBAkCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA7BzE,EAiCYC,aAAUH,EAAYI,IAFZxE,EA/BtB,EA+BUK,SAAYL,UACZsE,EAhCV,EAgCUA,OAhCV,UAkCc/L,aACJkM,KAAyCzE,EAAWsE,EAAQtU,EAAYb,IAnClF,gCA2CQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxClC,UA2CcrM,aAAIkM,KAAqC7Y,IA3CvD,gCAoDI,OApDJ,0BA+CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjDpB,UAoDUpM,aAAIkM,KAAqC7Y,IApDnD,uDAwDO,SAAUoa,KAAV,kEACL,OADK,SACClB,aAAUlb,KAAuCmc,IADlD,wCAMP,SAAUE,GAAYvc,GAAtB,oFAGmB,OAFXkc,EAAWlc,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB2B,GAApB,IAA8BvW,WAAY,QAChDwH,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADM+M,EAAgBpc,KAAcga,EAAWnN,MAjBvD,UAkBcuB,aAAIkM,KAA+BmB,EAASvW,WAAYkX,IAlBtE,QAoBQ5L,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMyM,EAASY,eAxBzB,wBAgCQ,OALM5a,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAA2BmB,EAASvW,WAAYzD,IAhClE,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAA2BmB,EAASvW,WAAYzD,IAzC9D,uDA6CO,SAAUsa,KAAV,kEACL,OADK,SACCpB,aAAUlb,KAA4Bqc,IADvC,wCAOP,SAAUE,GAAazc,GAAvB,0FAGmB,OAFXkc,EAAWlc,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU2B,GACrB/O,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMiN,EAAiBtc,KAAcga,EAAWnN,MAlBxD,UAmBcuB,aAAIkM,KAAgCgC,IAnBlD,QAoBQ9L,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMsN,EAAeD,eAxB/B,wBA+BgC,OAJlB5a,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BsChB,cAAO,SAACna,GAAD,OACnC8b,cAAsB9b,EAAMuW,UAAW4F,EAASvW,eAhC1D,QAkCQ,OAlCR,SA+BgBqX,EA/BhB,EA+BgBA,YA/BhB,UAkCcnO,aAAIkM,KAA4BiC,EAAa9a,IAlC3D,gCA4CwB,OA5CxB,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4C8Bf,cAAO,SAACna,GAAD,OAAW8b,cAAsB9b,EAAOmc,EAASvW,eA5CtF,QA6CI,OADMqX,EA5CV,iBA6CUnO,aAAIkM,KAA4BiC,EAAa9a,IA7CvD,uDAkDO,SAAUwa,KAAV,kEACL,OADK,SACCtB,aAAUlb,KAA6Buc,IADxC,wCAOP,SAAUE,GAAe3c,GAAzB,oFAGmB,OAFT2F,EAAe3F,EAAOM,QAAtBqF,WADV,kBAGyBuU,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAM8B,OADlB9Z,EALZ,iBAMoC6Z,cAAO,SAACna,GAAD,OAAW8b,cAAsB9b,EAAO4F,MANnF,QAOuB,OADXsX,EANZ,iBAO6B7C,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE5U,eACvBwH,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAiBQ,OAjBR,UAiBcjB,aAAIkM,KAAiCpV,IAjBnD,QAkBQsL,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMwN,EAAgBH,eAtBhC,wBA8BQ,OALM5a,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA3BlC,UA8BcrM,aAAIkM,KAA6BpV,EAAYzD,IA9B3D,gCAuCI,OAvCJ,0BAkCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GApCpB,UAuCUpM,aAAIkM,KAA6BpV,EAAYzD,IAvCvD,uDA2CO,SAAU0a,KAAV,kEACL,OADK,SACCxB,aAAUlb,KAA+Byc,IAD1C,wC,uBCzRMO,GAAS,IAAIhE,KAAOC,OAAO,WAAY,GAAI,CAAEC,YAAa,iBAC1DzC,GAAW,IAAIuC,KAAOG,MAAM6D,I,2ICJ5BC,GAA4B,eAAC7a,EAAD,uDAAW,GAAX,MAAmB,CAC1DrC,KAAMC,KACNI,QAASgC,IAGE8a,GAA8B,SAACzG,EAAU0G,EAAO/W,EAAYb,GAA9B,MAAkD,CAC3FxF,KAAMC,KACNI,QAAS,CACPqW,WACA0G,QACA/W,aACAb,oBAIS6X,GAA0B,eAACpb,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAC/Fhb,KAAMC,KACNI,QAAS,CACP4B,W,0FClBSqb,GAAyB,eAACjb,EAAD,uDAAW,GAAX,MAAmB,CACvDrC,KAAMC,KACNI,QAAS,CAAEgC,aASAkb,GAAwB,eAACtb,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAC7Fhb,KAAMC,KACNI,QAAS,CACP4B,WAISub,GAAgC,eAACnb,EAAD,uDAAW,GAAX,MAAmB,CAC9DrC,KAAMC,KACNI,QAAS,CAAEgC,a,6FC2BHob,I,aAuCOC,I,aAOPC,I,aAqcOC,IAnfjB,SAAUH,GAAkB1d,GAA5B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,+BAAsD,CAC/E0E,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MATnC,QAYyB,OAPboO,EALZ,iBAY+BA,EAAS+L,OAZxC,WAYYC,EAZZ,SAaUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAb/C,iBAmBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAdzE,EAkBYC,aAAUH,EAAYI,IAFZnE,EAhBtB,EAgBUA,SAAYA,SACZiE,EAjBV,EAiBUA,OAjBV,UAmBc/L,aAAIkM,KAAiCpE,EAAUiE,IAnB7D,gCA0BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAvBlC,UA0BcrM,aAAIkM,KAA6B7Y,IA1B/C,gCAmCI,OAnCJ,0BA8BUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GAhCpB,UAmCUpM,aAAIkM,KAA6B7Y,IAnC3C,uDAuCO,SAAUyb,KAAV,kEACL,OADK,SACCvC,aAAUlb,KAA8Bwd,IADzC,wCAOP,SAAUE,GAAe5d,GAAzB,8EACgC,OADhC,SACsCka,aAAO2B,KAD7C,mCAKsC,OALtC,SAIYiC,EAAmB9d,EAAOM,QAJtC,SAK4C4Z,aAAO2B,KALnD,OAOM,OAFMkC,EALZ,OAMYC,EAAkBD,EAAwBD,GANtD,UAOYG,aACJH,EAAiBnD,KAAI,SAACuC,EAAQgB,GAE5B,IAAM7C,GAAqB,OAAN6B,QAAM,IAANA,OAAA,EAAAA,EAAQ7B,eAAgB6B,EAC7C,IAA+B,IAA3Bc,EAAgBE,GAClB,OAAQjY,SAASoV,IACf,KAAK8C,gBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLuP,sBAAgC,CAC9B9X,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLuP,6BACEnY,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,sBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLwP,KAA8C,CAC5C/X,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLwP,KACEpY,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,4BACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLyP,KAAsD,CACpDhY,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLyP,KACErY,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,mBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL0P,KAAqC,CACnCjY,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACL0P,KACEtY,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,kBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL2P,KAAoC,CAClClY,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,eACvBgB,wBAAyByW,EAAOzW,2BAI7BoI,aACL2P,KACEvY,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,eACPyX,EAAOzW,0BAGf,KAAK0X,iBACH,OAA+B,OAA3BH,EAAgBE,GAAwBrP,aAAI4P,QACpC5P,aAAI4P,KAAwCxY,SAASoV,KACnE,KAAK8C,0BACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL6P,KACE,CACEpY,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,eACvBgB,wBAAyByW,EAAOzW,yBAElCyW,EAAOyB,aAIJ9P,aACL6P,KACEzY,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,eACPyX,EAAOzW,0BAGf,KAAK0X,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAI+P,QAEJ/P,aACL+P,KAA+C3Y,SAASoV,KAE9D,KAAK8C,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLgQ,KAAwC,CACtCvY,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLgQ,KACE5Y,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,gBACH,OAA+B,OAA3BH,EAAgBE,GAAwBrP,aAAIiQ,SACpCjQ,aAAIiQ,MAAuC7Y,SAASoV,KAClE,KAAK8C,wBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAIkQ,QAEJlQ,aACLkQ,KAAuD9Y,SAASoV,KAEtE,KAAK8C,gBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLmI,KAA6C,CAC3C1Q,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLmI,KACE/Q,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,iCACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLmQ,KAAgE,CAC9D1Y,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLmQ,KACE/Y,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,eACPyX,EAAOzW,0BAGf,KAAK0X,6BAEH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLoQ,KAAwD,CACtD3Y,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,eACvBgB,wBAAyByW,EAAOzW,2BAI7BoI,aACLoQ,KACEhZ,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLqQ,KAAwC,CACtC5Y,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLqQ,KACEjZ,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,mBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAIsQ,QAEJtQ,aAAIsQ,KAA6ClZ,SAASoV,KACrE,KAAK8C,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLuQ,KAAwC,CACtC9Y,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLuQ,KACEnZ,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLwQ,KAAwC,CACtC/Y,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,eACvB6Z,OAAQpC,EAAOoC,UAIZzQ,aACLwQ,KACEpZ,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAI0Q,QAEJ1Q,aACL0Q,KAA+CtZ,SAASoV,KAE9D,KAAK8C,iBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL2Q,uBAAkC,CAChClZ,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACL2Q,8BACEvZ,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL4Q,KAA6B,CAC3BnZ,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,eACvBgB,wBAAyByW,EAAOzW,2BAI7BoI,aACL4Q,KACExZ,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,eACP,KACA,KACAyX,EAAOzW,0BAGf,KAAK0X,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAI6Q,MAEJ7Q,aACL6Q,GAA+CzZ,SAASoV,KAE9D,KAAK8C,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL8Q,KAAuC,CACrCrZ,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,eACvB6Z,OAAM,OAAEpC,QAAF,IAAEA,OAAF,EAAEA,EAAQoC,UAIbzQ,aACL8Q,KACE1Z,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,kBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACL+Q,KAAmC,CACjCtZ,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACL+Q,KACE3Z,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,kBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLgR,KAAmC,CACjCvZ,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLgR,KACE5Z,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,iBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLiR,KAAkC,CAChCxZ,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLiR,KACE7Z,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,kBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAIkR,QACDlR,aAAIkR,KAA2C9Z,SAASoV,KACtE,KAAK8C,uBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aAAImR,QACDnR,aAAImR,KAA2C/Z,SAASoV,KACtE,KAAK8C,iBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLoR,KAAkC,CAChC3Z,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLoR,KACEha,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,oBACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLqR,KAAwC,CACtC5Z,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLqR,KACEja,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,iBAGf,KAAK0Y,uBACH,OAAOtP,aACLsR,GAA6C,CAC3C7Z,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAG7B,KAAK0Y,6BACH,OAA+B,OAA3BH,EAAgBE,GACXrP,aACLuR,KAAoD,CAClD9Z,WAAY4W,EAAO5W,WACnBb,eAAgByX,EAAOzX,kBAIpBoJ,aACLuR,KACEna,SAASoV,GACT6B,EAAO5W,WACP4W,EAAOzX,sBAhb7B,QAybM,OAzbN,UAybYoJ,aAAIkM,QAzbhB,gCAgcM,OAhcN,0BA2bY7Y,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GA7btB,UAgcYpM,aAAIkM,KAA6B7Y,IAhc7C,uDAqcO,SAAU2b,KAAV,kEACL,OADK,SACCzC,aAAUlb,KAA+B0d,IAD1C,wCC9hBA,IAAMyC,GAAW,IAAInH,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7D9B,GAAY,IAAI4B,KAAOG,MAAMgH,I,gCCgBhCC,I,aA4COC,I,aAMPC,I,aAgCOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aAuDAC,I,aA0DAC,I,aAoDOC,I,aAIAC,I,aAOAC,I,aAOPC,I,aAoDOC,I,aAQPC,I,aAkBOC,IA/djB,SAAUrB,GAAmBtgB,GAA7B,oFAMyC,OANzC,EAKMA,EAAOM,QAHG8F,EAFhB,EAEIE,WACgBD,EAHpB,EAGIZ,eACQmc,EAJZ,EAIItC,OAJJ,SAM+CpF,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBARJ,gBAMUC,EANV,EAMUA,WAAYb,EANtB,EAMsBA,eAKpBoc,aACE,CACEvb,WAAYA,EACZb,eAAgBA,EAChBqc,OAAM,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAcE,OACtBC,OAAM,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAcG,OACtBC,OAAM,OAAEJ,QAAF,IAAEA,OAAF,EAAEA,EAAcI,OACtBC,OAAM,OAAEL,QAAF,IAAEA,OAAF,EAAEA,EAAcK,QAExB,CACE/Q,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZxD,EADd,EACEX,SAAYW,UACZsD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACEzD,EACAsD,EACAtU,EACAb,KACY,OAAZmc,QAAY,IAAZA,OAAA,EAAAA,EAAcO,sBAAd,OAAmCP,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAcO,uBAIvD3Q,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B7Y,OAtCrD,wCA4CO,SAAUqe,KAAV,kEACL,OADK,SACCnF,aAAUlb,KAA+BogB,IAD1C,wCAMP,SAAUE,GAA0BxgB,GAApC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBoc,aACE,CAAErG,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZxD,EADd,EACEX,SAAYW,UACZsD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAyCzD,EAAWsD,EAAQtU,EAAYb,KAG5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OA1B5D,yCAgCO,SAAUue,KAAV,kEACL,OADK,SACCrF,aAAUlb,KAAuCsgB,IADlD,wCAOP,SAAUE,GAAY1gB,GAAtB,wEACQqgB,EAAWrgB,EAAOM,QACxB8hB,aAAoB,2BACb/B,GADY,IACFgC,WAAY,OAC3B,CACEnR,cAAe,SAACzC,GACd,IAAM6T,EAAgB7hB,KAAcgO,EAASnB,MAC7C0E,GAAMkQ,SAASnH,KAA+BsF,EAASgC,WAAYC,KAErE9Q,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2BsF,EAASgC,WAAYngB,OAVvE,wCAgBO,SAAUye,KAAV,kEACL,OADK,SACCvF,aAAUlb,KAA4BwgB,IADvC,wCAOP,SAAUE,GAAa5gB,GAAvB,0EAEsB,OADdqgB,EAAWrgB,EAAOM,QAD1B,SAE4B4Z,cAAO,SAACna,GAAD,OAAW8b,IAAsB9b,EAAOsgB,EAASgC,eAFpF,OAEQE,EAFR,OAGEH,aAAoB,eACb/B,GACL,CACEnP,cAAe,SAACzC,GACd,IAAM+T,EAAiB/hB,KAAcgO,EAASnB,MAC9C0E,GAAMkQ,SAASnH,KAAgCyH,KAEjDhR,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4BwH,EAAargB,OAXhE,wCAiBO,SAAU2e,KAAV,kEACL,OADK,SACCzF,aAAUlb,KAA6B0gB,IADxC,wCAOP,SAAUE,GAAe9gB,GAAzB,0EAEmB,OADTqiB,EAAeriB,EAAOM,QAAtB+hB,WADV,SAEyBnI,cAAO,SAACna,GAAD,OAAW8b,IAAsB9b,EAAOsiB,MAFxE,OAEQhC,EAFR,OAGEoC,aAAsB,eACfpC,GACL,CACEnP,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAiCsH,KAElD7Q,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6BsH,EAAYngB,OAVhE,wCAgBO,SAAU6e,KAAV,kEACL,OADK,SACC3F,aAAUlb,KAA+B4gB,IAD1C,wCAOP,SAAUE,GAAmBhhB,GAA7B,kFAGmB,OAFX0iB,EAAc1iB,EAAOM,QAD7B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUmI,GACrBvV,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAkBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SACX2K,EAAWnN,KAAKqV,SAAWD,EAAYC,QApB/C,iBAsBQ,OAtBR,UAsBc9T,aAAIkM,KAAqC2H,IAtBvD,QAwBQzR,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4CA1BhB,wBAqCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAAiC7Y,IArCnD,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAiC7Y,IAhD/C,uDAoDO,SAAU+e,KAAV,kEACL,OADK,SACC7F,aAAUlb,KAAoC8gB,IAD/C,wCAOP,SAAUE,GAA0BlhB,GAApC,kFAGmB,OAFX4iB,EAAgB5iB,EAAOM,QAD/B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iCAAwD,CACjF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUqI,GACrBzV,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAkBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SAnBnB,iBAsBQ,OAtBR,UAsBcjB,aAAIkM,KAA4C6H,IAtB9D,QAwBQ3R,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,kDA1BhB,wBAqCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,uDAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAAwC7Y,IArC1D,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,uDAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAwC7Y,IAhDtD,uDAuDA,SAAUif,GAA+BnhB,GAAzC,gFAKmB,OAHjBY,QAAQC,IAAI,oBAAqBb,EAAOM,SAF1C,kBAKyB4Z,aAAOC,oBALhC,mCAQoB,OARpB,SAQ0BD,aAAOC,iBARjC,OAUuB,OAFX9Z,EARZ,iBAU6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kCAAyD,CAClF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUva,EAAOM,SAC5B6M,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OARboO,EAVZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,OAmBM7Z,QAAQC,IAAI,WAAY4Z,KAEtBhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SAtBnB,iBAyBQ,OAzBR,UAyBcjB,aAAIkM,KAA4C/a,EAAOM,UAzBrE,QA2BQ2Q,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,kDA7BhB,wBAwCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,uDAENyL,YAAaR,EAAWS,QArClC,UAwCcrM,aAAIkM,KAAwC7Y,IAxC1D,gCAmDI,OAnDJ,0BA4CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,uDAENyL,aAAc,GAhDpB,UAmDUpM,aAAIkM,KAAwC7Y,IAnDtD,uDA0DA,SAAUkf,GAA2BphB,GAArC,gFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,8BAAqD,CAC9E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUva,EAAOM,SAC5B6M,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,OAgBM7Z,QAAQC,IAAI,WAAY4Z,KAEtBhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SAnBnB,iBAsBQ,OAtBR,UAsBcjB,aAAIkM,KAA4C/a,EAAOM,UAtBrE,QAwBQ2Q,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,kDA1BhB,wBAqCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,uDAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAAwC7Y,IArC1D,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,uDAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAwC7Y,IAhDtD,uDAoDO,SAAUmf,KAAV,kEACL,OADK,SACCjG,aAAUlb,KAA2CghB,IADtD,wCAIA,SAAUI,KAAV,kEACL,OADK,SACClG,aACJlb,KACAihB,IAHG,wCAOA,SAAUI,KAAV,kEACL,OADK,SACCnG,aAAUlb,KAAoDkhB,IAD/D,wCAOP,SAAUI,GAAwBxhB,GAAlC,kFAGmB,OAFX6iB,EAAmB7iB,EAAOM,QAAQuiB,iBAD1C,kBAGyB3I,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0CAAiE,CAC1F0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUsI,GACrB1V,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAkBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SAnBnB,iBAsBQ,OAtBR,UAsBcjB,aAAIkM,KAA2C8H,IAtB7D,QAwBQ5R,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,iDA1BhB,wBAqCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,sDAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAAuC7Y,IArCzD,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,sDAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAuC7Y,IAhDrD,uDAoDO,SAAUuf,KAAV,kEACL,OADK,SACCrG,aAAUlb,KAAyCshB,IADpD,wCAQP,SAAUE,GAAkB1hB,GAA5B,wEACQqiB,EAAariB,EAAOM,QAC1BwiB,aACE,CACET,cAEF,CACEnR,cAAe,SAACzC,GACd,IAAMiM,EAAaja,KAAcgO,EAASnB,MAC1C0E,GAAMkQ,SAASnH,KAAiCL,EAAY,CAACA,EAAW2H,eAE1E7Q,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6B7Y,OAZpD,wCAkBO,SAAUyf,KAAV,kEACL,OADK,SACCvG,aAAUlb,KAA8BwhB,IADzC,wC,aChfMqB,GAAe,IAAI7J,KAAOC,OACrC,UACA,GACA,CAAEC,YAAa,aAEJ1C,GAAU,IAAIwC,KAAOG,MAAM0J,I,uBCQ9BC,I,aAoCOC,I,aAOPC,I,aAsCOC,I,aAMPC,I,aA6COC,I,aAOPC,I,aAkDOC,I,aAOPC,I,aA4COC,I,aAOPC,I,aAsCOC,IA7RjB,SAAUX,GAAiBhjB,GAA3B,oFAOyC,OAPzC,EAKMA,EAAOM,QAHG8F,EAFhB,EAEIE,WACgBD,EAHpB,EAGIZ,eACAgB,EAJJ,EAIIA,wBAJJ,SAO+CyT,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBme,aACE,CACEtd,aACAb,eACEgB,GAAoD,OAAzBJ,EAAgC,KAAOZ,GAEtE,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZpE,EADd,EACEC,SAAYD,QACZkE,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAgCrE,EAASkE,EAAQtU,EAAYb,KAGjE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4B7Y,OA9BnD,wCAoCO,SAAU+gB,KAAV,kEACL,OADK,SACC7H,aAAUlb,KAA6B8iB,IADxC,wCAOP,SAAUE,GAAwBljB,GAAlC,wFAOe,OAPf,EAMMA,EAAOM,QAJT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eACAgB,EALJ,EAKIA,wBALJ,SAOqByT,aAAOoB,IAA2CD,GAPvE,OAQyC,OADjCE,EAPR,gBAQ+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAVJ,gBAQUC,EARV,EAQUA,WAAYb,EARtB,EAQsBA,eAKpBme,aACE,CACEpI,cAAeD,EACfjV,aACAb,eACEgB,GAAoD,OAAzBJ,EAAgC,KAAOZ,GAEtE,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZpE,EADd,EACEC,SAAYD,QACZkE,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAuCrE,EAASkE,EAAQtU,EAAYb,KAGxE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmC7Y,OAhC1D,yCAsCO,SAAUihB,KAAV,kEACL,OADK,SACC/H,aAAUlb,KAAqCgjB,IADhD,wCAMP,SAAUE,GAAUpjB,GAApB,oFAGmB,OAFX6jB,EAAS7jB,EAAOM,QADxB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gBAAuC,CAChE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBsJ,GAApB,IAA4BC,SAAU,QAC5C3W,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAyBQ,OAPAmB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,mBAENC,KAAMoU,EAAOE,aAETC,EAAcvjB,KAAcga,EAAWnN,MAxBrD,UAyBcuB,aAAIkM,KAA6B8I,EAAOC,SAAUE,IAzBhE,gCAgCQ,OALM9hB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAAyB8I,EAAOC,SAAU5hB,IAhC5D,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAAyB8I,EAAOC,SAAU5hB,IAzCxD,uDA6CO,SAAUmhB,KAAV,kEACL,OADK,SACCjI,aAAUlb,KAA0BkjB,IADrC,wCAOP,SAAUE,GAAWtjB,GAArB,4FAGmB,OAFX6jB,EAAS7jB,EAAOM,QADxB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gBAAuC,CAChE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACDsJ,IAEL1W,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OAVboO,EARZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAqBQ,OADMmU,EAAexjB,KAAcga,EAAWnN,MApBtD,UAqBcuB,aAAIkM,KAA8BkJ,IArBhD,QAsBQhT,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,mBAENC,KAAMwU,EAAaF,aA1B7B,wBAiC8B,OAJhB7hB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA/BlC,UAiCoChB,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAO8jB,EAAOC,aAjCxF,QAkCQ,OAlCR,SAiCgBI,EAjChB,EAiCgBA,UAjChB,UAkCcrV,aAAIkM,KAA0BmJ,EAAWhiB,IAlCvD,gCA4C0B,OA5C1B,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4CgCf,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAO8jB,EAAOC,aA5CpF,QA6CI,OA7CJ,SA4CYI,EA5CZ,EA4CYA,UA5CZ,UA6CUrV,aAAIkM,KAA0BmJ,EAAWhiB,IA7CnD,uDAkDO,SAAUqhB,KAAV,kEACL,OADK,SACCnI,aAAUlb,KAA2BojB,IADtC,wCAOP,SAAUE,GAAaxjB,GAAvB,sFAImB,OAHT6jB,EAAW7jB,EAAOM,QAAlBujB,OACFM,EAAWN,EAAOC,SAF1B,kBAIyB5J,aAAOC,oBAJhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,OAOY+jB,EAAgBP,EAP5B,UAQ6BzJ,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE4J,aACvBhX,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAA+BoJ,IAlBjD,QAmBQlT,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,mBAENC,KAAM2U,EAAcL,aAvB9B,wBA+BQ,OALM7hB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA5BlC,UA+BcrM,aAAIkM,KAA2BoJ,EAAUjiB,IA/BvD,gCAwCI,OAxCJ,0BAmCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GArCpB,UAwCUpM,aAAIkM,KAA2BoJ,EAAUjiB,IAxCnD,uDA4CO,SAAUuhB,KAAV,kEACL,OADK,SACCrI,aAAUlb,KAA6BsjB,IADxC,wCAOP,SAAUE,GAAY1jB,GAAtB,oFAGmB,OAFXmkB,EAAWnkB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mBAAkCwW,GAAY,CACvE9R,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OAPboO,EARZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADM+T,EAASpjB,KAAcga,EAAWnN,MAjBhD,UAkBcuB,aAAIkM,KAA+B8I,IAlBjD,gCAyBQ,OALM3hB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAtBlC,UAyBcrM,aAAIkM,KAA2B7Y,IAzB7C,gCAkCI,OAlCJ,0BA6BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA/BpB,UAkCUpM,aAAIkM,KAA2B7Y,IAlCzC,uDAsCO,SAAUyhB,KAAV,kEACL,OADK,SACCvI,aAAUlb,KAA4BwjB,IADvC,wC,aC1SMW,GAAW,IAAInL,KAAOC,OACjC,YACA,GACA,CAAEC,YAAa,eAEJhD,GAAY,IAAI8C,KAAOG,MAAMgL,ICL7BC,GAAU,IAAIpL,KAAOC,OAAO,WAAY,GAAI,CAAEC,YAAa,cAC3DmL,GAAW,IAAIrL,KAAOG,MAAMiL,I,aCa/BE,I,aAwCOC,I,aAMPC,I,aA0COC,I,aAMPC,I,aAsDOC,I,aAOPC,I,aA4DOC,I,aAOPC,I,aA8COC,I,aAOPC,I,aAqDOC,IAxUjB,SAAUX,GAAmBxkB,GAA7B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZ1E,EAjBtB,EAiBUO,SAAYP,UACZwE,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAkC3E,EAAWwE,IApB/D,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAA8B7Y,IA3BhD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAA8B7Y,IApC5C,uDAwCO,SAAUuiB,KAAV,kEACL,OADK,SACCrJ,aAAUlb,KAA+BskB,IAD1C,wCAMP,SAAUE,GAA0B1kB,GAApC,4FAGiB,OAHjB,SAEUqb,EAAerb,EAAOM,QAFhC,SAGuB4Z,aAAOoB,IAA2CD,GAHzE,OAImB,OADTE,EAHV,gBAIyBrB,aAAOC,oBAJhC,mCAMoB,OANpB,UAM0BD,aAAOC,iBANjC,QAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,IACtCpO,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAsBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAjBzE,EAqBYC,aAAUH,EAAYI,IAFZ1E,EAnBtB,EAmBUO,SAAYP,UACZwE,EApBV,EAoBUA,OApBV,UAsBc/L,aAAIkM,KAAyC3E,EAAWwE,IAtBtE,gCA6BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA1BlC,UA6BcrM,aAAIkM,KAAqC7Y,IA7BvD,gCAsCI,OAtCJ,0BAiCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAnCpB,UAsCUpM,aAAIkM,KAAqC7Y,IAtCnD,uDA0CO,SAAUyiB,KAAV,kEACL,OADK,SACCvJ,aAAUlb,KAAuCwkB,IADlD,wCAMP,SAAUE,GAAY5kB,GAAtB,oFAGmB,OAFXqkB,EAAWrkB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB8J,GAApB,IAA8B/d,WAAY,QAChD6G,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBA2BQ,OATMsV,EAAgB3kB,KAAcga,EAAWnN,KAAK+X,cAlB5D,UA2BcxW,aAAIkM,KAA+BsJ,EAAS/d,WAAY8e,IA3BtE,QA6BQnU,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAM4U,EAASiB,eAjCzB,wBAyCQ,OALMpjB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAtClC,UAyCcrM,aAAIkM,KAA2BsJ,EAAS/d,WAAYpE,IAzClE,gCAkDI,OAlDJ,0BA6CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA/CpB,UAkDUpM,aAAIkM,KAA2BsJ,EAAS/d,WAAYpE,IAlD9D,uDAsDO,SAAU2iB,KAAV,kEACL,OADK,SACCzJ,aAAUlb,KAA4B0kB,IADvC,wCAOP,SAAUE,GAAa9kB,GAAvB,oGAGmB,OAFXqkB,EAAWrkB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU8J,GACrBlX,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAyBQ,OAPMyV,EAAiB9kB,KAAcga,EAAWnN,KAAK+X,cAE/CG,EAAmB/kB,KAAcga,EAAWnN,KAAKiX,UApB/D,EAwBY1J,aAAU2K,EAAkBC,IAFlBlB,EAtBtB,EAsBU5N,SAAY4N,SACZ3J,EAvBV,EAuBUA,OAvBV,UAyBc/L,aAAI6W,KAA+CnB,EAAU3J,IAzB3E,QA2BQ,OA3BR,UA2Bc/L,aAAIkM,KAAgCwK,IA3BlD,QA4BQtU,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAM8V,EAAeD,eAhC/B,wBAuCgC,OAJlBpjB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QArClC,UAuCsChB,cAAO,SAACna,GAAD,OACnC8b,IAAsB9b,EAAMqW,UAAWiO,EAAS/d,eAxC1D,QA0CQ,OA1CR,SAuCgBqf,EAvChB,EAuCgBA,YAvChB,UA0Cc9W,aAAIkM,KAA4B4K,EAAazjB,IA1C3D,gCAoD4B,OApD5B,0BA+CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjDpB,UAoDkCf,cAAO,SAACna,GAAD,OACnC8b,IAAsB9b,EAAMqW,UAAWiO,EAAS/d,eArDtD,QAuDI,OAvDJ,SAoDYqf,EApDZ,EAoDYA,YApDZ,UAuDU9W,aAAIkM,KAA4B4K,EAAazjB,IAvDvD,uDA4DO,SAAU6iB,KAAV,kEACL,OADK,SACC3J,aAAUlb,KAA6B4kB,IADxC,wCAOP,SAAUE,GAAehlB,GAAzB,sFAGmB,OAFTsG,EAAetG,EAAOM,QAAtBgG,WADV,kBAGyB4T,aAAOC,oBAHhC,OAI4B,OADlB4B,EAHV,gBAIkC7B,cAAO,SAACna,GAAD,OACnC6lB,IAA8B7lB,EAAOuG,MAL3C,UAIUuf,EAJV,QAOQ9J,EAPR,iBAQoB,OARpB,UAQ0B7B,aAAOC,iBARjC,QAUuB,OAFX9Z,EARZ,iBAU6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEjU,eACvB6G,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OARboO,EAVZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAoBQ,OApBR,UAoBcjB,aAAIkM,KAAiCzU,IApBnD,QAqBQ2K,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMoW,EAAgBP,eAzBhC,wBAiCQ,OALMpjB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA6BzU,EAAYpE,IAjC3D,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAA6BzU,EAAYpE,IA1CvD,uDA8CO,SAAU+iB,KAAV,kEACL,OADK,SACC7J,aAAUlb,KAA+B8kB,IAD1C,wCAOP,SAAUE,GAA2BllB,GAArC,oFAGmB,OAFX8lB,EAAiB9lB,EAAOM,QADhC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUuL,GACrB3Y,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAqBQ,OAHMiW,EAA+BtlB,KAAcga,EAAWnN,MAlBtE,UAqBcuB,aAAIkM,KAA8CgL,IArBhE,QAsBQ9U,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,0CAvBjD,wBA8BQ,OAJMtN,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA5BlC,UA8BcrM,aAAIkM,KAA4B+K,EAAgB5jB,IA9B9D,QA+BQ+O,6BAAiC,CAC/B/O,MAAO,CACL8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,2CAjCxD,gCA4CI,OA5CJ,0BAuCUtN,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4CUpM,aAAIkM,KAA4B+K,EAAgB5jB,IA5C1D,QA6CI+O,6BAAiC,CAC/B/O,MAAO,CACL8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,2CA/CpD,uDAqDO,SAAU2V,KAAV,kEACL,OADK,SACC/J,aAAUlb,KAA6CglB,IADxD,wC,uBCtVMc,GAAe,IAAI9M,KAAOC,OACrC,gBACA,GACA,CAAEC,YAAa,mBAEJ/C,GAAgB,IAAI6C,KAAOG,MAAM2M,I,gECoBpCC,I,aAuDOC,I,aAMPC,I,aAwCOC,I,aAOPC,I,aAuEOC,I,aAOPC,I,aAwDOC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAkCOC,I,aAOPC,I,aAmEOC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aA+COC,I,aAOPC,I,aA4COC,I,aAYPC,I,aAgDOC,IAvpBjB,SAAUvB,GAAuBjmB,GAAjC,kEACEynB,aACE,GACA,CACEvW,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKoa,iBAAiB/M,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC5E+M,EAAYlZ,EAASnB,KAAKsa,UAAUjN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAClEiN,EAAiBpZ,EAASnB,KAAKwa,kBAAkBnN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACnF,EAGIC,aAAUH,EAAYI,IAFZzE,EADd,EACEM,SAAYN,cACZuE,EAFF,EAEEA,OAEImN,EAAsBC,KAAQL,EAAW,kBACzCM,EAA4BD,KAAQH,EAAgB,kBAC1DK,KAAQ7R,GAAe,SAAC2P,GAClBA,EAAavgB,kBAAkBsiB,EAC7B1R,IACFA,EAAc2P,EAAavgB,gBAA3B,2BACK4Q,EAAc2P,EAAavgB,iBADhC,IAEE0iB,SAAUJ,EAAoB/B,EAAavgB,mBAI3C4Q,IACFA,EAAc2P,EAAavgB,gBAA3B,2BACK4Q,EAAc2P,EAAavgB,iBADhC,IAEE0iB,SAAU,MAIZnC,EAAavgB,kBAAkBwiB,EAC7B5R,IACFA,EAAc2P,EAAavgB,gBAA3B,2BACK4Q,EAAc2P,EAAavgB,iBADhC,IAEEoiB,eAAgBI,EAA0BjC,EAAavgB,mBAIvD4Q,IACFA,EAAc2P,EAAavgB,gBAA3B,2BACK4Q,EAAc2P,EAAavgB,iBADhC,IAEEoiB,eAAgB,SAKxB7V,GAAMkQ,SAASnH,KAAsC1E,EAAeuE,KAEtEpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkC7Y,OAjDzD,wCAuDO,SAAUgkB,KAAV,kEACL,OADK,SACC9K,aAAUlb,KAAmC+lB,IAD9C,wCAMP,SAAUE,GAA8BnmB,GAAxC,0EAEe,OADPqb,EAAerb,EAAOM,QAD9B,SAEqB4Z,aAAOoB,IAA2CD,GAFvE,OAEQE,EAFR,OAGEkM,aACE,CAAEjM,cAAeD,GACjB,CACErK,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKoa,iBAAiB/M,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC5E+M,EAAYlZ,EAASnB,KAAKsa,UAAUjN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACtE,EAGIC,aAAUH,EAAYI,IAFZzE,EADd,EACEM,SAAYN,cACZuE,EAFF,EAEEA,OAEImN,EAAsBC,KAAQL,EAAW,kBAC/CO,KAAQ7R,GAAe,SAAC2P,GAClBA,EAAavgB,kBAAkBsiB,EAC7B1R,IACFA,EAAc2P,EAAavgB,gBAA3B,2BACK4Q,EAAc2P,EAAavgB,iBADhC,IAEE0iB,SAAUJ,EAAoB/B,EAAavgB,mBAI3C4Q,IACFA,EAAc2P,EAAavgB,gBAA3B,2BACK4Q,EAAc2P,EAAavgB,iBADhC,IAEE0iB,SAAU,SAKlBnW,GAAMkQ,SAASnH,KAAsC1E,EAAeuE,KAEtEpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyC7Y,OAlChE,wCAwCO,SAAUkkB,KAAV,kEACL,OADK,SACChL,aAAUlb,KAA2CimB,IADtD,wCAOP,SAAUE,GAAgBrmB,GAA1B,sFAGmB,OAHnB,EACuCA,EAAOM,QAApC0lB,EADV,EACUA,aADV,EACwBoC,WADxB,kBAGyBlO,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoByL,GAApB,IAAkCvgB,eAAgB,QACxD0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBA0BQ,OATMuY,EAAoB5nB,KAAcga,EAAWnN,KAAKgb,kBAjBhE,UA0BczZ,aACJkM,KAAmCiL,EAAavgB,eAAgB4iB,IA3B1E,YA8BYrC,EAAauC,YA9BzB,iBA+BU,OA/BV,UA+BgB1Z,aACJ2Z,KACE,CACED,YAAavC,EAAauC,YAC1BE,gBAAiBzC,EAAayC,iBAEhC,CACEhjB,eAAc,OAAE4iB,QAAF,IAAEA,OAAF,EAAEA,EAAmB5iB,eACnCijB,iBAAgB,OAAEL,QAAF,IAAEA,OAAF,EAAEA,EAAmBK,iBACrCC,sBAAqB,OAAEN,QAAF,IAAEA,OAAF,EAAEA,EAAmBO,UAC1CC,iBAAgB,OAAER,QAAF,IAAEA,OAAF,EAAEA,EAAmBQ,oBAzCrD,QA8CQ5X,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,+BAENC,KAAMuW,EAAa0C,mBAlD7B,wBA0DQ,OALMxmB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAvDlC,UA0DcrM,aAAIkM,KAA+BiL,EAAavgB,eAAgBvD,IA1D9E,gCAmEI,OAnEJ,0BA8DUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAhEpB,UAmEUpM,aAAIkM,KAA+BiL,EAAavgB,eAAgBvD,IAnE1E,uDAuEO,SAAUokB,KAAV,kEACL,OADK,SACClL,aAAUlb,KAAgCmmB,IAD3C,wCAOP,SAAUE,GAAiBvmB,GAA3B,wFAE8B,OADtBgmB,EAAehmB,EAAOM,QAD9B,SAEoC4Z,cAAO,SAACna,GAAD,OACvC8b,kBAA0B9b,EAAOimB,EAAavgB,mBAHlD,OAMmB,OANnB,SAEUqjB,EAFV,EAEUA,gBAFV,kBAMyB5O,aAAOC,oBANhC,mCAQoB,OARpB,UAQ0BD,aAAOC,iBARjC,QAUuB,OAFX9Z,EARZ,iBAU6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUyL,GACrB7Y,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OARboO,EAVZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBA6BQ,OATMiZ,EAAqBtoB,KAAcga,EAAWnN,KAAKgb,kBApBjE,UA6BczZ,aAAIkM,KAAoCgO,IA7BtD,QA8BQ9X,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,+BAENC,KAAMsZ,EAAmBL,mBAlCnC,wBAyCQ,OAJMxmB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAvClC,UAyCcrM,aAAIkM,KAAgC+N,EAAiB5mB,IAzCnE,gCAmDI,OAnDJ,0BA8CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAhDpB,UAmDUpM,aAAIkM,KAAgC+N,EAAiB5mB,IAnD/D,uDAwDO,SAAUskB,KAAV,kEACL,OADK,SACCpL,aAAUlb,KAAiCqmB,IAD5C,wCAOP,SAAUE,GAAuBzmB,GAAjC,8FAImB,OAJnB,EAC+CA,EAAOM,QAA5C0lB,EADV,EACUA,aAAcgD,EADxB,EACwBA,mBADxB,kBAIyB9O,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OAQuB,OADX9Z,EAPZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wCAA+D,CACxF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE9U,eAAgBugB,EAAavgB,eAAgBujB,uBACpE7b,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aACJkM,KAAyCiL,EAAavgB,eAAgBujB,IAnBhF,QAqBQ/X,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,oDAvBhB,wBA+BoC,OAJtBtN,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+B0ChB,cAAO,SAACna,GAAD,OACvC8b,kBAA0B9b,EAAMsW,cAAe2P,EAAavgB,mBAhCtE,QAkCQ,OAlCR,SA+BgBqjB,EA/BhB,EA+BgBA,gBA/BhB,UAkCcja,aAAIkM,KAAqC+N,EAAiB5mB,IAlCxE,QAmCQ+O,6BAAiC,CAAE/O,UAnC3C,gCA4CgC,OA5ChC,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4CsCf,cAAO,SAACna,GAAD,OACvC8b,kBAA0B9b,EAAMsW,cAAe2P,EAAavgB,mBA7ClE,QA+CI,OA/CJ,SA4CYqjB,EA5CZ,EA4CYA,gBA5CZ,UA+CUja,aAAIkM,KAAqC+N,EAAiB5mB,IA/CpE,QAgDI+O,6BAAiC,CAAE/O,UAhDvC,uDAoDO,SAAUwkB,KAAV,kEACL,OADK,SACCtL,aAAUlb,KAAqDumB,IADhE,wCAOP,SAAUE,GAAmB3mB,GAA7B,0EAEuB,OADbyF,EAAmBzF,EAAOM,QAA1BmF,eADV,SAE6ByU,cAAO,SAACna,GAAD,OAAW8b,kBAA0B9b,EAAO0F,MAFhF,OAEQugB,EAFR,OAGEiD,aAA0B,eACnBjD,GACL,CACE9U,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAqCtV,KAEtD+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAiCtV,EAAgBvD,OAVxE,wCAgBO,SAAU0kB,KAAV,kEACL,OADK,SACCxL,aAAUlb,KAAmCymB,IAD9C,wCAOP,SAAUE,GAAsB7mB,GAAhC,oFAGmB,OAHnB,EACmCA,EAAOM,QAAhCmF,EADV,EACUA,eAAgByjB,EAD1B,EAC0BA,KAD1B,kBAGyBhP,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0CAAiE,CAC1F0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE2O,OAAMzjB,mBAC7B0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADMqZ,EAAuD,IAA3C1O,EAAWnN,KAAK8b,uBAjB1C,UAkBcva,aAAIkM,KAA6BoO,IAlB/C,iCAoBsB,CACZnO,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SAtBlC,0DA2BkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GA7BpB,uDAkCO,SAAU6L,KAAV,kEACL,OADK,SACC1L,aAAUlb,KAAuC2mB,IADlD,wCAOP,SAAUE,GAAU/mB,GAApB,gGAYmB,OAZnB,EAUMA,EAAOM,QARTgG,EAFJ,EAEIA,WACAb,EAHJ,EAGIA,eACAijB,EAJJ,EAIIA,iBACAW,EALJ,EAKIA,iBACAC,EANJ,EAMIA,kBACAC,EAPJ,EAOIA,uBACAC,EARJ,EAQIA,0BACAC,EATJ,EASIA,oBATJ,kBAYyBvP,aAAOC,oBAZhC,mCAcoB,OAdpB,SAc0BD,aAAOC,iBAdjC,OAgBuB,OAFX9Z,EAdZ,iBAgB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,4BAAmD,CAC5E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBjU,aACAb,iBACAijB,mBACAW,mBACAC,oBACAC,yBACAC,4BACAC,wBAEFtc,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MA9BnC,QAiCyB,OAjBboO,EAhBZ,iBAiC+BA,EAAS+L,OAjCxC,WAiCYC,EAjCZ,SAkCUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlC/C,iBAmCQ,OAnCR,UAmCcjB,aACJkM,KACEtV,EACA4jB,EACAI,EACAF,EACAC,IAzCZ,QA4CQvY,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,+BAENC,KAAMiZ,IAhDhB,yBAmDsB,CACZ1N,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SArDlC,gCA+DI,OA/DJ,0BA0DUhZ,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA5DpB,UA+DUpM,aAAIkM,KAA0B7Y,IA/DxC,uDAmEO,SAAU8kB,KAAV,kEACL,OADK,SACC5L,aAAUlb,KAAwC6mB,IADnD,wCAOP,SAAUE,GAA8BjnB,GAAxC,oFAGmB,OAFX0pB,EAAiB1pB,EAAOM,QADhC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oCAA2D,CACpF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBmP,GAApB,IAAoCC,SAAU,QACpDxc,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM8Z,EAAsBnpB,KAAcga,EAAWnN,MAlB7D,UAmBcuB,aACJkM,KACE2O,EAAeC,SACfC,IAtBZ,QA0BQ3Y,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iCAENC,KAAMia,EAAeG,kBACrBC,SAAS,IA/BnB,wBAuCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAtC3C,UAuCc2M,aAAIkM,KAA6C2O,EAAeC,SAAUznB,IAvCxF,gCAgDI,OAhDJ,0BA2CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA/CvC,UAgDU2M,aAAIkM,KAA6C2O,EAAeC,SAAUznB,IAhDpF,uDAoDO,SAAUglB,KAAV,kEACL,OADK,SACC9L,aAAUlb,KAAgD+mB,IAD3D,wCAOP,SAAUE,GAA+BnnB,GAAzC,oFAGmB,OAFX0pB,EAAiB1pB,EAAOM,QADhC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oCAA2D,CACpF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUmP,GACrBvc,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMia,EAAuBtpB,KAAcga,EAAWnN,MAlB9D,UAmBcuB,aAAIkM,KAAkDgP,IAnBpE,QAqBQ9Y,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iCAENC,KAAMia,EAAeG,kBACrBC,SAAS,IA1BnB,wBAkCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAjC3C,UAkCc2M,aAAIkM,KAA8C2O,EAAeC,SAAUznB,IAlCzF,gCA2CI,OA3CJ,0BAsCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA1CvC,UA2CU2M,aAAIkM,KAA8C2O,EAAeC,SAAUznB,IA3CrF,uDA+CO,SAAUklB,KAAV,kEACL,OADK,SACChM,aAAUlb,KAAiDinB,IAD5D,wCAOP,SAAUE,GAAiCrnB,GAA3C,kFAGmB,OAFX0pB,EAAiB1pB,EAAOM,QADhC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sCAA6D,CACtF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUmP,GACrBvc,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAmD2O,EAAeC,WAlBpF,QAmBQ1Y,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iCAENC,KAAMia,EAAeG,oBAvB/B,wBA+BQ,OALM3nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UA9B3C,UA+Bc2M,aAAIkM,KAA+C2O,EAAeC,SAAUznB,IA/B1F,gCAwCI,OAxCJ,0BAmCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAEhBhK,6BAAiC,CAAE/O,UAvCvC,UAwCU2M,aAAIkM,KAA+C2O,EAAeC,SAAUznB,IAxCtF,uDA4CO,SAAUolB,KAAV,kEACL,OADK,SACClM,aACJlb,KACAmnB,IAHG,wCAYP,SAAUE,GAAgCvnB,GAA1C,4EAG8B,OAFpBgmB,EAAiBhmB,EAAOM,QAAxB0lB,aACRplB,QAAQC,IAAI,eAAgBmlB,GAF9B,SAGoC9L,cAAO,SAACna,GAAD,OACvC8b,kBAA0B9b,EAAOimB,EAAavgB,mBAJlD,gBAGUqjB,EAHV,EAGUA,gBAGRkB,aACE,CACEvkB,eAAgBugB,EAAavgB,eAC7BijB,iBAAkB1C,EAAa0C,iBAC/BuB,SAAUjE,EAAaiE,SACvBC,gBAAiBlE,EAAakE,gBAC9BC,kBAAmBnE,EAAamE,kBAChCtC,eAAgB7B,EAAa6B,gBAE/B,CACE3W,cAAe,SAACzC,GACd,GAAIA,EAASqB,QAAS,CACpB,IAAMiZ,EAAqBtoB,KAAcgO,EAASnB,KAAK8c,qBACjDtC,EAAoBrZ,EAASnB,KAAKwa,kBAAkBnN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAExFha,QAAQC,IAAI,aAAZ,2BAA8BkoB,GAA9B,IAAkDjB,uBAElD9V,GAAMkQ,SAASnH,KAAA,2BAAwDgO,GAAxD,IAA4ElB,eAAgBC,MAC3G7W,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,wCACvCW,MAAO,WAGTc,6BAAiC,CAC/B/O,MAAM,CACJ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,0CAKpDgC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgD+N,EAAiB5mB,IAChF+O,6BAAiC,CAC/B/O,MAAM,CACJ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,4CAxCxD,wCAgDO,SAAUgY,KAAV,kEACL,OADK,SACCpM,aACJlb,KACAqnB,IAHG,wC,aChrBM8C,GAAe,IAAInR,KAAOC,OACrC,iBACA,GACA,CAAEC,YAAa,mBAEJ5C,GAAiB,IAAI0C,KAAOG,MAAMgR,I,aCKrCC,I,aA0DOC,I,aAMPC,I,aAgDOC,I,aAOPC,I,aAqDOC,I,aAOPC,I,aA+COC,I,aAOPC,I,aAsCOC,IA/QjB,SAAUT,GAAwBtqB,GAAlC,wGAUyB,OAVzB,EAQMA,EAAOM,QARb,IAEIgC,QACc8D,EAHlB,EAGME,WACgBD,EAJtB,EAIMZ,eAJN,EAKMgB,wBAEFkY,EAPJ,EAOIA,WAPJ,SAU+BzE,aAAOC,gCAA4C,CAC9E/T,mBACAC,yBAZJ,OAoBmB,OApBnB,SAUUC,EAVV,EAUUA,WAKJ0kB,EAfN,UAekBrd,KAflB,iBAgBMgR,IACFqM,EAAM,UAAMrd,KAAN,4BAjBV,mBAoByBuM,aAAOC,oBApBhC,oCAsBoB,OAtBpB,UAsB0BD,aAAOC,iBAtBjC,QAuBuB,OADX9Z,EAtBZ,iBAuB6B+Z,aAAKC,MAAO2Q,EAAQ,CACzC3Y,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEjU,eACvB6G,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MA5BnC,QA+ByB,OARboO,EAvBZ,iBA+B+BA,EAAS+L,OA/BxC,WA+BYC,EA/BZ,SAgCUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhC/C,iBAsCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAjCzE,EAqCYC,aAAUH,EAAYI,IAFZtE,EAnCtB,EAmCUG,SAAYH,eACZoE,EApCV,EAoCUA,OApCV,UAsCc/L,aAAIkM,KAAuCvE,EAAgBoE,IAtCzE,gCA6CQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA1ClC,UA6CcrM,aAAIkM,KAAmC7Y,IA7CrD,gCAsDI,OAtDJ,0BAiDUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAnDpB,UAsDUpM,aAAIkM,KAAmC7Y,IAtDjD,uDA0DO,SAAUqoB,KAAV,kEACL,OADK,SACCnP,aAAUlb,KAAoCoqB,IAD/C,wCAMP,SAAUE,GAAgBxqB,GAA1B,oFAGmB,OAFXqqB,EAAerqB,EAAOM,QAD9B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB8P,GAApB,IAAkCY,eAAgB,QACxD9d,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADMob,EAAoBzqB,KAAcga,EAAWnN,MAjB3D,UAkBcuB,aACJkM,KAAmCsP,EAAaY,eAAgBC,IAnB1E,QAsBQja,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,gCAENC,KAAMyb,EAAkBC,iBACxBrB,SAAS,IA3BnB,wBAmCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAhClC,UAmCcrM,aAAIkM,KAA+BsP,EAAaY,eAAgB/oB,IAnC9E,gCA4CI,OA5CJ,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4CUpM,aAAIkM,KAA+BsP,EAAaY,eAAgB/oB,IA5C1E,uDAgDO,SAAUuoB,KAAV,kEACL,OADK,SACCrP,aAAUlb,KAAgCsqB,IAD3C,wCAOP,SAAUE,GAAiB1qB,GAA3B,wFAGmB,OAFXqqB,EAAerqB,EAAOM,QAD9B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU8P,GACrBld,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMsb,EAAqB3qB,KAAcga,EAAWnN,MAlB5D,UAmBcuB,aAAIkM,KAAoCqQ,IAnBtD,QAoBQna,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,gCAENC,KAAM2b,EAAmBD,iBACzBrB,SAAS,IAzBnB,wBAgCgC,OAJlB5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAgCsChB,cAAO,SAACna,GAAD,OACnC8b,IAA0B9b,EAAOsqB,EAAaY,mBAjCxD,QAmCQ,OAHMI,EAhCd,iBAmCcxc,aAAIkM,KAAgCsQ,EAAiBnpB,IAnCnE,gCA6C4B,OA7C5B,0BAwCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA1CpB,UA6CkCf,cAAO,SAACna,GAAD,OACnC8b,IAA0B9b,EAAOsqB,EAAaY,mBA9CpD,QAgDI,OAHMI,EA7CV,iBAgDUxc,aAAIkM,KAAgCsQ,EAAiBnpB,IAhD/D,uDAqDO,SAAUyoB,KAAV,kEACL,OADK,SACCvP,aAAUlb,KAAiCwqB,IAD5C,wCAOP,SAAUE,GAAmB5qB,GAA7B,sFAGmB,OAFTirB,EAAmBjrB,EAAOM,QAA1B2qB,eADV,kBAGyB/Q,aAAOC,oBAHhC,OAIgC,OADtB4B,EAHV,gBAIsC7B,cAAO,SAACna,GAAD,OACvC8b,IAA0B9b,EAAOkrB,MALvC,UAIUK,EAJV,QAOQvP,EAPR,iBAQoB,OARpB,UAQ0B7B,aAAOC,iBARjC,QAUuB,OAFX9Z,EARZ,iBAU6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE0Q,mBACvB9d,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OARboO,EAVZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAoBQ,OApBR,UAoBcjB,aAAIkM,KAAqCkQ,IApBvD,QAqBQha,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,gCAENC,KAAM6b,EAAoBH,iBAC1BrB,SAAS,IA1BnB,wBAkCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA/BlC,UAkCcrM,aAAIkM,KAAiCkQ,EAAgB/oB,IAlCnE,gCA2CI,OA3CJ,0BAsCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAxCpB,UA2CUpM,aAAIkM,KAAiCkQ,EAAgB/oB,IA3C/D,uDA+CO,SAAU2oB,KAAV,kEACL,OADK,SACCzP,aAAUlb,KAAmC0qB,IAD9C,wCAOP,SAAUE,GAAkB9qB,GAA5B,oFAGmB,OAFXirB,EAAiBjrB,EAAOM,QADhC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAwCsd,GAAkB,CACnF5Y,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OAPboO,EARZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADMua,EAAe5pB,KAAcga,EAAWnN,MAjBtD,UAkBcuB,aAAIkM,KAAqCsP,IAlBvD,gCAyBQ,OALMnoB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAtBlC,UAyBcrM,aAAIkM,KAAiC7Y,IAzBnD,gCAkCI,OAlCJ,0BA6BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA/BpB,UAkCUpM,aAAIkM,KAAiC7Y,IAlC/C,uDAsCO,SAAU6oB,KAAV,kEACL,OADK,SACC3P,aAAUlb,KAAkC4qB,IAD7C,wC,cCzRMS,GAAc,IAAIrS,KAAOC,OACpC,eACA,GACA,CAAEC,YAAa,kBAEJ7C,GAAe,IAAI2C,KAAOG,MAAMkS,I,aCMnCC,I,aAmDOC,I,aAMPC,I,aA6DOC,I,aAMPC,I,aA6COC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aA6COC,IAxRjB,SAAUT,GAAsBxrB,GAAhC,oGAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,OAQmB,OARnB,SAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAFtB,kBAQyByU,aAAOC,oBARhC,mCAUoB,OAVpB,UAU0BD,aAAOC,iBAVjC,QAWuB,OADX9Z,EAVZ,iBAW6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBjU,aACAb,mBAEF0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAnBnC,QAsByB,OAXboO,EAXZ,iBAsB+BA,EAAS+L,OAtBxC,WAsBYC,EAtBZ,SAuBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAvB/C,iBA6BQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAxBzE,EA4BYC,aAAUH,EAAYI,IAFZvE,EA1BtB,EA0BUI,SAAYJ,aACZqE,EA3BV,EA2BUA,OA3BV,UA6Bc/L,aACJkM,KAAqCxE,EAAcqE,EAAQtU,EAAYb,IA9BjF,gCAsCQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAnClC,UAsCcrM,aAAIkM,KAAiC7Y,IAtCnD,gCA+CI,OA/CJ,0BA0CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA5CpB,UA+CUpM,aAAIkM,KAAiC7Y,IA/C/C,uDAmDO,SAAUupB,KAAV,kEACL,OADK,SACCrQ,aAAUlb,KAAkCsrB,IAD7C,wCAMP,SAAUE,GAA6B1rB,GAAvC,wGAOiB,OAPjB,WAMQA,EAAOM,QAHT+a,EAHN,EAGMA,aACYjV,EAJlB,EAIME,WACgBD,EALtB,EAKMZ,eALN,SAOuByU,aAAOoB,IAA2CD,GAPzE,OAQ2C,OADjCE,EAPV,gBAQiDrB,aAC3CC,gCACA,CACE/T,mBACAC,yBAZR,OAgBmB,OAhBnB,SAQYC,EARZ,EAQYA,WAAYb,EARxB,EAQwBA,eARxB,UAgByByU,aAAOC,oBAhBhC,oCAkBoB,OAlBpB,UAkB0BD,aAAOC,iBAlBjC,QAmBuB,OADX9Z,EAlBZ,iBAmB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,EAAMjV,aAAYb,mBACxD0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAxBnC,QA2ByB,OARboO,EAnBZ,iBA2B+BA,EAAS+L,OA3BxC,WA2BYC,EA3BZ,SA4BUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SA5B/C,iBAkCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA7BzE,EAiCYC,aAAUH,EAAYI,IAFZvE,EA/BtB,EA+BUI,SAAYJ,aACZqE,EAhCV,EAgCUA,OAhCV,UAkCc/L,aACJkM,KACExE,EACAqE,EACAtU,EACAb,IAvCZ,gCAgDQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7ClC,UAgDcrM,aAAIkM,KAAwC7Y,IAhD1D,gCAyDI,OAzDJ,0BAoDUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtDpB,UAyDUpM,aAAIkM,KAAwC7Y,IAzDtD,uDA6DO,SAAUypB,KAAV,kEACL,OADK,SACCvQ,aAAUlb,KAA0CwrB,IADrD,wCAMP,SAAUE,GAAe5rB,GAAzB,oFAGmB,OAFXurB,EAAcvrB,EAAOM,QAD7B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBgR,GAApB,IAAiC1lB,cAAe,QACtDsH,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMoc,EAAmBzrB,KAAcga,EAAWnN,MAlB1D,UAmBcuB,aAAIkM,KAAkCwQ,EAAY1lB,cAAeqmB,IAnB/E,QAoBQjb,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,6BAENC,KAAM8b,EAAY7C,mBAxB5B,wBAgCQ,OALMxmB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAA8BwQ,EAAY1lB,cAAe3D,IAhC3E,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAA8BwQ,EAAY1lB,cAAe3D,IAzCvE,uDA6CO,SAAU2pB,KAAV,kEACL,OADK,SACCzQ,aAAUlb,KAA+B0rB,IAD1C,wCAOP,SAAUE,GAAgB9rB,GAA1B,wFAGmB,OAFXurB,EAAcvrB,EAAOM,QAD7B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUgR,GACrBpe,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMqc,EAAoB1rB,KAAcga,EAAWnN,MAlB3D,UAmBcuB,aAAIkM,KAAmCoR,IAnBrD,QAoBQlb,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,6BAENC,KAAM0c,EAAkBC,kBAxBlC,wBA+B+B,OAJjBlqB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BqChB,cAAO,SAACna,GAAD,OAClC8b,iBAAyB9b,EAAOwrB,EAAY1lB,kBAhCtD,QAkCQ,OAHMwmB,EA/Bd,iBAkCcxd,aAAIkM,KAA+BsR,EAAgBnqB,IAlCjE,gCA4C2B,OA5C3B,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4CiCf,cAAO,SAACna,GAAD,OAClC8b,iBAAyB9b,EAAOwrB,EAAY1lB,kBA7ClD,QA+CI,OAHMwmB,EA5CV,iBA+CUxd,aAAIkM,KAA+BsR,EAAgBnqB,IA/C7D,uDAoDO,SAAU6pB,KAAV,kEACL,OADK,SACC3Q,aAAUlb,KAAgC4rB,IAD3C,wCAOP,SAAUE,GAAkBhsB,GAA5B,sFAGmB,OAFT6F,EAAkB7F,EAAOM,QAAzBuF,cADV,kBAGyBqU,aAAOC,oBAHhC,OAI+B,OADrB4B,EAHV,gBAIqC7B,cAAO,SAACna,GAAD,OACtC8b,iBAAyB9b,EAAO8F,MALtC,UAIUymB,EAJV,QAOQvQ,EAPR,iBAQoB,OARpB,UAQ0B7B,aAAOC,iBARjC,QASuB,OADX9Z,EARZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE1U,kBACvBsH,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAoClV,IAnBtD,QAoBQoL,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,6BAENC,KAAM6c,EAAmBF,kBAxBnC,wBAgCQ,OALMlqB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAAgClV,EAAe3D,IAhCjE,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAAgClV,EAAe3D,IAzC7D,uDA6CO,SAAU+pB,KAAV,kEACL,OADK,SACC7Q,aAAUlb,KAAkC8rB,IAD7C,wC,aCnSMO,GAAO,IAAIrT,KAAOC,OAAO,QAAS,GAAI,CAAEC,YAAa,WACrDjC,GAAQ,IAAI+B,KAAOG,MAAMkT,ICDzBC,GAAe,IAAItT,KAAOC,OACrC,gBACA,GACA,CAAEC,YAAa,mBAEJqT,GAAgB,IAAIvT,KAAOG,MAAMmT,ICLjCE,GAAe,IAAIxT,KAAOC,OACrC,gBACA,GACA,CAAEC,YAAa,mBAEJuT,GAAgB,IAAIzT,KAAOG,MAAMqT,ICLjCE,GAAQ,IAAI1T,KAAOC,OAAO,SAAU,GAAI,CAAEC,YAAa,YACvDvB,GAAS,IAAIqB,KAAOG,MAAMuT,ICD1BC,GAAS,IAAI3T,KAAOC,OAAO,UAAW,GAAI,CAAEC,YAAa,aACzD0T,GAAU,IAAI5T,KAAOG,MAAMwT,ICD3BE,GAAQ,IAAI7T,KAAOC,OAAO,SAAU,GAAI,CAAEC,YAAa,YACvD4T,GAAS,IAAI9T,KAAOG,MAAM0T,ICD1BE,GAAS,IAAI/T,KAAOC,OAAO,UAAW,GAAI,CAAEC,YAAa,aACzD1B,GAAU,IAAIwB,KAAOG,MAAM4T,I,0CC8B9BC,I,aA0BOC,I,aAMPC,I,aAgCOC,I,aAOPC,I,aA0BOC,I,aAOPC,I,aAgFOC,I,aAOPC,I,aAkCOC,I,aAOPC,I,aAkCOC,I,aAOPC,I,aAUOC,I,aAOPC,I,aA+COC,I,aAOPC,I,aAmDOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aA8COC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aAqDOC,I,aAOPC,I,aAuDOC,I,aAOPC,I,aAmDOC,I,aAOPC,I,aAyCOC,I,aA8BPC,I,aAiBOC,I,aAQPC,I,aAkBOC,IA9zBjB,SAAUnC,GAAeltB,GAAzB,kFAGyC,OAHzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAG+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBALJ,gBAGUC,EAHV,EAGUA,WAAYb,EAHtB,EAGsBA,eAKpB6pB,aACE,CAAEhpB,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ3D,EADd,EACER,SAAYQ,MACZyD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,yBAA8B5D,EAAOyD,EAAQtU,EAAYb,KAE1E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,qBAA0B7Y,OApBjD,wCA0BO,SAAUirB,KAAV,kEACL,OADK,SACC/R,aAAUlb,KAA2BgtB,IADtC,wCAMP,SAAUE,GAAsBptB,GAAhC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpB6pB,aACE,CAAE9T,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ3D,EADd,EACER,SAAYQ,MACZyD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,gCAAqC5D,EAAOyD,EAAQtU,EAAYb,KAGpE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,4BAAiC7Y,OA1BxD,yCAgCO,SAAUmrB,KAAV,kEACL,OADK,SACCjS,aAAUlb,KAAmCktB,IAD9C,wCAOP,SAAUE,GAAyBttB,GAAnC,4EACqB,OADrB,SAC2Bka,aAAOoB,IAAiDiU,iBADnF,OAEyB,OADjBjpB,EADR,gBAE+B4T,aAC3BoB,IACAiU,iBAJJ,OAMwB,OAJhB9pB,EAFR,gBAM8ByU,aAAO2B,uBAAgCpW,GANrE,OAMQ+V,EANR,OAQEgU,aACE,CAAElpB,aAAYb,iBAAgB+V,iBAC9B,CACEtK,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ3D,EADd,EACER,SAAYQ,MACZyD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,mCAAwC5D,EAAOyD,EAAQnV,KAExE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,+BAAoC7Y,OApB3D,yCA0BO,SAAUqrB,KAAV,kEACL,OADK,SACCnS,aAAUlb,KAAuCotB,IADlD,wCAOP,SAAUE,GAAqBxtB,GAA/B,wEACUyvB,EAAWzvB,EAAOM,QAAlBmvB,OAERC,aACE,CAAED,UACF,CACEve,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAEtBqiB,EAAWlvB,KAAcia,EAAWiV,UAEpCC,EAAclV,EAAWkV,YAAYjV,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACzE,EAGIC,aAAU+U,EAAaC,IAFEC,EAD7B,EACEnZ,SAAY8V,cACJsD,EAFV,EAEEnV,OAIIoV,EAActV,EAAWsV,YAAYrV,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACzE,EAGIC,aAAUmV,EAAaC,IAFEC,EAD7B,EACEvZ,SAAYgW,cACJwD,EAFV,EAEEvV,OAIIwV,EAAa1V,EAAW0V,WAAWzV,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACvE,EAGIC,aAAUuV,EAAYC,IAFJC,EADtB,EACE3Z,SAAYkB,OACJ0Y,EAFV,EAEE3V,OAII4V,EAAc9V,EAAW8V,YAAY7V,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACzE,EAGIC,aAAU2V,EAAaC,IAFJC,EADvB,EACE/Z,SAAYmW,QACJ6D,EAFV,EAEE/V,OAIIgW,EAAalW,EAAWkW,WAAWjW,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACvE,EAGIC,aAAU+V,EAAYC,IAFJC,EADtB,EACEna,SAAYqW,OACJ+D,EAFV,EAEEnW,OAIIoW,EAAqBtW,EAAWsW,mBAAmBrW,KAAI,SAACC,GAAD,OAC3Dna,KAAcma,MAEhB,EAGIC,aAAUmW,EAAoBC,IAFXC,EADvB,EACEva,SAAYe,QACJyZ,EAFV,EAEEvW,OAGF5I,GAAMkQ,SACJnH,mCACE0U,EACAE,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,KAIN3f,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,+BAAoC7Y,OA1E3D,wCAgFO,SAAUurB,KAAV,kEACL,OADK,SACCrS,aAAUlb,KAAsCstB,IADjD,wCAOP,SAAUE,GAAmC1tB,GAA7C,oFACgEA,EAAOM,QAA7DmvB,EADV,EACUA,OAAQ2B,EADlB,EACkBA,WAAYC,EAD9B,EAC8BA,UAAWC,EADzC,EACyCA,QAASC,EADlD,EACkDA,UAEhDC,aACE,CAAE/B,SAAQ2B,aAAYC,YAAWC,UAASC,aAC1C,CACErgB,cAAe,SAACzC,GAAc,IAAD,YACrBpH,EAAWoH,EAASnB,KAAKjG,SACzBoqB,EAAe,UAAGhjB,EAASnB,YAAZ,iBAAG,EAAemkB,uBAAlB,aAAG,EAAgC9W,KAAI,SAACC,EAAQ8W,GAAT,mBAAC,eACxDjxB,KAAcma,IADyC,IAE1DpL,GAAG,kBAAD,OAAoBkiB,QAElBC,EAAQ,UAAGljB,EAASnB,YAAZ,iBAAG,EAAeqkB,gBAAlB,aAAG,EAAyBhX,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAClEgX,EAAS,UAAGnjB,EAASnB,YAAZ,iBAAG,EAAeskB,iBAAlB,aAAG,EAA0BjX,KAAI,SAACC,EAAQ8W,GAAT,mBAAC,eAC5CjxB,KAAcma,IAD6B,IAE9CpL,GAAG,YAAD,OAAckiB,QAElB1f,GAAMkQ,SACJnH,iCACE0U,EACApoB,EACAoqB,EACAE,EACAC,KAINpgB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,6BAAkC7Y,OA5BzD,wCAkCO,SAAUyrB,KAAV,kEACL,OADK,SACCvS,aAAUlb,MAAoCwtB,IAD/C,wCAOP,SAAUE,GAAoB5tB,GAA9B,8EAC4BA,EAAOM,QAAzBmvB,EADV,EACUA,OAAQoC,EADlB,EACkBA,MAEhBC,aACE,CAAErC,SAAQoC,SACV,CACE3gB,cAAe,SAACzC,GAAc,IAAD,YACrBpH,EAAWoH,EAASnB,KAAKjG,SACzBoqB,EAAe,UAAGhjB,EAASnB,YAAZ,iBAAG,EAAemkB,uBAAlB,aAAG,EAAgC9W,KAAI,SAACC,EAAQ8W,GAAT,mBAAC,eACxDjxB,KAAcma,IADyC,IAE1DpL,GAAG,kBAAD,OAAoBkiB,QAElBC,EAAQ,UAAGljB,EAASnB,YAAZ,iBAAG,EAAeqkB,gBAAlB,aAAG,EAAyBhX,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAClEgX,EAAS,UAAGnjB,EAASnB,YAAZ,iBAAG,EAAeskB,iBAAlB,aAAG,EAA0BjX,KAAI,SAACC,EAAQ8W,GAAT,mBAAC,eAC5CjxB,KAAcma,IAD6B,IAE9CpL,GAAG,YAAD,OAAckiB,QAElB1f,GAAMkQ,SACJnH,kCACE0U,EACApoB,EACAoqB,EACAE,EACAC,KAINpgB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,8BAAmC7Y,OA5B1D,wCAkCO,SAAU2rB,KAAV,kEACL,OADK,SACCzS,aAAUlb,MAAqC0tB,IADhD,wCAOP,SAAUE,GAAoB9tB,GAA9B,gFACiDA,EAAOM,QAA9CmvB,EADV,EACUA,OAAQsC,EADlB,EACkBA,eAAgBC,EADlC,EACkCA,WAEhCC,aAA2B,CACzBxC,SACAsC,iBACAC,eANJ,wCAUO,SAAUjE,KAAV,kEACL,OADK,SACC3S,aAAUlb,KAAkC4tB,IAD7C,wCAOP,SAAUE,GAAQhuB,GAAlB,oFAGmB,OAFXusB,EAAOvsB,EAAOM,QADtB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,cAAqC,CAC9D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBgS,GAApB,IAA0BkD,OAAQ,QACxCtiB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMoiB,EAAYzxB,KAAcga,EAAWnN,MAlBnD,UAmBcuB,aAAIkM,sBAA2BwR,EAAKkD,OAAQyC,IAnB1D,QAqBQjhB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,eAENC,KAAM8c,EAAK4F,SACXrI,SAAS,IA1BnB,wBAkCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA/BlC,UAkCcrM,aAAIkM,kBAAuBwR,EAAKkD,OAAQvtB,IAlCtD,gCA2CI,OA3CJ,0BAsCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAxCpB,UA2CUpM,aAAIkM,kBAAuBwR,EAAKkD,OAAQvtB,IA3ClD,uDA+CO,SAAU+rB,KAAV,kEACL,OADK,SACC7S,aAAUlb,KAAwB8tB,IADnC,wCAOP,SAAUE,GAASluB,GAAnB,4FAGmB,OAFXusB,EAAOvsB,EAAOM,QADtB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,cAAqC,CAC9D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUgS,GACrBpf,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMsiB,EAAa3xB,KAAcga,EAAWnN,MAlBpD,UAmBcuB,aAAIkM,uBAA4BqX,IAnB9C,QAoBQnhB,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,eAENC,KAAM8c,EAAK4F,SACXrI,SAAS,IAzBnB,wBAgC4B,OAJd5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAgCkChB,cAAO,SAACna,GAAD,OAAW8b,UAAkB9b,EAAMoX,MAAOoV,EAAKkD,WAhCxF,QAiCQ,OAjCR,SAgCgB4C,EAhChB,EAgCgBA,QAhChB,UAiCcxjB,aAAIkM,mBAAwBsX,EAASnwB,IAjCnD,gCA6CwB,OA7CxB,0BAwCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA1CpB,UA6C8Bf,cAAO,SAACna,GAAD,OAAW8b,UAAkB9b,EAAMoX,MAAOoV,EAAKkD,WA7CpF,QA8CI,OA9CJ,SA6CY4C,EA7CZ,EA6CYA,QA7CZ,UA8CUxjB,aAAIkM,mBAAwBsX,EAASnwB,IA9C/C,uDAmDO,SAAUisB,KAAV,kEACL,OADK,SACC/S,aAAUlb,KAAyBguB,IADpC,wCAOP,SAAUE,GAAqBpuB,GAA/B,wEACUyvB,EAAWzvB,EAAOM,QAAlBmvB,OACR6C,aACE,CAAE7C,UACF,CACEve,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,gCAAqC0U,KAEtDje,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,4BAAiC7Y,OATxD,wCAeO,SAAUmsB,KAAV,kEACL,OADK,SACCjT,aAAUlb,KAAgCkuB,IAD3C,wCAOP,SAAUE,GAAWtuB,GAArB,oFAImB,OAHXuyB,EAAWvyB,EAAOM,QAClB6W,EAAQob,EAASpb,MAFzB,kBAIyB+C,aAAOC,oBAJhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gBAAuC,CAChE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEpD,UACvBhK,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,wBAA6BwX,EAASpb,MAAOob,EAASC,YAlBxE,QAmBQvhB,8BAAkC,CAChC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI+iB,EAASpb,MAAMwL,OAAS,EAAI,cAAgB,eAElD8P,SAAUF,EAASpb,MAAMwL,OAAS,EAClCmH,SAAS,EACTra,KAAM8iB,EAASC,YAzBzB,wBAiCQ,OALMtwB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,oBAAyBwX,EAASpb,MAAOjV,IAjC3D,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,oBAAyBwX,EAASpb,MAAOjV,IA1CvD,uDA8CO,SAAUqsB,KAAV,kEACL,OADK,SACCnT,aAAUlb,MAA2BouB,IADtC,wCAOP,SAAUE,GAAYxuB,GAAtB,kFAGmB,OAFXmX,EAAQnX,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUpD,GACrBhK,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAkBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SAnBnB,iBAsBQ,OAtBR,UAsBcjB,aAAIkM,yBAA8B5D,IAtBhD,QAwBQlG,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,yCA1BhB,wBAqCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,qBAA0B7Y,IArC5C,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,qBAA0B7Y,IAhDxC,uDAoDO,SAAUusB,KAAV,kEACL,OADK,SACCrT,aAAUlb,KAA4BsuB,IADvC,wCAOP,SAAUE,GAAa1uB,GAAvB,8EAGmB,OAFXmX,EAAQnX,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUpD,GACrBhK,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,gCAAqC5D,IAlBvD,QAmBQA,EAAM,GAAGub,YAAsC,KAAxBvb,EAAM,GAAGub,WAC5BzhB,8BAAkC,CAChC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI2H,EAAMwL,OAAS,EAAI,kBAAoB,mBAE7ClT,KAAM0H,EAAMwL,OAAS,EAAI,GAAKxL,EAAM,GAAGub,WACvCC,OAAQxb,EAAMwL,OAAS,IAEzB1R,gCAAoC,CAClC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,qBAKZwC,GAAMkQ,SAASnH,mCAlCvB,yBAoCsB,CACZC,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SAtClC,0DA4CkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GA9CpB,uDAqDO,SAAU0T,KAAV,kEACL,OADK,SACCvT,aAAUlb,KAAmCwuB,IAD9C,wCAOP,SAAUE,GAAkB5uB,GAA5B,wFAKmB,OALnB,EAC+BA,EAAOM,QAA5BmvB,EADV,EACUA,OAAQ9F,EADlB,EACkBA,SADlB,kBAKyBzP,aAAOC,oBALhC,mCAQoB,OARpB,SAQ0BD,aAAOC,iBARjC,OAUuB,OAFX9Z,EARZ,iBAU6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEkV,SAAQ9F,aAC/Bxc,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OARboO,EAVZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAqBQ,OADMsiB,EAAa3xB,KAAcga,EAAWnN,MApBpD,UAqBcuB,aACJkM,6BACE0U,EACA2C,EAAWzI,SACXyI,EAAWvI,oBAzBvB,QA4BQ5Y,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,iCA7BjD,wBAuCQ,OAPMtN,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAE1BjK,yBAA6B,CAC3B/O,MAAO,CAAE8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,kCArC/D,UAuCcX,aAAIkM,yBAA8B7Y,IAvChD,gCAmDI,OAnDJ,0BA2CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAGhBhK,yBAA6B,CAC3B/O,MAAO,CAAE8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,kCAjD3D,UAmDUX,aAAIkM,yBAA8B7Y,IAnD5C,uDAuDO,SAAU2sB,KAAV,kEACL,OADK,SACCzT,aAAUlb,MAAmC0uB,IAD9C,wCAOP,SAAUE,GAAgB9uB,GAA1B,oFAKmB,OAJTyvB,EAAWzvB,EAAOM,QAAlBmvB,OADV,kBAKyBvV,aAAOC,oBALhC,mCAQoB,OARpB,SAQ0BD,aAAOC,iBARjC,OAUuB,OAFX9Z,EARZ,iBAU6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEkV,WACvBtiB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OARboO,EAVZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAqBQ,OADMsiB,EAAa3xB,KAAcga,EAAWnN,MApBpD,UAqBcuB,aACJkM,2BAAgC0U,EAAQ2C,EAAWQ,YAAaR,EAAWS,gBAtBrF,QAwBQ5hB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,+BAzBjD,wBAmCQ,OAPMtN,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAE1BjK,yBAA6B,CAC3B/O,MAAO,CAAE8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,gCAjC/D,UAmCcX,aAAIkM,uBAA4B7Y,IAnC9C,gCA+CI,OA/CJ,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAGhBhK,yBAA6B,CAC3B/O,MAAO,CAAE8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,gCA7C3D,UA+CUX,aAAIkM,uBAA4B7Y,IA/C1C,uDAmDO,SAAU6sB,KAAV,kEACL,OADK,SACC3T,aAAUlb,KAAiC4uB,IAD5C,wCAOP,SAAUE,GAAiBhvB,GAA3B,wFAGmB,OAHnB,EAC4CA,EAAOM,QAAzCmvB,EADV,EACUA,OAAQ0C,EADlB,EACkBA,SAAUW,EAD5B,EAC4BA,OAAQC,EADpC,EACoCA,IADpC,kBAGyB7Y,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,+BAAsD,CAC/E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEkV,SAAQ0C,WAAUW,SAAQC,QACjD5lB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAiBQ,OADMkjB,EAAavY,EAAWnN,KAhBtC,UAiBcuB,aAAIkM,6BAAkCiY,IAjBpD,QAkBQ/hB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,sCAnBjD,yBAsBsB,CACZwL,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SAE1BjK,yBAA6B,CAC3B/O,MAAO,CACL8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,wCA5BxD,0DAkCkB,CACZwL,aAAc,KAAIG,WAClBF,aAAc,GApCpB,uDAyCO,SAAUgU,KAAV,kEACL,OADK,SACC7T,aAAUlb,KAAsC8uB,IADjD,wCA8BP,SAAUE,GAAUlvB,GAApB,4EACQizB,EAAcjzB,EAAOM,QACrB4yB,EAAYD,EAAYxD,OACxB0D,EAHR,OAG8BF,QAH9B,IAG8BA,OAH9B,EAG8BA,EAAaE,oBAEzCC,aAAqBH,EAAa,CAChC/hB,cADgC,SAClBzC,GACZ,MAAe4kB,aAAQ,OAAC5kB,QAAD,IAACA,OAAD,EAACA,EAAUnB,MAA3BA,EAAP,qBACA0E,GAAMkQ,SAASnH,qBAA0BzN,IACN,oBAAxB6lB,GAAoCA,KAEjD3hB,YANgC,SAMpBtP,GAAQ,IAAD,EACjB8P,GAAMkQ,SAASnH,iBAAsBmY,EAAtB,iBAAiChxB,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAOiZ,kBAAxC,QAAsD,QAZ3E,wCAiBO,SAAUgU,KAAV,kEACL,OADK,SACC/T,aAAUlb,MAA+BgvB,IAD1C,wCAQP,SAAUE,GAAcpvB,GAAxB,wEACQyvB,EAASzvB,EAAOM,QACtBgzB,aACE,CACE7D,UAEF,CACEve,cAAe,SAACzC,GACd,IAAMiM,EAAaja,KAAcgO,EAASnB,MAC1C0E,GAAMkQ,SAASnH,wBAA6BL,EAAY,CAACA,EAAW+U,WAEtEje,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,oBAAyB7Y,OAZhD,wCAkBO,SAAUmtB,KAAV,kEACL,OADK,SACCjU,aAAUlb,KAA0BkvB,IADrC,wC,aC71BMmE,GAAW,IAAIra,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DlC,GAAY,IAAIgC,KAAOG,MAAMka,I,aCchCC,I,aAwCOC,I,aAMPC,I,aA0COC,I,aAMPC,I,aA8COC,I,aAgBPC,I,aAqDOC,I,aAiBPC,I,aA8COC,I,aAOPC,I,aAiDOC,I,aAOPC,I,aAgDOC,IA/XjB,SAAUb,GAAmBxzB,GAA7B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZ5D,EAjBtB,EAiBUP,SAAYO,UACZ0D,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAkC7D,EAAW0D,IApB/D,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAA8B7Y,IA3BhD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAA8B7Y,IApC5C,uDAwCO,SAAUuxB,KAAV,kEACL,OADK,SACCrY,aAAUlb,KAA+BszB,IAD1C,wCAMP,SAAUE,GAA0B1zB,GAApC,4FAGiB,OAHjB,SAEUqb,EAAerb,EAAOM,QAFhC,SAGuB4Z,aAAOoB,IAA2CD,GAHzE,OAImB,OADTE,EAHV,gBAIyBrB,aAAOC,oBAJhC,mCAMoB,OANpB,UAM0BD,aAAOC,iBANjC,QAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,IACtCpO,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAsBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAjBzE,EAqBYC,aAAUH,EAAYI,IAFZ5D,EAnBtB,EAmBUP,SAAYO,UACZ0D,EApBV,EAoBUA,OApBV,UAsBc/L,aAAIkM,KAAyC7D,EAAW0D,IAtBtE,gCA6BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA1BlC,UA6BcrM,aAAIkM,KAAqC7Y,IA7BvD,gCAsCI,OAtCJ,0BAiCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAnCpB,UAsCUpM,aAAIkM,KAAqC7Y,IAtCnD,uDA0CO,SAAUyxB,KAAV,kEACL,OADK,SACCvY,aAAUlb,KAAuCwzB,IADlD,wCAMP,SAAUE,GAAY5zB,GAAtB,oFAGmB,OAFXuzB,EAAWvzB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBgZ,GAApB,IAA8Be,WAAY,QAChDnnB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMykB,EAAgB9zB,KAAcga,EAAWnN,MAlBvD,UAmBcuB,aAAIkM,KAA+BwY,EAASe,WAAYC,IAnBtE,QAqBQtjB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAM8jB,EAASiB,eAzBzB,wBAiCQ,OALMtyB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA2BwY,EAASe,WAAYpyB,IAjClE,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAA2BwY,EAASe,WAAYpyB,IA1C9D,uDA8CO,SAAU2xB,KAAV,kEACL,OADK,SACCzY,aAAUlb,KAA4B0zB,IADvC,wCAgBP,SAAUE,GAAa9zB,GAAvB,4FAGmB,OAFXuzB,EAAWvzB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUgZ,GACrBpmB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM2kB,EAAiBh0B,KAAcga,EAAWnN,MAlBxD,UAmBcuB,aAAIkM,KAAgC0Z,IAnBlD,QA0BQ,OANAxjB,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMglB,EAAeD,eAxB/B,UA0Bc3lB,aAAIkM,QA1BlB,gCAgCgC,OAJlB7Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAgCsChB,cAAO,SAACna,GAAD,OACnC8b,cAAsB9b,EAAMmX,UAAWqc,EAASe,eAjC1D,QAmCQ,OAnCR,SAgCgBI,EAhChB,EAgCgBA,YAhChB,UAmCc7lB,aAAIkM,KAA4B2Z,EAAaxyB,IAnC3D,gCA6C4B,OA7C5B,0BAwCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA1CpB,UA6CkCf,cAAO,SAACna,GAAD,OACnC8b,cAAsB9b,EAAMmX,UAAWqc,EAASe,eA9CtD,QAgDI,OAhDJ,SA6CYI,EA7CZ,EA6CYA,YA7CZ,UAgDU7lB,aAAIkM,KAA4B2Z,EAAaxyB,IAhDvD,uDAqDO,SAAU6xB,KAAV,kEACL,OADK,SACC3Y,aAAUlb,KAA6B4zB,IADxC,wCAiBP,SAAUE,GAASh0B,GAAnB,oFAGmB,OAFXuzB,EAAWvzB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBgZ,GAApB,IAA8Be,WAAY,QAChDnnB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMykB,EAAgB9zB,KAAcga,EAAWnN,MAlBvD,UAmBcuB,aAAIkM,KAA+BwY,EAASe,WAAYC,IAnBtE,QAqBQtjB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAM8jB,EAASiB,eAzBzB,wBAiCQ,OALMtyB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA2BwY,EAASe,WAAYpyB,IAjClE,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAA2BwY,EAASe,WAAYpyB,IA1C9D,uDA8CO,SAAU+xB,KAAV,kEACL,OADK,SACC7Y,aAAUlb,KAAkC8zB,IAD7C,wCAOP,SAAUE,GAAkBl0B,GAA5B,4FAGmB,OAFXuzB,EAAWvzB,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUgZ,GACrBpmB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAiBQ,OADM2kB,EAAiBh0B,KAAcga,EAAWnN,MAhBxD,UAiBcuB,aAAIkM,KAA6B0Z,IAjB/C,QAkBQxjB,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMglB,EAAeD,eAtB/B,wBA6BgC,OAJlBtyB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA3BlC,UA6BsChB,cAAO,SAACna,GAAD,OACnC8b,cAAsB9b,EAAMmX,UAAWqc,EAASe,eA9B1D,QAgCQ,OAhCR,SA6BgBI,EA7BhB,EA6BgBA,YA7BhB,UAgCc7lB,aAAIkM,KAAyB2Z,EAAaxyB,IAhCxD,gCAyC4B,OAzC5B,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UAyCkCf,cAAO,SAACna,GAAD,OACnC8b,cAAsB9b,EAAMmX,UAAWqc,EAASe,eA1CtD,QA4CI,OA5CJ,SAyCYI,EAzCZ,EAyCYA,YAzCZ,UA4CU7lB,aAAIkM,KAAyB2Z,EAAaxyB,IA5CpD,uDAiDO,SAAUiyB,KAAV,kEACL,OADK,SACC/Y,aAAUlb,KAAmCg0B,IAD9C,wCAOP,SAAUE,GAAep0B,GAAzB,oFAGmB,OAFTs0B,EAAet0B,EAAOM,QAAtBg0B,WADV,kBAGyBpa,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE+Z,eACvBnnB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAiBgC,OAjBhC,UAiBsCoK,aAAOya,cAA+BL,GAjB5E,QAkBQ,OADMM,EAjBd,iBAkBc/lB,aAAIkM,KAAiCuZ,IAlBnD,QAmBQrjB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAI,OAAEmlB,QAAF,IAAEA,OAAF,EAAEA,EAAiBJ,eAvBjC,wBAiCQ,OAPMtyB,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,yCAENyL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA6BuZ,EAAYpyB,IAjC3D,gCA4CI,OA5CJ,0BAqCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,yCAENyL,aAAc,GAzCpB,UA4CUpM,aAAIkM,KAA6BuZ,EAAYpyB,IA5CvD,uDAgDO,SAAUmyB,KAAV,kEACL,OADK,SACCjZ,aAAUlb,KAA+Bk0B,IAD1C,wC,kCC9YMS,GAAW,IAAI3b,KAAOC,OACjC,YACA,GACA,CAAEC,YAAa,OAEJ7E,GAAY,IAAI2E,KAAOG,MAAMwb,I,wBCahCC,I,aAsDOC,I,aAIPC,I,aA8COC,I,aAOPC,I,aAsCOC,I,aAWPC,I,aA8BOC,I,aAkBPC,I,aA8DOC,I,aAOPC,I,aA0COC,I,aAOPC,I,aAqDOC,I,aAUPC,I,aAoDOC,I,aAUPC,I,aAoDOC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aAoDOC,I,aAQPC,I,aAqDOC,IAruBjB,SAAUzB,GAAM90B,GAAhB,8EAIqB,OAJrB,kBAI2Boa,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUva,EAAOM,SAC5B6M,QAAS,CACP,eAAgB,sBARxB,aAIUsB,EAJV,QAYiB4C,QAAU,KAZ3B,iBAawB,OAbxB,SAa8B5C,EAAS+L,OAbvC,OAeM,OAfN,SAacna,EAbd,EAacA,MAbd,UAeY4S,aAAaa,QAAQ,OAAQzT,GAfzC,QAiBM,OADIm2B,EAAW/1B,KAAcC,aAAUL,IAhB7C,UAiBY4S,aAAaa,QAAQ,WAAYX,KAAKoH,UAAUic,IAjB5D,QA0BM,OA1BN,UA0BY3nB,aAAIkM,KAAsB1a,IA1BtC,gCA8BM,OA9BN,UA8BYwO,aACJkM,KACE,iIAhCV,QAoCM9J,6BAAiC,CAC/B/O,MAAO,CACL8Y,aACE,kIAvCZ,gCA4CI,OA5CJ,oCA4CUnM,aAAIkM,KAAkB,kCA5ChC,QA6CI9J,6BAAiC,CAC/B/O,MAAO,CACL8Y,aACE,kIAhDV,uDAsDO,SAAU+Z,KAAV,kEACL,OADK,SACC3Z,aAAUlb,IAA8B40B,IADzC,wCAIP,SAAUE,GAAuBh1B,GAAjC,oFAEmB,OAFnB,kBAEyBka,aAAO2B,oBAFhC,OAGmB,OADTE,EAFV,gBAGyB7B,aAAO2B,kBAHhC,UAGU4a,EAHV,QAKQ1a,EALR,iBAMoB,OANpB,UAM0B7B,aAAO2B,iBANjC,QAQiC,OAFrBxb,EANZ,iBAQuC+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAAuC8oB,EAAvC,KAAkD,CACrFpkB,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,OAAD,OAASnO,MAZhC,cAQYq2B,EARZ,QAgB6BrlB,QAAU,KAhBvC,iBAiB+B,OAjB/B,UAiBqCqlB,EAAmBlc,OAjBxD,QAkBQ,OADMmc,EAjBd,iBAkBc9nB,aAAIkM,KAA+C4b,IAlBjE,gCAoBwC,OApBxC,UAoB8Cvc,aACpCC,MADwC,UAErC1M,KAFqC,6BAEJ8oB,EAFI,KAGxC,CACEpkB,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,OAAD,OAASnO,MA3BpC,cAoBcu2B,EApBd,QAgCoCvlB,QAAU,KAhC9C,iBAiCiC,OAjCjC,UAiCuCulB,EAAwBpc,OAjC/D,QAkCU,OADMmc,EAjChB,iBAkCgB9nB,aAAIkM,KAA+C4b,IAlCnE,gCAoCU,OApCV,UAoCgB9nB,aAAIkM,QApCpB,gCAyCI,OAzCJ,oCAyCUlM,aAAIkM,QAzCd,QA0CI,OA1CJ,UA0CUlM,aAAIkM,KAAyB,4BA1CvC,uDA8CO,SAAUka,KAAV,kEACL,OADK,SACC7Z,aAAUlb,IAA+C80B,IAD1D,wCAOP,SAAUE,GAAal1B,GAAvB,wFACgC,OADhC,SACsCka,aAAO1P,6BAD7C,OAGmB,OAFX1K,EADR,yBAGyBoa,cAAO,SAACna,GAAD,OAA+B,MAApBA,EAAMI,KAAKE,SAHtD,OAIkB,OAJlB,gBAIwB6Z,cAAO,SAACna,GAAD,OAAWA,EAAMI,KAAKE,SAJrD,OAMuB,OAFbA,EAJV,iBAM6B6Z,cAAO,SAACna,GAAD,OAAWA,EAAMI,KAAKK,KAAKoD,OAN/D,WAMUizB,EANV,OAOUC,EAAM7wB,UAAS,IAAI8wB,MAAOC,UAAY,OAExCH,EAAaC,EAAMG,KAAkB,GAT7C,iBAUuB,OAVvB,UAU6B7c,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEla,UACvB8M,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,WAkB8B,OARlBoO,EAVZ,QAkBmB4C,OAlBnB,iBAmB0B,OAnB1B,UAmBgC5C,EAAS+L,OAnBzC,QAoBQ,OApBR,SAmBgBna,EAnBhB,EAmBgBA,MAnBhB,UAoBcwO,aAAIkM,KAA6B1a,IApB/C,QAsBQ,OAtBR,UAsBc4S,aAAaa,QAAQ,OAAQzT,GAtB3C,QAuBQ,OAvBR,UAuBc4S,aAAaa,QAAQ,WAAYX,KAAKoH,UAAU9Z,KAAcC,aAAUL,MAvBtF,qCAyBYP,GAAyBA,GAAyB,GAzB9D,iBAyBiE,OAzBjE,UAyBuE+O,aAAIkM,QAzB3E,QA0BqC,OA1BrC,UA0B2CtM,EAAS+L,OA1BpD,QA2BQ,OA3BR,SA0BgB0c,EA1BhB,EA0BgBA,iBA1BhB,UA2BcroB,aAAIkM,KAAA,2BAA8Bmc,EAAiB,IAA/C,IAAmDp3B,4BA3BrE,QA4BQ,OA5BR,UA4Bcq3B,aAAM,KA5BpB,+DAgCQr3B,GAAyBA,GAAyB,GAhC1D,iBAgC6D,OAhC7D,UAgCmE+O,aAAIkM,QAhCvE,QAkCI,OAlCJ,UAkCUlM,aAAIkM,KAAyB,4BAlCvC,uDAsCO,SAAUoa,KAAV,kEACL,OADK,SACC/Z,aAAUlb,IAA6Bg1B,IADxC,wCAWP,SAAUE,GAAkBp1B,GAA5B,8EACgB,OADhB,SACsBka,cAAO,SAACna,GAAD,OAAWA,EAAMI,KAAKE,SADnD,OAIqB,OAHbA,EADR,yBAI2B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEla,UACvB8M,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MATjC,UAY4B,OARlBoO,EAJV,QAYiB4C,OAZjB,iBAawB,OAbxB,UAa8B5C,EAAS+L,OAbvC,QAcM,OAdN,SAacna,EAbd,EAacA,MAbd,UAcYwO,aAAIkM,KAA6B1a,IAd7C,QAgBM,OAhBN,UAgBY4S,aAAaa,QAAQ,OAAQzT,GAhBzC,QAiBM,OAjBN,UAiBY4S,aAAaa,QAAQ,WAAYX,KAAKoH,UAAU9Z,KAAcC,aAAUL,MAjBpF,yIA8BO,SAAUg1B,KAAV,kEACL,OADK,SACCja,aACJ,CACElb,IACAA,IACAA,IACAA,IACAA,IACAA,IACAA,IACAA,KAEFk1B,IAZG,wCAkBP,SAAUE,GAAmBt1B,GAA7B,8FAEmB,OAFnB,kBAEyBka,aAAO2B,oBAFhC,mCAIoB,OAJpB,SAI0B3B,aAAO2B,iBAJjC,OAKuB,OADXxb,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MATnC,QAYyB,OAPboO,EALZ,iBAY+BA,EAAS+L,OAZxC,WAYYC,EAZZ,SAaUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAb/C,iBA0CQ,OA5BMsnB,EAAkB3c,EAAWnN,KAAK+pB,QACtC,SAACC,GAAD,OAAiD,IAApC72B,KAAc62B,GAASC,aAEhCC,EACsB,GAA1BJ,EAAgBzU,OAAcliB,KAAc22B,EAAgB,IAAIK,aAAe,GAC3EC,EAC4B,KAAhC,OAACF,QAAD,IAACA,IAAwB,IAAYA,EAAqBjyB,MAAM,KAAO,GACnEoyB,EArBd,uBAsBavjB,KAAmBC,OAtBhC,aAuBaD,KAAmBE,MAvBhC,EA8BYuG,aAAU8c,EAAoB7c,IAH9BvG,EA3BZ,EA0BUoC,SACEpC,UAEFqG,EA7BV,EA6BUA,OAEEgd,EAAgBF,EAAY/c,KAAI,SAACnL,GAKnC,OAJA+E,EAAU/E,GAAV,2BACK+E,EAAU/E,IADf,IAEEsF,cAAc,IAET,eACFP,EAAU/E,OAGbqoB,EAAiBjd,EAAOD,KAAI,SAACnL,GAAD,OAAQ+E,EAAU/E,MAxC1D,UA0CcX,aAAIipB,KAAwCF,EAAeC,IA1CzE,gCAiDQ,MALc,CACZ7c,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9ClC,UAiDcrM,aAAIipB,QAjDlB,gCA0DI,OA1DJ,0BAqDkB,CACZ9c,aAAc,KAAIG,WAClBF,aAAc,GAvDpB,UA0DUpM,aAAIipB,QA1Dd,uDA8DO,SAAUvC,KAAV,kEACL,OADK,SACCna,aAAUzG,KAAyC2gB,IADpD,wCAOP,SAAUE,GAAoBx1B,GAA9B,kFAGmB,OAHnB,kBAGyBka,aAAO2B,oBAHhC,OAI0B,OADhBE,EAHV,gBAIgC7B,aAAO6d,IAJvC,UAIUH,EAJV,QAKQ7b,EALR,iBAMoB,OANpB,UAM0B7B,aAAO2B,iBANjC,QAQuB,OAFXxb,EANZ,OAOY23B,EAA6BJ,EAAcjd,KAAI,SAACsd,GAAD,OAAQA,EAAGzoB,MAAI2L,WAP1E,UAQ6Bf,aAAKC,MAAD,UAAW1M,KAAX,6BAAoD,CAC7E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBgd,UAAW,GACXE,aAAcO,IAEhB7qB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAhBnC,QAmByB,OAXboO,EARZ,iBAmB+BA,EAAS+L,OAnBxC,WAmBYC,EAnBZ,SAoBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SApB/C,iBAsBQ,OAtBR,UAsBcjB,aAAIipB,QAtBlB,gCA6BQ,MALc,CACZ9c,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA1BlC,UA6BcrM,aAAIipB,QA7BlB,gCAsCI,OAtCJ,0BAiCkB,CACZ9c,aAAc,KAAIG,WAClBF,aAAc,GAnCpB,UAsCUpM,aAAIipB,QAtCd,uDA0CO,SAAUrC,KAAV,kEACL,OADK,SACCra,aAAUzG,KAAuC6gB,IADlD,wCAOP,SAAUE,GAAgC11B,GAA1C,kFAGmB,OAFXk4B,EAASl4B,EAAOM,QADxB,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OAMM,OADMxb,EALZ,iBAMY82B,aAAM,KANlB,QAQuB,OARvB,UAQ6B/c,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACD2d,IAEL/qB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAmByB,OAXboO,EARZ,iBAmB+BA,EAAS+L,OAnBxC,WAmBYC,EAnBZ,SAoBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SApB/C,iBA2BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,2BAENW,MAAO,MAzBjB,UA2BctB,aAAIkM,KAAkDmd,IA3BpE,gCAqCQ,OARMh2B,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,yBAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAA8C7Y,IArChE,gCAiDI,OAjDJ,0BAyCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,yBAENyL,aAAc,GA9CpB,UAiDUpM,aAAIkM,KAA8C7Y,IAjD5D,uDAqDO,SAAUyzB,KAAV,kEACL,OADK,SACCva,aACJlb,IACAw1B,IAHG,wCAUP,SAAUE,GAAyB51B,GAAnC,kFAGmB,OAFXk4B,EAASl4B,EAAOM,QADxB,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OAOuB,OAFXxb,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACD2d,IAEL/qB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAkByB,OAXboO,EAPZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBA0BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,oDAENW,MAAO,MAxBjB,UA0BctB,aAAIkM,KAAiDmd,IA1BnE,gCAoCQ,OARMh2B,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,YAAaR,EAAWS,QAjClC,UAoCcrM,aAAIkM,KAA6C7Y,IApC/D,gCAgDI,OAhDJ,0BAwCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAA6C7Y,IAhD3D,uDAoDO,SAAU2zB,KAAV,kEACL,OADK,SACCza,aACJlb,IACA01B,IAHG,wCAUP,SAAUE,GAAwB91B,GAAlC,kFAGmB,OAFXk4B,EAASl4B,EAAOM,QADxB,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OAOuB,OAFXxb,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,2BAAkD,CAC3E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACD2d,IAEL/qB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAkByB,OAXboO,EAPZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBA0BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,sCAENW,MAAO,MAxBjB,UA0BctB,aAAIkM,KAA0Cmd,IA1B5D,gCAoCQ,OARMh2B,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,oCAENyL,YAAaR,EAAWS,QAjClC,UAoCcrM,aAAIkM,KAAsC7Y,IApCxD,gCAgDI,OAhDJ,0BAwCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,oCAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAsC7Y,IAhDpD,uDAoDO,SAAU6zB,KAAV,kEACL,OADK,SACC3a,aAAUlb,IAA0C41B,IADrD,wCAOP,SAAUE,GAAsBh2B,GAAhC,kFAGmB,OAFXk4B,EAASl4B,EAAOM,QADxB,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OAOuB,OAFXxb,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACD2d,IAEL/qB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAkByB,OAXboO,EAPZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBA0BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,0CAENW,MAAO,MAxBjB,UA0BctB,aAAIkM,KAAwCmd,IA1B1D,gCAoCQ,OARMh2B,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wCAENyL,YAAaR,EAAWS,QAjClC,UAoCcrM,aAAIkM,KAAoC7Y,IApCtD,gCAgDI,OAhDJ,0BAwCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAoC7Y,IAhDlD,uDAoDO,SAAU+zB,KAAV,kEACL,OADK,SACC7a,aAAUlb,IAAuC81B,IADlD,wCAOP,SAAUE,GAAiBl2B,GAA3B,kFAGmB,OAFXuB,EAAevB,EAAOM,QAD9B,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OAOuB,OAFXxb,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBhZ,iBAEF4L,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAkByB,OAXboO,EAPZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBA0BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4CAENW,MAAO,MAxBjB,UA0BctB,aAAIkM,KAA0CxZ,IA1B5D,gCAoCQ,OARMW,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,0CAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAnC3C,UAoCc2M,aAAIkM,KAAsC7Y,IApCxD,gCAgDI,OAhDJ,0BAwCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,iDAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA/CvC,UAgDU2M,aAAIkM,KAAsC7Y,IAhDpD,uDAoDO,SAAUi0B,KAAV,kEACL,OADK,SACC/a,aAAUlb,IAA0Cg2B,IADrD,wCAOP,SAAUE,GAAcp2B,GAAxB,0EAGmB,OAFXm4B,EAAYn4B,EAAOM,QAD3B,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OA0BM,OA1BN,OAoBM5K,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,yCAENW,MAAO,MAxBf,UA0BYtB,aAAIkM,KAAgCod,IA1BhD,gCAgDI,OAhDJ,0BAwCUj2B,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA/CvC,UAgDU2M,aAAIkM,KAA4B7Y,IAhD1C,uDAoDO,SAAUm0B,KAAV,kEACL,OADK,SACCjb,aAAUlb,IAAsCk2B,IADjD,wCAQP,SAAUE,GAAyBt2B,GAAnC,kFAGmB,OAFXwB,EAAuBxB,EAAOM,QADtC,kBAGyB4Z,aAAO2B,oBAHhC,mCAKoB,OALpB,SAK0B3B,aAAO2B,iBALjC,OAOuB,OAFXxb,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mCAA0D,CACnF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnB/Y,qBAAsBA,IAExB2L,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAmByB,OAZboO,EAPZ,iBAmB+BA,EAAS+L,OAnBxC,WAmBYC,EAnBZ,SAoBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SApB/C,iBA2BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAG,6CAAD,OAA+ChO,KAEnD2O,MAAO,MAzBjB,UA2BctB,aAAIkM,KAA2CvZ,IA3B7D,gCAqCQ,OARMU,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,4CAENyL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAAuC7Y,IArCzD,gCAiDI,OAjDJ,0BAyCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,4CAENyL,aAAc,GA9CpB,UAiDUpM,aAAIkM,KAAuC7Y,IAjDrD,uDAqDO,SAAUq0B,KAAV,kEACL,OADK,SACCnb,aAAUlb,IAAoDo2B,IAD/D,wC,sBCvvBM8B,GAAQ,IAAIlf,KAAOC,OAAO,SAAU,GAAI,CAAEC,YAAa,YACvDnC,GAAS,IAAIiC,KAAOG,MAAM+e,ICD1BC,GAAkB,IAAInf,KAAOC,OACxC,mBACA,GACA,CAAEC,YAAa,SAACkf,GAAD,gBAAcA,EAAMC,QAApB,YAA+BD,EAAME,iBAEzCC,GAAmB,IAAIvf,KAAOG,MAAMgf,I,uBCevCK,I,aAyBOC,I,aAOPC,I,aAgCOC,I,aAMPC,I,aAgDOC,I,aAOPC,I,aAiDOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAuBOC,I,aAOPC,I,aAyDOC,IApSjB,SAAUb,GAAgB14B,GAA1B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpB+zB,aACE,CAAElzB,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ7D,EADd,EACEN,SAAYM,OACZ2D,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,0BAA+B9D,EAAQ2D,EAAQtU,EAAYb,KAE5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,sBAA2B7Y,OAnBlD,wCAyBO,SAAUy2B,KAAV,kEACL,OADK,SACCvd,aAAUlb,KAA4Bw4B,IADvC,wCAOP,SAAUE,GAAuB54B,GAAjC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpB+zB,aACE,CAAEhe,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ7D,EADd,EACEN,SAAYM,OACZ2D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,iCAAsC9D,EAAQ2D,EAAQtU,EAAYb,KAGtE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,6BAAkC7Y,OA1BzD,yCAgCO,SAAU22B,KAAV,kEACL,OADK,SACCzd,aAAUlb,KAAoC04B,IAD/C,wCAMP,SAAUE,GAAS94B,GAAnB,wEACQo4B,EAAQp4B,EAAOM,QAErBm5B,aAAiB,2BACVrB,GADS,IACFA,MAAM,2BAAMA,EAAMA,OAAb,IAAoBG,QAAS,SAC9C,CACErnB,cAAc,WAAD,8BAAE,WAAOzC,GAAP,0BAAAH,EAAA,sDACPorB,EAAaj5B,KAAcgO,EAASnB,KAAKqsB,WACzCC,EAAmBnrB,EAASnB,KAAKusB,eACpClf,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC9BD,KAAI,SAACmf,GAAD,OACHA,EAAIC,YAAJ,2BAESD,GAFT,IAGMC,YAAaD,EAAIC,YAAYx0B,MAAM,KAAKoV,KAAI,SAACtM,GAC3C,IAAM2rB,EAAY3rB,EAAK9I,MAAM,KAC7B,GAAyB,IAArBy0B,EAAUrX,OACZ,MAAO,CACLsX,YAAaC,WAAWF,EAAU,IAClCxB,aAAc0B,WAAWF,EAAU,IACnCG,SAAUD,WAAWF,EAAU,IAC/BI,UAAWF,WAAWF,EAAU,IAChC3yB,SAAU6yB,WAAWF,EAAU,UAX3C,2BAeSF,GAfT,IAecC,YAAa,QAEzBM,EAAe5rB,EAASnB,KAAK+sB,aAtBtB,EA0BTxf,aAAU+e,EAAkBU,IAFlB7B,EAxBD,EAwBX9hB,SAAY8hB,iBACZ7d,EAzBW,EAyBXA,OAEF5I,GAAMkQ,SACJnH,uBAA4Bqd,EAAMA,MAAMG,QAAS,CAC/CH,MAAM,2BAAMsB,GAAP,IAAmBW,iBACxBE,YAAa,CAAE5jB,SAAU8hB,EAAkBpb,MAAOzC,MA9BzC,2CAAF,mDAAC,GAkCdpJ,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,mBAAwBqd,EAAMA,MAAMG,QAASr2B,IADjD,2CAAF,mDAAC,KAId,GA5CJ,wCAgDO,SAAU62B,KAAV,kEACL,OADK,SACC3d,aAAUlb,KAAyB44B,IADpC,wCAOP,SAAUE,GAAUh5B,GAApB,4EAEuB,OADfo4B,EAAQp4B,EAAOM,QADvB,SAE6B4Z,aAAO2B,IAAoBuc,EAAMA,MAAMG,SAFpE,gBAEUiC,EAFV,EAEUA,SAERf,aACErB,EACA,CACElnB,cAAc,WAAD,8BAAE,WAAOzC,GAAP,0BAAAH,EAAA,sDACPmsB,EAAch6B,KAAcgO,EAASnB,KAAKqsB,WAC1Ce,EAAoBjsB,EAASnB,KAAKusB,eACrClf,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC9BD,KAAI,SAACmf,GAAD,OACHA,EAAIC,YAAJ,2BAESD,GAFT,IAGMC,YAAaD,EAAIC,YAAYx0B,MAAM,KAAKoV,KAAI,SAACtM,GAC3C,IAAM2rB,EAAY3rB,EAAK9I,MAAM,KAC7B,GAAyB,IAArBy0B,EAAUrX,OACZ,MAAO,CACLsX,YAAaC,WAAWF,EAAU,IAClCxB,aAAc0B,WAAWF,EAAU,IACnCG,SAAUD,WAAWF,EAAU,IAC/BI,UAAWF,WAAWF,EAAU,IAChC3yB,SAAU6yB,WAAWF,EAAU,UAX3C,2BAeSF,GAfT,IAecC,YAAa,QAEzBM,EAAe5rB,EAASnB,KAAK+sB,aAtBtB,EA0BTxf,aAAU6f,EAAmBJ,IAFnB7B,EAxBD,EAwBX9hB,SAAY8hB,iBACZ7d,EAzBW,EAyBXA,OAEF5I,GAAMkQ,SACJnH,wBAA6B,CAC3Bqd,MAAM,2BAAMqC,GAAP,IAAoBJ,iBACzBE,YAAa,CAAE5jB,SAAU8hB,EAAkBpb,MAAOzC,MA9BzC,2CAAF,mDAAC,GAkCdpJ,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,oBAAyByf,EAAUt4B,IADvC,2CAAF,mDAAC,KAId,GA7CJ,wCAiDO,SAAU+2B,KAAV,kEACL,OADK,SACC7d,aAAUlb,KAA0B84B,IADrC,wCAOP,SAAUE,GAAYl5B,GAAtB,0EAEuB,OADbu4B,EAAYv4B,EAAOM,QAAnBi4B,QADV,SAE6Bre,aAAO2B,IAAoB0c,GAFxD,OAEQoC,EAFR,OAIEC,aACE,CAAErC,UAASsC,UAAS,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAcE,WACpC,CACE3pB,cAAc,WAAD,8BAAE,WAAOzC,GAAP,UAAAH,EAAA,sDACb0D,GAAMkQ,SAASnH,yBAA8Bwd,IADhC,2CAAF,mDAAC,GAGd/mB,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,qBAA0Bwd,EAASr2B,IADvC,2CAAF,mDAAC,KAVlB,wCAiBO,SAAUi3B,KAAV,kEACL,OADK,SACC/d,aAAUlb,KAA4Bg5B,IADvC,wCAOP,SAAUE,GAAap5B,GAAvB,wEACU86B,EAAa96B,EAAOM,QAApBw6B,SAERC,aACE,CAAED,YACF,CACE5pB,cAAc,WAAD,8BAAE,WAAOzC,GAAP,UAAAH,EAAA,sDACb0D,GAAMkQ,SACJnH,0BAA+B+f,EAASv1B,MAAM,KAAKoV,KAAI,SAAC4d,GAAD,OAAatyB,SAASsyB,QAFlE,2CAAF,mDAAC,GAKd/mB,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SACJnH,sBACE+f,EAASv1B,MAAM,KAAKoV,KAAI,SAAC4d,GAAD,OAAatyB,SAASsyB,MAC9Cr2B,IAJO,2CAAF,mDAAC,KAXlB,wCAuBO,SAAUm3B,KAAV,kEACL,OADK,SACCje,aAAUlb,KAA6Bk5B,IADxC,wCAOP,SAAUE,GAAUt5B,GAApB,kFAGmB,OAFXo4B,EAAQp4B,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU6d,GACrBjrB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aACJkM,qBACEqd,EAAMG,QACN9d,EAAWnN,KAAK0tB,WAChB5C,EAAM6C,aACN7C,EAAM3yB,eACN2yB,EAAMzyB,WACNyyB,EAAMvyB,gBAzBlB,QA6BQoL,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4BA/BhB,wBA0CQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,qBAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAzC3C,UA0Cc2M,aAAIkM,iBAAsB7Y,IA1CxC,gCAqDI,OArDJ,0BA8CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,qBAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UApDvC,UAqDU2M,aAAIkM,iBAAsB7Y,IArDpC,uDAyDO,SAAUq3B,KAAV,kEACL,OADK,SACCne,aAAUlb,KAA0Bo5B,IADrC,wC,2BC9SG4B,I,aAyCOC,I,aAOPC,I,aA8COC,I,aAOPC,I,aAgDOC,I,aAOPC,I,aA6COC,IAzMjB,SAAUP,GAAkBl7B,GAA5B,4FAGmB,OAHnB,EAC8BA,EAAOM,QADrC,EACUkU,MAAOknB,EADjB,EACiBA,SADjB,kBAGyBxhB,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,IAE3Bia,KAAMnH,KAAKoH,UAAU,CAAEmhB,SAAUA,MAZzC,QAcyB,OARbjtB,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZyJ,EAlBtB,EAkBU5N,SAAY4N,SACZ3J,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAAiCwJ,EAAU3J,IArB7D,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAA6B7Y,IA5B/C,gCAqCI,OArCJ,0BAgCUA,EAAa,CACjB8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAA6B7Y,IArC3C,uDAyCO,SAAUi5B,KAAV,kEACL,OADK,SACC/f,aAAUlb,KAA8Bg7B,IADzC,wCAOP,SAAUE,GAAWp7B,GAArB,oFAGmB,OAFXskB,EAAUtkB,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB+J,GAApB,IAA6BqX,UAAW,QAC9CxuB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM8rB,EAAen7B,KAAcga,EAAWnN,MAlBtD,UAmBcuB,aAAIkM,KAA8BuJ,EAAQqX,UAAWC,IAnBnE,QAqBQ3qB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,qBAENC,KAAM6U,EAAQuX,cAzBxB,wBAiCQ,OALM35B,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA0BuJ,EAAQqX,UAAWz5B,IAjC/D,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAA0BuJ,EAAQqX,UAAWz5B,IA1C3D,uDA8CO,SAAUm5B,KAAV,kEACL,OADK,SACCjgB,aAAUlb,KAA2Bk7B,IADtC,wCAOP,SAAUE,GAAYt7B,GAAtB,0FAGmB,OAFXskB,EAAUtkB,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU+J,GACrBnX,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMgsB,EAAgBr7B,KAAcga,EAAWnN,MAlBvD,UAmBcuB,aAAIkM,KAA+B+gB,IAnBjD,QAoBQ7qB,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,qBAENC,KAAM6U,EAAQuX,cAxBxB,wBA+B+B,OAJjB35B,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BqChB,cAAO,SAACna,GAAD,OAClC8b,IAAqB9b,EAAMwkB,SAAUD,EAAQqX,cAhCvD,QAkCQ,OAlCR,SA+BgBI,EA/BhB,EA+BgBA,WA/BhB,UAkCcltB,aAAIkM,KAA2BghB,EAAY75B,IAlCzD,gCA2CuB,OA3CvB,0BAsCUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GAxCpB,UA2C6Bf,cAAO,SAACna,GAAD,OAAW8b,IAAqB9b,EAAOukB,EAAQqX,cA3CnF,QA4CI,OADMI,EA3CV,iBA4CUltB,aAAIkM,KAA2BghB,EAAY75B,IA5CrD,uDAgDO,SAAUq5B,KAAV,kEACL,OADK,SACCngB,aAAUlb,KAA4Bo7B,IADvC,wCAOP,SAAUE,GAAcx7B,GAAxB,oFAImB,OAHXg8B,EAAch8B,EAAOM,QACrBikB,EAAWyX,EAAYzX,SAF/B,kBAIyBrK,aAAOC,oBAJhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mBAA0C,CACnE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEgK,aACvBpX,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAgCihB,EAAYzX,SAAUyX,EAAYC,eAlBpF,QAmBQhrB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAIwsB,EAAYzX,SAAS5B,OAAS,EAAI,qBAAuB,qBAE/DlT,KAAMusB,EAAYC,aAClBxJ,SAAUuJ,EAAYzX,SAAS5B,OAAS,IAxBlD,wBAgCQ,OALMzgB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAA4BihB,EAAYzX,SAAUriB,IAhCpE,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAA4BihB,EAAYzX,SAAUriB,IAzChE,uDA6CO,SAAUu5B,KAAV,kEACL,OADK,SACCrgB,aAAUlb,KAA8Bs7B,IADzC,wC,gDCpMGU,I,aAuCOC,IAvCjB,SAAUD,GAA0Bl8B,GAApC,wEACQu4B,EAAUv4B,EAAOM,QAEvB87B,aACE,CAAE7D,WACF,CACErnB,cAAe,SAACzC,GACd,IACM4tB,EADa5tB,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC5BD,KAAI,SAACmf,GAAD,OACrCA,EAAIC,YAAJ,2BAESD,GAFT,IAGMC,YAAaD,EAAIC,YAAYx0B,MAAM,KAAKoV,KAAI,SAACtM,GAC3C,IAAM2rB,EAAY3rB,EAAK9I,MAAM,KAC7B,GAAyB,IAArBy0B,EAAUrX,OACZ,MAAO,CACLsX,YAAaC,WAAWF,EAAU,IAClCxB,aAAc0B,WAAWF,EAAU,IACnCG,SAAUD,WAAWF,EAAU,IAC/BI,UAAWF,WAAWF,EAAU,IAChC3yB,SAAU6yB,WAAWF,EAAU,UAX3C,2BAeSF,GAfT,IAecC,YAAa,QAE7B,EAGIlf,aAAUwhB,EAAiBvhB,IAFjB2d,EADd,EACE9hB,SAAY8hB,iBACZ7d,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAyC0d,EAAkB7d,KAE5EpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OAjC5D,wCAuCO,SAAUi6B,KAAV,kEACL,OADK,SACC/gB,aAAUlb,KAAuCg8B,IADlD,wC,mECpCGI,I,aAuCOC,I,aAOPC,I,aA8BOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAwBOC,IApIjB,SAAUP,GAAqBt8B,GAA/B,oFAC4EA,EAAOM,QAAzE+wB,EADV,EACUA,UAAWC,EADrB,EACqBA,QAAS7rB,EAD9B,EAC8BA,eAAgBE,EAD9C,EAC8CA,WAAYE,EAD1D,EAC0DA,cAExDi3B,aACE,CAAEzL,YAAWC,UAAS7rB,iBAAgBE,aAAYE,iBAClD,CACEqL,cAAe,SAACzC,GACd,IAAMsuB,EAAmBtuB,EAASnB,KAAK0vB,kBAAkBriB,KAAI,SAACC,GAAD,mBAAC,eACzDna,KAAcma,IAD0C,IAE3DqiB,OAAQ,OAEJC,EAAuBzuB,EAASnB,KAAK6vB,sBAAsBxiB,KAAI,SAACC,GAAD,mBAAC,eACjEna,KAAcma,IADkD,IAEnEqiB,OAAQ,OAEV,EAGIpiB,aAAUkiB,EAAkBjiB,MAFlBkiB,EADd,EACErmB,SAAYqmB,kBACJI,EAFV,EAEExiB,OAEF,EAGIC,aAAUqiB,EAAsBpiB,MAFtBqiB,EADd,EACExmB,SAAYwmB,sBACJE,EAFV,EAEEziB,OAEF5I,GAAMkQ,SACJnH,KACEiiB,EACAI,EACAD,EACAE,KAIN7rB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgC7Y,OAjCvD,wCAuCO,SAAUq6B,KAAV,kEACL,OADK,SACCnhB,aAAUlb,KAAwCo8B,IADnD,wCAOP,SAAUE,GAAex8B,GAAzB,4EAE4B,OADpBs9B,EAAat9B,EAAOM,QAD5B,SAEkC4Z,cAAO,SAACna,GAAD,OACrC8b,KAA8B9b,EAAOu9B,EAAWC,sBAHpD,gBAEUC,EAFV,EAEUA,cAGRC,aAAsB,2BAEfH,GAFc,IAGjBC,kBAAmBC,EAAcD,kBACjChF,QAASiF,EAAcjF,QACvB9I,OAAQ+N,EAAc/N,OACtB6E,WAAYkJ,EAAclJ,WAC1BnC,SAAUqL,EAAcrL,WAE1B,CACEjhB,cAAe,SAACzC,GACd,IAAMivB,EAAmBj9B,KAAcgO,EAASnB,MAChD0E,GAAMkQ,SACJnH,KAAkCuiB,EAAWC,kBAAmBG,KAGpElsB,YAAa,SAACtP,GACZ8P,GAAMkQ,SACJnH,KAA8BuiB,EAAWC,kBAAmBC,EAAet7B,OAvBrF,wCA8BO,SAAUu6B,KAAV,kEACL,OADK,SACCrhB,aAAUlb,KAAsCs8B,IADjD,wCAOP,SAAUE,GAAiB18B,GAA3B,0EAE4B,OADlBu9B,EAAsBv9B,EAAOM,QAA7Bi9B,kBADV,SAEkCrjB,cAAO,SAACna,GAAD,OACrC8b,KAA8B9b,EAAOw9B,MAHzC,OAEQI,EAFR,OAKEC,aAAwB,eACjBD,GACL,CACEzsB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAmCwiB,KAEpD/rB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA+BwiB,EAAmBr7B,OAZzE,wCAkBO,SAAUy6B,KAAV,kEACL,OADK,SACCvhB,aAAUlb,KAAwCw8B,IADnD,wCAOP,SAAUE,GAAuB58B,GAAjC,wEACU69B,EAAqB79B,EAAOM,QAA5Bu9B,iBAERC,aAA8B,eACvBD,GACL,CACE3sB,cAAe,SAACzC,GACd,IAAMsuB,EAAmBtuB,EAASnB,KAAKqN,KAAI,SAACC,GAAD,mBAAC,eACvCna,KAAcma,IADwB,IAEzCqiB,OAAQ,OAEV,EAGIpiB,aAAUkiB,EAAkBjiB,MAFlBkiB,EADd,EACErmB,SAAYqmB,kBACJI,EAFV,EAEExiB,OAEF5I,GAAMkQ,SAASnH,KAA0CiiB,EAAmBI,KAE9E5rB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAsC7Y,OAlB7D,wCAwBO,SAAU26B,KAAV,kEACL,OADK,SACCzhB,aAAUlb,KAAyC08B,IADpD,wC,cC/IMmB,GAAuB,eAAC77B,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAC5Fhb,KAAMC,KACNI,QAAS,CACP4B,WAQS87B,GAAwB,SAACC,EAAOC,GAAR,MAAqB,CACxDj+B,KAAMC,KACNI,QAAS,CAAE29B,QAAOC,aAEPC,GAAoB,SAACF,EAAO/7B,GAAR,MAAmB,CAClDjC,KAAMC,KACNI,QAAS,CACP29B,QACA/7B,WAQSk8B,GAAyB,SAACF,GAAD,MAAc,CAClDj+B,KAAMC,KACNI,QAAS49B,IAEEG,GAAqB,SAACC,EAAYp8B,GAAb,MAAwB,CACxDjC,KAAMC,KACNI,QAAS,CACPg+B,aACAp8B,WAUSq8B,GAA0B,SAACC,GAAD,MAAqB,CAC1Dv+B,KAAMC,KACNI,QAAS,CACPk+B,oBAGSC,GAAsB,SAACD,EAAgBt8B,GAAjB,MAA4B,CAC7DjC,KAAMC,KACNI,QAAS,CACPk+B,iBACAt8B,W,UC9DSg8B,GAAU,IAAIhlB,KAAOC,OAAO,WAAY,GAAI,CAAEC,YAAa,mBAC3DslB,GAAW,IAAIxlB,KAAOG,MAAM6kB,I,uBCgB/BS,I,aAqBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAmBOC,I,aAOPC,I,aAgBOC,IA7FjB,SAAUP,GAAkB3+B,GAA5B,wEACUu9B,EAAsBv9B,EAAOM,QAA7Bi9B,kBAER4B,aACE,CAAE5B,qBACF,CACErsB,cAAe,SAACzC,GACd,IFxBiCkI,EAAU0G,EEwBrC3C,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ4jB,EADd,EACE/nB,SAAY+nB,SACZ9jB,EAFF,EAEEA,OAEF5I,GAAMkQ,UF7B2BvL,EE6Be+nB,EF7BLrhB,EE6BezC,EF7BJ,CAC5D3a,KAAMC,KACNI,QAAS,CACPqW,WACA0G,aE2BE7L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAA6B7Y,OAfpD,wCAqBO,SAAU08B,KAAV,kEACL,OADK,SACCxjB,aAAUlb,KAA+Cy+B,IAD1D,wCAOP,SAAUE,GAAW7+B,GAArB,wEACQk+B,EAAUl+B,EAAOM,QACvB8+B,aAAmB,2BACZlB,GADW,IACFM,eAAgB,OAC9B,CACEttB,cAAe,SAACzC,GACd,IAAM4wB,EAAe5+B,KAAcgO,EAASnB,MAC5C0E,GAAMkQ,SAASnH,GAA8BmjB,EAAQM,eAAgBa,KAEvE7tB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAA0BmjB,EAAQM,eAAgBt8B,OAVzE,wCAgBO,SAAU48B,KAAV,kEACL,OADK,SACC1jB,aAAUlb,KAA4C2+B,IADvD,wCAOP,SAAUE,GAAY/+B,GAAtB,4EAEyB,OADjBk+B,EAAUl+B,EAAOM,QADzB,SAE+B4Z,cAAO,SAACna,GAAD,OAClC8b,KAA2B9b,EAAOm+B,EAAQM,mBAH9C,gBAEUF,EAFV,EAEUA,WAGRc,aAAmB,eACZlB,GACL,CACEhtB,cAAe,SAACzC,GACd,IAAM6wB,EAAgB7+B,KAAcgO,EAASnB,MAC7C0E,GAAMkQ,SAASnH,GAA+BukB,KAEhD9tB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAA2BujB,EAAYp8B,OAb9D,wCAmBO,SAAU88B,KAAV,kEACL,OADK,SACC5jB,aAAUlb,KAA6C6+B,IADxD,wCAOP,SAAUE,GAAcj/B,GAAxB,0EAEyB,OADfw+B,EAAmBx+B,EAAOM,QAA1Bk+B,eADV,SAE+BtkB,cAAO,SAACna,GAAD,OAAW8b,KAA2B9b,EAAOy+B,MAFnF,OAEQe,EAFR,OAGEC,aAAqB,eACdD,GACL,CACEruB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,GAAgCyjB,KAEjDhtB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAA4ByjB,EAAgBt8B,OAVnE,wCAgBO,SAAUg9B,KAAV,kEACL,OADK,SACC9jB,aAAUlb,KAA+C++B,IAD1D,wC,uBC9GMQ,GAAiB,IAAIvmB,KAAOC,OACvC,mBACA,GACA,CAAEC,YAAa,sBAEJsmB,GAAmB,IAAIxmB,KAAOG,MAAMomB,I,iCCcvCE,I,aAsDOC,I,aAOPC,I,aAyBOC,I,aAOPC,I,aA2BOC,I,aAOPC,I,aAoDOC,IAnLjB,SAAUP,GAAsB3/B,GAAhC,oGAGmB,OAHnB,SAEUsC,EAAUtC,EAAOM,QAF3B,SAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkB,eAAKxP,KAC5C6K,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAwBQ,OARMqwB,EAAa1/B,KAAcga,EAAWnN,KAAK6yB,YAhBzD,EAiBwC1/B,KAAcga,EAAWnN,KAAK8yB,qBAAtDA,EAjBhB,EAiBgBA,oBAjBhB,EAkBkC3/B,KAAcga,EAAWnN,KAAK+yB,eAAhDA,EAlBhB,EAkBgBA,cACF3lB,EAAaD,EAAWnN,KAAKgzB,WAAW3lB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAnBpF,EAuBYC,aAAUH,EAAYI,IAFZ4kB,EArBtB,EAqBU/oB,SAAY+oB,iBACZ9kB,EAtBV,EAsBUA,OAtBV,UAwBc/L,aACJkM,KAAyC2kB,EAAkB9kB,EAA3D,2BACKulB,GADL,IAEEC,sBACAC,oBA5BZ,gCAuCQ,OAPMn+B,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,yCAENyL,YAAaR,EAAWS,QApClC,UAuCcrM,aAAIkM,KAAqC7Y,IAvCvD,gCAkDI,OAlDJ,0BA2CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,yCAENyL,aAAc,GA/CpB,UAkDUpM,aAAIkM,KAAqC7Y,IAlDnD,uDAsDO,SAAU09B,KAAV,kEACL,OADK,SACCxkB,aAAUlb,KAAuCy/B,IADlD,wCAOP,SAAUE,GAAmB7/B,GAA7B,0EAE4B,OADpBy/B,EAAiBz/B,EAAOM,QADhC,SAEkC4Z,cAAO,SAACna,GAAD,OACrC8b,IAA6B9b,EAAO0/B,EAAelC,sBAHvD,OAEQgD,EAFR,OAKEC,qCAA0B,2BAEnBf,GAFkB,IAGrBlC,kBAAmBgD,EAAkBhD,kBACrCpL,SAAUoO,EAAkBpO,WAE9B,CACEjhB,cAAe,SAACzC,GACd,IAAMgyB,EAAuBhgC,KAAcgO,EAASnB,MACpD0E,GAAMkQ,SACJnH,KAAA,2BAAwC0kB,GAAmBgB,MAG/DjvB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA+B7Y,OAnBtD,wCAyBO,SAAU49B,KAAV,kEACL,OADK,SACC1kB,aAAUlb,KAAoC2/B,IAD/C,wCAOP,SAAUE,GAAuB//B,GAAjC,gFACiDA,EAAOM,QAA9Ci9B,EADV,EACUA,kBAAmBhF,EAD7B,EAC6BA,QAASmI,EADtC,EACsCA,OACpCC,yCACE,CAAEpD,oBAAmBhF,UAASmI,UAC9B,CACExvB,cAAe,SAACzC,GACVA,EAASqB,SACXmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,8CAGVwC,GAAMkQ,SAASnH,KAAuCwiB,EAAmBhF,EAASmI,KAEpFlvB,YAAa,SAACtP,GACZ,IAAM0+B,EAAW,CACf5lB,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,6CAGRyB,6BAAiC,CAAE/O,MAAO0+B,IAC1C5uB,GAAMkQ,SAASnH,KAAmC7Y,OArB1D,wCA2BO,SAAU89B,KAAV,kEACL,OADK,SACC5kB,aAAUlb,KAA+C6/B,IAD1D,wCAOP,SAAUE,GAAyBjgC,GAAnC,kFAGmB,OAFX0iB,EAAc1iB,EAAOM,QAD7B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUmI,GACrBvV,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAkBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SACX2K,EAAWnN,KAAKqV,SAAWD,EAAYC,QApB/C,iBAsBQ,OAtBR,UAsBc9T,aAAIkM,KAA2C2H,IAtB7D,QAwBQzR,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,yCA1BhB,wBAqCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UApC3C,UAqCc2M,aAAIkM,KAAuC7Y,IArCzD,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA/CvC,UAgDU2M,aAAIkM,KAAuC7Y,IAhDrD,uDAoDO,SAAUg+B,KAAV,kEACL,OADK,SACC9kB,aAAUlb,KAA4C+/B,IADvD,wC,cCtMMY,GAA+B,SAC1ClqB,EACA0G,EACA8iB,EACAW,EACAC,EACAC,EACAC,GAP0C,MAQtC,CACJhhC,KAAMC,KACNI,QAAS,CACPqW,WACA0G,QACA8iB,aACAW,gBACAC,aACAC,iBACAC,iBAGSC,GAA2B,eAACh/B,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAChGhb,KAAMC,KACNI,QAAS,CACP4B,W,aCRMi/B,I,aAsEOC,IAtEjB,SAAUD,GAAkBnhC,GAA5B,4GAGmB,OAHnB,SAEUsC,EAAUtC,EAAOM,QAF3B,SAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkB,eAAKxP,KAC5C6K,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAoCQ,OApBMqwB,EAAa1/B,KAAcga,EAAWnN,KAAK6yB,YAE3ChpB,EAAQsD,EAAWnN,KAAK6J,MAAMwD,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAlB1E,EAsBYC,aAAU1D,EAAOkqB,IAFAP,EApB7B,EAoBUnqB,SAAYQ,MACJ4pB,EArBlB,EAqBUnmB,OAGI3D,EAASwD,EAAWnN,KAAK2J,OAAO0D,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAxB5E,EA4BYC,aAAU5D,EAAQqqB,IAFAN,EA1B9B,EA0BUrqB,SAAYM,OACJgqB,EA3BlB,EA2BUrmB,OAGIF,EAAaD,EAAWnN,KAAKi0B,gBAAgB5mB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA9BzF,EAkCYC,aAAUH,EAAY8mB,IAFZ9B,EAhCtB,EAgCU/oB,SAAY+oB,iBACZ9kB,EAjCV,EAiCUA,OAjCV,UAoCc/L,aACJkM,GACE2kB,EACA9kB,EACAulB,EACAW,EACAC,EACAC,EACAC,IA5CZ,gCAuDQ,OAPM/+B,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wCAENyL,YAAaR,EAAWS,QApDlC,UAuDcrM,aAAIkM,GAAiC7Y,IAvDnD,gCAkEI,OAlEJ,0BA2DUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wCAENyL,aAAc,GA/DpB,UAkEUpM,aAAIkM,GAAiC7Y,IAlE/C,uDAsEO,SAAUk/B,KAAV,kEACL,OADK,SACChmB,aAAUlb,KAAmCihC,IAD9C,wC,aCrFMM,GAAiB,IAAIvoB,KAAOC,OAAO,kBAAmB,GAAI,CAAEC,YAAa,aACzEpC,GAAkB,IAAIkC,KAAOG,MAAMooB,I,uBCkBtCC,I,aAgCOC,I,aAOPC,I,aAqCOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAqBOC,I,aAOPC,I,aAmDOC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aA2COC,I,aAOPC,I,aA2COC,I,aAOPC,I,aA0COC,I,aAQPC,I,aAkBOC,IArajB,SAAUnB,GAAyB1hC,GAAnC,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpBq9B,aACE,CAAEx8B,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ9D,EADd,EACEL,SAAYK,gBACZ4D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACE/D,EACA4D,EACAtU,EACAb,KAIN+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAoC7Y,OA1B3D,wCAgCO,SAAUy/B,KAAV,kEACL,OADK,SACCvmB,aAAUlb,KAAsCwhC,IADjD,wCAOP,SAAUE,GAAgC5hC,GAA1C,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBq9B,aACE,CAAEtnB,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ9D,EADd,EACEL,SAAYK,gBACZ4D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACE/D,EACA4D,EACAtU,EACAb,KAIN+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2C7Y,OA/BlE,yCAqCO,SAAU2/B,KAAV,kEACL,OADK,SACCzmB,aAAUlb,KAA8C0hC,IADzD,wCAOP,SAAUE,GAAkB9hC,GAA5B,wEACQyhC,EAAiBzhC,EAAOM,QAC9ByiC,aAAgB,eACTtB,GACL,CACEvwB,cAAe,SAACzC,GACd,IAAMu0B,EAAsBviC,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,KAAK,IACzD0E,GAAMkQ,SACJnH,KAAqC0mB,EAAewB,SAAUD,KAGlExxB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAiC0mB,EAAewB,SAAU/gC,OAZjF,wCAkBO,SAAU6/B,KAAV,kEACL,OADK,SACC3mB,aAAUlb,KAAmC4hC,IAD9C,wCAOP,SAAUE,GAAmBhiC,GAA7B,0EAE4B,OADpByhC,EAAiBzhC,EAAOM,QADhC,SAEkC4Z,cAAO,SAACna,GAAD,OACrC8b,IAA4B9b,EAAO0hC,EAAeyB,gBAHtD,OAEQC,EAFR,OAKEJ,aAAgB,eACTtB,GACL,CACEvwB,cAAe,SAACzC,GACd,IAAM20B,EAAuB3iC,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,KAAK,IAC1D0E,GAAMkQ,SACJnH,KAAsC0mB,EAAeyB,YAAaE,KAGtE5xB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkCooB,EAAmBjhC,OAf5E,wCAqBO,SAAU+/B,KAAV,kEACL,OADK,SACC7mB,aAAUlb,KAAoC8hC,IAD/C,wCAOP,SAAUE,GAAqBliC,GAA/B,wFAGmB,OAHnB,EAC+BA,EAAOM,QAA5B+iC,EADV,EACUA,MAAOC,EADjB,EACiBA,UADjB,kBAGyBppB,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gBAAuC,CAChE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE8oB,UACvBl2B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAgByB,OATboO,EAPZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAuCsoB,EAAOC,IAlBhE,QAqB+B,OArB/B,UAqBqCppB,aAAOC,oBArB5C,WAqBcopB,EArBd,QAuBYF,EAAM98B,SAASg9B,GAvB3B,iBAuB4C,OAvB5C,UAuBkD10B,aAAI20B,QAvBtD,gCAyBUvyB,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI6zB,EAAM1gB,OAAS,EAAI,cAAgB,eAEzC8P,SAAU4Q,EAAM1gB,OAAS,EACzBlT,KAAM6zB,IA9BlB,gCAsCQ,OALMphC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAnClC,UAsCcrM,aAAIkM,KAAmCsoB,EAAOnhC,IAtC5D,gCA+CI,OA/CJ,0BA0CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA5CpB,UA+CUpM,aAAIkM,KAAmCsoB,EAAOnhC,IA/CxD,uDAmDO,SAAUigC,KAAV,kEACL,OADK,SACC/mB,aAAUlb,KAAsCgiC,IADjD,wCAOP,SAAUE,GAA6BpiC,GAAvC,kFAGmB,OAFXk4B,EAASl4B,EAAOM,QADxB,kBAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eACD2d,IAEL/qB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAkByB,OAXboO,EAPZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBA0BQ,OANAmB,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,0CAENW,MAAO,MAxBjB,UA0BctB,aAAIkM,KAA+Cmd,IA1BjE,gCAoCQ,OARMh2B,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,YAAaR,EAAWS,QAjClC,UAoCcrM,aAAIkM,KAA2C7Y,IApC7D,gCAgDI,OAhDJ,0BAwCUA,EAAQ,CAEZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAA2C7Y,IAhDzD,uDAoDO,SAAUmgC,KAAV,kEACL,OADK,SACCjnB,aAAUlb,KAA+CkiC,IAD1D,wCAOP,SAAUE,GAAwBtiC,GAAlC,gFAGmB,OAFXyjC,EAAsBzjC,EAAOM,QADrC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iCAAwD,CACjF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUkpB,GACrBt2B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAiBQ,OAjBR,UAiBcjB,aAAIkM,KAAwD0oB,IAjB1E,QAqB8B,OAHtBxyB,8CAAkD,CAChDxB,KAAMg0B,EAAoBR,WAnBpC,UAqBoC/oB,aAAOC,gBArB3C,WAqBcupB,EArBd,OAsBYD,EAAoBR,WAAaS,EAAc5/B,SAtB3D,iBAuBU,OAvBV,UAuBgB+K,aAAI20B,QAvBpB,iCA0BsB,CACZxoB,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA5BlC,0DAkCkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GApCpB,uDA2CO,SAAUsnB,KAAV,kEACL,OADK,SACCnnB,aAAUlb,KAAsDoiC,IADjE,wCAOP,SAAUE,GAAexiC,GAAzB,8EAGmB,OAFX2jC,EAAqB3jC,EAAOM,QADpC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUopB,GACrBx2B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAuC4oB,IAlBzD,QAmBQ1yB,8BAAkC,CAChC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,oBAENC,KAAMk0B,EAAmBnP,eAvBnC,yBA0BsB,CACZxZ,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA5BlC,0DAkCkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GApCpB,uDA2CO,SAAUwnB,KAAV,kEACL,OADK,SACCrnB,aAAUlb,KAAqCsiC,IADhD,wCAOP,SAAUE,GAAiB1iC,GAA3B,8EAGmB,OAFX2jC,EAAqB3jC,EAAOM,QADpC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUopB,GACrBx2B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAyC4oB,IAlB3D,QAmBQ1yB,gCAAoC,CAClC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,sBArBhB,yBAyBsB,CACZwL,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA3BlC,0DAiCkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GAnCpB,uDA0CO,SAAU0nB,KAAV,kEACL,OADK,SACCvnB,aAAUlb,KAAuCwiC,IADlD,wCAQP,SAAUE,GAAwB5iC,GAAlC,wEACQ4jC,EAAmB5jC,EAAOM,QAChCujC,aACE,CACED,oBAEF,CACE1yB,cAAe,SAACzC,GACd,IAAMiM,EAAaja,KAAcgO,EAASnB,MAC1C0E,GAAMkQ,SAASnH,KAAuCL,EAAY,CAACA,EAAWuoB,aAEhFzxB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmC7Y,OAZ1D,wCAkBO,SAAU2gC,KAAV,kEACL,OADK,SACCznB,aAAUlb,KAAqC0iC,IADhD,wC,aCxbMkB,GAAW,IAAI5qB,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DvC,GAAY,IAAIqC,KAAOG,MAAMyqB,I,uBCkBhCC,I,aAiCOC,I,aAMPC,I,aAgCOC,I,aAOPC,I,aAqCOC,I,aAMPC,I,aAkBOC,I,aAOPC,I,aAmBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAyDOC,I,aAOPC,I,aA6DOC,I,aAOPC,I,aA6DOC,I,aAOPC,I,aA2DOC,IAvcjB,SAAUnB,GAAmB/jC,GAA7B,wFAQyC,OARzC,EAOMA,EAAOM,QALG8F,EAFhB,EAEIE,WACgBD,EAHpB,EAGIZ,eACAE,EAJJ,EAIIA,WACAE,EALJ,EAKIA,cACAs/B,EANJ,EAMIA,QANJ,SAQ+CjrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAVJ,gBAQUC,EARV,EAQUA,WAAYb,EARtB,EAQsBA,eAKpB2/B,aACE,CAAE9+B,aAAYb,iBAAgBE,aAAYE,gBAAes/B,WACzD,CACEj0B,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZjE,EADd,EACEF,SAAYE,UACZ+D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAkClE,EAAW+D,EAAQtU,EAAYb,KAGrE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B7Y,OA3BrD,wCAiCO,SAAU8hC,KAAV,kEACL,OADK,SACC5oB,aAAUlb,KAA+B6jC,IAD1C,wCAMP,SAAUE,GAA0BjkC,GAApC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpB2/B,aACE,CAAE5pB,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZjE,EADd,EACEF,SAAYE,UACZ+D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAyClE,EAAW+D,EAAQtU,EAAYb,KAG5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OA1B5D,yCAgCO,SAAUgiC,KAAV,kEACL,OADK,SACC9oB,aAAUlb,KAAuC+jC,IADlD,wCAOP,SAAUE,GAA2BnkC,GAArC,oFAGmB,OAFXqlC,EAAarlC,EAAOM,QAD5B,kBAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE8qB,eACvBl4B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAiBQ,OADMgH,EAAY2D,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBxE,UAiBc/L,aAAIkM,KAA0CsqB,EAAYvuB,IAjBxE,gCAwBQ,OALM5U,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QArBlC,UAwBcrM,aAAIkM,KAAsC7Y,IAxBxD,gCAiCI,OAjCJ,0BA4BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA9BpB,UAiCUpM,aAAIkM,KAAsC7Y,IAjCpD,uDAqCO,SAAUkiC,KAAV,kEACL,OADK,SACChpB,aAAUlb,KAAyBikC,IADpC,wCAMP,SAAUE,GAAYrkC,GAAtB,wEACQ8jC,EAAW9jC,EAAOM,QAExBglC,aAAoB,2BACbxB,GADY,IACFuB,WAAY,OAC3B,CACEn0B,cAAc,WAAD,8BAAE,WAAOzC,GAAP,gBAAAH,EAAA,sDACPi3B,EAAgB9kC,KAAcgO,EAASnB,MAC7C0E,GAAMkQ,SAASnH,KAA+B+oB,EAASuB,WAAYE,IAFtD,2CAAF,mDAAC,GAId/zB,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,KAA2B+oB,EAASuB,WAAYnjC,IADpD,2CAAF,mDAAC,KAId,GAdJ,wCAkBO,SAAUoiC,KAAV,kEACL,OADK,SACClpB,aAAUlb,KAA4BmkC,IADvC,wCAOP,SAAUE,GAAavkC,GAAvB,4EAE0B,OADlB8jC,EAAW9jC,EAAOM,QAD1B,SAEgC4Z,aAAO2B,IAAuBioB,EAASuB,YAFvE,gBAEUG,EAFV,EAEUA,YAERF,aACExB,EACA,CACE5yB,cAAc,WAAD,8BAAE,WAAOzC,GAAP,gBAAAH,EAAA,sDACPm3B,EAAiBhlC,KAAcgO,EAASnB,MAC9C0E,GAAMkQ,SAASnH,KAAgC0qB,IAFlC,2CAAF,mDAAC,GAIdj0B,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,KAA4ByqB,EAAatjC,IAD7C,2CAAF,mDAAC,KAId,GAfJ,wCAmBO,SAAUsiC,KAAV,kEACL,OADK,SACCppB,aAAUlb,KAA6BqkC,IADxC,wCAOP,SAAUE,GAAezkC,GAAzB,0EAE0B,OADhBqlC,EAAerlC,EAAOM,QAAtB+kC,WADV,SAEgCnrB,aAAOwrB,IAA+BL,GAFtE,OAEQM,EAFR,OAIEC,aACE,CAAEP,aAAYQ,aAAY,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAiBE,cAC7C,CACE30B,cAAc,WAAD,8BAAE,WAAOzC,GAAP,UAAAH,EAAA,sDACb0D,GAAMkQ,SAASnH,KAAiCsqB,IADnC,2CAAF,mDAAC,GAGd7zB,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,KAA6BsqB,EAAYnjC,IAD7C,2CAAF,mDAAC,KAVlB,wCAiBO,SAAUwiC,KAAV,kEACL,OADK,SACCtpB,aAAUlb,KAA+BukC,IAD1C,wCAOP,SAAUE,GAAa3kC,GAAvB,kFAGmB,OAFX8jC,EAAW9jC,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUupB,GACrB32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aACJkM,KACE+oB,EAASuB,WACT5qB,EAAWnN,KAAKw4B,cAChBhC,EAASiC,gBACTjC,EAASr+B,eACTq+B,EAASn+B,WACTm+B,EAASj+B,gBAzBrB,QA6BQoL,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,+BA/BhB,wBA0CQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wBAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAzC3C,UA0Cc2M,aAAIkM,KAAyB7Y,IA1C3C,gCAqDI,OArDJ,0BA8CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wBAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UApDvC,UAqDU2M,aAAIkM,KAAyB7Y,IArDvC,uDAyDO,SAAU0iC,KAAV,kEACL,OADK,SACCxpB,aAAUlb,KAA6BykC,IADxC,wCAOP,SAAUE,GAAqB7kC,GAA/B,oFAEmB,OADX8jC,EAAW9jC,EAAOM,QAD1B,SAEyB4Z,aAAO8rB,IAA+BlC,EAASmC,kBAFxE,OAImB,OAFX5lB,EAFR,yBAIyBnG,aAAOC,oBAJhC,mCAOoB,OAPpB,UAO0BD,aAAOC,iBAPjC,QASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kCAAyD,CAClF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUupB,GACrB32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAmBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SACX2K,EAAWnN,KAAKqV,SAAWmhB,EAASoC,YAAYvjB,QArBxD,iBAuBQ,OAvBR,UAuBc9T,aACJkM,KACE+oB,EAASoC,YACTpC,EAASmC,iBACT5lB,EAAS8lB,aACTrC,EAASsC,iBACTtC,EAASuC,yBA7BrB,QAiCQp1B,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4CAnChB,wBA8CQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wCAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UA7C3C,UA8Cc2M,aAAIkM,KAAyC7Y,IA9C3D,gCAyDI,OAzDJ,0BAkDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,wCAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UAxDvC,UAyDU2M,aAAIkM,KAAyC7Y,IAzDvD,uDA6DO,SAAU4iC,KAAV,kEACL,OADK,SACC1pB,aAAUlb,KAAgD2kC,IAD3D,wCAOP,SAAUE,GAAmB/kC,GAA7B,oFAEmB,OADX8jC,EAAW9jC,EAAOM,QAD1B,SAEyB4Z,aAAO8rB,IAA+BlC,EAASwC,gBAFxE,OAImB,OAFXjmB,EAFR,yBAIyBnG,aAAOC,oBAJhC,mCAOoB,OAPpB,UAO0BD,aAAOC,iBAPjC,QASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUupB,GACrB32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAmBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SACX2K,EAAWnN,KAAKqV,SAAWmhB,EAASoC,YAAYvjB,QArBxD,iBAuBQ,OAvBR,UAuBc9T,aACJkM,KACE+oB,EAASoC,YACTpC,EAASwC,eACTjmB,EAAS8lB,aACTrC,EAASyC,yBACTzC,EAAS0C,sBA7BrB,QAiCQv1B,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,0CAnChB,wBA8CQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,sCAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UA7C3C,UA8Cc2M,aAAIkM,KAAuC7Y,IA9CzD,gCAyDI,OAzDJ,0BAkDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,sCAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UAxDvC,UAyDU2M,aAAIkM,KAAuC7Y,IAzDrD,uDA6DO,SAAU8iC,KAAV,kEACL,OADK,SACC5pB,aAAUlb,KAAmD6kC,IAD9D,wCAOP,SAAUE,GAA0BjlC,GAApC,oFAEmB,OADX8jC,EAAW9jC,EAAOM,QAD1B,SAEyB4Z,aAAO8rB,IAA+BlC,EAAS2C,uBAFxE,OAImB,OAFXpmB,EAFR,yBAIyBnG,aAAOC,oBAJhC,mCAOoB,OAPpB,UAO0BD,aAAOC,iBAPjC,QASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uCAA8D,CACvF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUupB,GACrB32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAmBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SACX2K,EAAWnN,KAAKqV,SAAWmhB,EAASoC,YAAYvjB,QArBxD,iBAuBQ,OAvBR,UAuBc9T,aACJkM,KACE+oB,EAASoC,YACTpC,EAAS2C,sBACTpmB,EAAS8lB,eA3BrB,QA+BQl1B,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,iDAjChB,wBA4CQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,6CAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UA3C3C,UA4Cc2M,aAAIkM,KAA8C7Y,IA5ChE,gCAuDI,OAvDJ,0BAgDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,6CAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UAtDvC,UAuDU2M,aAAIkM,KAA8C7Y,IAvD5D,uDA2DO,SAAUgjC,KAAV,kEACL,OADK,SACC9pB,aAAUlb,KAAqD+kC,IADhE,wC,kCC1dMyB,GAAuB,IAAIxtB,KAAOC,OAC7C,wBACA,GACA,CAAEC,YAAa,iBAEJ+jB,GAAwB,IAAIjkB,KAAOG,MAAMqtB,IAEzCC,GAAuB,IAAIztB,KAAOC,OAC7C,wBACA,GACA,CAAEC,YAAa,iBAEJwtB,GAAwB,IAAI1tB,KAAOG,MAAMstB,I,uBCM5CrK,I,aA8BOuK,I,aAOPC,I,aA8DOC,I,aAOPC,I,aA8DOC,I,aAOPC,I,aA4BOC,IA3MjB,SAAU7K,GAAqBt8B,GAA/B,8EACyCA,EAAOM,QAAtCgG,EADV,EACUA,WAAYb,EADtB,EACsBA,eACpB2hC,aACE,CAAE9gC,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAM44B,EAAe54B,EAASnB,KAAKg6B,iBAAiB3sB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC5E2sB,EAAgB94B,EAASnB,KAAKk6B,iBAAiB7sB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACnF,EAGIC,aAAUwsB,EAAcvsB,IAFdqiB,EADd,EACExmB,SAAYwmB,sBACJsK,EAFV,EAEE7sB,OAEF,EAGIC,aAAU0sB,EAAezsB,IAFf8rB,EADd,EACEjwB,SAAYiwB,sBACJc,EAFV,EAEE9sB,OAEF5I,GAAMkQ,SACJnH,KAAgDoiB,EAAuBsK,IAEzEz1B,GAAMkQ,SACJnH,KAAgD6rB,EAAuBc,KAG3El2B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgC7Y,OAxBvD,wCA8BO,SAAU2kC,KAAV,kEACL,OADK,SACCzrB,aAAUlb,KAAyCo8B,IADpD,wCAOP,SAAUwK,GAAyB9mC,GAAnC,4FAGmB,OAFXs9B,EAAat9B,EAAOM,QAD5B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aACrBC,MADyB,UAEtB1M,KAFsB,8CAGzB,CACE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UACTzI,aAAkB,eACbwrB,KAGPnwB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAnBrC,QAuByB,OAhBboO,EAPZ,iBAuB+BA,EAAS+L,OAvBxC,WAuBYC,EAvBZ,SAwBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAxB/C,iBA0BQ,OADM4tB,EAAmBj9B,KAAcga,EAAWnN,MAzB1D,UA0BcuB,aAAIkM,KAA8C2iB,IA1BhE,QA2BQzsB,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iCAENC,KAAMiuB,EAAiBmI,aACvB/b,SAAS,IAhCnB,wBAyCkC,OANpB5nB,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,YAAaR,EAAWS,QAvClC,UAyCwChB,cAAO,SAACna,GAAD,OACrC8b,KAAiC9b,EAAOu9B,EAAWqK,aAAc,iBA1C3E,QA4CQ,OA5CR,SAyCgBnK,EAzChB,EAyCgBA,cAzChB,UA4Cc3uB,aAAIkM,KAA0CyiB,EAAet7B,IA5C3E,QA6CQ+O,6BAAiC,CAAE/O,UA7C3C,gCAsD8B,OAtD9B,0BAiDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,8CAC5CyL,aAAc,GAnDpB,UAsDoCf,cAAO,SAACna,GAAD,OACrC8b,KAAiC9b,EAAOu9B,EAAWqK,aAAc,iBAvDvE,QAyDI,OAzDJ,SAsDYnK,EAtDZ,EAsDYA,cAtDZ,UAyDU3uB,aAAIkM,KAA0CyiB,EAAet7B,IAzDvE,QA0DI+O,6BAAiC,CAAE/O,UA1DvC,uDA8DO,SAAU6kC,KAAV,kEACL,OADK,SACC3rB,aAAUlb,KAAoD4mC,IAD/D,wCAOP,SAAUE,GAAyBhnC,GAAnC,4FAGmB,OAFXs9B,EAAat9B,EAAOM,QAD5B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aACrBC,MADyB,UAEtB1M,KAFsB,8CAGzB,CACE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UACTzI,aAAkB,eACbwrB,KAGPnwB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAnBrC,QAuByB,OAhBboO,EAPZ,iBAuB+BA,EAAS+L,OAvBxC,WAuBYC,EAvBZ,SAwBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAxB/C,iBA0BQ,OADM4tB,EAAmBj9B,KAAcga,EAAWnN,MAzB1D,UA0BcuB,aAAIkM,KAA8C2iB,IA1BhE,QA2BQzsB,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iCAENC,KAAMiuB,EAAiBmI,aACvB/b,SAAS,IAhCnB,wBAyCkC,OANpB5nB,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,YAAaR,EAAWS,QAvClC,UAyCwChB,cAAO,SAACna,GAAD,OACrC8b,KAAiC9b,EAAOu9B,EAAWqK,aAAc,iBA1C3E,QA4CQ,OA5CR,SAyCgBnK,EAzChB,EAyCgBA,cAzChB,UA4Cc3uB,aAAIkM,KAA0CyiB,EAAet7B,IA5C3E,QA6CQ+O,6BAAiC,CAAE/O,UA7C3C,gCAsD8B,OAtD9B,0BAiDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,8CAC5CyL,aAAc,GAnDpB,UAsDoCf,cAAO,SAACna,GAAD,OACrC8b,KAAiC9b,EAAOu9B,EAAWqK,aAAc,iBAvDvE,QAyDI,OAzDJ,SAsDYnK,EAtDZ,EAsDYA,cAtDZ,UAyDU3uB,aAAIkM,KAA0CyiB,EAAet7B,IAzDvE,QA0DI+O,6BAAiC,CAAE/O,UA1DvC,uDA8DO,SAAU+kC,KAAV,kEACL,OADK,SACC7rB,aAAUlb,KAAoD8mC,IAD/D,wCAOP,SAAUE,GAAyBlnC,GAAnC,8EAE4B,OAF5B,EAC2CA,EAAOM,QAAxCqnC,EADV,EACUA,aAAcC,EADxB,EACwBA,eADxB,SAEkC1tB,aAC9B2B,KACA8rB,EACAC,GALJ,OAEQC,EAFR,OAQEC,aACE,CACEH,eACAI,eAAe,GAAD,cAAKF,QAAL,IAAKA,OAAL,EAAKA,EAAmBhC,aAAxB,mBAAwCgC,QAAxC,IAAwCA,OAAxC,EAAwCA,EAAmB1V,WAE3E,CACEjhB,cAAc,WAAD,8BAAE,WAAOzC,GAAP,UAAAH,EAAA,sDACM,eAAnBs5B,EACI51B,GAAMkQ,SAASnH,KAA+C4sB,IAC3C,eAAnBC,GACA51B,GAAMkQ,SAASnH,KAA+C4sB,IAJrD,2CAAF,mDAAC,GAOdn2B,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SAASnH,KAA+B4sB,EAAczlC,IADjD,2CAAF,mDAAC,KArBlB,wCA4BO,SAAUilC,KAAV,kEACL,OADK,SACC/rB,aAAUlb,KAA0CgnC,IADrD,wC,kCC7NMhJ,GAAU,IAAIhlB,KAAOC,OAAO,WAAY,GAAI,CAAEC,YAAa,cAC3DslB,GAAW,IAAIxlB,KAAOG,MAAM6kB,I,kBCD5B8J,GAAU,YAEVC,GAA8B,yCAAG,WAC5C/1B,EACAg2B,GAF4C,gBAAA55B,EAAA,6DAItCoD,EAAe,IAAIjE,KACzB06B,KAAsBp2B,6BAA6BC,GAAON,GAE1DA,EAAa3D,iBAAiBm6B,GAPc,kBAQrCx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,gBAA4C91B,IARP,2CAAH,wDAW9BktB,GAAqB,SAACltB,EAAcg2B,GAC/C,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRtP,OAAQkS,EAAQk2B,kBAAoB,OAAS,SAC7Cp5B,WAAY,iBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,gBAA4C91B,IAGxCstB,GAAuB,SAACttB,EAAcg2B,GACjD,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRtP,OAAQ,SACRgP,WAAY,iBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,kBAA8C91B,I,aCjB7CysB,I,aAqBO0J,I,aAOPxJ,I,aAgBOyJ,I,aAOPrJ,I,aAkBOsJ,IArEjB,SAAU5J,GAAkB3+B,GAA5B,8EACkCA,EAAOM,QAA/BkoC,EADV,EACUA,QAASC,EADnB,EACmBA,WAEjBR,GACE,CAAEO,UAASC,cACX,CACEv3B,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ4jB,EADd,EACE/nB,SAAY+nB,SACZ9jB,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAiC2jB,EAAU9jB,KAE5DpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6B7Y,OAfpD,wCAqBO,SAAUmmC,KAAV,kEACL,OADK,SACCjtB,aAAUlb,KAAuCy+B,IADlD,wCAOP,SAAUE,GAAW7+B,GAArB,wEACQk+B,EAAUl+B,EAAOM,QACvB8+B,GAAmB,2BACZlB,GADW,IACFwK,UAAW,OACzB,CACEx3B,cAAe,SAACzC,GACd,IAAM4wB,EAAe5+B,KAAcgO,EAASnB,MAC5C0E,GAAMkQ,SAASnH,KAA8BmjB,EAAQwK,UAAWrJ,KAElE7tB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0BmjB,EAAQwK,UAAWxmC,OAVpE,wCAgBO,SAAUomC,KAAV,kEACL,OADK,SACCltB,aAAUlb,KAAoC2+B,IAD/C,wCAOP,SAAUI,GAAcj/B,GAAxB,0EAEyB,OADf0oC,EAAc1oC,EAAOM,QAArBooC,UADV,SAE+BxuB,cAAO,SAACna,GAAD,OAClC8b,KAA8B9b,EAAO2oC,MAHzC,OAEQnJ,EAFR,OAKEC,GAAqB,eACdD,GACL,CACEruB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAgC2tB,KAEjDl3B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4B2tB,EAAWxmC,OAZ9D,wCAkBO,SAAUqmC,KAAV,kEACL,OADK,SACCntB,aAAUlb,KAAuC++B,IADlD,wC,cCtFM0J,GAA0C,SAAC1K,EAAO2K,GAAR,MAAuC,CAC5F3oC,KAAMC,KACNI,QAAS,CAAE29B,QAAO2K,+BAEPC,GAAsC,SAAC5K,EAAO/7B,GAAR,MAAmB,CACpEjC,KAAMC,KACNI,QAAS,CACP29B,QACA/7B,WAQS4mC,GAA2C,SAACF,GAAD,MAAgC,CACtF3oC,KAAMC,KACNI,QAASsoC,IAEEG,GAAuC,SAACC,EAA8B9mC,GAA/B,MAA0C,CAC5FjC,KAAMC,KACNI,QAAS,CACP0oC,+BACA9mC,WAwBS+mC,GAAwC,SAACC,EAA6BhnC,GAA9B,MAAyC,CAC5FjC,KAAMC,KACNI,QAAS,CACP4oC,8BACAhnC,W,uBCxCMinC,I,aA0BOC,I,aAOPC,I,aA2BOC,I,aAOPC,I,aA6BOC,IAtGXC,GAAiC,SAACb,GAAD,gBAClCA,EAA0BJ,QADQ,YACGI,EAA0BH,aAKpE,SAAUU,GAA6BnpC,GAAvC,wEACQ4oC,EAA4B5oC,EAAOM,QAEzCopC,aAAqCd,EAA2B,CAC9D13B,cAAc,WAAD,8BAAE,WAAOzC,GAAP,gBAAAH,EAAA,sDACPq7B,EAAiClpC,KAAcgO,EAASnB,MAC9D0E,GAAMkQ,SACJnH,GACE6tB,EAA0BM,4BAD5B,aAGIA,4BAA6BO,GAC3BE,IAECA,KATI,2CAAF,mDAAC,GAcdn4B,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SACJnH,GAA4C6tB,EAA0BvD,WAAYnjC,IAFzE,2CAAF,mDAAC,KAlBhB,wCA0BO,SAAUknC,KAAV,kEACL,OADK,SACChuB,aAAUlb,KAAgDipC,IAD3D,wCAOP,SAAUE,GAA8BrpC,GAAxC,4EAE2C,OADnC4oC,EAA4B5oC,EAAOM,QAD3C,SAEiD4Z,aAC7C2B,KACA+sB,EAA0BM,6BAJ9B,gBAEUF,EAFV,EAEUA,6BAKRU,aAAqCd,EAA2B,CAC9D13B,cAAc,WAAD,8BAAE,WAAOzC,GAAP,gBAAAH,EAAA,sDACPs7B,EAAkCnpC,KAAcgO,EAASnB,MAC/D0E,GAAMkQ,SACJnH,GAAA,aACEmuB,4BAA6BO,GAC3BG,IAECA,KAPM,2CAAF,mDAAC,GAWdp4B,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SACJnH,GAA6CiuB,EAA8B9mC,IAFlE,2CAAF,mDAAC,KAnBhB,wCA2BO,SAAUonC,KAAV,kEACL,OADK,SACCluB,aAAUlb,KAAiDmpC,IAD5D,wCAOP,SAAUE,GAAgCvpC,GAA1C,0EAE2C,OADnC4oC,EAA4B5oC,EAAOM,QAD3C,SAEiD4Z,aAC7C2B,KACA4tB,GAA+Bb,IAJnC,OAEQiB,EAFR,OAOEC,aAAuC,2BAChClB,GAD+B,IACJmB,aAAY,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAkCE,eAChF,CACE74B,cAAc,WAAD,8BAAE,WAAOzC,GAAP,UAAAH,EAAA,sDACb0D,GAAMkQ,UDhD4CgnB,ECkD9CO,GAA+Bb,GDlDgD,CACzF3oC,KAAMC,KACNI,QAAS,CACP4oC,kCC4CiB,iCD/CoC,IAACA,IC+CrC,OAAF,mDAAC,GAOd13B,YAAY,WAAD,8BAAE,WAAOtP,GAAP,UAAAoM,EAAA,sDACX0D,GAAMkQ,SACJnH,GACE0uB,GAA+Bb,GAC/B1mC,IAJO,2CAAF,mDAAC,KAjBlB,wCA6BO,SAAUsnC,KAAV,kEACL,OADK,SACCpuB,aACJlb,KACAqpC,IAHG,wC,cC5GMS,GAAsC,SACjDrzB,EACA0G,EACA8iB,EACA8J,EACAC,GALiD,MAM7C,CACJjqC,KAAMC,KACNI,QAAS,CACPqW,WACA0G,QACA8iB,aACA8J,kBACAC,sBAGSC,GAAkC,eAC7CjoC,EAD6C,uDACrC,CAAE8Y,aAAc,QAASC,YAAa,KADD,MAEzC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAUSkoC,GAAoC,SAC/CC,EACAC,EACAC,GAH+C,MAI3C,CACJtqC,KAAMC,KACNI,QAAS,CACP+pC,oBACAC,qCACAC,qCAGSC,GAAgC,eAC3CtoC,EAD2C,uDACnC,CAAE8Y,aAAc,QAASC,YAAa,KADH,MAEvC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAYSuoC,GAAgC,eAC3CvoC,EAD2C,uDACnC,CAAE8Y,aAAc,QAASC,YAAa,KADH,MAEvC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAYSwoC,GAAkC,eAC7CxoC,EAD6C,uDACrC,CAAE8Y,aAAc,QAASC,YAAa,KADD,MAEzC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAQSyoC,GAA2C,SAACnC,EAAS/Y,GAAV,MAAsB,CAC5ExvB,KAAMC,KACNI,QAAS,CAAEkoC,UAAS/Y,YAETmb,GAAuC,eAClD1oC,EADkD,uDAC1C,CAAE8Y,aAAc,QAASC,YAAa,KADI,MAE9C,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAYS2oC,GAAoC,eAC/C3oC,EAD+C,uDACvC,CAAE8Y,aAAc,QAASC,YAAa,KADC,MAE3C,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAQS4oC,GAAwC,SAACpoB,GAAD,MAAkB,CACrEziB,KAAMC,KACNI,QAASoiB,IAEEqoB,GAAoC,eAC/C7oC,EAD+C,uDACvC,CAAE8Y,aAAc,QAASC,YAAa,KADC,MAE3C,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WCrISmoC,GAAoB,IAAInxB,KAAOC,OAC1C,sBACA,GACA,CAAEC,YAAa,YAEJ4xB,GAAsB,IAAI9xB,KAAOG,MAAMgxB,ICLvCzB,GAA4B,IAAI1vB,KAAOC,OAClD,6BACA,GACA,CAAEC,YAAa,SAACkf,GAAD,gBAAcA,EAAMkQ,QAApB,YAA+BlQ,EAAMmQ,eAEzCwC,GAA6B,IAAI/xB,KAAOG,MAAMuvB,I,aCUjDsC,I,aA2DOC,I,aAMPC,I,aAsDOC,I,aAOPC,I,aAgDOC,I,aAOPC,I,aAgDOC,I,aAOPC,I,aAqDOC,I,aAOPC,I,aAiDOC,I,aAkBPC,I,aA4DOC,IAvajB,SAAUb,GAAyBlrC,GAAnC,gGAGmB,OAHnB,SAEUsC,EAAUtC,EAAOM,QAF3B,SAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oCAA2D,CACpF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkB,eAAKxP,KAC5C6K,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBA2BQ,OAXMqwB,EAAa1/B,KAAcga,EAAWnN,KAAK6yB,YAE3C8J,EAAkBxpC,KAAcga,EAAWnN,KAAK28B,iBAEhDC,EAAmBzpC,KAAcga,EAAWnN,KAAK48B,kBAEjDxvB,EAAaD,EAAWnN,KAAK0+B,cAAcrxB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAtBvF,EA0BYC,aAAUH,EAAYI,IAFZkwB,EAxBtB,EAwBUr0B,SAAYq0B,oBACZpwB,EAzBV,EAyBUA,OAzBV,UA2Bc/L,aACJkM,GACEiwB,EACApwB,EACAulB,EACA8J,EACAC,IAjCZ,gCA4CQ,OAPMhoC,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,YAAaR,EAAWS,QAzClC,UA4CcrM,aAAIkM,GAAwC7Y,IA5C1D,gCAuDI,OAvDJ,0BAgDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,aAAc,GApDpB,UAuDUpM,aAAIkM,GAAwC7Y,IAvDtD,uDA2DO,SAAUipC,KAAV,kEACL,OADK,SACC/vB,aAAUlb,KAA0CgrC,IADrD,wCAMP,SAAUE,GAAuBprC,GAAjC,4FAGmB,OAHnB,SAEUqqC,EAAoBrqC,EAAOM,QAFrC,SAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kCAAyD,CAClF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkB,eAAKu4B,KAC5Cl9B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAwBQ,OARMu6B,EAAoB5pC,KAAcga,EAAWnN,KAAK+8B,mBAElD3vB,EAAaD,EAAWnN,KAAK2+B,cAActxB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAlBvF,EAsBYC,aAAUH,EAAYwxB,IAFZjB,EApBtB,EAoBUt0B,SAAYs0B,2BACZrwB,EArBV,EAqBUA,OArBV,UAwBc/L,aACJkM,GACEsvB,EACAY,EACArwB,IA5BZ,gCAuCQ,OAPM1Y,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,0CAENyL,YAAaR,EAAWS,QApClC,UAuCcrM,aAAIkM,GAAsC7Y,IAvCxD,gCAkDI,OAlDJ,0BA2CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,0CAENyL,aAAc,GA/CpB,UAkDUpM,aAAIkM,GAAsC7Y,IAlDpD,uDAsDO,SAAUmpC,KAAV,kEACL,OADK,SACCjwB,aAAUlb,KAAwCkrC,IADnD,wCAOP,SAAUE,GAAwBtrC,GAAlC,kFAGmB,OAFX8jC,EAAW9jC,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qCAA4D,CACrF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkBgyB,IACvC32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,cHvGoC25B,EGuGU1E,EAAS0E,QHvGV/Y,EGuGmBqU,EAASrU,OHvGhB,CACrExvB,KAAMC,KACNI,QAAS,CAAEkoC,UAAS/Y,aGmFtB,QAoBQxe,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4CAtBhB,wBAiCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAhC3C,UAiCc2M,aAAIkM,GAAsC7Y,IAjCxD,gCA4CI,OA5CJ,0BAqCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA3CvC,UA4CU2M,aAAIkM,GAAsC7Y,IA5CpD,kCHrFiD,IAACsmC,EAAS/Y,IGqF3D,kBAgDO,SAAU8b,KAAV,kEACL,OADK,SACCnwB,aAAUlb,KAA0CorC,IADrD,wCAOP,SAAUE,GAA0BxrC,GAApC,kFAGmB,OAFX8jC,EAAW9jC,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uCAA8D,CACvF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkBgyB,IACvC32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,cH7IsC25B,EG6IU1E,EAAS0E,QH7IV/Y,EG6ImBqU,EAASrU,OH7IhB,CACvExvB,KAAMC,KACNI,QAAS,CAAEkoC,UAAS/Y,aGyHtB,QAoBQxe,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4CAtBhB,wBAiCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAhC3C,UAiCc2M,aAAIkM,GAAwC7Y,IAjC1D,gCA4CI,OA5CJ,0BAqCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,+CAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA3CvC,UA4CU2M,aAAIkM,GAAwC7Y,IA5CtD,kCH3HmD,IAACsmC,EAAS/Y,IG2H7D,kBAgDO,SAAUgc,KAAV,kEACL,OADK,SACCrwB,aAAUlb,KAA4CsrC,IADvD,wCAOP,SAAUE,GAA+B1rC,GAAzC,wFAImB,OAHC,EADpB,EAEsCA,EAAOM,QAAnCkoC,EAFV,EAEUA,QAAS/Y,EAFnB,EAEmBA,OAAQiR,EAF3B,EAE2BA,OAF3B,kBAIyBxmB,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aACrBC,MADyB,UAEtB1M,KAFsB,kDAGzB,CACE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiuB,UAAS/Y,SAAQiR,WACxCvzB,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAjBrC,QAqByB,OAZboO,EATZ,iBAqB+BA,EAAS+L,OArBxC,WAqBYC,EArBZ,SAsBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAtB/C,iBAuBQ,OAvBR,UAuBcjB,aAAIkM,GAAiDytB,EAAS/Y,IAvB5E,QAyBQxe,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,8CA3BhB,wBAsCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,iDAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UArC3C,UAsCc2M,aAAIkM,GAA6C7Y,IAtC/D,gCAiDI,OAjDJ,0BA0CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,iDAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UAhDvC,UAiDU2M,aAAIkM,GAA6C7Y,IAjD3D,uDAqDO,SAAUypC,KAAV,kEACL,OADK,SACCvwB,aAAUlb,KAAkDwrC,IAD7D,wCAOP,SAAUE,GAA4B5rC,GAAtC,kFAGmB,OAFX8jC,EAAW9jC,EAAOM,QAD1B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkBgyB,IAEvC32B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OATboO,EARZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,cH/NwC25B,EG+NU1E,EAAS0E,QH/NV/Y,EG+NmBqU,EAASrU,OH/NhB,CACzExvB,KAAMC,KACNI,QAAS,CAAEkoC,UAAS/Y,aG0MtB,QAqBQxe,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,2CAvBhB,wBAkCQ,OAPMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UAjC3C,UAkCc2M,aAAIkM,GAA0C7Y,IAlC5D,gCA6CI,OA7CJ,0BAsCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UA5CvC,UA6CU2M,aAAIkM,GAA0C7Y,IA7CxD,kCH5MqD,IAACsmC,EAAS/Y,IG4M/D,kBAiDO,SAAUoc,KAAV,kEACL,OADK,SACCzwB,aAAUlb,KAA+C0rC,IAD1D,wCAOP,IAAMO,GAA6B,SAACj8B,GAClC,IAAMk8B,EAAa,8BAA8BC,KAAKn8B,GAClD0K,OAA6BlL,EACjC,IACEkL,EAASwxB,EAAM,GACf,MAAOlqC,GACP0Y,OAASlL,EAEX,OAAOkL,GAGT,SAAUkxB,GAA4B9rC,GAAtC,sFAGmB,OAFX0iB,EAAc1iB,EAAOM,QAD7B,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkB4Q,IACvCvV,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAkBQhM,EAAS4C,QAAU,KACnBoJ,EAAW3K,SACX2K,EAAWnN,KAAKqV,SAAWD,EAAYC,QApB/C,iBAsBQ,OAtBR,UAsBc9T,aAAIkM,GAA8C2H,IAtBhE,QAwBQzR,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAC/BC,GAAI,4CA1BhB,wBA6CQ,OAfyBiL,EAAW5K,eACA4K,EAAW5K,QACzCmL,EACgB,MAApBvM,EAAS4C,QAAT,UACI86B,GAA2B1xB,EAAW5K,gBAD1C,QAGI,gDAEA3N,EAAa,CACjB8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAIwL,IAENC,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UA5C3C,UA6Cc2M,aAAIkM,GAA0C7Y,IA7C5D,gCAwDI,OAxDJ,0BAiDUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UAvDvC,UAwDU2M,aAAIkM,GAA0C7Y,IAxDxD,uDA4DO,SAAU6pC,KAAV,kEACL,OADK,SACC3wB,aAAUlb,KAA+C4rC,IAD1D,wC,cCtbMQ,GAAkC,SAC7C31B,EACA0G,EACA8iB,EACAW,EACAC,EACAwL,EACAC,GAP6C,MAQzC,CACJvsC,KAAMC,KACNI,QAAS,CACPqW,WACA0G,QACA8iB,aACAW,gBACAC,aACAwL,oBACAC,oBAGSC,GAA8B,eACzCvqC,EADyC,uDACjC,CAAE8Y,aAAc,QAASC,YAAa,KADL,MAErC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WCzBSwqC,GAAW,IAAIxzB,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DtC,GAAY,IAAIoC,KAAOG,MAAMqzB,I,aCchCC,I,aAyEOC,IAzEjB,SAAUD,GAAqB3sC,GAA/B,4GAGmB,OAHnB,SAEUsC,EAAUtC,EAAOM,QAF3B,SAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UACTzI,aAAkB,eACbxP,KAGP6K,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OAZboO,EANZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAuCQ,OAnBMqwB,EAAa1/B,KAAcga,EAAWnN,KAAK6yB,YAE3ChpB,EAAQsD,EAAWnN,KAAK6J,MAAMwD,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAtB1E,EA0BYC,aAAU1D,EAAOkqB,IAFAP,EAxB7B,EAwBUnqB,SAAYQ,MACJ4pB,EAzBlB,EAyBUnmB,OAGI9D,EAAY2D,EAAWnN,KAAKwJ,UAAU6D,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA5BlF,EAgCYC,aAAU/D,EAAW+1B,IAFAN,EA9BjC,EA8BU51B,SAAYG,UACJ01B,EA/BlB,EA+BU5xB,OAGIF,EAAaD,EAAWnN,KAAK0+B,cAAcrxB,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAlCvF,EAsCYC,aAAUH,EAAYoyB,IAFZ9B,EApCtB,EAoCUr0B,SAAYq0B,oBACZpwB,EArCV,EAqCUA,OArCV,UAuCc/L,aACJkM,GACEiwB,EACApwB,EACAulB,EACAW,EACAC,EACAwL,EACAC,IA/CZ,gCA0DQ,OAPMtqC,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,YAAaR,EAAWS,QAvDlC,UA0DcrM,aAAIkM,GAAoC7Y,IA1DtD,gCAqEI,OArEJ,0BA8DUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,8CAENyL,aAAc,GAlEpB,UAqEUpM,aAAIkM,GAAoC7Y,IArElD,uDAyEO,SAAU0qC,KAAV,kEACL,OADK,SACCxxB,aAAUlb,KAAsCysC,IADjD,wC,cCjFMI,GAA8B,eACzC7qC,EADyC,uDACjC,CAAE8Y,aAAc,QAASC,YAAa,KADL,MAErC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAeS8qC,GAAiC,eAC5C9qC,EAD4C,uDACpC,CAAE8Y,aAAc,QAASC,YAAa,KADF,MAExC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WChCS+qC,GAAiB,IAAI/zB,KAAOC,OACvC,kBACA,GACA,CAAEC,YAAa,SAACkf,GAAD,gBAAcA,EAAMkQ,QAApB,YAA+BlQ,EAAMmQ,eAEzCyE,GAAkB,IAAIh0B,KAAOG,MAAM4zB,ICLnCA,GAAiB,IAAI/zB,KAAOC,OACvC,kBACA,GACA,CAAEC,YAAa,sBAEJ8zB,GAAkB,IAAIh0B,KAAOG,MAAM4zB,I,uBCctCE,I,aAqBOC,I,aAOPC,I,aAoBOC,IAhDjB,SAAUH,GAAqBntC,GAA/B,wEACQsC,EAAUtC,EAAOM,QAEvBitC,aAA6B,eACtBjrC,GACL,CACE4O,cAAe,SAACzC,GACd,IH1BwCkI,EAAU0G,EG0B5C3C,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZoyB,EADd,EACEv2B,SAAYu2B,gBACZtyB,EAFF,EAEEA,OAEF5I,GAAMkQ,UH/BkCvL,EG+Beu2B,EH/BL7vB,EG+BsBzC,EH/BX,CACnE3a,KAAMC,KACNI,QAAS,CACPqW,WACA0G,aG6BE7L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAAoC7Y,OAf3D,wCAqBO,SAAUkrC,KAAV,kEACL,OADK,SACChyB,aAAUlb,KAAsCitC,IADjD,wCAOP,SAAUE,GAAwBrtC,GAAlC,wEACUwoC,EAAYxoC,EAAOM,QAAnBkoC,QACRgF,aACE,CAAEhF,WACF,CACEt3B,cAAe,SAACzC,GACd,IHjC2CkI,EAAU0G,EGiC/C3C,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAY+yB,IAFZP,EADd,EACEv2B,SAAYu2B,gBACZtyB,EAFF,EAEEA,OAEF5I,GAAMkQ,UHtCqCvL,EGsCeu2B,EHtCL7vB,EGsCsBzC,EHtCX,CACtE3a,KAAMC,KACNI,QAAS,CACPqW,WACA0G,aGoCE7L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAAuC7Y,OAd9D,wCAoBO,SAAUorC,KAAV,kEACL,OADK,SACClyB,aAAUlb,KAA0CmtC,IADrD,wC,wBCnEMK,I,OAAgB,IAAIx0B,KAAOC,OACtC,iBACA,GACA,CAAEC,YAAa,2BAEJu0B,GAAiB,IAAIz0B,KAAOG,MAAMq0B,I,aCIrCE,I,aA8COC,IA9CjB,SAAUD,GAAwB5tC,GAAlC,gGAGmB,OAHnB,EAC+BA,EAAOM,QAA5BwtC,EADV,EACUA,QAASC,EADnB,EACmBA,QADnB,kBAGyB7zB,aAAOC,oBAHhC,UAGU4B,EAHV,QAIQ+xB,IAAWC,EAJnB,qBAKUhyB,EALV,iBAMsB,OANtB,SAM4B7B,aAAOC,iBANnC,OAOyB,OADX9Z,EANd,iBAO+B+Z,aACrBC,MADyB,UAEtB1M,KAFsB,iCAEemgC,EAFf,YAE0BC,GACnD,CACE17B,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdvC,QAkB2B,OAXboO,EAPd,iBAkBiCA,EAAS+L,OAlB1C,WAkBcC,EAlBd,SAmBYhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnBjD,iBAyBU,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MApB3E,EAwBcC,aAAUH,EAAYI,IAFZ6yB,EAtBxB,EAsBYh3B,SAAYg3B,eACZ/yB,EAvBZ,EAuBYA,OAvBZ,UAyBgB/L,aAAIkM,KAAuC4yB,EAAgB/yB,IAzB3E,gCAgCU,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BpC,UAgCgBrM,aAAIkM,KAAmC7Y,IAhCvD,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAAmC7Y,IA1CjD,uDA8CO,SAAU2rC,KAAV,kEACL,OADK,SACCzyB,aAAUlb,KAAoC0tC,IAD/C,wC,wBCvDMI,GAAQ,IAAI90B,KAAOC,OAC9B,SACA,GACA,CAAEC,YAAa,kBAEJ60B,GAAS,IAAI/0B,KAAOG,MAAM20B,I,aCG7BE,I,aA0COC,IA1CjB,SAAUD,GAAgBluC,GAA1B,+FACU8tC,EAAY9tC,EAAOM,QAAnBwtC,SADV,iBAIqB,OAJrB,kBAI2B5zB,aAAOC,oBAJlC,mCAMsB,OANtB,SAM4BD,aAAOC,iBANnC,OAOyB,OADX9Z,EANd,iBAO+B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAiCmgC,GAAW,CACrEz7B,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXrC,QAc2B,OAPboO,EAPd,iBAciCA,EAAS+L,OAd1C,WAccC,EAdd,SAeYhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAfjD,iBAqBU,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhB3E,EAoBcC,aAAUH,EAAYI,IAFZmzB,EAlBxB,EAkBYt3B,SAAYs3B,OACZrzB,EAnBZ,EAmBYA,OAnBZ,UAqBgB/L,aAAIkM,KAA+BkzB,EAAQrzB,IArB3D,gCA4BU,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBpC,UA4BgBrM,aAAIkM,KAA2B7Y,IA5B/C,gCAqCM,OArCN,0BAgCYA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCtB,UAqCYpM,aAAIkM,KAA2B7Y,IArC3C,uDA0CO,SAAUisC,KAAV,kEACL,OADK,SACC/yB,aAAUlb,KAA4BguC,IADvC,wC,cClDME,GAAQ,IAAIl1B,KAAOC,OAC9B,SACA,GACA,CAAEC,YAAa,YAEJlD,GAAS,IAAIgD,KAAOG,MAAM+0B,I,uBCC7BC,I,aAwCOC,IAxCjB,SAAUD,GAAgBruC,GAA1B,wFAGmB,OAFGA,EAAOM,QAAnBwtC,QADV,kBAGyB5zB,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,UAAiC,CAC1D0E,OAAQ,MACRlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OAPboO,EANZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZ5E,EAjBtB,EAiBUS,SAAYT,OACZ0E,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAA+B7E,EAAQ0E,IApBzD,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAA2B7Y,IA3B7C,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAA2B7Y,IApCzC,uDAwCO,SAAUosC,KAAV,kEACL,OADK,SACClzB,aAAUlb,KAA4BmuC,IADvC,wC,wBC9CME,GAAW,IAAIr1B,KAAOC,OACjC,aACA,GACA,CAAEC,YAAa,eAEJ/D,GAAa,IAAI6D,KAAOG,MAAMk1B,I,aCGjCC,I,aAwCOC,IAxCjB,SAAUD,GAAoBxuC,GAA9B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,MAERlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZzF,EAjBtB,EAiBUsB,SAAYtB,WACZuF,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAmC1F,EAAYuF,IApBjE,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAA+B7Y,IA3BjD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAA+B7Y,IApC7C,uDAwCO,SAAUusC,KAAV,kEACL,OADK,SACCrzB,aAAUlb,KAAgCsuC,IAD3C,wC,wBChDMlqC,GAAW,IAAI4U,KAAOC,OACjC,YACA,GACA,CAAEC,YAAa,WAEJ9D,GAAY,IAAI4D,KAAOG,MAAM/U,I,aCIhCoqC,I,aAwCOC,IAxCjB,SAAUD,GAAmB1uC,GAA7B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,MAERlF,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZxF,EAjBtB,EAiBUqB,SAAYrB,UACZsF,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAkCzF,EAAWsF,IApB/D,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAA8B7Y,IA3BhD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAA8B7Y,IApC5C,uDAwCO,SAAUysC,KAAV,kEACL,OADK,SACCvzB,aAAUlb,KAAgCwuC,IAD3C,wC,wBCjDME,GAAW,IAAI11B,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,mBAC7D5D,GAAY,IAAI0D,KAAOG,MAAMu1B,I,aCOhCC,I,aAyCOC,IAzCjB,SAAUD,GAAmB7uC,GAA7B,0FAGmB,OAFX+uC,EAAU/uC,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,oBAImB40B,GAAuB,IAAZA,EAJ9B,iBAKoB,OALpB,SAK0B70B,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEw0B,YACvB5hC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZtF,EAlBtB,EAkBUmB,SAAYnB,UACZoF,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAAkCvF,EAAWoF,IArB/D,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAA8B7Y,IA5BhD,gCAqCI,OArCJ,0BAgCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAA8B7Y,IArC5C,uDAyCO,SAAU4sC,KAAV,kEACL,OADK,SACC1zB,aAAUlb,KAA+B2uC,IAD1C,wCCjDA,IAAME,GAAU,IAAI71B,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,cAC5D7D,GAAY,IAAI2D,KAAOG,MAAM01B,I,aCQhCC,I,aAwCOC,IAxCjB,SAAUD,GAAmBhvC,GAA7B,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gBAAuC,CAChE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZvF,EAjBtB,EAiBUoB,SAAYpB,UACZqF,EAlBV,EAkBUA,OAlBV,UAoBc/L,c3E7B4B8H,E2E6BUpB,E3E7BA8H,E2E6BWzC,E3E7BA,CAC7D3a,KAAMC,KACNI,QAAS,CACPqW,WACA0G,Y2EKJ,gCA2BQ,OALMnb,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,GAA8B7Y,IA3BhD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,GAA8B7Y,IApC5C,kC3ETyC,IAACyU,EAAU0G,I2ESpD,kBAwCO,SAAU4xB,KAAV,kEACL,OADK,SACC7zB,aAAUlb,KAA+B8uC,IAD1C,wC,wBCjDME,GAAe,IAAIh2B,KAAOC,OAAO,gBAAiB,GAAI,CAAEC,YAAa,YACrE3D,GAAgB,IAAIyD,KAAOG,MAAM61B,I,aCOpCC,I,aAwCOC,IAxCjB,SAAUD,GAAuBnvC,GAAjC,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZrF,EAjBtB,EAiBUkB,SAAYlB,cACZmF,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAsCtF,EAAemF,IApBvE,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAAkC7Y,IA3BpD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAAkC7Y,IApChD,uDAwCO,SAAUktC,KAAV,kEACL,OADK,SACCh0B,aAAUlb,KAAoCivC,IAD/C,wC,wBChDME,GAAe,IAAIn2B,KAAOC,OAAO,gBAAiB,GAAI,CAAEC,YAAa,YACrE1D,GAAgB,IAAIwD,KAAOG,MAAMg2B,I,aCOpCC,I,aAyCOC,IAzCjB,SAAUD,GAAuBtvC,GAAjC,0FAGmB,OAFXwvC,EAAQxvC,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,oBAImBq1B,GAAmB,IAAVA,EAJ5B,iBAKoB,OALpB,SAK0Bt1B,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEi1B,UACvBriC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZpF,EAlBtB,EAkBUiB,SAAYjB,cACZkF,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAAsCrF,EAAekF,IArBvE,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAAkC7Y,IA5BpD,gCAqCI,OArCJ,0BAgCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAAkC7Y,IArChD,uDAyCO,SAAUqtC,KAAV,kEACL,OADK,SACCn0B,aAAUlb,KAAoCovC,IAD/C,wC,wBCjDMG,GAAmB,IAAIv2B,KAAOC,OACzC,qBACA,GACA,CAAEC,YAAa,uBAEJzD,GAAqB,IAAIuD,KAAOG,MAAMo2B,I,aCGzCC,I,aAyCOC,IAzCjB,SAAUD,GAA4B1vC,GAAtC,0FAGmB,OAFX+uC,EAAU/uC,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,oBAImB40B,GAAuB,IAAZA,EAJ9B,iBAKoB,OALpB,SAK0B70B,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEw0B,YACvB5hC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZnF,EAlBtB,EAkBUgB,SAAYhB,mBACZiF,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAA2CpF,EAAoBiF,IArBjF,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAAuC7Y,IA5BzD,gCAqCI,OArCJ,0BAgCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAAuC7Y,IArCrD,uDAyCO,SAAUytC,KAAV,kEACL,OADK,SACCv0B,aAAUlb,KAAyCwvC,IADpD,wC,wBCjDME,GAAiB,IAAI12B,KAAOC,OACvC,kBACA,GACA,CAAEC,YAAa,qBAEJxD,GAAkB,IAAIsD,KAAOG,MAAMu2B,I,aCGtCC,I,aAyCOC,IAzCjB,SAAUD,GAAyB7vC,GAAnC,0FAGmB,OAFX+uC,EAAU/uC,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,oBAImB40B,GAAuB,IAAZA,EAJ9B,iBAKoB,OALpB,SAK0B70B,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,uBAA8C,CACvE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEw0B,YACvB5hC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZlF,EAlBtB,EAkBUe,SAAYf,gBACZgF,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAAwCnF,EAAiBgF,IArB3E,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAAoC7Y,IA5BtD,gCAqCI,OArCJ,0BAgCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAAoC7Y,IArClD,uDAyCO,SAAU4tC,KAAV,kEACL,OADK,SACC10B,aAAUlb,KAAsC2vC,IADjD,wC,wBCjDME,GAAc,IAAI72B,KAAOC,OAAO,eAAgB,GAAI,CAAEC,YAAa,YACnEvD,GAAe,IAAIqD,KAAOG,MAAM02B,I,aCQnCC,I,aAwCOC,IAxCjB,SAAUD,GAAsBhwC,GAAhC,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZjF,EAjBtB,EAiBUc,SAAYd,aACZ+E,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAqClF,EAAc+E,IApBrE,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAAiC7Y,IA3BnD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAAiC7Y,IApC/C,uDAwCO,SAAU+tC,KAAV,kEACL,OADK,SACC70B,aAAUlb,KAAmC8vC,IAD9C,wC,wBCjDME,GAAc,IAAIh3B,KAAOC,OAAO,eAAgB,GAAI,CAAEC,YAAa,kBACnEtD,GAAe,IAAIoD,KAAOG,MAAM62B,I,aCQnCC,I,aAyCOC,IAzCjB,SAAUD,GAAsBnwC,GAAhC,0FAGmB,OAFX8tC,EAAU9tC,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,oBAA2C,CACpE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEuzB,YACvB3gC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZhF,EAlBtB,EAkBUa,SAAYb,aACZ8E,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAAqCjF,EAAc8E,IArBrE,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAAiC7Y,IA5BnD,gCAqCI,OArCJ,0BAgCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAAiC7Y,IArC/C,uDAyCO,SAAUkuC,KAAV,kEACL,OADK,SACCh1B,aAAUlb,KAAmCiwC,IAD9C,wC,wBClDME,GAAgB,IAAIn3B,KAAOC,OAAO,iBAAkB,GAAI,CAAEC,YAAa,cACvErD,GAAiB,IAAImD,KAAOG,MAAMg3B,I,aCQrCC,I,aAyCOC,IAzCjB,SAAUD,GAAwBtwC,GAAlC,8FAGmB,OAHnB,EACsCA,EAAOM,QAAnCkwC,EADV,EACUA,SAAUC,EADpB,EACoBA,cADpB,kBAGyBv2B,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEi2B,WAAUC,kBACjCtjC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAqBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAhBzE,EAoBYC,aAAUH,EAAYI,IAFZ/E,EAlBtB,EAkBUY,SAAYZ,eACZ6E,EAnBV,EAmBUA,OAnBV,UAqBc/L,aAAIkM,KAAuChF,EAAgB6E,IArBzE,gCA4BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAzBlC,UA4BcrM,aAAIkM,KAAmC7Y,IA5BrD,gCAqCI,OArCJ,0BAgCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAlCpB,UAqCUpM,aAAIkM,KAAmC7Y,IArCjD,uDAyCO,SAAUquC,KAAV,kEACL,OADK,SACCn1B,aAAUlb,KAAqCowC,IADhD,wC,wBClDMI,GAAgB,IAAIx3B,KAAOC,OACtC,iBACA,GACA,CAAEC,YAAa,oBAEJpD,GAAiB,IAAIkD,KAAOG,MAAMq3B,ICHlCC,GAAoB,WAC/B,IAAMj/B,EAAe,IAAIjE,KAEzB,OADA06B,KAAsBp2B,6BAA6BC,GAAON,GACnDA,EAAanD,IAAb,UALc,eAKd,qB,aCGCqiC,I,aAsBOC,IAtBjB,SAAUD,GAAwB5wC,GAAlC,kFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIyB,OAJzB,SAI+BC,aAAKu2B,IAJpC,OAUM,OANMl2B,EAJZ,OAKYC,EAAaD,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MALlE,EASUC,aAAUH,EAAYI,IAFZ9E,EAPpB,EAOQW,SAAYX,eACZ4E,EARR,EAQQA,OARR,UAUY/L,aAAIkM,KAAuC/E,EAAgB4E,IAVvE,gCAkBI,OAlBJ,0BAaU1Y,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAfpB,UAkBUpM,aAAIkM,KAAmC7Y,IAlBjD,uDAsBO,SAAU2uC,KAAV,kEACL,OADK,SACCz1B,aAAUlb,KAAqC0wC,IADhD,wC,wBC9BME,GAAgB,IAAI53B,KAAOC,OACtC,kBACA,GACA,CAAEC,YAAa,oBAEJnD,GAAkB,IAAIiD,KAAOG,MAAMy3B,I,aCGtCC,I,aAwCOC,IAxCjB,SAAUD,GAAyB/wC,GAAnC,wFAEmB,OAFnB,kBAEyBka,aAAOC,oBAFhC,mCAIoB,OAJpB,SAI0BD,aAAOC,iBAJjC,OAKuB,OADX9Z,EAJZ,iBAK6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,IACrBpN,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAVnC,QAayB,OARboO,EALZ,iBAa+BA,EAAS+L,OAbxC,WAaYC,EAbZ,SAcUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAd/C,iBAoBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAfzE,EAmBYC,aAAUH,EAAYI,IAFZ7E,EAjBtB,EAiBUU,SAAYV,gBACZ2E,EAlBV,EAkBUA,OAlBV,UAoBc/L,aAAIkM,KAAwC9E,EAAiB2E,IApB3E,gCA2BQ,OALM1Y,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxBlC,UA2BcrM,aAAIkM,KAAoC7Y,IA3BtD,gCAoCI,OApCJ,0BA+BUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjCpB,UAoCUpM,aAAIkM,KAAoC7Y,IApClD,uDAwCO,SAAU8uC,KAAV,kEACL,OADK,SACC51B,aAAUlb,KAAsC6wC,IADjD,wC,aChDME,GAAM,IAAI/3B,KAAOC,OAAO,OAAQ,GAAI,CAAEC,YAAa,cACnD7B,GAAO,IAAI2B,KAAOG,MAAM43B,I,uBCc3BC,I,aAiCOC,I,aAMPC,I,aAuCOC,I,aAMPC,I,aA8COC,I,aAOPC,I,aAgDOC,I,aAOPC,I,aA4COC,I,aAQPC,I,aAkBOC,IAtQjB,SAAUX,GAAclxC,GAAxB,oFAMyC,OANzC,EAKMA,EAAOM,QAAQgC,QAHL8D,EAFhB,EAEIE,WACgBD,EAHpB,EAGIZ,eACAgB,EAJJ,EAIIA,wBAJJ,SAM+CyT,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBARJ,gBAMUC,EANV,EAMUA,WAAYb,EANtB,EAMsBA,eAKpBqsC,aACE,CACExrC,aACAb,eACEgB,GAAoD,OAAzBJ,EAAgC,KAAOZ,GAEtE,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZvD,EADd,EACEZ,SAAYY,KACZqD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA6BxD,EAAMqD,EAAQtU,EAAYb,KAExE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyB7Y,OA3BhD,wCAiCO,SAAUivC,KAAV,kEACL,OADK,SACC/1B,aAAUlb,KAA0BgxC,IADrC,wCAMP,SAAUE,GAAqBpxC,GAA/B,wFAQe,OARf,EAMMA,EAAOM,QAJT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eACAgB,EALJ,EAKIA,wBALJ,SAQqByT,aAAOoB,IAA2CD,GARvE,OASyC,OADjCE,EARR,gBAS+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAXJ,gBASUC,EATV,EASUA,WAAYb,EATtB,EASsBA,eAKpBqsC,aACE,CACEt2B,cAAeD,EACfjV,aACAb,eACEgB,GAAoD,OAAzBJ,EAAgC,KAAOZ,GAEtE,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZvD,EADd,EACEZ,SAAYY,KACZqD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAoCxD,EAAMqD,EAAQtU,EAAYb,KAGlE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgC7Y,OAjCvD,yCAuCO,SAAUmvC,KAAV,kEACL,OADK,SACCj2B,aAAUlb,KAAkCkxC,IAD7C,wCAMP,SAAUE,GAAOtxC,GAAjB,oFAGmB,OAFXixC,EAAMjxC,EAAOM,QADrB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,aAAoC,CAC7D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB02B,GAApB,IAAyBc,MAAO,QACtC5kC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMkiC,EAAWvxC,KAAcga,EAAWnN,MAlBlD,UAmBcuB,aAAIkM,KAA0Bk2B,EAAIc,MAAOC,IAnBvD,QAqBQ/gC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,aAENC,KAAMwhC,EAAIgB,QAzBpB,wBAiCQ,OALM/vC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAAsBk2B,EAAIc,MAAO7vC,IAjCnD,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAAsBk2B,EAAIc,MAAO7vC,IA1C/C,uDA8CO,SAAUqvC,KAAV,kEACL,OADK,SACCn2B,aAAUlb,KAAuBoxC,IADlC,wCAOP,SAAUE,GAAQxxC,GAAlB,4FAGmB,OAFXixC,EAAMjxC,EAAOM,QADrB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,aAAoC,CAC7D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU02B,GACrB9jC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMoiC,EAAYzxC,KAAcga,EAAWnN,MAlBnD,UAmBcuB,aAAIkM,KAA2Bm3B,IAnB7C,QAoBQjhC,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,aAENC,KAAMyiC,EAAUD,QAxB1B,wBA+B2B,OAJb/vC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BiChB,cAAO,SAACna,GAAD,OAAW8b,IAAiB9b,EAAMwX,KAAM05B,EAAIc,UA/BpF,QAgCQ,OAhCR,SA+BgBI,EA/BhB,EA+BgBA,OA/BhB,UAgCctjC,aAAIkM,KAAuBo3B,EAAQjwC,IAhCjD,gCA0CuB,OA1CvB,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0C6Bf,cAAO,SAACna,GAAD,OAAW8b,IAAiB9b,EAAMwX,KAAM05B,EAAIc,UA1ChF,QA2CI,OA3CJ,SA0CYI,EA1CZ,EA0CYA,OA1CZ,UA2CUtjC,aAAIkM,KAAuBo3B,EAAQjwC,IA3C7C,uDAgDO,SAAUuvC,KAAV,kEACL,OADK,SACCr2B,aAAUlb,KAAwBsxC,IADnC,wCAOP,SAAUE,GAAU1xC,GAApB,sFAGmB,OAFT+xC,EAAU/xC,EAAOM,QAAjByxC,MADV,kBAGyB73B,aAAOC,oBAHhC,OAIuB,OADb4B,EAHV,gBAI6B7B,cAAO,SAACna,GAAD,OAAWqyC,IAAoBryC,EAAOgyC,MAJ1E,UAIUM,EAJV,QAKQt2B,EALR,iBAMoB,OANpB,UAM0B7B,aAAOC,iBANjC,QAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,eAAsC,CAC/D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEw3B,UACvB5kC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAA4Bg3B,IAlB9C,QAmBQ9gC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,aAENC,KAAM4iC,EAAWJ,QAvB3B,wBA+BQ,OALM/vC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA5BlC,UA+BcrM,aAAIkM,KAAwBg3B,EAAO7vC,IA/BjD,gCAwCI,OAxCJ,0BAmCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GArCpB,UAwCUpM,aAAIkM,KAAwBg3B,EAAO7vC,IAxC7C,uDA4CO,SAAUyvC,KAAV,kEACL,OADK,SACCv2B,aAAUlb,KAA0BwxC,IADrC,wCAQP,SAAUE,GAAa5xC,GAAvB,wEACQ+xC,EAAQ/xC,EAAOM,QACrBgyC,aACE,CACEP,SAEF,CACE7gC,cAAe,SAACzC,GACd,IAAMiM,EAAaja,KAAcgO,EAASnB,MAC1C0E,GAAMkQ,SAASnH,KAA4BL,EAAY,CAACA,EAAW63B,cAErE/gC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAwB7Y,OAZ/C,wCAkBO,SAAU2vC,KAAV,kEACL,OADK,SACCz2B,aAAUlb,KAAyB0xC,IADpC,wCCrRA,IAAMY,GAAU,IAAIt5B,KAAOC,OAAO,WAAY,GAAI,CAAEC,YAAa,cAC3D5B,GAAW,IAAI0B,KAAOG,MAAMm5B,I,gCCW/BC,I,aA2BOC,I,aAMPC,I,aAgCOC,I,aAMPC,I,aA8COC,I,aAOPC,I,aAoDOC,I,aAOPC,I,aA4COC,I,aAOPrsB,I,aAiCOssB,IA3QjB,SAAUV,GAAkBzyC,GAA5B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpB2tC,aACE,CAAE9sC,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZtD,EADd,EACEb,SAAYa,SACZoD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAiCvD,EAAUoD,EAAQtU,EAAYb,KAGnE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6B7Y,OArBpD,wCA2BO,SAAUwwC,KAAV,kEACL,OADK,SACCt3B,aAAUlb,KAA8BuyC,IADzC,wCAMP,SAAUE,GAAyB3yC,GAAnC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpB2tC,aACE,CAAE53B,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZtD,EADd,EACEb,SAAYa,SACZoD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAwCvD,EAAUoD,EAAQtU,EAAYb,KAG1E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAoC7Y,OA1B3D,yCAgCO,SAAU0wC,KAAV,kEACL,OADK,SACCx3B,aAAUlb,KAAsCyyC,IADjD,wCAMP,SAAUE,GAAW7yC,GAArB,oFAGmB,OAFXwyC,EAAUxyC,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBi4B,GAApB,IAA6Ba,UAAW,QAC9ClmC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMwjC,EAAe7yC,KAAcga,EAAWnN,MAlBtD,UAmBcuB,aAAIkM,KAA8By3B,EAAQa,UAAWC,IAnBnE,QAqBQriC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,qBAENC,KAAM+iC,EAAQe,cAzBxB,wBAiCQ,OALMrxC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA0By3B,EAAQa,UAAWnxC,IAjC/D,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAA0By3B,EAAQa,UAAWnxC,IA1C3D,uDA8CO,SAAU4wC,KAAV,kEACL,OADK,SACC13B,aAAUlb,KAA2B2yC,IADtC,wCAOP,SAAUE,GAAY/yC,GAAtB,4FAGmB,OAFXwyC,EAAUxyC,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,eAAoBi4B,IAC1BrlC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM0jC,EAAgB/yC,KAAcga,EAAWnN,MAlBvD,UAmBcuB,aAAIkM,KAA+By4B,IAnBjD,QAoBQviC,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,qBAENC,KAAM+jC,EAAcD,cAxB9B,wBA+B+B,OAJjBrxC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BqChB,cAAO,SAACna,GAAD,OAClC8b,IAAqB9b,EAAMyX,SAAUg7B,EAAQa,cAhCvD,QAkCQ,OAlCR,SA+BgBI,EA/BhB,EA+BgBA,WA/BhB,UAkCc5kC,aAAIkM,KAA2B04B,EAAYvxC,IAlCzD,gCA4C2B,OA5C3B,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4CiCf,cAAO,SAACna,GAAD,OAClC8b,IAAqB9b,EAAMyX,SAAUg7B,EAAQa,cA7CnD,QA+CI,OA/CJ,SA4CYI,EA5CZ,EA4CYA,WA5CZ,UA+CU5kC,aAAIkM,KAA2B04B,EAAYvxC,IA/CrD,uDAoDO,SAAU8wC,KAAV,kEACL,OADK,SACC53B,aAAUlb,KAA4B6yC,IADvC,wCAOP,SAAUE,GAAcjzC,GAAxB,sFAGmB,OAFTqzC,EAAcrzC,EAAOM,QAArB+yC,UADV,kBAGyBn5B,aAAOC,oBAHhC,OAI2B,OADjB4B,EAHV,gBAIiC7B,cAAO,SAACna,GAAD,OAAW8b,IAAqB9b,EAAOszC,MAJ/E,UAIUK,EAJV,QAKQ33B,EALR,iBAMoB,OANpB,UAM0B7B,aAAOC,iBANjC,QAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mBAA0C,CACnE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE84B,cACvBlmC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAgCs4B,IAlBlD,QAmBQpiC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,qBAENC,KAAMikC,EAAeH,cAvB/B,wBA+BQ,OALMrxC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA5BlC,UA+BcrM,aAAIkM,KAA4Bs4B,EAAWnxC,IA/BzD,gCAwCI,OAxCJ,0BAmCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GArCpB,UAwCUpM,aAAIkM,KAA4Bs4B,EAAWnxC,IAxCrD,uDA4CO,SAAUgxC,KAAV,kEACL,OADK,SACC93B,aAAUlb,KAA8B+yC,IADzC,wCAOP,SAAUpsB,GAAsB7mB,GAAhC,oFAGmB,OAHnB,EACsCA,EAAOM,QAAnC+yC,EADV,EACUA,UAAWM,EADrB,EACqBA,aADrB,kBAGyBz5B,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iCAAwD,CACjF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEo5B,eAAcN,cACrClmC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAiBQ,OADMqZ,EAAmD,IAAvC1O,EAAWnN,KAAKsmC,mBAhB1C,UAiBc/kC,aAAIkM,KAA6BoO,IAjB/C,iCAmBsB,CACZnO,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SArBlC,0DA0BkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GA5BpB,uDAiCO,SAAUk4B,KAAV,kEACL,OADK,SACC/3B,aAAUlb,KAA2C2mB,IADtD,wC,aCvRMgtB,GAAQ,IAAI36B,KAAOC,OAAO,SAAU,GAAI,CAAEC,YAAa,YACvD3B,GAAS,IAAIyB,KAAOG,MAAMw6B,I,uBCa7BC,I,aAyBOC,I,aAMPC,I,aAgCOC,I,aAMPC,I,aA8COC,I,aAOPC,I,aAkDOC,I,aAOPC,I,aA2COC,I,aAOPC,I,aAkCOC,I,aAOPC,I,aAmCOC,IAjTjB,SAAUb,GAAgB9zC,GAA1B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpBmvC,aACE,CAAEtuC,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZrD,EADd,EACEd,SAAYc,OACZmD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA+BtD,EAAQmD,EAAQtU,EAAYb,KAE5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2B7Y,OAnBlD,wCAyBO,SAAU6xC,KAAV,kEACL,OADK,SACC34B,aAAUlb,KAA4B4zC,IADvC,wCAMP,SAAUE,GAAuBh0C,GAAjC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBmvC,aACE,CAAEp5B,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZrD,EADd,EACEd,SAAYc,OACZmD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAsCtD,EAAQmD,EAAQtU,EAAYb,KAGtE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkC7Y,OA1BzD,yCAgCO,SAAU+xC,KAAV,kEACL,OADK,SACC74B,aAAUlb,KAAoC8zC,IAD/C,wCAMP,SAAUE,GAASl0C,GAAnB,oFAGmB,OAFX6zC,EAAQ7zC,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,eAAsC,CAC/D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBs5B,GAApB,IAA2BgB,QAAS,QAC1C1nC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMglC,EAAar0C,KAAcga,EAAWnN,MAlBpD,UAmBcuB,aAAIkM,KAA4B84B,EAAMgB,QAASC,IAnB7D,QAqBQ7jC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMokC,EAAMkB,kBAzBtB,wBAiCQ,OALM7yC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAAwB84B,EAAMgB,QAAS3yC,IAjCzD,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAAwB84B,EAAMgB,QAAS3yC,IA1CrD,uDA8CO,SAAUiyC,KAAV,kEACL,OADK,SACC/4B,aAAUlb,KAAyBg0C,IADpC,wCAOP,SAAUE,GAAUp0C,GAApB,4FAGmB,OAFX6zC,EAAQ7zC,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,eAAsC,CAC/D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUs5B,GACrB1mC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMklC,EAAcv0C,KAAcga,EAAWnN,MAlBrD,UAmBcuB,aAAIkM,KAA6Bi6B,IAnB/C,QAoBQ/jC,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMulC,EAAYD,kBAxB5B,wBA+B6B,OAJf7yC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BmChB,cAAO,SAACna,GAAD,OAChC8b,IAAmB9b,EAAM0X,OAAQo8B,EAAMgB,YAhCjD,QAkCQ,OAlCR,SA+BgBI,EA/BhB,EA+BgBA,SA/BhB,UAkCcpmC,aAAIkM,KAAyBk6B,EAAU/yC,IAlCrD,gCA4CyB,OA5CzB,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4C+Bf,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAM0X,OAAQo8B,EAAMgB,YA5CxF,QA6CI,OA7CJ,SA4CYI,EA5CZ,EA4CYA,SA5CZ,UA6CUpmC,aAAIkM,KAAyBk6B,EAAU/yC,IA7CjD,uDAkDO,SAAUmyC,KAAV,kEACL,OADK,SACCj5B,aAAUlb,KAA0Bk0C,IADrC,wCAOP,SAAUE,GAAYt0C,GAAtB,sFAGmB,OAFT60C,EAAY70C,EAAOM,QAAnBu0C,QADV,kBAGyB36B,aAAOC,oBAHhC,OAIyB,OADf4B,EAHV,gBAI+B7B,cAAO,SAACna,GAAD,OAAWm1C,IAAwBn1C,EAAO80C,MAJhF,UAIUM,EAJV,QAKQp5B,EALR,iBAMoB,OANpB,UAM0B7B,aAAOC,iBANjC,QAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,iBAAwC,CACjE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEs6B,YACvB1nC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAiBQ,OAjBR,UAiBcjB,aAAIkM,KAA8B85B,IAjBhD,QAkBQ5jC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAM0lC,EAAaJ,kBAtB7B,wBA8BQ,OALM7yC,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA3BlC,UA8BcrM,aAAIkM,KAA0B85B,EAAS3yC,IA9BrD,gCAuCI,OAvCJ,0BAkCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GApCpB,UAuCUpM,aAAIkM,KAA0B85B,EAAS3yC,IAvCjD,uDA2CO,SAAUqyC,KAAV,kEACL,OADK,SACCn5B,aAAUlb,KAA4Bo0C,IADvC,wCAOP,SAAUE,GAAgBx0C,GAA1B,oFAGmB,OAHnB,EACkCA,EAAOM,QAA/Bu0C,EADV,EACUA,QAAS9wB,EADnB,EACmBA,WADnB,kBAGyB7J,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,6BAAoD,CAC7E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEs6B,UAAS9wB,eAChC5W,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADMqZ,EAAsD,IAA1C1O,EAAWnN,KAAK8nC,sBAjB1C,UAkBcvmC,aAAIkM,KAA6BoO,IAlB/C,iCAoBsB,CACZnO,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SAtBlC,0DA2BkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GA7BpB,uDAkCO,SAAUw5B,KAAV,kEACL,OADK,SACCr5B,aAAUlb,KAAsCs0C,IADjD,wCAOP,SAAUE,GAAsB10C,GAAhC,oFAImB,OAJnB,EACwCA,EAAOM,QAArCu0C,EADV,EACUA,QAASQ,EADnB,EACmBA,iBADnB,kBAIyBn7B,aAAOC,oBAJhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mCAA0D,CACnF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEs6B,QAAO,OAAEA,QAAF,IAAEA,IAAW,KAAMQ,qBACjDloC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADMqZ,EAAwC,IAA5B1O,EAAWnN,KAAKgoC,QAlB1C,UAmBczmC,aAAIkM,KAAyCoO,IAnB3D,iCAqBsB,CACZnO,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SAvBlC,0DA4BkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GA9BpB,uDAmCO,SAAU05B,KAAV,kEACL,OADK,SACCv5B,aAAUlb,KAA8Cw0C,IADzD,wCChUA,IAAMa,GAAe,IAAIr8B,KAAOC,OAAO,UAAW,GAAI,CAAEC,YAAa,aAC/D1B,GAAU,IAAIwB,KAAOG,MAAMk8B,I,gCCiB9BC,I,aAmBOC,I,aAOPC,I,aAqBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAgBOC,I,aAOPpvB,I,aAiCOqvB,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAgBOC,IA3MjB,SAAUd,GAAiBx1C,GAA3B,kEACEu2C,aACE,GACA,CACErlC,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZpD,EADd,EACEf,SAAYe,QACZkD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAgCrD,EAASkD,KAE1DpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4B7Y,OAbnD,wCAmBO,SAAUuzC,KAAV,kEACL,OADK,SACCr6B,aAAUlb,KAA6Bs1C,IADxC,wCAOP,SAAUE,GAAwB11C,GAAlC,0EAEe,OADPqb,EAAerb,EAAOM,QAD9B,SAEqB4Z,aAAOoB,IAA2CD,GAFvE,OAEQE,EAFR,OAGEg7B,aACE,CAAE/6B,cAAeD,GACjB,CACErK,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZpD,EADd,EACEf,SAAYe,QACZkD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAuCrD,EAASkD,KAEjEpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmC7Y,OAf1D,wCAqBO,SAAUyzC,KAAV,kEACL,OADK,SACCv6B,aAAUlb,KAAqCw1C,IADhD,wCAOP,SAAUE,GAAU51C,GAApB,wEACQitB,EAASjtB,EAAOM,QACtBk2C,aAAkB,2BACXvpB,GADU,IACFujB,SAAU,OACvB,CACEt/B,cAAe,SAACzC,GACd,IAAMgoC,EAAch2C,KAAcgO,EAASnB,MAC3C0E,GAAMkQ,SAASnH,KAA6BkS,EAAOujB,SAAUiG,KAE/DjlC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyBkS,EAAOujB,SAAUtuC,OAVjE,wCAgBO,SAAU2zC,KAAV,kEACL,OADK,SACCz6B,aAAUlb,KAA0B01C,IADrC,wCAOP,SAAUE,GAAW91C,GAArB,0EAEoB,OADZitB,EAASjtB,EAAOM,QADxB,SAE0B4Z,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOktB,EAAOujB,aAF9E,OAEQkG,EAFR,OAGEF,aAAkB,eACXvpB,GACL,CACE/b,cAAe,SAACzC,GACd,IAAMkoC,EAAel2C,KAAcgO,EAASnB,MAC5C0E,GAAMkQ,SAASnH,KAA8B47B,KAE/CnlC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0B27B,EAAWx0C,OAX5D,wCAiBO,SAAU6zC,KAAV,kEACL,OADK,SACC36B,aAAUlb,KAA2B41C,IADtC,wCAOP,SAAUE,GAAah2C,GAAvB,0EAEiB,OADPwwC,EAAaxwC,EAAOM,QAApBkwC,SADV,SAEuBt2B,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOywC,MAFpE,OAEQvjB,EAFR,OAGE2pB,aAAoB,eACb3pB,GACL,CACE/b,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA+By1B,KAEhDh/B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2By1B,EAAUtuC,OAV5D,wCAgBO,SAAU+zC,KAAV,kEACL,OADK,SACC76B,aAAUlb,KAA6B81C,IADxC,wCAOP,SAAUnvB,GAAsB7mB,GAAhC,oFAGmB,OAHnB,EACmCA,EAAOM,QAAhCkwC,EADV,EACUA,SAAUzsB,EADpB,EACoBA,WADpB,kBAGyB7J,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMuB,OADX9Z,EALZ,iBAM6B+Z,aAAKC,MAAD,UAAW1M,KAAX,8BAAqD,CAC9E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEwJ,aAAYysB,aACnCrjC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAXnC,QAcyB,OARboO,EANZ,iBAc+BA,EAAS+L,OAdxC,WAcYC,EAdZ,SAeUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAf/C,iBAiBQ,OADMqZ,EAAuD,IAA3C1O,EAAWnN,KAAKupC,uBAhB1C,UAiBchoC,aAAIkM,KAA6BoO,IAjB/C,iCAmBsB,CACZnO,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SArBlC,0DA0BkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GA5BpB,uDAiCO,SAAUi7B,KAAV,kEACL,OADK,SACC96B,aAAUlb,KAAgC2mB,IAD3C,wCAOP,SAAUsvB,GAAyBn2C,GAAnC,0EAEiB,OADPwwC,EAAaxwC,EAAOM,QAApBkwC,SADV,SAEuBt2B,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOywC,MAFpE,OAEQvjB,EAFR,OAGE6pB,aAA4B,eACrB7pB,GACL,CACE/b,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAwCy1B,KAEzDh/B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmCy1B,EAAUtuC,OAVpE,wCAgBO,SAAUk0C,KAAV,kEACL,OADK,SACCh7B,aAAUlb,KAAwCi2C,IADnD,wCAOP,SAAUE,GAA2Br2C,GAArC,0EAEiB,OADPwwC,EAAaxwC,EAAOM,QAApBkwC,SADV,SAEuBt2B,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOywC,MAFpE,OAEQvjB,EAFR,OAGE8pB,aAA+B,eACxB9pB,GACL,CACE/b,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA2Cy1B,KAE5Dh/B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAsCy1B,EAAUtuC,OAVvE,wCAgBO,SAAUo0C,KAAV,kEACL,OADK,SACCl7B,aAAUlb,KAA2Cm2C,IADtD,wC,aC5NM3J,GAAW,IAAIxzB,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DtC,GAAY,IAAIoC,KAAOG,MAAMqzB,ICD7BsK,GAAmB,IAAI99B,KAAOC,OAAO,oBAAqB,GAAI,CAAEC,YAAa,OAC7E69B,GAAoB,IAAI/9B,KAAOG,MAAM29B,I,uBCiBxCE,I,aAgDOC,I,aAOPC,I,aAgCOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAoBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aA4BOC,I,aAQPC,I,aAkBOC,IA9NjB,SAAUb,GAAmBl3C,GAA7B,oFAMyC,OANzC,EAKMA,EAAOM,QAHG8F,EAFhB,EAEIE,WACgBD,EAHpB,EAGIZ,eACQmc,EAJZ,EAIItC,OAJJ,SAM+CpF,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBARJ,gBAMUC,EANV,EAMUA,WAAYb,EANtB,EAMsBA,eAKpBuyC,aACE,CACE1xC,WAAYA,EACZb,eAAgBA,EAChBqc,OAAM,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAcE,OACtBC,OAAM,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAcG,OACtBC,OAAM,OAAEJ,QAAF,IAAEA,OAAF,EAAEA,EAAcI,OACtBC,OAAM,OAAEL,QAAF,IAAEA,OAAF,EAAEA,EAAcK,OACtBg2B,aAAyB,OAAZr2B,QAAY,IAAZA,OAAA,EAAAA,EAAcq2B,aACvB9kC,KAAKoH,UAAL,OAAeqH,QAAf,IAAeA,OAAf,EAAeA,EAAcq2B,aADpB,OAETr2B,QAFS,IAETA,OAFS,EAETA,EAAcq2B,aAEpB,CACE/mC,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZhE,EADd,EACEH,SAAYG,UACZ8D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACEjE,EACA8D,EACAtU,EACAb,KACY,OAAZmc,QAAY,IAAZA,OAAA,EAAAA,EAAcs2B,sBAAd,OAAmCt2B,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAcs2B,yBAChCxoC,IAAjBkS,KAINpQ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B7Y,OA1CrD,wCAgDO,SAAUi1C,KAAV,kEACL,OADK,SACC/7B,aAAUlb,KAA+Bg3C,IAD1C,wCAOP,SAAUE,GAA0Bp3C,GAApC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBuyC,aACE,CAAEx8B,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZhE,EADd,EACEH,SAAYG,UACZ8D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAyCjE,EAAW8D,EAAQtU,EAAYb,KAG5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OA1B5D,yCAgCO,SAAUm1C,KAAV,kEACL,OADK,SACCj8B,aAAUlb,KAAuCk3C,IADlD,wCAOP,SAAUE,GAAYt3C,GAAtB,wEACQ0sC,EAAW1sC,EAAOM,QACxB63C,aAAoB,2BACbzL,GADY,IACFjE,WAAY,OAC3B,CACEv3B,cAAe,SAACzC,GACd,IAAM2pC,EAAgB33C,KAAcgO,EAASnB,MAC7C0E,GAAMkQ,SAASnH,KAA+B2xB,EAASjE,WAAY2P,IACnEpmC,GAAMkQ,SAASm2B,SAEjB7mC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2B2xB,EAASjE,WAAYvmC,OAXvE,wCAiBO,SAAUq1C,KAAV,kEACL,OADK,SACCn8B,aAAUlb,KAA4Bo3C,IADvC,wCAOP,SAAUE,GAAax3C,GAAvB,4EAE0B,OADlB0sC,EAAW1sC,EAAOM,QAD1B,SAEgC4Z,cAAO,SAACna,GAAD,OACnC8b,IAAsB9b,EAAO2sC,EAASjE,eAH1C,gBAEU6P,EAFV,EAEUA,YAGRH,aAAoB,eACbzL,GACL,CACEx7B,cAAe,SAACzC,GACd,IAAM8pC,EAAiB93C,KAAcgO,EAASnB,MAC9C0E,GAAMkQ,SAASnH,KAAgCw9B,IAC/CvmC,GAAMkQ,SAASm2B,SAEjB7mC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4Bu9B,EAAap2C,OAdhE,wCAoBO,SAAUu1C,KAAV,kEACL,OADK,SACCr8B,aAAUlb,KAA6Bs3C,IADxC,wCAOP,SAAUE,GAAe13C,GAAzB,0EAEmB,OADTyoC,EAAezoC,EAAOM,QAAtBmoC,WADV,SAEyBvuB,cAAO,SAACna,GAAD,OAAW8b,IAAsB9b,EAAO0oC,MAFxE,OAEQiE,EAFR,OAGE8L,aAAsB,eACf9L,GACL,CACEx7B,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAiC0tB,KAElDj3B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6B0tB,EAAYvmC,OAVhE,wCAgBO,SAAUy1C,KAAV,kEACL,OADK,SACCv8B,aAAUlb,KAA+Bw3C,IAD1C,wCAOP,SAAUE,GAAgB53C,GAA1B,oFAGyC,OAFjC8W,EAAY9W,EAAOM,QAD3B,EAEiFN,EAAOM,QAAlE8F,EAFtB,EAEUE,WAA8CD,EAFxD,EAEwCZ,eAFxC,SAG+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBALJ,gBAGUC,EAHV,EAGUA,WAAYb,EAHtB,EAGsBA,eAIpBgzC,aAAuB,eAChB3hC,GACL,CACE5F,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAE/D5I,GAAMkQ,SAASnH,KAA+B,CAAEzU,aAAYb,oBAC5D,MAGIoV,aAAUH,EAAYg+B,IAFZzB,EADd,EACEtgC,SAAYsgC,kBACZr8B,EAFF,EAEEA,OAGF5I,GAAMkQ,SAASnH,KAAmCk8B,EAAmBr8B,KAEvEpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA+B7Y,OAtBtD,wCA4BO,SAAU21C,KAAV,kEACL,OADK,SACCz8B,aAAUlb,KAAgC03C,IAD3C,wCAQP,SAAUE,GAAkB93C,GAA5B,wEACQyoC,EAAazoC,EAAOM,QAC1Bq4C,aACE,CACElQ,cAEF,CACEv3B,cAAe,SAACzC,GACd,IAAMiM,EAAaja,KAAcgO,EAASnB,MAC1C0E,GAAMkQ,SAASnH,KAAiCL,EAAY,CAACA,EAAW+tB,eAE1Ej3B,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6B7Y,OAZpD,wCAkBO,SAAU61C,KAAV,kEACL,OADK,SACC38B,aAAUlb,KAA8B43C,IADzC,wC,uBChPMc,GAAS,IAAI1/B,KAAOC,OAAO,UAAW,GAAI,CAAEC,YAAa,aACzDrC,GAAU,IAAImC,KAAOG,MAAMu/B,I,uBCkB9BC,I,aA2BOC,I,aAOPC,I,aAgCOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAmBOC,I,aAOPC,I,aA2CAC,I,aA2COC,I,aAIAC,I,aAOPC,I,aAkBOC,I,aAQPC,I,aAwBOC,I,aAOPC,I,aA2BOC,IAjTjB,SAAUjB,GAAiB74C,GAA3B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpBs0C,aACE,CAAEzzC,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ/D,EADd,EACEJ,SAAYI,QACZ6D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAgChE,EAAS6D,EAAQtU,EAAYb,KAGjE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4B7Y,OArBnD,wCA2BO,SAAU42C,KAAV,kEACL,OADK,SACC19B,aAAUlb,KAA6B24C,IADxC,wCAOP,SAAUE,GAAwB/4C,GAAlC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBs0C,aACE,CAAEv+B,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ/D,EADd,EACEJ,SAAYI,QACZ6D,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAuChE,EAAS6D,EAAQtU,EAAYb,KAGxE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmC7Y,OA1B1D,yCAgCO,SAAU82C,KAAV,kEACL,OADK,SACC59B,aAAUlb,KAAqC64C,IADhD,wCAOP,SAAUE,GAAUj5C,GAApB,0EACQ44C,EAAS54C,EAAOM,QAChB05C,EAASh6C,EAAOg6C,OACtBC,aAAkB,2BACXrB,GADU,IACFsB,SAAU,OACvB,CACEhpC,cAAe,SAACzC,GACd,IAAM0rC,EAAc15C,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,KAAK,IACjD0E,GAAMkQ,SAASnH,KAA6B69B,EAAOsB,SAAUC,KAE/D3oC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyB69B,EAAOsB,SAAUh4C,MAG7D83C,GAdJ,wCAkBO,SAAUd,KAAV,kEACL,OADK,SACC99B,aAAUlb,KAA0B+4C,IADrC,wCAOP,SAAUE,GAAWn5C,GAArB,4EAGoB,OAFZ44C,EAAS54C,EAAOM,QAChB05C,EAASh6C,EAAOg6C,OAFxB,SAG0B9/B,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAO64C,EAAOsB,aAH9E,OAGQE,EAHR,OAIEH,aAAkB,eACXrB,GACL,CACE1nC,cAAe,SAACzC,GACd,IAAM4rC,EAAe55C,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,KAAK,IAClD0E,GAAMkQ,SAASnH,KAA8Bs/B,KAE/C7oC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0Bq/B,EAAWl4C,MAGxD83C,GAfJ,wCAmBO,SAAUZ,KAAV,kEACL,OADK,SACCh+B,aAAUlb,KAA2Bi5C,IADtC,wCAOP,SAAUE,GAAar5C,GAAvB,gFAImB,OAHXitB,EAAcjtB,EAAOM,QAAQ2sB,OAC7BitB,EAAWl6C,EAAOM,QAAQ45C,SAFlC,kBAIyBhgC,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OAQuB,OADX9Z,EAPZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE2/B,SAAUA,EAAU1J,SAAUvjB,EAAOujB,WAC5DrjC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAmCm/B,EAAUjtB,IAlB/D,QAmBQhc,8BAAkC,CAChC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,mBAENC,KAAMwd,EAAOqtB,aAvBvB,yBA0BsB,CACZt/B,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA5BlC,0DAkCkB,CACZF,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GApCpB,uDA2CA,SAAUq+B,GAAet5C,GAAzB,gFAImB,OAHXitB,EAAcjtB,EAAOM,QAAQ2sB,OAC7BitB,EAAWl6C,EAAOM,QAAQ45C,SAFlC,kBAIyBhgC,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OAQuB,OADX9Z,EAPZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,wBAA+C,CACxE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEi2B,SAAUvjB,EAAOujB,WACxCrjC,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aAAIkM,KAAqCm/B,EAAUjtB,IAlBjE,QAmBQhc,gCAAoC,CAClC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,mBAENC,KAAMwd,EAAOqtB,aAvBvB,yBA0BsB,CACZt/B,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA5BlC,0DAkCkB,CACZF,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GApCpB,uDA2CO,SAAUs+B,KAAV,kEACL,OADK,SACCn+B,aAAUlb,KAAoCm5C,IAD/C,wCAIA,SAAUG,KAAV,kEACL,OADK,SACCp+B,aAAUlb,KAAsCo5C,IADjD,wCAOP,SAAUG,GAAaz5C,GAAvB,4EAGiB,OAFPk6C,EAAal6C,EAAOM,QAApB45C,SACFF,EAASh6C,EAAOg6C,OAFxB,SAGuB9/B,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOm6C,MAHpE,OAGQtB,EAHR,OAIE2B,aAAoB,eACb3B,GACL,CACE1nC,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA+Bm/B,KAEhD1oC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2Bm/B,EAAUh4C,MAGxD83C,GAdJ,wCAkBO,SAAUN,KAAV,kEACL,OADK,SACCt+B,aAAUlb,KAA6Bu5C,IADxC,wCAQP,SAAUE,GAAwB35C,GAAlC,QAIYw6C,EAJZ,+EAIYA,EAJZ,gGAK6B,OADKN,EAJlC,EAIkCA,SAAUO,EAJ5C,EAI4CA,kBAAmBhrB,EAJ/D,EAI+DA,OAAQirB,EAJvE,EAIuEA,gBAJvE,SAKmCxgC,cAAO,SAACna,GAAD,MAAY,CAChD64C,OAAQ/8B,IAAqC9b,EAAOm6C,EAAUO,GAC9DluB,KAAMouB,2BAAuC56C,EAAO0vB,EAAQirB,OAPlE,uBAKY9B,EALZ,EAKYA,OAAQrsB,EALpB,EAKoBA,KALpB,kBASW,CAAEqsB,SAAQrsB,SATrB,oDAIYiuB,GAFmB,KAAb,QADVI,EAA2B56C,EAAOM,eACxB,IAAZs6C,OAAA,EAAAA,EAAcj4B,QAFpB,iDAWQk4B,EACyB,oBAA7B,OAAOD,QAAP,IAAOA,OAAP,EAAOA,EAAcjgC,KAArB,OAA0CigC,QAA1C,IAA0CA,OAA1C,EAA0CA,EAAcjgC,IAAI6/B,GAAuB,GAC/EM,EAAsB,GAb9B,eAc4BD,GAd5B,0DAgBmB,OAFRE,EAdX,uBAgBMD,EAhBN,UAgByBC,EAhBzB,yBAgBc9lC,KAhBd,mEAkBMrU,QAAQo6C,KAAR,MAlBN,uHAAAC,IAAA,qBAqBEjpC,GAAMkQ,SAASnH,KAA6B+/B,IArB9C,qEAwBO,SAAUlB,KAAV,kEACL,OADK,SACCx+B,aAAUlb,KAAyCy5C,IADpD,wCAOP,SAAUE,GAAqB75C,GAA/B,mFAC6CA,EAAOM,QAA1C46C,EADV,EACUA,mBAAoBz5C,EAD9B,EAC8BA,cAMpB,QAJF6L,EAHR,OAGuB4tC,QAHvB,IAGuBA,OAHvB,EAGuBA,EACjBvgC,KAAI,SAACwgC,GAAD,MAAY,QAACA,QAAD,IAACA,OAAD,EAACA,EAAGjB,SAAJ,OAAciB,QAAd,IAAcA,OAAd,EAAcA,EAAG1rB,QAAQ2rB,KAAK,QAC/CA,KAAK,YAEA,IAAJ9tC,OAAA,EAAAA,EAAMqV,QAAS,GAPrB,iDASE04B,aACE,CAAEH,mBAAoB5tC,GACtB,CACE4D,cAAe,SAACzC,GAAmB,IAAD,IAEC,oBAA/B,OAAOA,QAAP,IAAOA,GAAP,UAAOA,EAAUnB,YAAjB,aAAO,EAAgBqN,OAAvB,OACIlM,QADJ,IACIA,GADJ,UACIA,EAAUnB,YADd,OACI,EAAgBqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,OAEpD5I,GAAMkQ,SAASnH,KAA6BtZ,IAC5CuQ,GAAMkQ,SAASnH,KAAA,OAAyCtM,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAUnB,QAEpEkE,YAAa,SAAC/C,GACZuD,GAAMkQ,SAASnH,KAAA,OAAsCtM,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAUnB,UArBvE,wCA2BO,SAAUwsC,KAAV,kEACL,OADK,SACC1+B,aAAUlb,KAAwC25C,IADnD,wC,4CCpUMyB,GAAM,IAAIpiC,KAAOC,OAAO,OAAQ,GAAI,CAAEC,YAAa,UACnDxB,GAAO,IAAIsB,KAAOG,MAAMiiC,ICDxBC,GAAc,IAAIriC,KAAOC,OAAO,eAAgB,GAAI,CAAEC,YAAa,OACnEoiC,GAAe,IAAItiC,KAAOG,MAAMkiC,I,sBCuBnCE,I,aAmBOC,I,aAMPC,I,aAqBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aAeOC,I,aAOPC,I,aA0BOC,I,aAOPC,I,aAoBOC,IAhWjB,SAAU7B,GAAqBz7C,GAA/B,kEACEu9C,aACE,GACA,CACErsC,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZlD,EADd,EACEjB,SAAYiB,KACZgD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAoCnD,EAAMgD,KAE3DpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgC7Y,OAbvD,wCAmBO,SAAUw5C,KAAV,kEACL,OADK,SACCtgC,aAAUlb,KAAkCu7C,IAD7C,wCAMP,SAAUE,GAA4B37C,GAAtC,0EAEe,OADPqb,EAAerb,EAAOM,QAD9B,SAEqB4Z,aAAOoB,IAA2CD,GAFvE,OAEQE,EAFR,OAGEgiC,aACE,CAAE/hC,cAAeD,GACjB,CACErK,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZlD,EADd,EACEjB,SAAYiB,KACZgD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA2CnD,EAAMgD,KAElEpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAuC7Y,OAf9D,wCAqBO,SAAU05C,KAAV,kEACL,OADK,SACCxgC,aAAUlb,KAA0Cy7C,IADrD,wCAOP,SAAUE,GAAc77C,GAAxB,wEACQw9C,EAAax9C,EAAOM,QAC1Bm9C,aAAsB,2BACfD,GADc,IACFE,MAAO,OACxB,CACExsC,cAAe,SAACzC,GACd,IAAMkvC,EAAkBl9C,KAAcgO,EAASnB,MAC/C0E,GAAMkQ,SAASnH,KAAiCyiC,EAAWE,MAAOC,KAEpEnsC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6ByiC,EAAWE,MAAOx7C,OAVtE,wCAgBO,SAAU45C,KAAV,kEACL,OADK,SACC1gC,aAAUlb,KAA+B27C,IAD1C,wCAOP,SAAUE,GAAe/7C,GAAzB,0EAEwB,OADhBw9C,EAAax9C,EAAOM,QAD5B,SAE8B4Z,cAAO,SAACna,GAAD,OAAW8b,KAAwB9b,EAAOy9C,EAAWE,UAF1F,OAEQE,EAFR,OAGEH,aAAsB,eACfD,GACL,CACEtsC,cAAe,SAACzC,GACd,IAAMovC,EAAmBp9C,KAAcgO,EAASnB,MAChD0E,GAAMkQ,SAASnH,KAAkC8iC,KAEnDrsC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B6iC,EAAe17C,OAXpE,wCAiBO,SAAU85C,KAAV,kEACL,OADK,SACC5gC,aAAUlb,KAAgC67C,IAD3C,wCAOP,SAAUE,GAAkBj8C,GAA5B,wEACU4X,EAAS5X,EAAOM,QAAhBsX,KAERkmC,aACE,CAAElmC,QACF,CACE1G,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAoCnD,KAErDpG,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgCnD,EAAM1V,OAV7D,wCAgBO,SAAUg6C,KAAV,kEACL,OADK,SACC9gC,aAAUlb,KAAmC+7C,IAD9C,wCAOP,SAAUE,GAAwBn8C,GAAlC,gFACuCA,EAAOM,QAApCsX,EADV,EACUA,KAAMmmC,EADhB,EACgBA,UAAW7f,EAD3B,EAC2BA,QACzB8f,aACE,CAAEpmC,OAAMmmC,YAAW7f,WACnB,CACEhtB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAiCnD,EAAMmmC,EAAW7f,KAEnE1sB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6BnD,EAAM1V,OAT1D,wCAeO,SAAUk6C,KAAV,kEACL,OADK,SACChhC,aAAUlb,KAA0Ci8C,IADrD,wCAOP,SAAUE,GAAer8C,GAAzB,kFACgDA,EAAOM,QAA7CsX,EADV,EACUA,KAAMyZ,EADhB,EACgBA,UAAW4sB,EAD3B,EAC2BA,QAAS/f,EADpC,EACoCA,QAClCggB,aACE,CAAEtmC,OAAMyZ,YAAW4sB,UAAS/f,WAC5B,CACEhtB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA+BnD,EAAMyZ,EAAW4sB,EAAS/f,KAE1E1sB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2BnD,EAAM1V,OATxD,wCAeO,SAAUo6C,KAAV,kEACL,OADK,SACClhC,aAAUlb,KAA4Cm8C,IADvD,wCAOP,SAAUE,GAA0Bv8C,GAApC,8EACgCA,EAAOM,QAA7BsX,EADV,EACUA,KAAMumC,EADhB,EACgBA,YACdC,aACE,CAAExmC,OAAMumC,eACR,CACEjtC,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAmCnD,EAAMumC,KAE1D3sC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA+BnD,EAAM1V,OAT5D,wCAeO,SAAUs6C,KAAV,kEACL,OADK,SACCphC,aAAUlb,KAA4Cq8C,IADvD,wCAOP,SAAUE,GAA2Bz8C,GAArC,8EAC8BA,EAAOM,QAA3BsX,EADV,EACUA,KAAMyZ,EADhB,EACgBA,UACdgtB,aACE,CAAEzmC,OAAMyZ,aACR,CACEngB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAoCnD,EAAMyZ,KAE3D7f,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgCnD,EAAM1V,OAT7D,wCAeO,SAAUw6C,KAAV,kEACL,OADK,SACCthC,aAAUlb,KAA8Cu8C,IADzD,wCAOP,SAAUE,GAAyB38C,GAAnC,8EAC4BA,EAAOM,QAAzBsX,EADV,EACUA,KAAMqmC,EADhB,EACgBA,QACdK,aACE,CAAE1mC,OAAMqmC,WACR,CACE/sC,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAkCnD,EAAMqmC,KAEzDzsC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8BnD,EAAM1V,OAT3D,wCAeO,SAAU06C,KAAV,kEACL,OADK,SACCxhC,aAAUlb,KAA4Cy8C,IADvD,wCAOP,SAAUE,GAA4B78C,GAAtC,8EAC4BA,EAAOM,QAAzBsX,EADV,EACUA,KAAM2mC,EADhB,EACgBA,QACdC,aACE,CAAE5mC,OAAM2mC,WACR,CACErtC,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAqCnD,EAAM2mC,KAE5D/sC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAiCnD,EAAM1V,OAT9D,wCAeO,SAAU46C,KAAV,kEACL,OADK,SACC1hC,aAAUlb,KAAgD28C,IAD3D,wCAOP,SAAUE,GAAuB/8C,GAAjC,gFACqCA,EAAOM,QAAlCsX,EADV,EACUA,KAAM6mC,EADhB,EACgBA,UAAWpb,EAD3B,EAC2BA,MACzBqb,aACE,CAAE9mC,OAAM6mC,aACR,CACEvtC,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAgCnD,EAAM6mC,EAAWpb,KAElE7xB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4BnD,EAAM1V,OATzD,wCAeO,SAAU86C,KAAV,kEACL,OADK,SACC5hC,aAAUlb,KAAyC68C,IADpD,wCAOP,SAAUE,GAAuBj9C,GAAjC,gFACmCA,EAAOM,QAAhCsX,EADV,EACUA,KAAM+mC,EADhB,EACgBA,QAAShnC,EADzB,EACyBA,MACvBinC,aACE,CAAEhnC,OAAM+mC,WACR,CACEztC,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAgCnD,EAAM+mC,EAAShnC,KAEhEnG,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4BnD,EAAM1V,OATzD,wCAeO,SAAUg7C,KAAV,kEACL,OADK,SACC9hC,aAAUlb,KAAyC+8C,IADpD,wCAOP,SAAUE,GAAuBn9C,GAAjC,8EAC4BA,EAAOM,QAAzBsX,EADV,EACUA,KAAMinC,EADhB,EACgBA,QACdC,aACE,CAAElnC,OAAMinC,WACR,CACE3tC,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFNnE,EADpB,EACEA,SAAYiB,KACZgD,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAA,OACEpE,QADF,IACEA,IACEiB,EAAKrS,MAAM,KAAKw5C,QAAO,SAACC,EAAKC,GAAN,OAAiBD,EAAIC,GAAQ,CAAEC,MAAO,IAAOF,IAAM,IAC5EpkC,EAAO+H,OAAS,EAAI/H,EAAShD,EAAKrS,MAAM,QAI9CiM,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4BnD,EAAM1V,OApBzD,wCA0BO,SAAUk7C,KAAV,kEACL,OADK,SACChiC,aAAUlb,KAAyCi9C,IADpD,wCAOP,SAAUE,GAAWr9C,GAArB,wEACQ4X,EAAO5X,EAAOM,QACpB6+C,aAAkB,eACXvnC,GACL,CACE1G,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAY0kC,IAFZ5D,EADd,EACE7kC,SAAY6kC,aACZ5gC,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA8BygC,EAAc5gC,KAE7DpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0B7Y,OAdjD,wCAoBO,SAAUo7C,KAAV,kEACL,OADK,SACCliC,aAAUlb,KAAmCm9C,IAD9C,wC,qCChXGgC,I,aAiBOC,I,aAOPC,I,aAeOC,IAvCjB,SAAUH,GAAmBr/C,GAA7B,wEACQsC,EAAUtC,EAAOM,QACvBm/C,aAAwBn9C,EAAS,CAC/B4O,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZlD,EADd,EACEjB,SAAYiB,KACZgD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAkCnD,EAAMgD,KAEzDpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B7Y,OAZnD,wCAiBO,SAAUo9C,KAAV,kEACL,OADK,SACClkC,aAAUlb,KAAgCm/C,IAD3C,wCAOP,SAAUE,GAAsBv/C,GAAhC,gFACuCA,EAAOM,QAApCsX,EADV,EACUA,KAAMmmC,EADhB,EACgBA,UAAW7f,EAD3B,EAC2BA,QACzBwhB,aACE,CAAE9nC,OAAMmmC,YAAW7f,WACnB,CACEhtB,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAsCnD,EAAMmmC,EAAW7f,KAExE1sB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkCnD,EAAM1V,OAT/D,wCAeO,SAAUs9C,KAAV,kEACL,OADK,SACCpkC,aAAUlb,KAAwCq/C,IADnD,wC,cC/CM/+C,GAAO,IAAI0Y,KAAOC,OAAO,QAAS,GAAI,CAAEC,YAAa,WACrDiqB,GAAQ,IAAInqB,KAAOG,MAAM7Y,I,uBCQ5Bm/C,I,aAyBOC,IAzBjB,SAAUD,GAAoB3/C,GAA9B,wEACQsC,EAAUtC,EAAOM,QACvBu/C,aAAyBv9C,EAAS,CAChC4O,cAAe,SAACzC,GACd,IAAM0xB,EAAa1/B,KAAcgO,EAASnB,KAAK6yB,YACzC2f,EAAWrxC,EAASnB,KAAKwyC,SAASnlC,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACtE,EAGIC,aAAUilC,EAAUhlC,IAFVlD,EADd,EACEjB,SAAYiB,KACJmoC,EAFV,EAEEnlC,OAEIolC,EAAiBvxC,EAASnB,KAAK0yC,eAAerlC,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAClF,EAGIC,aAAUmlC,EAAgBC,IAFTC,EADrB,EACEvpC,SAAY0sB,MACJ8c,EAFV,EAEEvlC,OAEF5I,GAAMkQ,SACJnH,KAAmColB,EAAYvoB,EAAMmoC,EAAWG,EAAYC,KAGhF3uC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA+B7Y,OApBpD,wCAyBO,SAAU09C,KAAV,kEACL,OADK,SACCxkC,aAAUlb,KAAiCy/C,IAD5C,wC,iBC1BGS,I,aAgBOC,IAhBjB,SAAUD,GAASpgD,GAAnB,wEACU09C,EAAU19C,EAAOM,QAAjBo9C,MACR4C,aACE,CAAE5C,SACF,CACExsC,cAAe,SAACzC,GACd,IAAM6sC,EAAM76C,KAAcgO,EAASnB,MACnC0E,GAAMkQ,SAASnH,KAA4BugC,KAE7C9pC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAwB7Y,OAV/C,wCAgBO,SAAUm+C,KAAV,kEACL,OADK,SACCjlC,aAAUlb,KAAyBkgD,IADpC,wC,8CCJGG,I,aAyBOC,I,aAOPC,I,aAgCOC,I,aAOPC,I,aA0COC,I,aAOPC,I,aAyBOC,I,aAOPC,I,aA0COC,I,aAOPC,I,aAkDOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAkDOC,I,aAUPC,I,aAuFOC,I,aAOPC,I,aAyGOC,I,aAOPC,I,aA6COC,I,aAOPC,I,aAoBOC,IAloBjB,SAAUzB,GAAgBvgD,GAA1B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpBw8C,aACE,CAAE37C,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,MAFZjD,EADd,EACElB,SAAYkB,OACZ+C,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA+BlD,EAAQ+C,EAAQtU,EAAYb,KAE5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2B7Y,OAnBlD,wCAyBO,SAAUs+C,KAAV,kEACL,OADK,SACCplC,aAAUlb,KAA4BqgD,IADvC,wCAOP,SAAUE,GAAuBzgD,GAAjC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBw8C,aACE,CAAEzmC,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,MAFZjD,EADd,EACElB,SAAYkB,OACZ+C,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAsClD,EAAQ+C,EAAQtU,EAAYb,KAGtE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkC7Y,OA1BzD,yCAgCO,SAAUw+C,KAAV,kEACL,OADK,SACCtlC,aAAUlb,KAAoCugD,IAD/C,wCAOP,SAAUE,GAAwB3gD,GAAlC,wEACQmlC,EAAUnlC,EAAOM,QACvB4hD,aACE,CAAE/c,WACF,CACEj0B,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAmBzDjE,EAAW,CACf0sB,MAjBExoB,aAAUH,EAAW,GAAII,MAD3BnE,SAAY0sB,MAmBZvsB,UAfE+D,aAAUH,EAAW,GAAII,MAD3BnE,SAAYG,UAiBZD,UAbEgE,aAAUH,EAAW,GAAII,MAD3BnE,SAAYE,UAeZM,MAXE0D,aAAUH,EAAW,GAAII,MAD3BnE,SAAYQ,MAaZG,UATEuD,aAAUH,EAAW,GAAII,MAD3BnE,SAAYW,UAWZP,QAPE8D,aAAUH,EAAW,GAAII,MAD3BnE,SAAYI,SAUd/E,GAAMkQ,SAASnH,KAA0CpE,EAAUwuB,KAErE3zB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAsC7Y,OApC7D,wCA0CO,SAAU0+C,KAAV,kEACL,OADK,SACCxlC,aAAUlb,KAAyCygD,IADpD,wCAOP,SAAUE,GAAS7gD,GAAnB,gFAC4DA,EAAOM,QAAzDssB,EADV,EACUA,MAAOyW,EADjB,EACiBA,MADjB,EACwBK,cAAeye,EADvC,EACuCA,iBACrCC,aACE,CAAEC,UAAWz1B,EAAMy1B,UAAWC,OAAQjf,EAAM1oB,KAAI,SAACna,GAAD,OAAUA,EAAKi2B,UAAQtb,YACvE,CACEjK,cAAe,SAACzC,GACd,IAAM8zC,EAAa9hD,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,MAC3C0E,GAAMkQ,SAASnH,KAA4B6R,EAAMuY,QAASod,IAC1DtxC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMmd,EAAMy1B,YAEdrwC,GAAMkQ,SAASnH,QACf/I,GAAMkQ,SAASnH,KAAoBwnC,EAAWpd,UACd,oBAArBgd,GAAiCA,KAE9C3wC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAwB6R,EAAMuY,QAASjjC,OAnB9D,wCAyBO,SAAU4+C,KAAV,kEACL,OADK,SACC1lC,aAAUlb,KAAyB2gD,IADpC,wCAOP,SAAUE,GAAqB/gD,GAA/B,oFACiEA,EAAOM,QAA9DssB,EADV,EACUA,MAAO8W,EADjB,EACiBA,cAAe8e,EADhC,EACgCA,WAAY7rC,EAD5C,EAC4CA,SAAU8rC,EADtD,EACsDA,OAEpDC,aAA6B,yBAEzBL,UAAWz1B,EAAMy1B,UACjBC,OAAQ,CAAC5e,EAAcjN,QAAQtb,YAC5BsnC,GAJqB,IAKxB9rC,SACiB,UAAf6rC,EACI7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAO+lB,YAAU9nB,WAC3B,cAAfqnC,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOurB,cAAYttB,WAC7B,cAAfqnC,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOmoB,cAAYlqB,WAC7B,UAAfqnC,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOuS,UAAQtU,WACzB,cAAfqnC,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOmF,cAAYlH,WAC7B,YAAfqnC,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOg9B,YAAU/+B,WAC1C,GACNqnC,eAEF,CACEtxC,cAAe,SAACzC,GACd,IAAM8zC,EAAa9hD,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,MAC3C0E,GAAMkQ,SAASnH,KAAwC6R,EAAMuY,QAASod,IACtEtxC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMmd,EAAMy1B,aAGhB7wC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAoC6R,EAAMuY,QAASjjC,OApC1E,wCA0CO,SAAU8+C,KAAV,kEACL,OADK,SACC5lC,aAAUlb,KAAuC6gD,IADlD,wCAOP,SAAUE,GAAUjhD,GAApB,4FAGmB,OAFX4sB,EAAQ5sB,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,eAAsC,CAC/D0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUqS,GACrBzf,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM6yC,EAAcliD,KAAcga,EAAWnN,MAlBrD,UAmBcuB,aAAIkM,KAA6B4nC,IAnB/C,QAoBQ1xC,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMmd,EAAMy1B,YAxBtB,wBA+B6B,OAJfngD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BmChB,cAAO,SAACna,GAAD,OAChC8b,IAAmB9b,EAAM8X,OAAQ+U,EAAMuY,YAhCjD,QAkCQ,OAlCR,SA+BgByd,EA/BhB,EA+BgBA,SA/BhB,UAkCc/zC,aAAIkM,KAAyB6nC,EAAU1gD,IAlCrD,gCA4CyB,OA5CzB,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4C+Bf,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAM8X,OAAQ+U,EAAMuY,YA5CxF,QA6CI,OA7CJ,SA4CYyd,EA5CZ,EA4CYA,SA5CZ,UA6CU/zC,aAAIkM,KAAyB6nC,EAAU1gD,IA7CjD,uDAkDO,SAAUg/C,KAAV,kEACL,OADK,SACC9lC,aAAUlb,KAA0B+gD,IADrC,wCAOP,SAAUE,GAAYnhD,GAAtB,0EAEgB,OADNmlC,EAAYnlC,EAAOM,QAAnB6kC,QADV,SAEsBjrB,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAOolC,MAFlE,OAEQvY,EAFR,OAGEi2B,aAAmB,eACZj2B,GACL,CACE1b,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA8B6R,EAAMuY,WAErD3zB,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0B6R,EAAMuY,QAASjjC,OAVhE,wCAgBO,SAAUk/C,KAAV,kEACL,OADK,SACChmC,aAAUlb,KAA4BihD,IADvC,wCAOP,SAAUE,GAAWrhD,GAArB,gFAEgB,OAFhB,EACgDA,EAAOM,QAA7C6kC,EADV,EACUA,QAAS2d,EADnB,EACmBA,SAAUC,EAD7B,EAC6BA,eAD7B,SAEsB7oC,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAOolC,MAFlE,OAEQvY,EAFR,OAGEo2B,aAAkB,eACXp2B,GACL,CACE1b,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA6B6R,EAAMuY,QAAS2d,EAAUC,KAEvEvxC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyB6R,EAAMuY,QAASjjC,OAV/D,wCAgBO,SAAUo/C,KAAV,kEACL,OADK,SACClmC,aAAUlb,KAA2BmhD,IADtC,wCAOP,SAAUE,GAA+BvhD,GAAzC,0FAGmB,OAFX4sB,EAAQ5sB,EAAOM,QADvB,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yCAAgE,CACzF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUqS,GACrBzf,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAuD6R,IAnBzE,QAoBQ3b,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,iBAENC,KAAMmd,EAAMy1B,YAxBtB,wBA+B6B,OAJfngD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BmChB,cAAO,SAACna,GAAD,OAChC8b,IAAmB9b,EAAM8X,OAAQ+U,EAAMuY,YAhCjD,QAkCQ,OAlCR,SA+BgByd,EA/BhB,EA+BgBA,SA/BhB,UAkCc/zC,aAAIkM,KAAmD6nC,EAAU1gD,IAlC/E,gCA4CwB,OA5CxB,0BAuCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAzCpB,UA4C8Bf,cAAO,SAACna,GAAD,OAAW8b,IAAmB9b,EAAM8X,OAAQ+U,EAAMuY,YA5CvF,QA6CI,OA7CJ,SA4CY9S,EA5CZ,EA4CYA,QA5CZ,UA6CUxjB,aAAIkM,KAAmDsX,EAASnwB,IA7C1E,uDAkDO,SAAUs/C,KAAV,kEACL,OADK,SACCpmC,aACJlb,KACAqhD,IAHG,wCAUP,SAAUE,GAAwBzhD,GAAlC,oFAoBmB,OAnBX4sB,EAAa5sB,EAAOM,QAAQssB,MAC5B41B,EAAaxiD,EAAOM,QAAQkiD,WAC5B7rC,EAAW3W,EAAOM,QAAQqW,SAE1BssC,EACW,UAAfT,EACI,uBACe,cAAfA,EACA,2BACe,cAAfA,EACA,2BACe,UAAfA,EACA,uBACe,cAAfA,EACA,2BACe,YAAfA,EACA,yBACA,GAlBR,kBAoByBtoC,aAAOC,oBApBhC,mCAuBoB,OAvBpB,UAuB0BD,aAAOC,iBAvBjC,QAwBuB,OADX9Z,EAvBZ,iBAwB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAiCs1C,GAAoB,CAC9E5wC,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE4qB,QAASvY,EAAMuY,QAASxuB,SAAUA,IACzDxJ,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MA7BnC,QAgCyB,OARboO,EAxBZ,iBAgC+BA,EAAS+L,OAhCxC,WAgCYC,EAhCZ,SAiCUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjC/C,iBAkCQ,OAlCR,UAkCcjB,aAAIkM,KAA0C6R,EAAMuY,QAASqd,EAAY7rC,IAlCvF,QAmCQ1F,sCAA0C,CACxC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GACiB,UAAfgzC,EACI7rC,EAASgM,OAAS,EAChB,cACA,aACa,cAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,sBACA,qBACa,cAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,sBACA,qBACa,UAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,cACA,aACa,cAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,sBACA,qBACa,YAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,kBACA,iBACF,oBAERlT,KAAMmd,EAAMy1B,UACZ5vB,SAAU9b,EAASgM,OAAS,EAC5BmH,QACiB,cAAf04B,GAA6C,UAAfA,GAAyC,cAAfA,IAnEpE,yBAsEsB,CACZxnC,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SAxElC,0DA8EkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GAhFpB,uDAuFO,SAAUymC,KAAV,kEACL,OADK,SACCtmC,aAAUlb,KAAqCuhD,IADhD,wCAOP,SAAUE,GAAmB3hD,GAA7B,sFAqBmB,OApBX4sB,EAAa5sB,EAAOM,QAAQssB,MAC5B41B,EAAaxiD,EAAOM,QAAQkiD,WAC5B7rC,EAAW3W,EAAOM,QAAQqW,SAC1B8rC,EAASziD,EAAOM,QAAQmiD,OAExBQ,EACW,UAAfT,EACI,kBACe,cAAfA,EACA,sBACe,cAAfA,EACA,sBACe,UAAfA,EACA,kBACe,cAAfA,EACA,sBACe,YAAfA,EACA,oBACA,GAnBR,kBAqByBtoC,aAAOC,oBArBhC,mCAwBoB,OAxBpB,UAwB0BD,aAAOC,iBAxBjC,QAyBuB,OADX9Z,EAxBZ,iBAyB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAiCs1C,GAAoB,CAC9E5wC,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,aACJ4qB,QAASvY,EAAMuY,QACfxuB,SACiB,UAAf6rC,EACI7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAO+lB,YACjB,cAAfuf,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOurB,cACjB,cAAf+Z,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOgmC,cACjB,UAAfV,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOuS,UACjB,cAAf+yB,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOmF,cACjB,YAAfmgC,EACA7rC,EAASgE,KAAI,SAACuC,GAAD,OAAYA,EAAOg9B,YAChC,IACHuI,IAELt1C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MA/CnC,QAkDyB,OAzBboO,EAzBZ,iBAkD+BA,EAAS+L,OAlDxC,WAkDYC,EAlDZ,SAmDUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnD/C,iBAoDQ,OApDR,UAoDcjB,aAAIkM,KAAsC6R,EAAO41B,EAAY7rC,EAAU8rC,IApDrF,QAqDQxxC,kCAAsC,CACpC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GACiB,UAAfgzC,EACI7rC,EAASgM,OAAS,EAChB,cACA,aACa,cAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,sBACA,qBACa,cAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,sBACA,qBACa,UAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,cACA,aACa,cAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,sBACA,qBACa,YAAf6/B,EACA7rC,EAASgM,OAAS,EAChB,kBACA,iBACF,oBAERlT,KAAMmd,EAAMy1B,UACZ5vB,SAAU9b,EAASgM,OAAS,EAC5BmH,QACiB,cAAf04B,GAA6C,UAAfA,GAAyC,cAAfA,IArFpE,yBAwFsB,CACZxnC,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA1FlC,0DAgGkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GAlGpB,uDAyGO,SAAU2mC,KAAV,kEACL,OADK,SACCxmC,aAAUlb,KAAkCyhD,IAD7C,wCAOP,SAAUE,GAAuB7hD,GAAjC,sFAImB,OAJnB,EAC8DA,EAAOM,QAA3D6kC,EADV,EACUA,QAASlC,EADnB,EACmBA,SAAUkgB,EAD7B,EAC6BA,kBAAmBC,EADhD,EACgDA,UADhD,kBAIyBlpC,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OAQuB,OADX9Z,EAPZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kCAAyD,CAClF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE4qB,UAASie,YAAW/f,MAAO,CAACJ,KACnD91B,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAkBQ,OAlBR,UAkBcjB,aACJkM,KAA0CoqB,EAASlC,EAAUkgB,EAAmBC,IAnB1F,QAqBQnyC,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,eAENC,KAAMwzB,IAzBhB,yBA4BsB,CACZjoB,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,SA9BlC,0DAoCkB,CACZF,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,uDA6CO,SAAU6mC,KAAV,kEACL,OADK,SACC1mC,aAAUlb,KAAuC2hD,IADlD,wCAOP,SAAUE,GAAe/hD,GAAzB,wEACQmlC,EAAUnlC,EAAOM,QACvB+iD,aACE,CAAEle,WACF,CACEj0B,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,MAFZjD,EADd,EACElB,SAAYkB,OACZ+C,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA8BlD,EAAQ+C,EAAQA,EAAO,MAEtEpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0B7Y,OAdjD,wCAoBO,SAAU8/C,KAAV,kEACL,OADK,SACC5mC,aAAUlb,KAA2B6hD,IADtC,wC,aCtpBMuB,GAAY,IAAIpqC,KAAOC,OAAO,aAAc,GAAI,CAAEC,YAAa,gBAC/DtB,GAAa,IAAIoB,KAAOG,MAAMiqC,I,aCUjCC,I,aAsDOC,I,aAOPC,I,aAwDOC,I,aAOPC,I,aA8COC,I,aAOPC,I,aA0COC,I,aAOPC,I,aAuDOC,I,aAOPC,I,aA0DOC,I,aAOPC,I,aA0DOC,I,aAOPC,I,aA+COC,I,aAOPC,I,aAqDOC,I,aAOPC,I,aA4COC,I,aAOPC,I,aA6COC,IApnBjB,SAAUrB,GAAoBvjD,GAA9B,oGAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,OAQmB,OARnB,SAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAFtB,kBAQyByU,aAAOC,oBARhC,mCAUoB,OAVpB,UAU0BD,aAAOC,iBAVjC,QAWuB,OADX9Z,EAVZ,iBAW6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBjU,aACAb,eAC2B,OAAzBY,QAA0DqJ,IAAzBrJ,EAC7BA,EACAZ,IAER0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAtBnC,QAyByB,OAdboO,EAXZ,iBAyB+BA,EAAS+L,OAzBxC,WAyBYC,EAzBZ,SA0BUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SA1B/C,iBAgCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA3BzE,EA+BYC,aAAUH,EAAYI,IAFZhD,EA7BtB,EA6BUnB,SAAYmB,WACZ8C,EA9BV,EA8BUA,OA9BV,UAgCc/L,aACJkM,KAAA,OAAmCjD,QAAnC,IAAmCA,IAAc,GAAI8C,EAAQtU,EAAYb,IAjCnF,gCAyCQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAtClC,UAyCcrM,aAAIkM,KAA+B7Y,IAzCjD,gCAkDI,OAlDJ,0BA6CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA/CpB,UAkDUpM,aAAIkM,KAA+B7Y,IAlD7C,uDAsDO,SAAUshD,KAAV,kEACL,OADK,SACCpoC,aAAUlb,KAAgCqjD,IAD3C,wCAOP,SAAUE,GAA2BzjD,GAArC,wGAOiB,OAPjB,WAMQA,EAAOM,QAHT+a,EAHN,EAGMA,aACYjV,EAJlB,EAIME,WACgBD,EALtB,EAKMZ,eALN,SAOuByU,aAAOoB,IAA2CD,GAPzE,OAQ2C,OADjCE,EAPV,gBAQiDrB,aAC3CC,gCACA,CACE/T,mBACAC,yBAZR,OAgBmB,OAhBnB,SAQYC,EARZ,EAQYA,WAAYb,EARxB,EAQwBA,eARxB,UAgByByU,aAAOC,oBAhBhC,oCAkBoB,OAlBpB,UAkB0BD,aAAOC,iBAlBjC,QAmBuB,OADX9Z,EAlBZ,iBAmB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,kBAAyC,CAClE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,EAAMjV,aAAYb,mBACxD0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAxBnC,QA2ByB,OARboO,EAnBZ,iBA2B+BA,EAAS+L,OA3BxC,WA2BYC,EA3BZ,SA4BUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SA5B/C,iBAkCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA7BzE,EAiCYC,aAAUH,EAAYI,IAFZhD,EA/BtB,EA+BUnB,SAAYmB,WACZ8C,EAhCV,EAgCUA,OAhCV,UAkCc/L,aACJkM,KAA0CjD,EAAY8C,EAAQtU,EAAYb,IAnCpF,gCA2CQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAxClC,UA2CcrM,aAAIkM,KAAsC7Y,IA3CxD,gCAoDI,OApDJ,0BA+CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAjDpB,UAoDUpM,aAAIkM,KAAsC7Y,IApDpD,uDAwDO,SAAUwhD,KAAV,kEACL,OADK,SACCtoC,aAAUlb,KAAwCujD,IADnD,wCAOP,SAAUE,GAAa3jD,GAAvB,oFAGmB,OAFTsjD,EAActjD,EAAOM,QAArBgjD,UADV,kBAGyBppC,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mBAA0C,CACnE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB+oC,GAApB,IAA+B/6B,YAAa,QAClDpb,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADM+0C,EAAiBpkD,KAAcga,EAAWnN,MAjBxD,UAkBcuB,aAAIkM,KAAgCuoC,EAAU/6B,YAAas8B,IAlBzE,QAoBQ5zC,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,yBAENC,KAAM6zC,EAAUwB,gBAChBh7B,SAAS,IAzBnB,wBAiCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAA4BuoC,EAAU/6B,YAAarmB,IAjCrE,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAA4BuoC,EAAU/6B,YAAarmB,IA1CjE,uDA8CO,SAAU0hD,KAAV,kEACL,OADK,SACCxoC,aAAUlb,KAA8ByjD,IADzC,wCAOP,SAAUE,GAAc7jD,GAAxB,oFAGmB,OAFTsjD,EAActjD,EAAOM,QAArBgjD,UADV,kBAGyBppC,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mBAA0C,CACnE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoB+oC,GAApB,IAA+ByB,gBAAiBzB,EAAU/6B,eAChEpb,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADMk1C,EAAkBvkD,KAAcga,EAAWnN,MAjBzD,UAkBcuB,aAAIkM,KAAiCiqC,IAlBnD,QAoBQ/zC,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,yCArBjD,wBA6BQ,OALMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,uCAC5CyL,YAAaR,EAAWS,QAE1BjK,6BAAiC,CAAE/O,UA5B3C,UA6Bc2M,aAAIkM,KAA6BuoC,EAAU/6B,YAAarmB,IA7BtE,gCAsCI,OAtCJ,0BAiCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,uCAC5CyL,aAAc,GAEhBhK,6BAAiC,CAAE/O,UArCvC,UAsCU2M,aAAIkM,KAA6BuoC,EAAU/6B,YAAarmB,IAtClE,uDA0CO,SAAU4hD,KAAV,kEACL,OADK,SACC1oC,aAAUlb,KAA8B2jD,IADzC,wCAOP,SAAUE,GAAc/jD,GAAxB,0FAImB,OAHXsjD,EAAYtjD,EAAOM,QAD3B,kBAIyB4Z,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,mBAA0C,CACnE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU+oC,GACrBn2C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAoBQ,OADMm1C,EAAkBxkD,KAAcga,EAAWnN,MAnBzD,UAoBcuB,aAAIkM,KAAiCkqC,IApBnD,QAqBQh0C,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,yBAENC,KAAMw1C,EAAgBH,gBACtBh7B,SAAS,IA1BnB,wBAiCiC,OAJnB5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA/BlC,UAiCuChB,cAAO,SAACna,GAAD,OACpC8b,IAAuB9b,EAAM+X,WAAYwrC,EAAU/6B,gBAlC7D,QAoCQ,OApCR,SAiCgB28B,EAjChB,EAiCgBA,aAjChB,UAoCcr2C,aAAIkM,KAA6BmqC,EAAchjD,IApC7D,gCA8CyB,OA9CzB,0BAyCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA3CpB,UA8C+Bf,cAAO,SAACna,GAAD,OAChC8b,IAAuB9b,EAAOujD,EAAU/6B,gBA/C9C,QAkDI,OAJM28B,EA9CV,iBAkDUr2C,aAAIkM,KAA6BmqC,EAAchjD,IAlDzD,uDAuDO,SAAU8hD,KAAV,kEACL,OADK,SACC5oC,aAAUlb,KAA+B6jD,IAD1C,wCAOP,SAAUE,GAA+BjkD,GAAzC,kFAImB,OAHXsjD,EAAYtjD,EAAOM,QAD3B,kBAIyB4Z,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU+oC,GACrBn2C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAoDuoC,IAnBtE,QAoBQryC,oCAAwC,CACtC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,yBAENC,KAAM6zC,EAAUwB,gBAChBh7B,SAAS,EACTq7B,QAAS7B,EAAU6B,UA1B7B,wBAsCQ,OATMjjD,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GACwB,IAAtB8zC,EAAU6B,QACN,iDACA,iDAERlqC,YAAaR,EAAWS,QApClC,UAsCcrM,aAAIkM,KAAgD7Y,IAtClE,QAuCQ+O,6BAAiC,CAAE/O,UAvC3C,gCAqDI,OArDJ,0BA2CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GACwB,IAAtB8zC,EAAU6B,QACN,iDACA,iDAERlqC,aAAc,GAlDpB,UAqDUpM,aAAIkM,KAAgD7Y,IArD9D,QAsDI+O,6BAAiC,CAAE/O,UAtDvC,uDA0DO,SAAUgiD,KAAV,kEACL,OADK,SACC9oC,aAAUlb,KAAiD+jD,IAD5D,wCAOP,SAAUE,GAA4BnkD,GAAtC,kFAImB,OAHXsjD,EAAYtjD,EAAOM,QAD3B,kBAIyB4Z,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,6BAAoD,CAC7E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU+oC,GACrBn2C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAkDuoC,IAnBpE,QAoBQryC,oCAAwC,CACtC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,yBAENC,KAAM6zC,EAAUwB,gBAChBh7B,SAAS,EACTs7B,OAAQ9B,EAAU8B,SA1B5B,wBAsCQ,OATMljD,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GACuB,IAArB8zC,EAAU8B,OACN,+CACA,+CAERnqC,YAAaR,EAAWS,QApClC,UAsCcrM,aAAIkM,KAA8C7Y,IAtChE,QAuCQ+O,6BAAiC,CAAE/O,UAvC3C,gCAqDI,OArDJ,0BA2CUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GACuB,IAArB8zC,EAAU8B,OACN,+CACA,+CAERnqC,aAAc,GAlDpB,UAqDUpM,aAAIkM,KAA8C7Y,IArD5D,QAsDI+O,6BAAiC,CAAE/O,UAtDvC,uDA0DO,SAAUkiD,KAAV,kEACL,OADK,SACChpC,aAAUlb,KAA8CikD,IADzD,wCAOP,SAAUE,GAAkBrkD,GAA5B,kFAImB,OAHXsjD,EAAYtjD,EAAOM,QAD3B,kBAIyB4Z,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU+oC,GACrBn2C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAoCuoC,IAnBtD,QAoBQryC,+BAAmC,CACjC3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,yBAENC,KAAM6zC,EAAU+B,cAChBv7B,SAAS,IAzBnB,wBAgCQ,OAJM5nB,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,0CAC5CyL,YAAaR,EAAWS,QA9BlC,UAgCcrM,aAAIkM,KAAgC7Y,IAhClD,QAiCQ+O,6BAAiC,CAAE/O,UAjC3C,gCA0CI,OA1CJ,0BAqCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,0CAC5CyL,aAAc,GAvCpB,UA0CUpM,aAAIkM,KAAgC7Y,IA1C9C,QA2CI+O,6BAAiC,CAAE/O,UA3CvC,uDA+CO,SAAUoiD,KAAV,kEACL,OADK,SACClpC,aAAUlb,KAAmCmkD,IAD9C,wCAOP,SAAUE,GAAyBvkD,GAAnC,wFAImB,OAJnB,EACyCA,EAAOM,QAAtCioB,EADV,EACUA,YAAa+8B,EADvB,EACuBA,cADvB,kBAIyBprC,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,8BAAqD,CAC9E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEgO,cAAa+8B,kBACpCn4C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAoBQ,OADMy1C,EAAqB9kD,KAAcga,EAAWnN,MAnB5D,UAoBcuB,aACJkM,KAA4C,CAC1CwN,cACAi9B,cAAa,OAAED,QAAF,IAAEA,OAAF,EAAEA,EAAoBh9B,YACnCk9B,YAAW,OAAEF,QAAF,IAAEA,OAAF,EAAEA,EAAoBE,YACjCC,gBAAe,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAoBG,gBACrCC,UAAS,OAAEJ,QAAF,IAAEA,OAAF,EAAEA,EAAoBI,aA1B3C,gCAoCQ,OANMzjD,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,YAAaR,EAAWS,QAlClC,UAoCcrM,aAAIkM,KAAwC7Y,IApC1D,QAqCQ+O,6BAAiC,CAAE/O,UArC3C,gCAgDI,OAhDJ,0BAyCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CACpCC,GAAI,kDAENyL,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAAwC7Y,IAhDtD,QAiDI+O,6BAAiC,CAAE/O,UAjDvC,uDAqDO,SAAUsiD,KAAV,kEACL,OADK,SACCppC,aAAUlb,KAA2CqkD,IADtD,wCAOP,SAAUE,GAAoBzkD,GAA9B,sFAImB,OAJnB,EACoCA,EAAOM,QAAjCgjD,EADV,EACUA,UAAWsC,EADrB,EACqBA,WADrB,kBAIyB1rC,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU+oC,GACrBn2C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAwCuoC,IAnB1D,QAoBYsC,GACF30C,sBAA0B,CACxBnB,QAASjF,eAAU0E,cAAc,CAAEC,GAAI,4BAtBnD,wBA6BQ,OAJMtN,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,0BAC5CyL,YAAaR,EAAWS,QA3BlC,UA6BcrM,aAAIkM,KAAoC7Y,IA7BtD,QA8BY0jD,GAAY30C,6BAAiC,CAAE/O,UA9B3D,gCAuCI,OAvCJ,0BAkCUA,EAAQ,CACZ8Y,aAAcnQ,eAAU0E,cAAc,CAAEC,GAAI,0BAC5CyL,aAAc,GApCpB,UAuCUpM,aAAIkM,KAAoC7Y,IAvClD,QAwCQ0jD,GAAY30C,6BAAiC,CAAE/O,UAxCvD,uDA4CO,SAAUwiD,KAAV,kEACL,OADK,SACCtpC,aAAUlb,KAAsCukD,IADjD,wCAOP,SAAUE,GAAgB3kD,GAA1B,oFAGmB,OAFTuoB,EAAgBvoB,EAAOM,QAAvBioB,YADV,kBAGyBrO,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAM+B,OADnB9Z,EALZ,iBAMqC6Z,cAAO,SAACna,GAAD,OAAW8b,IAAuB9b,EAAOwoB,MANrF,QAOuB,OADXs9B,EANZ,iBAO6BzrC,aAAKC,MAAD,UAAW1M,KAAX,qBAA4C,CACrE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEgO,gBACvBpb,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAiBQ,OAjBR,UAiBcjB,aAAIkM,KAAkCwN,IAjBpD,QAkBQtX,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,yBAENC,KAAMo2C,EAAiBf,gBACvBh7B,SAAS,IAvBnB,wBA+BQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA5BlC,UA+BcrM,aAAIkM,KAA8BwN,EAAarmB,IA/B7D,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAA8BwN,EAAarmB,IAzCzD,uDA6CO,SAAU0iD,KAAV,kEACL,OADK,SACCxpC,aAAUlb,KAAiCykD,IAD5C,wC,aC/nBMmB,GAAuB,IAAI5sC,KAAOC,OAC7C,wBACA,GACA,CAAEC,YAAa,eAEJrB,GAAwB,IAAImB,KAAOG,MAAMysC,I,aCM5CC,I,aAoDOC,I,aAOPC,I,aA6DOC,I,aAUPC,I,aAkDOC,I,aAOPC,I,aAuDOC,I,aAOPC,I,aA6COC,IAtSjB,SAAUT,GAA+B/lD,GAAzC,gGAImB,OAJnB,EACyCA,EAAOM,QAAtCgG,EADV,EACUA,WAAYb,EADtB,EACsBA,eADtB,kBAIyByU,aAAOC,oBAJhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,6BAAoD,CAC7E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBjU,aACAb,mBAEF0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAfnC,QAkByB,OAXboO,EAPZ,iBAkB+BA,EAAS+L,OAlBxC,WAkBYC,EAlBZ,SAmBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAnB/C,iBAyBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MApBzE,EAwBYC,aAAUH,EAAYI,IAFZ/C,EAtBtB,EAsBUpB,SAAYoB,sBACZ6C,EAvBV,EAuBUA,OAvBV,UAyBc/L,aACJkM,KAAA,OACEhD,QADF,IACEA,IAAyB,GACzB6C,EACAtU,EACAb,IA9BZ,gCAuCQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QApClC,UAuCcrM,aAAIkM,KAA0C7Y,IAvC5D,gCAgDI,OAhDJ,0BA2CUA,EAAQ,CACZ8Y,aAAY,4CAAE,KAAKG,kBAAP,QAAqB,GACjCF,aAAc,GA7CpB,UAgDUpM,aAAIkM,KAA0C7Y,IAhDxD,uDAoDO,SAAU8jD,KAAV,kEACL,OADK,SACC5qC,aAAUlb,KAA4C6lD,IADvD,wCAOP,SAAUE,GAAsCjmD,GAAhD,0GAOiB,OAPjB,WAMQA,EAAOM,QAHT+a,EAHN,EAGMA,aACYjV,EAJlB,EAIME,WACgBD,EALtB,EAKMZ,eALN,SAOuByU,aAAOoB,IAA2CD,GAPzE,OAQ2C,OADjCE,EAPV,gBAQiDrB,aAC3CC,gCACA,CACE/T,mBACAC,yBAZR,OAgBmB,OAhBnB,SAQYC,EARZ,EAQYA,WAAYb,EARxB,EAQwBA,eARxB,UAgByByU,aAAOC,oBAhBhC,oCAkBoB,OAlBpB,UAkB0BD,aAAOC,iBAlBjC,QAmBuB,OADX9Z,EAlBZ,iBAmB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,6BAAoD,CAC7E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,EAAMjV,aAAYb,mBACxD0H,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAxBnC,QA2ByB,OARboO,EAnBZ,iBA2B+BA,EAAS+L,OA3BxC,WA2BYC,EA3BZ,SA4BUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SA5B/C,iBAkCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA7BzE,EAiCYC,aAAUH,EAAYI,IAFZ/C,EA/BtB,EA+BUpB,SAAYoB,sBACZ6C,EAhCV,EAgCUA,OAhCV,UAkCc/L,aACJkM,KACEhD,EACA6C,EACAtU,EACAb,IAvCZ,gCAgDQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7ClC,UAgDcrM,aAAIkM,KAAiD7Y,IAhDnE,gCAyDI,OAzDJ,0BAoDUA,EAAQ,CACZ8Y,aAAY,4CAAE,KAAKG,kBAAP,QAAqB,GACjCF,aAAc,GAtDpB,UAyDUpM,aAAIkM,KAAiD7Y,IAzD/D,uDA6DO,SAAUgkD,KAAV,kEACL,OADK,SACC9qC,aACJlb,KACA+lD,IAHG,wCAUP,SAAUE,GAAwBnmD,GAAlC,oFAGmB,OAFX8lD,EAAuB9lD,EAAOM,QADtC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,8BAAqD,CAC9E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBurC,GAApB,IAA0CW,WAAY,QAC5Dt5C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAkBQ,OADM42C,EAA4BjmD,KAAcga,EAAWnN,MAjBnE,UAkBcuB,aACJkM,KACE+qC,EAAqBW,WACrBC,IArBZ,QAyBQz1C,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMq2C,EAAqBa,iBA7BrC,wBAqCQ,OALMzkD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAlClC,UAqCcrM,aAAIkM,KAAuC+qC,EAAqBW,WAAYvkD,IArC1F,gCA8CI,OA9CJ,0BAyCUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GA3CpB,UA8CUpM,aAAIkM,KAAuC+qC,EAAqBW,WAAYvkD,IA9CtF,uDAkDO,SAAUkkD,KAAV,kEACL,OADK,SACChrC,aAAUlb,KAAyCimD,IADpD,wCAOP,SAAUE,GAAyBrmD,GAAnC,0FAGmB,OAFX8lD,EAAuB9lD,EAAOM,QADtC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,8BAAqD,CAC9E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUurC,GACrB34C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM82C,EAA6BnmD,KAAcga,EAAWnN,MAlBpE,UAmBcuB,aAAIkM,KAA4C6rC,IAnB9D,QAoBQ31C,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMm3C,EAA2BD,iBAxB3C,wBA+B4C,OAJ9BzkD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UA+BkDhB,cAAO,SAACna,GAAD,OAC/C8b,IACE9b,EAAMgY,sBACN+tC,EAAqBW,eAlCjC,QAqCQ,OArCR,SA+BgBI,EA/BhB,EA+BgBA,wBA/BhB,UAqCch4C,aAAIkM,KAAwC8rC,EAAyB3kD,IArCnF,gCA+CoC,OA/CpC,0BA0CUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GA5CpB,UA+C0Cf,cAAO,SAACna,GAAD,OAC3C8b,IAAkC9b,EAAO+lD,EAAqBW,eAhDpE,QAkDI,OAHMI,EA/CV,iBAkDUh4C,aAAIkM,KAAwC8rC,EAAyB3kD,IAlD/E,uDAuDO,SAAUokD,KAAV,kEACL,OADK,SACClrC,aAAUlb,KAA0CmmD,IADrD,wCAOP,SAAUE,GAA2BvmD,GAArC,oFAGmB,OAFTymD,EAAezmD,EAAOM,QAAtBmmD,WADV,kBAGyBvsC,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAM0C,OAD9B9Z,EALZ,iBAMgD6Z,cAAO,SAACna,GAAD,OAC/C8b,IAAkC9b,EAAO0mD,MAPjD,QASuB,OAHXK,EANZ,iBAS6B1sC,aAAKC,MAAD,UAAW1M,KAAX,gCAAuD,CAChF0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEksC,eACvBt5C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAA6C0rC,IAnB/D,QAoBQx1C,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uBAENC,KAAMq3C,EAA4BH,iBAxB5C,wBAgCQ,OALMzkD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7BlC,UAgCcrM,aAAIkM,KAAyC0rC,EAAYvkD,IAhCvE,gCAyCI,OAzCJ,0BAoCUA,EAAQ,CACZ8Y,aAAY,OAAC,EAAD,yBAAE,KAAKG,WACnBF,aAAc,GAtCpB,UAyCUpM,aAAIkM,KAAyC0rC,EAAYvkD,IAzCnE,uDA6CO,SAAUskD,KAAV,kEACL,OADK,SACCprC,aAAUlb,KAA4CqmD,IADvD,wC,aCjTMQ,GAAmB,IAAI7tC,KAAOC,OACzC,oBACA,GACA,CAAEC,YAAa,eAEJpB,GAAoB,IAAIkB,KAAOG,MAAM0tC,I,aCMxCC,I,aAmDOC,I,aAOPC,I,aA6DOC,I,aAUPC,I,aAiDOC,I,aAOPC,I,aAuDOC,I,aAOPC,I,aA+COC,IAtSjB,SAAUT,GAA2BhnD,GAArC,8FAImB,OAJnB,EACyCA,EAAOM,QAAtCgG,EADV,EACUA,WAAYb,EADtB,EACsBA,eADtB,kBAIyByU,aAAOC,oBAJhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAOuB,OADX9Z,EANZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CACnBjU,eAEF6G,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OAVboO,EAPZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAwBQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAnBzE,EAuBYC,aAAUH,EAAYI,IAFZ9C,EArBtB,EAqBUrB,SAAYqB,kBACZ4C,EAtBV,EAsBUA,OAtBV,UAwBc/L,aACJkM,KAAA,OACE/C,QADF,IACEA,IAAqB,GACrB4C,EACAtU,EACAb,IA7BZ,gCAsCQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAnClC,UAsCcrM,aAAIkM,KAAsC7Y,IAtCxD,gCA+CI,OA/CJ,0BA0CUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA5CpB,UA+CUpM,aAAIkM,KAAsC7Y,IA/CpD,uDAmDO,SAAU+kD,KAAV,kEACL,OADK,SACC7rC,aAAUlb,KAAwC8mD,IADnD,wCAOP,SAAUE,GAAkClnD,GAA5C,wGAOiB,OAPjB,WAMQA,EAAOM,QAHT+a,EAHN,EAGMA,aACYjV,EAJlB,EAIME,WACgBD,EALtB,EAKMZ,eALN,SAOuByU,aAAOoB,IAA2CD,GAPzE,OAQ2C,OADjCE,EAPV,gBAQiDrB,aAC3CC,gCACA,CACE/T,mBACAC,yBAZR,OAgBmB,OAhBnB,SAQYC,EARZ,EAQYA,WAAYb,EARxB,EAQwBA,eARxB,UAgByByU,aAAOC,oBAhBhC,oCAkBoB,OAlBpB,UAkB0BD,aAAOC,iBAlBjC,QAmBuB,OADX9Z,EAlBZ,iBAmB6B+Z,aAAKC,MAAD,UAAW1M,KAAX,yBAAgD,CACzE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEiB,cAAeD,EAAMjV,eAC5C6G,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAxBnC,QA2ByB,OARboO,EAnBZ,iBA2B+BA,EAAS+L,OA3BxC,WA2BYC,EA3BZ,SA4BUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SA5B/C,iBAkCQ,OALM4K,EAAaD,EAAWnN,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MA7BzE,EAiCYC,aAAUH,EAAYI,IAFZ9C,EA/BtB,EA+BUrB,SAAYqB,kBACZ4C,EAhCV,EAgCUA,OAhCV,UAkCc/L,aACJkM,KACE/C,EACA4C,EACAtU,EACAb,IAvCZ,gCAgDQ,OALMvD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA7ClC,UAgDcrM,aAAIkM,KAA6C7Y,IAhD/D,gCAyDI,OAzDJ,0BAoDUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAtDpB,UAyDUpM,aAAIkM,KAA6C7Y,IAzD3D,uDA6DO,SAAUilD,KAAV,kEACL,OADK,SACC/rC,aACJlb,KACAgnD,IAHG,wCAUP,SAAUE,GAAoBpnD,GAA9B,oFAGmB,OAFX+mD,EAAmB/mD,EAAOM,QADlC,kBAGyB4Z,aAAOC,oBAHhC,mCAMoB,OANpB,SAM0BD,aAAOC,iBANjC,OAQuB,OAFX9Z,EANZ,iBAQ6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAL,2BAAoBwsC,GAApB,IAAsCW,WAAY,QACxDv6C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAbnC,QAgByB,OARboO,EARZ,iBAgB+BA,EAAS+L,OAhBxC,WAgBYC,EAhBZ,SAiBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAjB/C,iBAmBQ,OADM63C,EAAwBlnD,KAAcga,EAAWnN,MAlB/D,UAmBcuB,aACJkM,KAAuCgsC,EAAiBW,WAAYC,IApB9E,QAuBQ12C,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uCAENC,KAAMs3C,EAAiBa,aACvB99B,SAAS,IA5BnB,wBAoCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QAjClC,UAoCcrM,aAAIkM,KAAmCgsC,EAAiBW,WAAYxlD,IApClF,gCA6CI,OA7CJ,0BAwCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA1CpB,UA6CUpM,aAAIkM,KAAmCgsC,EAAiBW,WAAYxlD,IA7C9E,uDAiDO,SAAUmlD,KAAV,kEACL,OADK,SACCjsC,aAAUlb,KAAqCknD,IADhD,wCAOP,SAAUE,GAAqBtnD,GAA/B,0FAImB,OAHX+mD,EAAmB/mD,EAAOM,QADlC,kBAIyB4Z,aAAOC,oBAJhC,mCAOoB,OAPpB,SAO0BD,aAAOC,iBAPjC,OASuB,OAFX9Z,EAPZ,iBAS6B+Z,aAAKC,MAAD,UAAW1M,KAAX,0BAAiD,CAC1E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUwsC,GACrB55C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAoBQ,OADM+3C,EAAyBpnD,KAAcga,EAAWnN,MAnBhE,UAoBcuB,aAAIkM,KAAwC8sC,IApB1D,QAqBQ52C,4BAAgC,CAC9B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,uCAENC,KAAMo4C,EAAuBD,aAC7B99B,SAAS,IA1BnB,wBAiCwC,OAJ1B5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA/BlC,UAiC8ChB,cAAO,SAACna,GAAD,OAC3C8b,IAA8B9b,EAAMiY,kBAAmB+uC,EAAiBW,eAlClF,QAoCQ,OApCR,SAiCgBI,EAjChB,EAiCgBA,oBAjChB,UAoCcj5C,aAAIkM,KAAoC+sC,EAAqB5lD,IApC3E,gCA8CgC,OA9ChC,0BAyCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GA3CpB,UA8CsCf,cAAO,SAACna,GAAD,OACvC8b,IAA8B9b,EAAOgnD,EAAiBW,eA/C5D,QAkDI,OAJMI,EA9CV,iBAkDUj5C,aAAIkM,KAAoC+sC,EAAqB5lD,IAlDvE,uDAuDO,SAAUqlD,KAAV,kEACL,OADK,SACCnsC,aAAUlb,KAAsConD,IADjD,wCAOP,SAAUE,GAAuBxnD,GAAjC,oFAGmB,OAFT0nD,EAAe1nD,EAAOM,QAAtBonD,WADV,kBAGyBxtC,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAMsC,OAD1B9Z,EALZ,iBAM4C6Z,cAAO,SAACna,GAAD,OAC3C8b,IAA8B9b,EAAO2nD,MAP7C,QASuB,OAHXK,EANZ,iBAS6B3tC,aAAKC,MAAD,UAAW1M,KAAX,4BAAmD,CAC5E0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAEmtC,eACvBv6C,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAdnC,QAiByB,OARboO,EATZ,iBAiB+BA,EAAS+L,OAjBxC,WAiBYC,EAjBZ,SAkBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAlB/C,iBAmBQ,OAnBR,UAmBcjB,aAAIkM,KAAyC2sC,IAnB3D,QAoBQz2C,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,+BAENC,KAAMs4C,EAAwBH,aAC9B99B,SAAS,IAzBnB,wBAiCQ,OALM5nB,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA9BlC,UAiCcrM,aAAIkM,KAAqC2sC,EAAYxlD,IAjCnE,gCA2CI,OA3CJ,0BAsCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAxCpB,UA2CUpM,aAAIkM,KAAqC2sC,EAAYxlD,IA3C/D,uDA+CO,SAAUulD,KAAV,kEACL,OADK,SACCrsC,aAAUlb,KAAwCsnD,IADnD,wC,aCjTMQ,GAAW,IAAI9uC,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DnB,GAAY,IAAIiB,KAAOG,MAAM2uC,I,uBCUhCC,I,aA2BOC,I,aAOPC,I,aAgCOC,I,aAOPC,I,aAoBOC,I,aAOPC,I,aAqBOC,I,aAOPC,I,aAgBOC,IAhJjB,SAAUT,GAAmBjoD,GAA7B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpBkjD,aACE,CAAEriD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ7C,EADd,EACEtB,SAAYsB,UACZ2C,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAkC9C,EAAW2C,EAAQtU,EAAYb,KAGrE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B7Y,OArBrD,wCA2BO,SAAUgmD,KAAV,kEACL,OADK,SACC9sC,aAAUlb,KAA+B+nD,IAD1C,wCAOP,SAAUE,GAA0BnoD,GAApC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBkjD,aACE,CAAEntC,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ7C,EADd,EACEtB,SAAYsB,UACZ2C,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAyC9C,EAAW2C,EAAQtU,EAAYb,KAG5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OA1B5D,yCAgCO,SAAUkmD,KAAV,kEACL,OADK,SACChtC,aAAUlb,KAAuCioD,IADlD,wCAOP,SAAUE,GAAYroD,GAAtB,wEACQgoD,EAAWhoD,EAAOM,QACxBsoD,aAAoB,2BACbZ,GADY,IACFa,WAAY,OAC3B,CACE33C,cAAe,SAACzC,GACd,IAAMq6C,EAAgBroD,KAAcgO,EAASnB,KAAK06C,UAC5Ce,EAActoD,KAAcgO,EAASnB,KAAK07C,QAChDh3C,GAAMkQ,SACJnH,KAA+BitC,EAASa,WAAYC,EAAeC,IAErE/2C,GAAMkQ,SAASm2B,SAEjB7mC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2BitC,EAASa,WAAY3mD,OAdvE,wCAoBO,SAAUomD,KAAV,kEACL,OADK,SACCltC,aAAUlb,KAA4BmoD,IADvC,wCAOP,SAAUE,GAAavoD,GAAvB,4EAE0B,OADlBgoD,EAAWhoD,EAAOM,QAD1B,SAEgC4Z,cAAO,SAACna,GAAD,OACnC8b,IAAsB9b,EAAOioD,EAASa,eAH1C,gBAEUI,EAFV,EAEUA,YAGRL,aAAoB,eACbZ,GACL,CACE92C,cAAe,SAACzC,GACd,IAAMy6C,EAAiBzoD,KAAcgO,EAASnB,KAAK06C,UAC7CmB,EAAe1oD,KAAcgO,EAASnB,KAAK07C,QACjDh3C,GAAMkQ,SAASnH,KAAgCmuC,EAAgBC,IAC/Dn3C,GAAMkQ,SAASm2B,SAEjB7mC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4BkuC,EAAa/mD,OAfhE,wCAqBO,SAAUsmD,KAAV,kEACL,OADK,SACCptC,aAAUlb,KAA6BqoD,IADxC,wCAOP,SAAUE,GAAezoD,GAAzB,0EAEmB,OADT6oD,EAAe7oD,EAAOM,QAAtBuoD,WADV,SAEyB3uC,cAAO,SAACna,GAAD,OAAW8b,IAAsB9b,EAAO8oD,MAFxE,OAEQb,EAFR,OAGEoB,aAAsB,eACfpB,GACL,CACE92C,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAiC8tC,KAElDr3C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6B8tC,EAAY3mD,OAVhE,wCAgBO,SAAUwmD,KAAV,kEACL,OADK,SACCttC,aAAUlb,KAA+BuoD,IAD1C,wC,aC3JMO,GAAS,IAAI9vC,KAAOC,OAAO,UAAW,GAAI,CAAEC,YAAa,aACzDlB,GAAU,IAAIgB,KAAOG,MAAM2vC,ICD3BhhB,GAAU,UAEVqhB,GAAwB,SAACn3C,EAAcg2B,GAClD,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRtP,OAAQ,MACRgP,WAAY,iBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,QAAoC91B,IAGhCo3C,GAAoB,SAACp3C,EAAcg2B,GAC9C,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRtP,OAAQkS,EAAQq3C,SAAW,OAAS,SACpC95C,KAAMyC,EAAQs3C,WACdx6C,WAAY,mBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,SAAqC91B,IAGjCu3C,GAAsB,SAACv3C,EAAcg2B,GAChD,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQs3C,YACjBl6C,OAAQ,iBACRtP,OAAQ,SACRgP,WAAY,mBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,WAAuC91B,I,aC1BtCw3C,I,aA2BOC,I,aAOPC,I,aAgCOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAgBOC,IA1IjB,SAAUT,GAAiB1pD,GAA3B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAKpB4jD,GACE,CAAE/iD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ5C,EADd,EACEvB,SAAYuB,QACZ0C,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAgC7C,EAAS0C,EAAQtU,EAAYb,KAGjE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4B7Y,OArBnD,wCA2BO,SAAUynD,KAAV,kEACL,OADK,SACCvuC,aAAUlb,KAA6BwpD,IADxC,wCAOP,SAAUE,GAAwB5pD,GAAlC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpB4jD,GACE,CAAE7tC,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ5C,EADd,EACEvB,SAAYuB,QACZ0C,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAuC7C,EAAS0C,EAAQtU,EAAYb,KAGxE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmC7Y,OA1B1D,yCAgCO,SAAU2nD,KAAV,kEACL,OADK,SACCzuC,aAAUlb,KAAqC0pD,IADhD,wCAOP,SAAUE,GAAU9pD,GAApB,wEACQgpD,EAAShpD,EAAOM,QACtBgpD,GAAkB,2BACXN,GADU,IACFO,SAAU,OACvB,CACEr4C,cAAe,SAACzC,GACd,IAAMs6C,EAActoD,KAAcgO,EAASnB,MAC3C0E,GAAMkQ,SAASnH,KAA6BiuC,EAAOO,SAAUR,IAC7D/2C,GAAMkQ,SAASm2B,SAEjB7mC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyBiuC,EAAOO,SAAUrnD,OAXjE,wCAiBO,SAAU6nD,KAAV,kEACL,OADK,SACC3uC,aAAUlb,KAA0B4pD,IADrC,wCAOP,SAAUE,GAAWhqD,GAArB,4EAEwB,OADhBgpD,EAAShpD,EAAOM,QADxB,SAE8B4Z,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOipD,EAAOO,aAFlF,gBAEUa,EAFV,EAEUA,UACRd,GAAkB,eACXN,GACL,CACE93C,cAAe,SAACzC,GACd,IAAM06C,EAAe1oD,KAAcgO,EAASnB,MAC5C0E,GAAMkQ,SAASnH,KAA8BouC,IAC7Cn3C,GAAMkQ,SAASm2B,SAEjB7mC,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0BqvC,EAAWloD,OAZ5D,wCAkBO,SAAU+nD,KAAV,kEACL,OADK,SACC7uC,aAAUlb,KAA2B8pD,IADtC,wCAOP,SAAUE,GAAalqD,GAAvB,0EAEiB,OADPupD,EAAavpD,EAAOM,QAApBipD,SADV,SAEuBrvC,cAAO,SAACna,GAAD,OAAW8b,IAAoB9b,EAAOwpD,MAFpE,OAEQP,EAFR,OAGES,GAAoB,eACbT,GACL,CACE93C,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAA+BwuC,KAEhD/3C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2BwuC,EAAUrnD,OAV5D,wCAgBO,SAAUioD,KAAV,kEACL,OADK,SACC/uC,aAAUlb,KAA6BgqD,IADxC,wC,wBCnJDG,GAAa,IAAInxC,KAAOC,OAAO,QAAS,GAAI,CAAEC,YAAa,uBACpDzB,GAAQ,IAAIuB,KAAOG,MAAMgxC,IAEhCC,GAAgB,IAAIpxC,KAAOC,OAAO,WAAY,GAAI,CAAEC,YAAa,cAC1DmxC,GAAW,IAAIrxC,KAAOG,MAAMixC,IAEnCE,GAAiB,IAAItxC,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC5DqxC,GAAY,IAAIvxC,KAAOG,MAAMmxC,IAEpCE,GAAiB,IAAIxxC,KAAOC,OAChC,YACA,CAAEwxC,iBAAkB,CAACH,KACrB,CACEpxC,YAAa,aACbwxC,cAAe,SAACC,EAASC,GAAV,OACZC,KAAgBF,GAAjB,uBAAqDA,GAArD,CAA8DC,IAAlC,CAACD,EAASC,MAG/BE,GAAY,IAAI9xC,KAAOG,MAAMqxC,ICnB7B1iB,GAAU,QAMVijB,GAAsB,SAAC/4C,EAAsBg2B,GACxD,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQ,MACRgP,WAAY,eAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,QAAoC91B,IAGhCg5C,GAAqB,SAACh5C,EAAcg2B,GAC/C,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQ,MACRgP,WAAY,eAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,YAAwC91B,IAGpCi5C,GAA8B,SAACj5C,EAAcg2B,GACxD,IAAMx2B,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,gBAA4C91B,IAGxCk5C,GAA+B,SAACl5C,EAAcg2B,GACzD,IAAMx2B,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,iBAA6C91B,IAGzCm5C,GAAkB,SAACn5C,EAAcg2B,GAC5C,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQkS,EAAQo5C,mBAAqB,OAAS,SAC9C77C,KAAMyC,EAAQq5C,SACdv8C,WAAY,iBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,SAAqC91B,IAGjCs5C,GAA0B,SAACt5C,EAAcg2B,GACpD,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQkS,EAAQo5C,mBAAqB,OAAS,SAC9C77C,KAAMyC,EAAQq5C,SACdv8C,WAAY,iBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,iBAA6C91B,IAGzCu5C,GAA0B,SAACv5C,EAAcg2B,GACpD,IAAMx2B,EAAe,IAAIjE,KACzB06B,KAAsBp2B,6BAA6BC,GAAON,GAC1D,IAAMjH,EAAOI,eAYb,OAXA6G,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQ,SACR2P,cAAelF,EAAK8E,cAAc,CAChCC,GAAI,0BAEN+B,mBAAoB9G,EAAK8E,cAAc,CACrCC,GAAI,iCAGRkC,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,iBAA6C91B,IAGzCw5C,GAA4B,SAACx5C,EAAcg2B,GACtD,IAAMx2B,EAAe,IAAIjE,KACzB06B,KAAsBp2B,6BAA6BC,GAAON,GAC1D,IAAMjH,EAAOI,eAYb,OAXA6G,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQ,SACR2P,cAAelF,EAAK8E,cAAc,CAChCC,GAAI,oCAEN+B,mBAAoB9G,EAAK8E,cAAc,CACrCC,GAAI,2CAGRkC,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,mBAA+C91B,I,sBChF9Cy5C,I,aAmBOC,I,aAOPC,I,aAqBOC,I,aAOPC,I,aA0COC,I,aAOPC,I,aAqBOC,I,aAOPC,I,aAqBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aA2COC,I,aAOPC,I,aAeOC,I,aAOPC,I,aA2DOC,I,aAOPC,I,aAeOC,IAtZjB,SAAUzB,GAAe3rD,GAAzB,kEACEirD,GACE,GACA,CACE/5C,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZnD,EADd,EACEhB,SAAYgB,MACZiD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA8BpD,EAAOiD,KAEtDpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA0B7Y,OAbjD,wCAmBO,SAAU0pD,KAAV,kEACL,OADK,SACCxwC,aAAUlb,KAA2ByrD,IADtC,wCAOP,SAAUE,GAAsB7rD,GAAhC,0EAEe,OADPqb,EAAerb,EAAOM,QAD9B,SAEqB4Z,aAAOoB,IAA2CD,GAFvE,OAEQE,EAFR,OAGE0vC,GACE,CAAEzvC,cAAeD,GACjB,CACErK,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZnD,EADd,EACEhB,SAAYgB,MACZiD,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAqCpD,EAAOiD,KAE7DpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAiC7Y,OAfxD,wCAqBO,SAAU4pD,KAAV,kEACL,OADK,SACC1wC,aAAUlb,KAAmC2rD,IAD9C,wCAOP,SAAUE,GAAc/rD,GAAxB,wEACQqtD,EAASrtD,EAAOM,QACtB4qD,GACE,CAAEmC,UACF,CACEn8C,cAAe,SAACzC,GACd,IAAM6+C,EAAW7+C,EAASnB,KAAKggD,SAAS3yC,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAChE2yC,EAAc9+C,EAASnB,KAAKigD,YAAY5yC,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACtE4yC,EAAe/+C,EAASnB,KAAKkgD,aAAa7yC,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC9E,EAGIC,aAAUyyC,EAAUxyC,IAFVnD,EADd,EACEhB,SAAYgB,MACJ81C,EAFV,EAEE7yC,OAGF,EAGIC,aAAU0yC,EAAazyC,IAFbyvC,EADd,EACE5zC,SAAY4zC,SACJmD,EAFV,EAEE9yC,OAGF,EAGIC,aAAU2yC,EAAc1yC,IAFd2vC,EADd,EACE9zC,SAAY8zC,UACJkD,EAFV,EAEE/yC,OAGF5I,GAAMkQ,SACJnH,KACEpD,EACA81C,EACAlD,EACAmD,EACAjD,EACAkD,KAINn8C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAyB7Y,OApChD,wCA0CO,SAAU8pD,KAAV,kEACL,OADK,SACC5wC,aAAUlb,KAA0B6rD,IADrC,wCAOP,SAAUE,GAAcjsD,GAAxB,wEACQqtD,EAASrtD,EAAOM,QAEtB6qD,GACE,CAAEkC,UACF,CACEn8C,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZyvC,EADd,EACE5zC,SAAY4zC,SACZ3vC,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAqCwvC,EAAU3vC,EAAQyyC,KAExE77C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAiC7Y,OAfxD,wCAqBO,SAAUgqD,KAAV,kEACL,OADK,SACC9wC,aAAUlb,MAAmC+rD,IAD9C,wCAOP,SAAUE,GAAensD,GAAzB,wEACQqtD,EAASrtD,EAAOM,QAEtB8qD,GACE,CAAEiC,UACF,CACEn8C,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZ2vC,EADd,EACE9zC,SAAY8zC,UACZ7vC,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAAsC0vC,EAAW7vC,EAAQyyC,KAE1E77C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkC7Y,OAfzD,wCAqBO,SAAUkqD,KAAV,kEACL,OADK,SACChxC,aAAUlb,KAAoCisD,IAD/C,wCAOP,SAAUE,GAAQrsD,GAAlB,wEACQmY,EAAOnY,EAAOM,QACpB+qD,GAAgB,2BACTlzC,GADQ,IACFmzC,mBAAoB,OAC/B,CACEp6C,cAAe,SAACzC,GACd,IAAMm/C,EAAYntD,KAAcgO,EAASnB,MACzC0E,GAAMkQ,SAASnH,KAA2B5C,EAAKmzC,mBAAoBsC,KAErEp8C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAuB5C,EAAKmzC,mBAAoBppD,OAVvE,wCAgBO,SAAUoqD,KAAV,kEACL,OADK,SACClxC,aAAUlb,KAAwBmsD,IADnC,wCAOP,SAAUE,GAASvsD,GAAnB,4EAEsB,OADdmY,EAAOnY,EAAOM,QADtB,SAE4B4Z,cAAO,SAACna,GAAD,OAAW8b,IAAkB9b,EAAOoY,EAAKmzC,uBAF5E,gBAEUuC,EAFV,EAEUA,QACRxC,GAAgB,eACTlzC,GACL,CACEjH,cAAe,SAACzC,GACd,IAAMq/C,EAAartD,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,MAC3C0E,GAAMkQ,SAASnH,KAAA,2BAAiC+yC,GAAjC,IAA6CrD,UAAW,QAEzEj5C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAwB8yC,EAAS3rD,OAXxD,wCAiBO,SAAUsqD,KAAV,kEACL,OADK,SACCpxC,aAAUlb,KAAyBqsD,IADpC,wCAOP,SAAUE,GAAgBzsD,GAA1B,wEACQmY,EAAOnY,EAAOM,QACpBkrD,GAAwB,2BACjBrzC,GADgB,IACVmzC,mBAAoB,OAC/B,CACEp6C,cAAe,SAACzC,GACd,IAAMm/C,EAAYntD,KAAcgO,EAASnB,MACzC0E,GAAMkQ,SAASnH,KAA2B5C,EAAKmzC,mBAAoBsC,KAErEp8C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAuB5C,EAAKmzC,mBAAoBppD,OAVvE,wCAgBO,SAAUwqD,KAAV,kEACL,OADK,SACCtxC,aAAUlb,KAAiCusD,IAD5C,wCAOP,SAAUE,GAAiB3sD,GAA3B,4EAEsB,OADdmY,EAAOnY,EAAOM,QADtB,SAE4B4Z,cAAO,SAACna,GAAD,OAAW8b,IAAkB9b,EAAOoY,EAAKmzC,uBAF5E,gBAEUuC,EAFV,EAEUA,QACRrC,GAAwB,eACjBrzC,GACL,CACEjH,cAAe,SAACzC,GACd,IAAMq/C,EAAartD,KAAcgO,EAASnB,MAC1C0E,GAAMkQ,SAASnH,KAAA,2BAAiC+yC,GAAjC,IAA6CrD,UAAW,QAEzEj5C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAwB8yC,EAAS3rD,OAXxD,wCAiBO,SAAU0qD,KAAV,kEACL,OADK,SACCxxC,aAAUlb,KAAkCysD,IAD7C,wCAOP,SAAUE,GAAW7sD,GAArB,oFAGmB,OAFTqtD,EAAWrtD,EAAOM,QAAlB+sD,OADV,kBAGyBnzC,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAM0B,OADd9Z,EALZ,iBAMgC6Z,cAAO,SAACna,GAAD,OAAW8b,IAAkB9b,EAAOstD,MAN3E,QAOuB,OADXU,EANZ,iBAO6B3zC,aAAKC,MAAD,UAAW1M,KAAX,gBAAuC,CAChE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAU,CAAE8yC,WACvBlgD,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAiBQ,OAjBR,UAiBcjB,aAAIkM,KAA6BsyC,IAjB/C,QAkBQp8C,6BAAiC,CAC/B3B,OAAQzE,eAAU0E,cAAc,CAC9BC,GAAI,eAENC,KAAMs+C,EAAYC,uBAtB5B,wBA8BQ,OALM9rD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA3BlC,UA8BcrM,aAAIkM,KAAyBsyC,EAAQnrD,IA9BnD,gCAuCI,OAvCJ,0BAkCUA,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GApCpB,UAuCUpM,aAAIkM,KAAyBsyC,EAAQnrD,IAvC/C,uDA2CO,SAAU4qD,KAAV,kEACL,OADK,SACC1xC,aAAUlb,KAA2B2sD,IADtC,wCAOP,SAAUE,GAAa/sD,GAAvB,wEACQiuD,EAAejuD,EAAOM,QAC5BmrD,GAAwB,eACjBwC,GACL,CACE/8C,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,SAEjBvJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,WATvB,wCAeO,SAAUiyC,KAAV,kEACL,OADK,SACC5xC,aAAUlb,KAAkC6sD,IAD7C,wCAOP,SAAUE,GAAajtD,GAAvB,8FAGmB,OAFXM,EAAUN,EAAOM,QADzB,kBAGyB4Z,aAAOC,oBAHhC,mCAKoB,OALpB,SAK0BD,aAAOC,iBALjC,OAOuB,OAFX9Z,EALZ,iBAO6B+Z,aAAKC,MAAD,UAAW1M,KAAX,sBAA6C,CACtE0E,OAAQ,OACRiI,KAAMnH,KAAKoH,UAAUzI,aAAkB,eAAKxR,KAC5C6M,QAAS,CACP,eAAgB,mBAChBqB,cAAc,UAAD,OAAYnO,MAZnC,QAeyB,OARboO,EAPZ,iBAe+BA,EAAS+L,OAfxC,WAeYC,EAfZ,SAgBUhM,EAAS4C,QAAU,KAAOoJ,EAAW3K,SAhB/C,iBAqCQ,OAjBI2K,EAFF3K,QAlBV,EAoBY2K,EADFnN,KAAQ4gD,EAnBlB,EAmBkBA,WAnBlB,EAmB8BC,QAEhBC,EAAkB3tD,KAAcytD,GArB9C,EAyB8CrzC,aAAUuzC,EAAiBtzC,IAFnDkwC,EAvBtB,EAuBUr0C,SAAYq0C,UACZpwC,EAxBV,EAwBUA,OAEIyzC,EAAc,GACpBC,KAAK1zC,GAAQsN,SAAQ,SAACqmC,GACpB,MAGsC1zC,aAAUmwC,EAAUuD,GAASzzC,IAFrD2vC,EADd,EACE9zC,SAAY8zC,UACZ7vC,EAFF,EAEEA,OAEFyzC,EAAYE,GAAU,CACpB9D,UAAWA,EACX7vC,OAAQA,MAlCpB,UAqCc/L,aACJkM,KAAiCszC,EAAaC,KAAK1zC,GAASta,EAAQgrD,qBAtC9E,gCA8CQ,OALMppD,EAAQ,CACZ8Y,aAAcP,EAAW5K,QACzBoL,YAAaR,EAAWS,QA3ClC,UA8CcrM,aAAIkM,KAA6B7Y,IA9C/C,0DAkDkB,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GApDpB,uDA2DO,SAAUiyC,KAAV,kEACL,OADK,SACC9xC,aAAUlb,KAAmC+sD,IAD9C,wCAOP,SAAUE,GAAentD,GAAzB,8EAC8CA,EAAOM,QAA3CgrD,EADV,EACUA,mBAAoBkD,EAD9B,EAC8BA,YAC5B9C,GACE,CAAEJ,qBAAoBkD,eACtB,CACEt9C,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAkCuwC,EAAoBkD,KAEvEh9C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8BuwC,EAAoBkD,OATzE,wCAeO,SAAUpB,KAAV,kEACL,OADK,SACChyC,aAAUlb,KAAoCitD,IAD/C,wC,wBC9aMsB,GAAW,IAAIv1C,KAAOC,OAAO,aAAc,GAAI,CAAEC,YAAa,eAC9DhC,GAAa,IAAI8B,KAAOG,MAAMo1C,ICF9BzmB,GAAU,YAEV0mB,GAAe,SAACx8C,GAC3B,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQy8C,cACjBr/C,OAAQ,8BACRtP,OAAO,GAAD,OAAKkS,EAAQ08C,WAAa,OAAS,UACzC5/C,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqBo5B,GAArB,eAA2C91B,IAGvC28C,GAAiB,SAAC38C,GAC7B,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQy8C,cACjBr/C,OAAQ,8BACRtP,OAAQ,SACRgP,WAAY,mBAEP0C,EAAanD,IAAb,UAAoBy5B,GAApB,2BAA8C91B,EAAQ08C,cAGlDE,GAAkB,WAC7B,IAAMp9C,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,iB,aClBC+mB,I,aAmBOC,I,aAOPC,I,aAEOC,I,aAMPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAUOC,IA1FjB,SAAUT,GAAoB/uD,GAA9B,kFAEuB,OAFvB,kBAE6Boa,aAAK00C,IAFlC,OAQI,OANMr0C,EAFV,OAGUC,EAAaD,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAHhE,EAOQC,aAAUH,EAAYI,IAFZ1D,EALlB,EAKMT,SAAYS,WACZwD,EANN,EAMMA,OANN,SAQU/L,aAAIkM,KAAmC3D,EAAYwD,IAR7D,+BAeI,OAfJ,0BAUU1Y,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAZpB,UAeUpM,aAAIkM,KAA+B7Y,IAf7C,uDAmBO,SAAU8sD,KAAV,kEACL,OADK,SACC5zC,aAAUlb,KAAgC6uD,IAD3C,wCAOP,SAAUE,GAA2BjvD,GAArC,mGAEO,SAAUkvD,KAAV,kEACL,OADK,SACC9zC,aAAUlb,KAAwC+uD,IADnD,wCAMP,SAAUE,GAAYnvD,GAAtB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKs0C,GAAcx8C,GAHhD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAA+B00C,EAAUb,WAAY18C,EAAQw9C,OAA7D,2BACKx9C,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA2B7I,EAAQw9C,OAAnC,OAZd,uDAgBO,SAAUN,KAAV,kEACL,OADK,SACCh0C,aAAUlb,KAA4BivD,IADvC,wCAOP,SAAUE,GAAarvD,GAAvB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKs0C,GAAcx8C,GAHhD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA4B7I,EAAQ08C,WAApC,OAZd,uDAgBO,SAAUU,KAAV,kEACL,OADK,SACCl0C,aAAUlb,KAA6BmvD,IADxC,wCAOP,SAAUE,GAAevvD,GAAzB,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAKy0C,GAAgB38C,GAH/B,OAII,OAJJ,SAIUrD,aAAIkM,KAAiC7I,EAAQ08C,aAJvD,8BAMI,OANJ,mCAMU//C,aAAIkM,KAA6B7I,EAAQ08C,WAArC,OANd,sDAUO,SAAUY,KAAV,kEACL,OADK,SACCp0C,aAAUlb,KAA+BqvD,IAD1C,wC,aCrGMI,GAAkB,IAAIz2C,KAAOC,OACxC,mBACA,GACA,CAAEC,YAAa,sBAEJX,GAAmB,IAAIS,KAAOG,MAAMs2C,ICJpC3nB,GAAU,mBAEV4nB,GAAiC,SAAC19C,EAAcg2B,GAC3D,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mCACRtP,OAAQ,MACRgP,WAAY,iBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,QAAoC91B,IAGhC29C,GAA6B,SAAC39C,EAAcg2B,GACvD,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mCACRtP,OAAQkS,EAAQ49C,kBAAoB,OAAS,SAC7CrgD,KAAMyC,EAAQ69C,oBACd/gD,WAAY,mBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,SAAqC91B,IAGjC89C,GAA+B,SAAC99C,EAAcg2B,GACzD,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ69C,qBACjBzgD,OAAQ,mCACRtP,OAAQ,SACRgP,WAAY,mBAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,WAAuC91B,IAGnC+9C,GAA6B,SAAC/9C,EAAcg2B,GACvD,IAAMx2B,EAAe,IAAIjE,KACzB06B,KAAsBp2B,6BAA6BC,GAAON,GAC1D,IAAMjH,EAAOI,eAcb,OAbA6G,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ69C,qBACjBzgD,OAAQ,mCACRtP,OAAQ,SACRgP,WAAY,iBACZW,cAAelF,EAAK8E,cAAc,CAChCC,GAAI,oCAEN+B,mBAAoB9G,EAAK8E,cAAc,CACrCC,GAAI,iCAGRkC,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,SAAqC91B,I,aC9BpCg+C,I,aA4COC,I,aAOPC,I,aAiDOC,I,aAOPC,I,aA8BOC,I,aAOPC,I,aA4BOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAyBOC,IAnPXC,GAAoB,SAACC,GACzB,MAA8EA,EAAMxrD,MAAM,KAA1F,oBAAOyrD,EAAP,KAAiBj9C,EAAjB,KAAwBk9C,EAAxB,KAAqCC,EAArC,KAAyDpB,EAAzD,KACA,MAAO,CACLkB,SAAU/qD,SAAS+qD,GACnBj9C,QACAk9C,cACAC,mBAAoBxsD,OAAOorD,GAC3BA,kBAAmBprD,OAAOwsD,KAO9B,SAAUhB,GAA0BlwD,GAApC,kFAGyC,OAHzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAG+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBALJ,gBAGUC,EAHV,EAGUA,WAAYb,EAHtB,EAGsBA,eAKpBmqD,GACE,CAAEtpD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAY,IAAD,IACzCu2C,EAAI1wD,KAAcma,GACxB,OAAO,2BACFu2C,GADL,IAEEC,6BAA4B,UAAED,EAAEC,oCAAJ,aAAE,EAC1B7rD,MAAM,KACPoV,IAAIm2C,IACPO,4BAA2B,UAAEF,EAAEE,mCAAJ,aAAE,EACzB9rD,MAAM,KACPoV,IAAIm2C,SAGX,EAGIj2C,aAAUH,EAAYI,IAFZrC,EADd,EACE9B,SAAY8B,iBACZmC,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACEtC,EACAmC,EACAtU,EACAb,KAIN+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OAtC5D,wCA4CO,SAAUiuD,KAAV,kEACL,OADK,SACC/0C,aAAUlb,KAAuCgwD,IADlD,wCAOP,SAAUE,GAAiCpwD,GAA3C,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAQyC,OAFjCE,EANR,gBAQ+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAVJ,gBAQUC,EARV,EAQUA,WAAYb,EARtB,EAQsBA,eAKpBmqD,GACE,CAAEp0C,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAY,IAAD,IACzCu2C,EAAI1wD,KAAcma,GACxB,OAAO,2BACFu2C,GADL,IAEEC,6BAA4B,UAAED,EAAEC,oCAAJ,aAAE,EAC1B7rD,MAAM,KACPoV,IAAIm2C,IACPO,4BAA2B,UAAEF,EAAEE,mCAAJ,aAAE,EACzB9rD,MAAM,KACPoV,IAAIm2C,SAGX,EAGIj2C,aAAUH,EAAYI,IAFZrC,EADd,EACE9B,SAAY8B,iBACZmC,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACEtC,EACAmC,EACAtU,EACAb,KAIN+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4C7Y,OA3CnE,yCAiDO,SAAUmuD,KAAV,kEACL,OADK,SACCj1C,aAAUlb,KAA+CkwD,IAD1D,wCAOP,SAAUE,GAAmBtwD,GAA7B,wEACQ2vD,EAAkB3vD,EAAOM,QAC/BuvD,GAA2B,2BACpBF,GADmB,IACFG,kBAAmB,OACzC,CACE5+C,cAAe,SAACzC,GAAc,IAAD,IACrB0iD,EAAI1wD,KAAcgO,EAASnB,MAC3BgkD,EAAoB,2BACrBH,GADqB,IAExBC,6BAA4B,UAAED,EAAEC,oCAAJ,aAAE,EAC1B7rD,MAAM,KACPoV,IAAIm2C,IACPO,4BAA2B,UAAEF,EAAEE,mCAAJ,aAAE,EACzB9rD,MAAM,KACPoV,IAAIm2C,MAET9+C,GAAMkQ,SACJnH,KACE40C,EAAgBG,kBAChBwB,KAIN9/C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAkC40C,EAAgBG,kBAAmB5tD,OAxB5F,wCA8BO,SAAUquD,KAAV,kEACL,OADK,SACCn1C,aAAUlb,KAAoCowD,IAD/C,wCAOP,SAAUE,GAAoBxwD,GAA9B,0EAE6B,OADrB2vD,EAAkB3vD,EAAOM,QADjC,SAEmC4Z,cAAO,SAACna,GAAD,OACtC8b,IAA6B9b,EAAO4vD,EAAgBG,sBAHxD,OAEQyB,EAFR,OAKE1B,GAA2B,eACpBF,GACL,CACEz+C,cAAe,SAACzC,GAAc,IAAD,IACrB0iD,EAAI1wD,KAAcgO,EAASnB,MAC3BkkD,EAAqB,2BACtBL,GADsB,IAEzBC,6BAA4B,UAAED,EAAEC,oCAAJ,aAAE,EAC1B7rD,MAAM,KACPoV,IAAIm2C,IACPO,4BAA2B,UAAEF,EAAEE,mCAAJ,aAAE,EACzB9rD,MAAM,KACPoV,IAAIm2C,MAET9+C,GAAMkQ,SAASnH,KAAuCy2C,KAExDhgD,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAmCw2C,EAAoBrvD,OAtB9E,wCA4BO,SAAUuuD,KAAV,kEACL,OADK,SACCr1C,aAAUlb,KAAqCswD,IADhD,wCAOP,SAAUE,GAAsB1wD,GAAhC,0EAE0B,OADhB8vD,EAAsB9vD,EAAOM,QAA7BwvD,kBADV,SAEgC51C,cAAO,SAACna,GAAD,OACnC8b,IAA6B9b,EAAO+vD,MAHxC,OAEQH,EAFR,OAKEK,GAA6B,eACtBL,GACL,CACEz+C,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAwC+0C,KAEzDt+C,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAoC+0C,EAAmB5tD,OAZ9E,wCAkBO,SAAUyuD,KAAV,kEACL,OADK,SACCv1C,aAAUlb,KAAuCwwD,IADlD,wCAOP,SAAUE,GAAoB5wD,GAA9B,wEACQ2vD,EAAkB3vD,EAAOM,QAC/B2vD,GAA2B,eACpBN,GACL,CACEz+C,cAAe,SAACzC,GAAc,IAAD,IACrB0iD,EAAI1wD,KAAcgO,EAASnB,MAC3BmkD,EAAqB,2BACtBN,GADsB,IAEzBC,6BAA4B,UAAED,EAAEC,oCAAJ,aAAE,EAC1B7rD,MAAM,KACPoV,IAAIm2C,IACPO,4BAA2B,UAAEF,EAAEE,mCAAJ,aAAE,EACzB9rD,MAAM,KACPoV,IAAIm2C,MAET9+C,GAAMkQ,SAASnH,KAAoC02C,KAErDjgD,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAgC7Y,OAnBvD,wCAyBO,SAAU2uD,KAAV,kEACL,OADK,SACCz1C,aAAUlb,KAAqC0wD,IADhD,wC,wBCjQMc,GAAS,IAAIx4C,KAAOC,OAC/B,UACA,GACA,CAAEC,YAAa,SAACkf,GAAD,gBAAcA,EAAM7I,OAApB,YAA8B6I,EAAMq5B,aAExCC,GAAU,IAAI14C,KAAOG,MAAMq4C,ICJ3B1pB,GAAU,sBAEV6pB,GAAuB,SAAC3/C,GACnC,IAAMR,EAAe,IAAIjE,KAiBzB,OAhBA06B,KAAsBp2B,6BAA6BC,GAAON,GACtDQ,EAAQy/C,SACVjgD,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,OACRgP,WAAY,iBAGd0C,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,SACRgP,WAAY,iBAGT0C,EAAa9C,KAAb,UAAqBo5B,GAArB,yBAAqD91B,IAGjD4/C,GAAwB,SACnC5/C,EACAg2B,GAEA,IAAMx2B,EAAe,IAAIjE,KAkBzB,OAjBA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa3D,iBAAiBm6B,GAC1Bh2B,EAAQy/C,SACVjgD,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,OACRgP,WAAY,iBAGd0C,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,SACRgP,WAAY,iBAGT0C,EAAa9C,KAAb,UAAqBo5B,GAArB,0BAAsD91B,IAGlD6/C,GAAmB,SAAC7/C,GAC/B,IAAMR,EAAe,IAAIjE,KAiBzB,OAhBA06B,KAAsBp2B,6BAA6BC,GAAON,GACtDQ,EAAQy/C,SACVjgD,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,OACRgP,WAAY,iBAGd0C,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,SACRgP,WAAY,iBAGT0C,EAAa9C,KAAb,UAAqBo5B,GAArB,qBAAiD91B,IAG7C8/C,GAAe,SAAC9/C,GAC3B,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,SACRgP,WAAY,iBAEP0C,EAAanD,IAAb,UAAoBy5B,GAApB,yBAA4C91B,EAAQy/C,SAApD,YAAgEz/C,EAAQud,UAGpEwiC,GAA0B,WACrC,IAAMvgD,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,iCAGIkqB,GAAsB,WACjC,IAAMxgD,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,6BAGImqB,GAA2B,WACtC,IAAMzgD,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,kCAGIoqB,GAAwB,SAAClgD,GACpC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,SACR2P,cAAe9E,eAAU0E,cAAc,CAAEC,GAAI,+CAExCkC,EAAa9C,KAAb,UAAqBo5B,GAArB,0BAAsD91B,IAGlDmgD,GAAyB,SAACngD,GACrC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GACLH,OAAQ,4BACRtP,OAAQ,SACR2P,cAAe9E,eAAU0E,cAAc,CAAEC,GAAI,+CAExCkC,EAAa9C,KAAb,UAAqBo5B,GAArB,2BAAuD91B,I,wBC7GtDogD,I,aAwBOC,I,aAOPC,I,aAEOC,I,aAMPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAUOC,IAtHjB,SAAUX,GAAiBtyD,GAA3B,wFAGuB,OAHvB,SAEUyK,EAAOI,eAFjB,SAG6BuP,aAAK63C,IAHlC,OAaI,OAVMx3C,EAHV,OAIUC,EAAaD,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAGxDs4C,EAAcC,aAA4Cz4C,EAAYjQ,GAP9E,EAYQoQ,aAAUq4C,EAAap4C,IAFb82C,EAVlB,EAUMj7C,SAAYi7C,QACZh3C,EAXN,EAWMA,OAXN,UAaU/L,aAAIkM,KAAgC62C,EAASh3C,IAbvD,gCAoBI,OApBJ,0BAeU1Y,EAAQ,CACZ8Y,aAAY,4CAAE,KAAKG,kBAAP,QAAqB,GACjCF,aAAc,GAjBpB,UAoBUpM,aAAIkM,KAA4B7Y,IApB1C,uDAwBO,SAAUqwD,KAAV,kEACL,OADK,SACCn3C,aAAUlb,KAAyCoyD,IADpD,wCAOP,SAAUE,GAAwBxyD,GAAlC,mGAEO,SAAUyyD,KAAV,kEACL,OADK,SACCr3C,aAAUlb,KAAiDsyD,IAD5D,wCAMP,SAAUE,GAAU1yD,GAApB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKy3C,GAAsB3/C,GAHxD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,UAAgC00C,EAAUhgC,OAA1C,YAAoDggC,EAAUkC,UAAYz/C,EAAQw9C,OAAlF,2BACKx9C,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAAyB7I,EAAQw9C,OAAjC,OAZd,uDAgBO,SAAUiD,KAAV,kEACL,OADK,SACCv3C,aAAUlb,KAAsCwyD,IADjD,wCAOP,SAAUE,GAAW5yD,GAArB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKy3C,GAAsB3/C,GAHxD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAAA,UAA6B7I,EAAQud,OAArC,YAA+Cvd,EAAQy/C,UAAvD,OAZd,uDAgBO,SAAUkB,KAAV,kEACL,OADK,SACCz3C,aAAUlb,KAAuC0yD,IADlD,wCAOP,SAAUE,GAAY9yD,GAAtB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKg4C,GAAuBlgD,GAHzD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAAA,UAA2B7I,EAAQud,OAAnC,YAA6Cvd,EAAQy/C,UAArD,OAZd,uDAgBO,SAAUoB,KAAV,kEACL,OADK,SACC33C,aAAUlb,KAAwC4yD,IADnD,wCAOP,SAAUE,GAAahzD,GAAvB,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAK43C,GAAc9/C,GAH7B,OAII,OAJJ,SAIUrD,aAAIkM,KAAA,UAAkC7I,EAAQud,OAA1C,YAAoDvd,EAAQy/C,YAJ1E,8BAMI,OANJ,mCAMU9iD,aAAIkM,KAAA,UAA8B7I,EAAQud,OAAtC,YAAgDvd,EAAQy/C,UAAxD,OANd,sDAUO,SAAUsB,KAAV,kEACL,OADK,SACC73C,aAAUlb,KAAyC8yD,IADpD,wC,qCCzHGV,I,aAoBOC,I,aAOPC,I,aAEOC,I,aAMPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAUOC,IApHjB,SAAUX,GAAiBtyD,GAA3B,oFAEuB,OAFvB,kBAE6Boa,aAAK83C,IAFlC,OASI,OAPMz3C,EAFV,OAGUy4C,EAAcz4C,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAHjE,EAQQC,aAAUq4C,EAAap4C,IAFb82C,EANlB,EAMMj7C,SAAYi7C,QACZh3C,EAPN,EAOMA,OAPN,SASU/L,aAAIkM,KAAgC62C,EAASh3C,IATvD,+BAgBI,OAhBJ,0BAWU1Y,EAAQ,CACZ8Y,aAAY,4CAAE,KAAKG,kBAAP,QAAqB,GACjCF,aAAc,GAbpB,UAgBUpM,aAAIkM,KAA4B7Y,IAhB1C,uDAoBO,SAAUqwD,KAAV,kEACL,OADK,SACCn3C,aAAUlb,KAAqCoyD,IADhD,wCAOP,SAAUE,GAAwBxyD,GAAlC,mGAEO,SAAUyyD,KAAV,kEACL,OADK,SACCr3C,aAAUlb,KAA6CsyD,IADxD,wCAMP,SAAUE,GAAU1yD,GAApB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAK23C,GAAkB7/C,GAHpD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,UAAgC00C,EAAUhgC,OAA1C,YAAoDggC,EAAUkC,UAAYz/C,EAAQw9C,OAAlF,2BACKx9C,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAAyB7I,EAAQw9C,OAAjC,OAZd,uDAgBO,SAAUiD,KAAV,kEACL,OADK,SACCv3C,aAAUlb,KAAkCwyD,IAD7C,wCAOP,SAAUE,GAAW5yD,GAArB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAK23C,GAAkB7/C,GAHpD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAAA,UAA6B7I,EAAQud,OAArC,YAA+Cvd,EAAQy/C,UAAvD,OAZd,uDAgBO,SAAUkB,KAAV,kEACL,OADK,SACCz3C,aAAUlb,KAAmC0yD,IAD9C,wCAOP,SAAUE,GAAY9yD,GAAtB,wEACQkS,EAAUlS,EAAOM,QADzB,+BAcI,OAdJ,kCAcUuO,aAAIkM,KAAA,UAA2B7I,EAAQud,OAAnC,YAA6Cvd,EAAQy/C,UAArD,OAdd,qDAkBO,SAAUoB,KAAV,kEACL,OADK,SACC33C,aAAUlb,KAAoC4yD,IAD/C,wCAOP,SAAUE,GAAahzD,GAAvB,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAK43C,GAAc9/C,GAH7B,OAII,OAJJ,SAIUrD,aAAIkM,KAAA,UAAkC7I,EAAQud,OAA1C,YAAoDvd,EAAQy/C,YAJ1E,8BAMI,OANJ,mCAMU9iD,aAAIkM,KAAA,UAA8B7I,EAAQud,OAAtC,YAAgDvd,EAAQy/C,UAAxD,OANd,sDAUO,SAAUsB,KAAV,kEACL,OADK,SACC73C,aAAUlb,KAAqC8yD,IADhD,wC,qCChHGV,I,aAoBOC,I,aAOPC,I,aAEOC,I,aAMPC,I,aAsBOC,I,aAOPC,I,aAkBOC,I,aAOPC,I,aAiBOC,I,aAOPC,I,aAUOC,IA3HjB,SAAUX,GAAiBtyD,GAA3B,oFAEuB,OAFvB,kBAE6Boa,aAAK+3C,IAFlC,OASI,OAPM13C,EAFV,OAGUy4C,EAAcz4C,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAHjE,EAQQC,aAAUq4C,EAAap4C,IAFb82C,EANlB,EAMMj7C,SAAYi7C,QACZh3C,EAPN,EAOMA,OAPN,SASU/L,aAAIkM,KAAgC62C,EAASh3C,IATvD,+BAgBI,OAhBJ,0BAWU1Y,EAAQ,CACZ8Y,aAAY,4CAAE,KAAKG,kBAAP,QAAqB,GACjCF,aAAc,GAbpB,UAgBUpM,aAAIkM,KAA4B7Y,IAhB1C,uDAoBO,SAAUqwD,KAAV,kEACL,OADK,SACCn3C,aAAUlb,KAA0CoyD,IADrD,wCAOP,SAAUE,GAAwBxyD,GAAlC,mGAEO,SAAUyyD,KAAV,kEACL,OADK,SACCr3C,aAAUlb,KAAkDsyD,IAD7D,wCAMP,SAAUE,GAAU1yD,GAApB,8EAIuB,OAHfkS,EAAUlS,EAAOM,QADzB,kBAI6B8Z,aAAK03C,GAAuB5/C,GAJzD,OAMI,OAFMuI,EAJV,OAKUg1C,EAAYhvD,KAAcga,GALpC,SAMU5L,aACJkM,KAAA,UACK00C,EAAUhgC,OADf,YACyBggC,EAAUkC,UADnC,iBAEEz/C,QAFF,IAEEA,OAFF,EAEEA,EAASw9C,cAFX,QAEqB,GAFrB,2BAIOx9C,GACAu9C,KAZb,OAgBI,OAhBJ,UAgBU5gD,aAAIkM,QAhBd,gCAkBI,OAlBJ,oCAkBUlM,aAAIkM,KAAyB7I,EAAQw9C,OAAjC,OAlBd,uDAsBO,SAAUiD,KAAV,kEACL,OADK,SACCv3C,aAAUlb,KAAuCwyD,IADlD,wCAOP,SAAUE,GAAW5yD,GAArB,4EAIuB,OAHfkS,EAAUlS,EAAOM,QADzB,kBAI6B8Z,aAAK03C,GAAuB5/C,GAJzD,OAMI,OAFMuI,EAJV,OAKUg1C,EAAYhvD,KAAcga,GALpC,SAMU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KATX,OAYI,OAZJ,UAYU5gD,aAAIkM,QAZd,gCAcI,OAdJ,oCAcUlM,aAAIkM,KAAA,UAA6B7I,EAAQud,OAArC,YAA+Cvd,EAAQy/C,UAAvD,OAdd,uDAkBO,SAAUkB,KAAV,kEACL,OADK,SACCz3C,aAAUlb,KAAwC0yD,IADnD,wCAOP,SAAUE,GAAY9yD,GAAtB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKi4C,GAAwBngD,GAH1D,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,OAWI,OAXJ,UAWU5gD,aAAIkM,QAXd,gCAaI,OAbJ,oCAaUlM,aAAIkM,KAAA,UAA2B7I,EAAQud,OAAnC,YAA6Cvd,EAAQy/C,UAArD,OAbd,uDAiBO,SAAUoB,KAAV,kEACL,OADK,SACC33C,aAAUlb,KAAyC4yD,IADpD,wCAOP,SAAUE,GAAahzD,GAAvB,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAK43C,GAAc9/C,GAH7B,OAII,OAJJ,SAIUrD,aAAIkM,KAAA,UAAkC7I,EAAQud,OAA1C,YAAoDvd,EAAQy/C,YAJ1E,8BAMI,OANJ,mCAMU9iD,aAAIkM,KAAA,UAA8B7I,EAAQud,OAAtC,YAAgDvd,EAAQy/C,UAAxD,OANd,sDAUO,SAAUsB,KAAV,kEACL,OADK,SACC73C,aAAUlb,KAA0C8yD,IADrD,wC,wBC3IMpkB,GAAW,IAAI11B,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7D5D,GAAY,IAAI0D,KAAOG,MAAMu1B,ICD7B5G,GAAU,YAEVorB,GAAuB,SAAClhD,GACnC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQmhD,cACjB/jD,OAAQ,8BACRtP,OAAO,GAAD,OAAKkS,EAAQohD,WAAa,OAAS,UACzCtkD,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqBo5B,GAArB,cAA0C91B,IAGtCqhD,GAAyB,SAACrhD,GACrC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQmhD,cACjB/jD,OAAQ,8BACRtP,OAAQ,SACRgP,WAAY,mBAEP0C,EAAanD,IAAb,UAAoBy5B,GAApB,2BAA8C91B,EAAQohD,cAGlDE,GAAkB,WAC7B,IAAM9hD,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,gB,aChBC6G,I,aAmBOC,I,aAOP2kB,I,aAEOC,I,aAMPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAUOC,IA1FjB,SAAUnlB,GAAmB7uC,GAA7B,kFAEuB,OAFvB,kBAE6Boa,aAAKo5C,IAFlC,OAQI,OANM/4C,EAFV,OAGUC,EAAaD,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAHhE,EAOQC,aAAUH,EAAYI,IAFZtF,EALlB,EAKMmB,SAAYnB,UACZoF,EANN,EAMMA,OANN,SAQU/L,aAAIkM,KAAkCvF,EAAWoF,IAR3D,+BAeI,OAfJ,0BAUU1Y,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAZpB,UAeUpM,aAAIkM,KAA8B7Y,IAf5C,uDAmBO,SAAU4sC,KAAV,kEACL,OADK,SACC1zB,aAAUlb,KAAgC2uC,IAD3C,wCAOP,SAAU4kB,GAA0BzzD,GAApC,mGAEO,SAAU0zD,KAAV,kEACL,OADK,SACCt4C,aAAUlb,KAAwCuzD,IADnD,wCAMP,SAAUE,GAAY3zD,GAAtB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKg5C,GAAsBlhD,GAHxD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAA+B00C,EAAU6D,WAAYphD,EAAQw9C,OAA7D,2BACKx9C,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA2B7I,EAAQw9C,OAAnC,OAZd,uDAgBO,SAAUkE,KAAV,kEACL,OADK,SACCx4C,aAAUlb,KAA4ByzD,IADvC,wCAOP,SAAUE,GAAa7zD,GAAvB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAKg5C,GAAsBlhD,GAHxD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA4B7I,EAAQohD,WAApC,OAZd,uDAgBO,SAAUQ,KAAV,kEACL,OADK,SACC14C,aAAUlb,KAA6B2zD,IADxC,wCAOP,SAAUE,GAAe/zD,GAAzB,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAKm5C,GAAwBrhD,GAHvC,OAII,OAJJ,SAIUrD,aAAIkM,KAAiC7I,EAAQohD,aAJvD,8BAMI,OANJ,mCAMUzkD,aAAIkM,KAA6B7I,EAAQohD,WAArC,OANd,sDAUO,SAAUU,KAAV,kEACL,OADK,SACC54C,aAAUlb,KAA+B6zD,IAD1C,wC,wBCxGM18C,GAAc,IAAI6B,KAAOC,OAAO,eAAgB,GAAI,CAAEC,YAAa,kBACnE66C,GAAe,IAAI/6C,KAAOG,MAAMhC,ICFhC2wB,GAAU,YAEVksB,GAA0B,SAAChiD,GACtC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ++C,aACjB3hD,OAAQ,iCACRtP,OAAO,GAAD,OAAKkS,EAAQiiD,cAAgB,OAAS,UAC5CnlD,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqBo5B,GAArB,gBAA4C91B,IAGxCkiD,GAA4B,SAACliD,GACxC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ++C,aACjB3hD,OAAQ,iCACRtP,OAAQ,SACRgP,WAAY,mBAEP0C,EAAanD,IAAb,UAAoBy5B,GAApB,8BAAiD91B,EAAQiiD,iBAGrDE,GAAsB,WACjC,IAAM3iD,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,kB,aClBCssB,I,aAmBOC,I,aAOPC,I,aAEOC,I,aAMPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAUOC,IA1FjB,SAAUT,GAAsBt0D,GAAhC,kFAEuB,OAFvB,kBAE6Boa,aAAKi6C,IAFlC,OAQI,OANM55C,EAFV,OAGUC,EAAaD,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAHhE,EAOQC,aAAUH,EAAYI,IAFZm5C,EALlB,EAKMt9C,SAAYs9C,aACZr5C,EANN,EAMMA,OANN,SAQU/L,aAAIkM,KAAqCk5C,EAAcr5C,IARjE,+BAeI,OAfJ,0BAUU1Y,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAZpB,UAeUpM,aAAIkM,KAAiC7Y,IAf/C,uDAmBO,SAAUqyD,KAAV,kEACL,OADK,SACCn5C,aAAUlb,KAAkCo0D,IAD7C,wCAOP,SAAUE,GAA6Bx0D,GAAvC,mGAEO,SAAUy0D,KAAV,kEACL,OADK,SACCr5C,aAAUlb,KAA0Cs0D,IADrD,wCAMP,SAAUE,GAAe10D,GAAzB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAK85C,GAAyBhiD,GAH3D,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAkC00C,EAAU0E,cAAejiD,EAAQw9C,OAAnE,2BACKx9C,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA8B7I,EAAQw9C,OAAtC,OAZd,uDAgBO,SAAUiF,KAAV,kEACL,OADK,SACCv5C,aAAUlb,KAA+Bw0D,IAD1C,wCAOP,SAAUE,GAAgB50D,GAA1B,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAK85C,GAAyBhiD,GAH3D,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA+B7I,EAAQiiD,cAAvC,OAZd,uDAgBO,SAAUU,KAAV,kEACL,OADK,SACCz5C,aAAUlb,KAAgC00D,IAD3C,wCAOP,SAAUE,GAAkB90D,GAA5B,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAKg6C,GAA2BliD,GAH1C,OAII,OAJJ,SAIUrD,aAAIkM,KAAoC7I,EAAQiiD,gBAJ1D,8BAMI,OANJ,mCAMUtlD,aAAIkM,KAAgC7I,EAAQiiD,cAAxC,OANd,sDAUO,SAAUY,KAAV,kEACL,OADK,SACC35C,aAAUlb,KAAkC40D,IAD7C,wC,wBCrGME,GAAY,IAAI97C,KAAOC,OAAO,aAAc,GAAI,CAAEC,YAAa,gBAC/DZ,GAAa,IAAIU,KAAOG,MAAM27C,ICF9BhtB,GAAU,YAEVitB,GAAwB,SAAC/iD,GACpC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQgjD,eACjB5lD,OAAQ,+BACRtP,OAAO,GAAD,OAAKkS,EAAQijD,YAAc,OAAS,UAC1CnmD,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqBo5B,GAArB,eAA2C91B,IAGvCkjD,GAA0B,SAACljD,GACtC,IAAMR,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQgjD,eACjB5lD,OAAQ,+BACRtP,OAAQ,SACRgP,WAAY,mBAEP0C,EAAanD,IAAb,UAAoBy5B,GAApB,4BAA+C91B,EAAQijD,eAGnDE,GAAmB,WAC9B,IAAM3jD,EAAe,IAAIjE,KAGzB,OAFA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,sBAAiB4B,GACvBgC,EAAanD,IAAb,UAAoBy5B,GAApB,iB,aCfCstB,I,aAmBOC,I,aAOPC,I,aAEOC,I,aAMPC,I,aAgBOC,I,aAOPC,I,aAgBOC,I,aAOPC,I,aAUOC,IA1FjB,SAAUT,GAAoBt1D,GAA9B,kFAEuB,OAFvB,kBAE6Boa,aAAKi7C,IAFlC,OAQI,OANM56C,EAFV,OAGUC,EAAaD,EAAWE,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAHhE,EAOQC,aAAUH,EAAYI,IAFZtC,EALlB,EAKM7B,SAAY6B,WACZoC,EANN,EAMMA,OANN,SAQU/L,aAAIkM,KAAmCvC,EAAYoC,IAR7D,+BAeI,OAfJ,0BAUU1Y,EAAQ,CACZ8Y,aAAc,KAAIG,WAClBF,aAAc,GAZpB,UAeUpM,aAAIkM,KAA+B7Y,IAf7C,uDAmBO,SAAUqzD,KAAV,kEACL,OADK,SACCn6C,aAAUlb,KAAgCo1D,IAD3C,wCAOP,SAAUE,GAA2Bx1D,GAArC,mGAEO,SAAUy1D,KAAV,kEACL,OADK,SACCr6C,aAAUlb,KAAwCs1D,IADnD,wCAMP,SAAUE,GAAa11D,GAAvB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAK66C,GAAuB/iD,GAHzD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAgC00C,EAAU0F,YAAajjD,EAAQw9C,OAA/D,2BACKx9C,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA4B7I,EAAQw9C,OAApC,OAZd,uDAgBO,SAAUiG,KAAV,kEACL,OADK,SACCv6C,aAAUlb,KAA6Bw1D,IADxC,wCAOP,SAAUE,GAAc51D,GAAxB,4EAGuB,OAFfkS,EAAUlS,EAAOM,QADzB,kBAG6B8Z,aAAK66C,GAAuB/iD,GAHzD,OAKI,OAFMuI,EAHV,OAIUg1C,EAAYhvD,KAAcga,GAJpC,SAKU5L,aACJkM,KAAA,2BACK7I,GACAu9C,KARX,+BAYI,OAZJ,oCAYU5gD,aAAIkM,KAA6B7I,EAAQijD,YAArC,OAZd,uDAgBO,SAAUU,KAAV,kEACL,OADK,SACCz6C,aAAUlb,KAA8B01D,IADzC,wCAOP,SAAUE,GAAgB91D,GAA1B,wEAGI,OAFIkS,EAAUlS,EAAOM,QADzB,kBAGU8Z,aAAKg7C,GAAyBljD,GAHxC,OAII,OAJJ,SAIUrD,aAAIkM,KAAkC7I,EAAQijD,cAJxD,8BAMI,OANJ,mCAMUtmD,aAAIkM,KAA8B7I,EAAQijD,YAAtC,OANd,sDAUO,SAAUY,KAAV,kEACL,OADK,SACC36C,aAAUlb,KAAgC41D,IAD3C,wC,cCxGME,GAAW,IAAI98C,KAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DV,GAAY,IAAIQ,KAAOG,MAAM28C,ICF7BhuB,GAAU,YAmBViuB,GAA0B,SAAC/jD,EAAcg2B,GACpD,IAAMx2B,EAAe,IAAIjE,KAQzB,OAPA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRtP,OAAQ,MACRgP,WAAY,eAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,QAAoC91B,IAGhCgkD,GAAsB,SAAChkD,EAA6Bg2B,GAC/D,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRtP,OAAQkS,EAAQikD,WAAa,OAAS,SACtC1mD,KAAMyC,EAAQkkD,aACdpnD,WAAY,eAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,SAAqC91B,IAGjCmkD,GAAwB,SACnCnkD,EACAg2B,GAEA,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRtP,OAAQ,SACRyP,KAAK,GAAD,OAAKyC,EAAQkkD,cACjBpnD,WAAY,eAEd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UAAqBo5B,GAArB,WAAuC91B,I,aCtCtCokD,I,aA0BOC,I,aAQPC,I,aAgCOC,I,aAOPC,I,aAoBOC,I,aAQPC,I,aAmBOC,I,aAOPC,I,aAgBOC,IA/IjB,SAAUT,GAAmBt2D,GAA7B,kFAEyC,OAFzC,EACiFA,EAAOM,QAAlE8F,EADtB,EACUE,WAA8CD,EADxD,EACwCZ,eADxC,SAE+CyU,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBAJJ,gBAEUC,EAFV,EAEUA,WAAYb,EAFtB,EAEsBA,eAIpBwwD,GACE,CAAE3vD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZpC,EADd,EACE/B,SAAY+B,UACZkC,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAkCrC,EAAWkC,EAAQtU,EAAYb,KAGrE+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA8B7Y,OApBrD,wCA0BO,SAAUq0D,KAAV,kEACL,OADK,SACCn7C,aAAUlb,KAA+Bo2D,IAD1C,wCAQP,SAAUE,GAA0Bx2D,GAApC,sFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OADjCE,EANR,gBAO+CrB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBwwD,GACE,CAAEz6C,cAAeD,EAAMjV,aAAYb,kBACnC,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZpC,EADd,EACE/B,SAAY+B,UACZkC,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KAAyCrC,EAAWkC,EAAQtU,EAAYb,KAG5E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAqC7Y,OA1B5D,yCAgCO,SAAUu0D,KAAV,kEACL,OADK,SACCr7C,aAAUlb,KAAuCs2D,IADlD,wCAOP,SAAUE,GAAY12D,GAAtB,wEACQg2D,EAAWh2D,EAAOM,QACxB41D,GAAoB,2BAEbF,GAFY,IAGfG,WAAY,OAEd,CACEjlD,cAAe,SAACzC,GACd,IAAMuoD,EAAgBv2D,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,KAAK,IACnD1M,QAAQC,IAAI,gBAAiBm2D,GAC7BhlD,GAAMkQ,SAASnH,KAA+Bi7C,EAASG,WAAYa,KAErExlD,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA2Bi7C,EAASG,WAAYj0D,OAdvE,wCAoBO,SAAUy0D,KAAV,kEACL,OADK,SACCv7C,aAAUlb,KAA6Bw2D,IADxC,wCAQP,SAAUE,GAAa52D,GAAvB,0EAEsB,OADdg2D,EAAWh2D,EAAOM,QAD1B,SAE4B4Z,cAAO,SAACna,GAAD,OAAW8b,IAAsB9b,EAAOi2D,EAASG,eAFpF,OAEQc,EAFR,OAGEf,GAAoB,eAEbF,GAEL,CACE9kD,cAAe,SAACzC,GACd,IAAMyoD,EAAiBz2D,KAAa,OAACgO,QAAD,IAACA,OAAD,EAACA,EAAUnB,KAAK,IACpD0E,GAAMkQ,SAASnH,KAAgCm8C,KAEjD1lD,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA4Bk8C,EAAa/0D,OAbhE,wCAmBO,SAAU20D,KAAV,kEACL,OADK,SACCz7C,aAAUlb,KAA8B02D,IADzC,wCAOP,SAAUE,GAAe92D,GAAzB,0EAEmB,OADTm2D,EAAen2D,EAAOM,QAAtB61D,WADV,SAEyBj8C,cAAO,SAACna,GAAD,OAAW8b,IAAsB9b,EAAOo2D,MAFxE,OAEQH,EAFR,OAGEK,GAAsB,eACfL,GACL,CACE9kD,cAAe,SAACzC,GACduD,GAAMkQ,SAASnH,KAAiCo7C,KAElD3kD,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6Bo7C,EAAYj0D,OAVhE,wCAgBO,SAAU60D,KAAV,kEACL,OADK,SACC37C,aAAUlb,KAAgC42D,IAD3C,wCCjKA,IAAMK,GAAc,IAAIj+C,KAAOC,OAAO,eAAgB,GAAI,CAAEC,YAAa,eACnEg+C,GAAe,IAAIl+C,KAAOG,MAAM89C,ICShCE,GAA4B,SAACnlD,EAA6Bg2B,GACrE,IAAMx2B,EAAe,IAAIjE,KASzB,OARA06B,KAAsBp2B,6BAA6BC,GAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRtP,OAAQ,MACRgP,WAAY,eAGd0C,EAAa3D,iBAAiBm6B,GACvBx2B,EAAa9C,KAAb,UApBc,YAoBd,2BAAuDsD,I,aCZtDolD,I,aAgCOC,IAhCjB,SAAUD,GAAkCt3D,GAA5C,kFAMyC,OANzC,EAKMA,EAAOM,QAHG8F,EAFhB,EAEIE,WACgBD,EAHpB,EAGIZ,eAHJ,EAIIgxB,OAJJ,SAM+Cvc,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBARJ,gBAMUC,EANV,EAMUA,WAAYb,EANtB,EAMsBA,eAKpB4xD,GACE,CAAE/wD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/Dha,QAAQC,IAAI,uCAAwC6Z,GACpD,MAGIG,aAAUH,EAAYI,IAFZ08C,EADd,EACE7gD,SAAY6gD,aACZ58C,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,GAAoCy8C,EAAc58C,EAAQtU,EAAYb,KAG1E+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,GAAgC7Y,OA1BvD,wCAgCO,SAAUq1D,KAAV,kEACL,OADK,SACCn8C,aACJlb,KACAo3D,IAHG,wCCzCA,IAAMG,GAAmB,IAAIv+C,KAAOC,OACzC,oBACA,GACA,CAAEC,YAAa,mBAEJT,GAAoB,IAAIO,KAAOG,MAAMo+C,I,iCCcxCC,I,aA6BOC,I,aAOPC,I,aAqCOC,I,aAOPC,I,aAyBOC,IAzGjB,SAAUL,GAA2B13D,GAArC,8EACyCA,EAAOM,QAAtCgG,EADV,EACUA,WAAYb,EADtB,EACsBA,eAMpB7E,QAAQC,IAAI,aAAcyF,GAC1B1F,QAAQC,IAAI,iBAAkB4E,GAC1Ba,GAAcb,GAChBuyD,aACE,CAAE1xD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZnC,EADd,EACEhC,SAAYgC,kBACZiC,EAFF,EAEEA,OAEF5I,GAAMkQ,SAASnH,KAA0CpC,EAAmBiC,KAE9EpJ,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAsC7Y,OAtB/D,wCA6BO,SAAUy1D,KAAV,kEACL,OADK,SACCv8C,aAAUlb,KAAwCw3D,IADnD,wCAOP,SAAUE,GAAkC53D,GAA5C,oFAMe,OANf,EAKMA,EAAOM,QAHT+a,EAFJ,EAEIA,aACYjV,EAHhB,EAGIE,WACgBD,EAJpB,EAIIZ,eAJJ,SAMqByU,aAAOoB,IAA2CD,GANvE,OAOyC,OAPzC,gBAO+CnB,aAAOC,gCAA4C,CAC9F/T,mBACAC,yBATJ,gBAOUC,EAPV,EAOUA,WAAYb,EAPtB,EAOsBA,eAKpBwyD,aACE,CAAE3xD,aAAYb,kBACd,CACEyL,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MAC/D,EAGIC,aAAUH,EAAYI,IAFZnC,EADd,EACEhC,SAAYgC,kBACZiC,EAFF,EAEEA,OAEF5I,GAAMkQ,SACJnH,KACEpC,EACAiC,EACAtU,EACAb,KAIN+L,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAA6C7Y,OA/BpE,yCAqCO,SAAU21D,KAAV,kEACL,OADK,SACCz8C,aACJlb,KACA03D,IAHG,wCAOP,SAAUE,GAA4B93D,GAAtC,wEACQk4D,EAAkBl4D,EAAOM,QAE/B63D,aACE,CAAED,gBAAiBA,EAAgB9c,KAAK,MACxC,CACElqC,cAAe,SAACzC,GACd,IAAMiM,EAAajM,EAASnB,KAAKqN,KAAI,SAACC,GAAD,OAAYna,KAAcma,MACzDw9C,EAAY19C,EAAWC,KAAI,SAACC,GAAD,OAAYA,EAAOy9C,kBACpDz3D,QAAQC,IAAI,YAAau3D,GACzBx3D,QAAQC,IAAI,aAAc6Z,GAC1B1I,GAAMkQ,SACJnH,KACEL,EACAA,EAAWC,KAAI,SAACC,GAAD,OAAYA,EAAOy9C,qBAIxC7mD,YAAa,SAACtP,GACZ8P,GAAMkQ,SAASnH,KAAoCm9C,OAnB3D,wCAyBO,SAAUH,KAAV,kEACL,OADK,SACC38C,aAAUlb,KAAsC43D,IADjD,wC,iBCyVGQ,IAAV,SAAUA,KAAV,kEACE,OADF,SACQr6C,aAAI,CAERs6C,aAAKxjC,IACLwjC,aAAKtjC,IACLsjC,aAAKpjC,IAGLojC,aAAKhjC,IACLgjC,aAAK9iC,IAGL8iC,aAAK5iC,IACL4iC,aAAKxiC,IACLwiC,aAAKtiC,IACLsiC,aAAKljC,IACLkjC,aAAK1iC,IACL0iC,aAAKpiC,IACLoiC,aAAKliC,IACLkiC,aAAKhiC,IAGLgiC,aAAK56C,IACL46C,aAAK16C,IAGL06C,aAAK9zC,IACL8zC,aAAK5zC,IACL4zC,aAAK1zC,IACL0zC,aAAKxzC,IACLwzC,aAAKpzC,IACLozC,aAAKtzC,IAGLszC,aAAKryC,IACLqyC,aAAKnyC,IACLmyC,aAAKjyC,IACLiyC,aAAK/xC,IACL+xC,aAAK3xC,IACL2xC,aAAKzxC,IACLyxC,aAAKvxC,IACLuxC,aAAK7xC,IACL6xC,aAAKrxC,IACLqxC,aAAKnxC,IACLmxC,aAAKjxC,IACLixC,aAAK/wC,IAGL+wC,aAAKn8C,IACLm8C,aAAKj8C,IACLi8C,aAAK/7C,IACL+7C,aAAK77C,IACL67C,aAAK37C,IAGL27C,aAAK9sC,IACL8sC,aAAK5sC,IACL4sC,aAAK1sC,IACL0sC,aAAKxsC,IACLwsC,aAAKtsC,IAGLssC,aAAKprC,IACLorC,aAAKlrC,IACLkrC,aAAKhrC,IACLgrC,aAAK9qC,IACL8qC,aAAKtqC,IACLsqC,aAAKpqC,IACLoqC,aAAKhqC,IACLgqC,aAAK5qC,IACL4qC,aAAKxqC,IACLwqC,aAAK9pC,IACL8pC,aAAKlqC,IACLkqC,aAAK5pC,IACL4pC,aAAKtpC,IACLspC,aAAKxpC,IACLwpC,aAAK1pC,IAEL0pC,aAAKppC,IACLopC,aAAKlpC,IACLkpC,aAAK1qC,IAGL0qC,aAAKh4C,IACLg4C,aAAK93C,IACL83C,aAAK53C,IACL43C,aAAK13C,IACL03C,aAAKx3C,IACLw3C,aAAKt3C,IACLs3C,aAAKl3C,IACLk3C,aAAKj3C,IACLi3C,aAAKh3C,IACLg3C,aAAK92C,IACL82C,aAAK52C,IAGL42C,aAAKphB,IACLohB,aAAKlhB,IACLkhB,aAAKhhB,IACLghB,aAAK9gB,IACL8gB,aAAK5gB,IACL4gB,aAAK1gB,IACL0gB,aAAKxgB,IAGLwgB,aAAKzf,IACLyf,aAAKvf,IACLuf,aAAKrf,IACLqf,aAAKnf,IACLmf,aAAK7e,IACL6e,aAAKhf,IACLgf,aAAK/e,IACL+e,aAAK3e,IACL2e,aAAKze,IAGLye,aAAK7c,IACL6c,aAAKlY,IACLkY,aAAKzc,IACLyc,aAAKvc,IACLuc,aAAK3c,IACL2c,aAAKnb,IACLmb,aAAKrb,IACLqb,aAAKvb,IACLub,aAAK3b,IACL2b,aAAKzb,IACLyb,aAAK/b,IACL+b,aAAK7b,IACL6b,aAAKnc,IACLmc,aAAKrc,IACLqc,aAAKjc,IACLic,aAAKjZ,IACLiZ,aAAK/Y,IACL+Y,aAAK3Y,IACL2Y,aAAKjb,IAGLib,aAAK/X,IACL+X,aAAK7X,IACL6X,aAAK3X,IACL2X,aAAKrX,IACLqX,aAAK/W,IACL+W,aAAK7W,IACL6W,aAAK3W,IACL2W,aAAKzW,IACLyW,aAAKzX,IACLyX,aAAKvX,IACLuX,aAAKnX,IACLmX,aAAKjX,IACLiX,aAAKvW,IAGLuW,aAAK/U,IACL+U,aAAK7U,IACL6U,aAAK3U,IACL2U,aAAKvU,IACLuU,aAAK3T,IACL2T,aAAK/T,IACL+T,aAAKjU,IACLiU,aAAK7T,IACL6T,aAAKrU,IACLqU,aAAKnU,IACLmU,aAAKzU,IAGLyU,aAAKvS,IACLuS,aAAKrS,IACLqS,aAAKnS,IACLmS,aAAKjS,IACLiS,aAAK/R,IAGL+R,aAAKtR,IACLsR,aAAKpR,IACLoR,aAAKlR,IACLkR,aAAKhR,IACLgR,aAAK9Q,IAGL8Q,aAAKrQ,IACLqQ,aAAKnQ,IACLmQ,aAAKjQ,IACLiQ,aAAK/P,IACL+P,aAAK7P,IAGL6P,aAAK5O,IACL4O,aAAK1O,IACL0O,aAAKxO,IACLwO,aAAKtO,IACLsO,aAAKpO,IAGLoO,aAAKvJ,IACLuJ,aAAKrJ,IACLqJ,aAAKnJ,IACLmJ,aAAKjJ,IACLiJ,aAAK/I,IAGL+I,aAAKpI,IACLoI,aAAKlI,IACLkI,aAAKhI,IACLgI,aAAK9H,IACL8H,aAAK5H,IACL4H,aAAK1H,IAGL0H,aAAKhG,IACLgG,aAAK9F,IACL8F,aAAK5F,IACL4F,aAAK1F,IACL0F,aAAKtF,IACLsF,aAAKxF,IAGLwF,aAAKC,IACLD,aAAKE,IACLF,aAAKG,IACLH,aAAKI,IACLJ,aAAKK,IACLL,aAAKM,IAGLN,aAAKO,IACLP,aAAKQ,IACLR,aAAKS,IACLT,aAAKU,IACLV,aAAKW,IACLX,aAAKY,IAGLZ,aAAKa,IACLb,aAAK7E,IACL6E,aAAK3E,IACL2E,aAAKzE,IACLyE,aAAKvE,IAGLuE,aAAKhD,IACLgD,aAAK9C,IACL8C,aAAK5C,IACL4C,aAAK1C,IACL0C,aAAKxC,IAGLwC,aAAKhE,IACLgE,aAAK9D,IACL8D,aAAK5D,IACL4D,aAAK1D,IACL0D,aAAKxD,IAGLwD,aAAK5/B,IACL4/B,aAAKx/B,IACLw/B,aAAKt/B,IACLs/B,aAAK1/B,IACL0/B,aAAKp/B,IACLo/B,aAAKl/B,IACLk/B,aAAKh/B,IAGLg/B,aAAKp8B,IAGLo8B,aAAK34B,IACL24B,aAAKr4B,IACLq4B,aAAKz4B,IACLy4B,aAAKv4B,IAGLu4B,aAAKh8B,IACLg8B,aAAK97B,IACL87B,aAAK57B,IACL47B,aAAK17B,IAGL07B,aAAK35B,IACL25B,aAAKz5B,IACLy5B,aAAKv5B,IACLu5B,aAAKr5B,IAGLq5B,aAAKn3B,IAGLm3B,aAAK9kC,IACL8kC,aAAK5kC,IACL4kC,aAAK1kC,IACL0kC,aAAKxkC,IACLwkC,aAAKlkC,IACLkkC,aAAKpkC,IACLokC,aAAKtkC,IAGLskC,aAAKhuC,IACLguC,aAAK9tC,IACL8tC,aAAK5tC,IACL4tC,aAAKxtC,IACLwtC,aAAK1tC,IAGL0tC,aAAKh/C,IACLg/C,aAAK9+C,IACL8+C,aAAK5+C,IACL4+C,aAAK1+C,IACL0+C,aAAKt+C,IACLs+C,aAAKx+C,IAGLw+C,aAAKt1C,IACLs1C,aAAKp1C,IACLo1C,aAAKl1C,IACLk1C,aAAKh1C,IACLg1C,aAAK50C,IACL40C,aAAK90C,IAGL80C,aAAKjqB,IAGLiqB,aAAKv0B,IACLu0B,aAAKr0B,IACLq0B,aAAKn0B,IACLm0B,aAAKj0B,IACLi0B,aAAK/zB,IACL+zB,aAAK7zB,IACL6zB,aAAK3zB,IACL2zB,aAAKzzB,IACLyzB,aAAKvzB,IACLuzB,aAAKrzB,IAGLqzB,aAAKptB,IACLotB,aAAKltB,IACLktB,aAAKhtB,IACLgtB,aAAK9sB,IACL8sB,aAAK5sB,IACL4sB,aAAK1sB,IACL0sB,aAAKxsB,IAGLwsB,aAAKnvB,IACLmvB,aAAKjvB,IACLivB,aAAK/uB,IAGL+uB,aAAKlwB,IACLkwB,aAAKjwB,IACLiwB,aAAKhwB,IAGLgwB,aAAK1xB,IACL0xB,aAAKxxB,IACLwxB,aAAKtxB,IACLsxB,aAAKpxB,IAGLoxB,aAAKnrB,IACLmrB,aAAKjrB,IAGLirB,aAAK3rB,IAGL2rB,aAAKpqB,IAGLoqB,aAAK1qB,IAGL0qB,aAAKp9B,IACLo9B,aAAKl9B,IACLk9B,aAAKh9B,IACLg9B,aAAK98B,IAGL88B,aAAK52B,IACL42B,aAAK12B,IACL02B,aAAKx2B,IACLw2B,aAAKt2B,IACLs2B,aAAKp2B,IACLo2B,aAAKl2B,IACLk2B,aAAKh2B,IACLg2B,aAAK91B,IACL81B,aAAK51B,IACL41B,aAAK11B,IAGL01B,aAAK9pB,IACL8pB,aAAK1nB,IACL0nB,aAAK5pB,IACL4pB,aAAKzpB,IACLypB,aAAKvnB,IACLunB,aAAKhoB,IAGLgoB,aAAKpnB,IACLonB,aAAKlnB,IACLknB,aAAKhnB,IACLgnB,aAAK9mB,IACL8mB,aAAK5mB,IACL4mB,aAAK1mB,IAGL0mB,aAAKtpB,IAGLspB,aAAK7lB,IACL6lB,aAAK3lB,IACL2lB,aAAKzlB,IACLylB,aAAKvlB,IACLulB,aAAKplB,IACLolB,aAAKnpB,IACLmpB,aAAKhpB,IACLgpB,aAAK5oB,IACL4oB,aAAKzoB,IACLyoB,aAAKrlB,IAGLqlB,aAAKxkB,IACLwkB,aAAKtkB,IACLskB,aAAKlkB,IACLkkB,aAAK9jB,IACL8jB,aAAKpkB,IACLokB,aAAKhkB,IACLgkB,aAAK5jB,IAGL4jB,aAAK9iB,IACL8iB,aAAK5iB,IACL4iB,aAAKtoB,IACLsoB,aAAKnoB,IACLmoB,aAAKriB,IACLqiB,aAAK1iB,IACL0iB,aAAKxiB,IACLwiB,aAAKtiB,IACLsiB,aAAKniB,IACLmiB,aAAKjiB,IAGLiiB,aAAK3M,IACL2M,aAAKzM,IACLyM,aAAKrM,IACLqM,aAAKnM,IACLmM,aAAKjM,IACLiM,aAAK/L,IACL+L,aAAK7L,IACL6L,aAAK3L,IACL2L,aAAKzL,IACLyL,aAAKvL,IACLuL,aAAKnL,IACLmL,aAAKrL,IACLqL,aAAKvM,IAGLuM,aAAKhC,IACLgC,aAAK9B,IACL8B,aAAK5B,IACL4B,aAAK1B,IACL0B,aAAKxB,IAGLwB,aAAKZ,IACLY,aAAKV,IACLU,aAAKR,IAGLQ,aAAKhB,MApdT,wCAwdee,UCx6BTe,GAAiBC,cACjBC,GAAgB,CACpB92D,IAAK,OACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CACT,OACA,WACA,YACA,SACA,YACA,UACA,YACA,cACA,SACA,YACA,aACA,SAMF02D,QAAS,MAGLC,GAAmB12D,YAAew2D,GAAepjD,IAEnDujD,GAAmBC,IAGvBD,GACG1mD,OAAO4mD,sCACN5mD,OAAO4mD,qCAAqC,CAC1CC,OAAO,EACPC,WAAY,MAEhBH,IAGF,IAAMI,GAAUV,GAAeW,IACzBC,GAAiBC,YAAwB,CAC7CC,cAAehkD,GACf4jD,aAII/nD,GAAQooD,YACZX,GACAC,GAAiBW,YAAgBhB,IAAiBY,KAG9CK,GAAYC,YAAavoD,IAE/BqnD,GAAeW,IAAI1B,K,6BC9DnB,69EAAO,IAAMkC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAoB,oBAEpBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAC9BC,EAAkC,kCAElCC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAA6B,6BAE7BC,EAAmB,mBACnBC,EAAqB,qBACrBC,EAAkB,kBAElBC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAgB,gBAChBC,EAAqB,qBACrBC,EAAkB,kBAClBC,EAAuB,uBAEvBC,EAAmB,mBACnBC,EAAwB,wBACxBC,EAAmB,mBACnBC,EAAwB,wBAExBC,EAAsB,IACtBC,EAA4B,KAC5BC,EAAsC,IACtCC,EAAkB,EAClBC,EAAiC,KAEjCC,EAAiB,iBAEjBC,EAAuB,uBACvBC,GAAyB,yBACzBC,GAAsB,sBAEtBC,GAA8B,8BAC9BC,GAAgC,gCAEhCC,GAAiC,iCACjCC,GAAmC,mCACnCC,GAAgC,gCAEhCC,GAAwB,wBASxBC,GAA8B,8BAC9BC,GAAgC,gCAChCC,GAA6B,6BAE7BC,GAA4B,4BAC5BC,GAA8B,8BAC9BC,GAA2B,2BAE3BC,GAA6B,iCAC7BC,GAA+B,mCAC/BC,GAA4B,gCAE5BC,GAA0B,0BAC1BC,GAA4B,4BAC5BC,GAAyB,yBAEzBC,GACX,8CACWC,GACX,iD,ioEClGWC,EAAqB,SAAC,GAA+B,IAA7BnvD,EAA4B,EAA5BA,QAA4B,IAAnBK,aAAmB,MAAX,IAAW,EAC/DJ,IAAKC,KAAK,CACRG,MAAOA,EACPF,KAAM,UACNC,KAAK,GAAD,OAAKJ,GACTM,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPkuD,EAA0B,SAAC,GAUjC,IAAD,IATJnrD,aASI,MATI,GASJ,EARJlE,EAQI,EARJA,QAQI,IAPJsvD,mBAOI,MAPU,GAOV,EANJn/D,EAMI,EANJA,OAMI,IALJ+Q,iBAKI,MALQ,UAKR,MAJJquD,iBAII,MAJQ,aAIR,MAHJC,0BAGI,MAHiB,8BAGjB,MAFJC,wBAEI,aADJC,aACI,MADI,IACJ,EACJxvD,IAAKC,KAAK,CACRC,KAAM,UACN8D,MAAOA,EACP7D,KAAML,EACNQ,mBAAmB,EACnBkvD,MAAOA,EACPD,mBACA1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAewuD,GAEjBtuD,YACAC,gBAAgB,EAChByuD,kBAAmBN,GAAet0D,cAAU0E,cAAc,CAAEC,GAAI,mBAChEkwD,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,kBAChDmwD,cAAc,EACdC,aAAa,IACZC,MAAK,SAACjlD,GACHA,EAAOklD,YACT9/D,IAEAo/D,QAaOW,EAAsC,SACjDC,GAEA,IAAQjsD,EAAyEisD,EAAzEjsD,MAAOlE,EAAkEmwD,EAAlEnwD,QAASsvD,EAAyDa,EAAzDb,YAAac,EAA4CD,EAA5CC,WAAYjgE,EAAgCggE,EAAhChgE,OAAQu/D,EAAwBS,EAAxBT,MAAOW,EAAiBF,EAAjBE,aAChEnwD,IAAKC,KAAK,CACRC,KAAM,UACN8D,MAAOA,EACP7D,KAAML,EACNQ,mBAAmB,EACnBkvD,MAAOA,GAAS,IAChBD,kBAAkB,EAClB1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAe,+BAEjBE,UAAW,UACXC,gBAAgB,EAChByuD,kBAAmBN,EACnBO,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,kBAChDmwD,cAAc,EACdC,aAAa,EACbO,MAAO,WACPC,WAAYF,GAAgB,EAC5BG,iBAAkBJ,IACjBJ,MAAK,SAACjlD,GACHA,EAAOklD,aACT9/D,EAAO4a,EAAO0d,WAKPgoC,EAA+B,SAAC,GAStC,IAAD,IARJvsD,aAQI,MARI,GAQJ,EAPJlE,EAOI,EAPJA,QAOI,IANJsvD,mBAMI,MANU,GAMV,MALJpuD,iBAKI,MALQ,GAKR,EAJJ/Q,EAII,EAJJA,OAII,IAHJmQ,aAGI,MAHI,EAGJ,MAFJovD,aAEI,MAFI,IAEJ,MADJD,wBACI,SACJvvD,IAAKC,KAAK,CACRC,KAAM,UACN8D,MAAOA,EACP7D,KAAML,EACNS,SAAU,UACVH,MAAiB,IAAVA,OAAcT,EAAYS,EACjCC,iBAA4B,IAAVD,EAClBK,QAPQ,SAOAD,GACQ,IAAVJ,IACFI,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,eAG9CJ,OAAO,EACPF,mBAAmB,EACnBkvD,MAAOA,EACPD,mBACA1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAe,gCAEjBE,UAAWA,GAAa,UACxBC,gBAAgB,EAChByuD,kBAAmBN,GAAet0D,cAAU0E,cAAc,CAAEC,GAAI,mBAChEkwD,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,oBAC/CqwD,MAAK,SAACjlD,GACHA,EAAOklD,aACT9/D,QAYOugE,EAA4B,SAAC,GAKH,IAJrCr+D,EAIoC,EAJpCA,MAIoC,IAHpCiO,aAGoC,WAH5BT,EAG4B,MAFpCqE,aAEoC,MAF5B,QAE4B,MADpC9D,YACoC,MAD7B,QAC6B,EAC9BJ,EACK,MAAT3N,EAAgB2I,cAAU0E,cAAc,CAAEC,GAAI,uBAA0BtN,EAAM8Y,aAChFjL,IAAKC,KAAK,CACRC,KAAMA,EACNc,UAAW,UACXgD,MAAOA,EACP7D,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPE,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,KAIPwvD,EAAkC,WAC7C,IAAM3wD,EAAUhF,cAAU0E,cAAc,CAAEC,GAAI,8BAC9CO,IAAKC,KAAK,CACRC,KAAM,UACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTQ,mBAAmB,EACnBowD,mBAAmB,EACnB7vD,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,KAIP0vD,EAAoB,SAAC,GAAsB,IAAD,IAAnBvwD,aAAmB,MAAX,IAAW,EAC/CN,EAAUhF,cAAU0E,cAAc,CAAEC,GAAI,0BAC9CO,IAAKC,KAAK,CACR+D,MAAM,GAAD,OAAKlE,GACVM,MAAOA,EACPK,QAAS,WACPT,IAAK4wD,kBAKEC,EAAiC,SAAC,GAA6B,IAA3B1+D,EAA0B,EAA1BA,MAA0B,IAAnBiO,aAAmB,MAAX,IAAW,EACnEN,EACK,MAAT3N,EAAgB2I,cAAU0E,cAAc,CAAEC,GAAI,uBAA0BtN,EAAM8Y,aAChFjL,IAAKC,KAAK,CACRG,MAAOA,EACPF,KAAM,QACNC,KAAK,GAAD,OAAKL,GACTO,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAUP6vD,EAAwB,SAAC,GAA0D,IAAxD3+D,EAAuD,EAAvDA,MAAuD,IAAhDiO,aAAgD,WAAxCT,EAAwC,MAA7BqE,aAA6B,MAArB,GAAqB,EACvFlE,EACK,MAAT3N,EAAgB2I,cAAU0E,cAAc,CAAEC,GAAI,uBAA0BtN,EAAM8Y,aAChFjL,IAAKC,KAAK,CACRC,KAAM,UACNc,UAAW,UACXgD,MAAOA,EACP7D,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPE,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,KAOP8vD,EAA4B,SAAC,GAMnC,IALLxxD,EAKI,EALJA,OAKI,IAJJG,YAII,MAJG,GAIH,MAHJK,eAGI,MAHM,KAGN,MAFJK,aAEI,MAFI,IAEJ,MADJ2Z,QAEMla,EACM,MAAVN,OAFE,SAII,kCACA,+BACF,wBACAO,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIP+vD,EAA2B,SAAC,GAMlC,IALLzxD,EAKI,EALJA,OAKI,IAJJG,YAII,MAJG,GAIH,MAHJK,eAGI,MAHM,KAGN,MAFJK,aAEI,MAFI,IAEJ,MADJ2Z,QAEMla,EACM,MAAVN,OAFE,SAII,iCACA,8BACF,wBACAO,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPgwD,EAAmC,SAAC,GAO1C,IANL1xD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJK,aAGI,MAHI,IAGJ,MAFJ2Z,eAEI,aADJq7B,QAEMv1C,EACQ,UAFV,MADM,EACN,GAGY,MAAVN,EACEwa,EACE,mCACA,gCACF,wBACQ,MAAVxa,EACAwa,EACE,iCACA,8BACF,wBACAja,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPiwD,EAAmC,SAAC,GAO1C,IANL3xD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJK,aAGI,MAHI,IAGJ,MAFJ2Z,eAEI,aADJs7B,OAEMx1C,EACO,UAFT,MADK,EACL,GAGY,MAAVN,EACEwa,EACE,mCACA,gCACF,wBACQ,MAAVxa,EACAwa,EACE,iCACA,8BACF,wBACAja,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPkwD,EAA8B,SAAC,GAMrC,IALL5xD,EAKI,EALJA,OAKI,IAJJG,YAII,MAJG,GAIH,MAHJK,eAGI,MAHM,KAGN,MAFJK,aAEI,MAFI,IAEJ,MADJ2Z,QAEMla,EACM,MAAVN,OAFE,SAII,oCACA,iCACF,wBACAO,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPmwD,EAA6C,SAAC,GAIpD,IAAD,IAHJ1xD,YAGI,MAHG,GAGH,MAFJK,eAEI,MAFM,KAEN,MADJK,aACI,MADI,IACJ,EAEEN,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GALQ,0CAOV,CAAEC,SAEJK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPowD,EAA6B,SAAC,GAOpC,IANL9xD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJK,aAGI,MAHI,IAGJ,MAFJ2Z,eAEI,aADJ6I,cACI,SACE/iB,EACM,MAAVN,EACIwa,IAAY6I,EACV,mCACA7I,GAAW6I,EACX,qCACC7I,GAAW6I,EACZ,iCACA,gCACF,wBACA9iB,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPqwD,EAA+B,SAAC,GAMtC,IALL/xD,EAKI,EALJA,OAKI,KAJJG,KAII,EAHJK,gBAGI,MAHM,KAGN,MAFJK,aAEI,MAFI,IAEJ,MADJ2Z,QAEMla,EACM,MAAVN,OAFE,SAII,qCACA,kCACF,wBACAO,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,WAEJQ,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPswD,EAA4B,SAAC,GAOnC,IANLhyD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJ2iB,gBAGI,aAFJtiB,aAEI,MAFI,IAEJ,MADJ2Z,eACI,SACEla,EACM,MAAVN,EACKmjB,EAIC3I,EACA,0CACA,uCALAA,EACE,kCACA,+BAIJ,wBACAja,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPuwD,EAAqC,SAAC,GAO5C,IANLjyD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJ2iB,gBAGI,aAFJtiB,aAEI,MAFI,IAEJ,MADJ2Z,eACI,SACEla,EACM,MAAVN,EACKmjB,EAIC3I,EACA,mDACA,gDALAA,EACE,2CACA,wCAIJ,wBACAja,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPwwD,EAAiC,SAAC,GAOxC,IANLlyD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJ2iB,gBAGI,aAFJtiB,aAEI,MAFI,IAEJ,MADJ2Z,eACI,SACEla,EACM,MAAVN,EACKmjB,EAIC3I,EACA,+CACA,4CALAA,EACE,uCACA,oCAIJ,wBACAja,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIPywD,EAA6B,SAAC,GAOpC,IANLnyD,EAMI,EANJA,OAMI,IALJG,YAKI,MALG,GAKH,MAJJK,eAII,MAJM,KAIN,MAHJ2iB,gBAGI,aAFJtiB,aAEI,MAFI,IAEJ,MADJ2Z,eACI,SACEla,EACM,MAAVN,EACKmjB,EAIC3I,EACA,2CACA,wCALAA,EACE,mCACA,gCAIJ,wBACAja,EACO,MAAXC,EACIjF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZK,EACNC,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAIP0wD,EAAuC,SAAC,GAAsB,IAAD,IAAnBvxD,aAAmB,MAAX,IAAW,EAClEN,EAAUhF,cAAU0E,cAAc,CACtCC,GAAI,4CAENO,IAAKC,KAAK,CACRC,KAAM,UACNC,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPC,QARQ,SAQAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,cAE5CC,YAAa,CACXC,cAAe,kBACfC,QAAS,aAGXC,UAAW,UACXC,gBAAgB,KAOP2wD,EAAyB,SAAC,GAAqD,IAAnDryD,EAAkD,EAAlDA,OAAkD,IAA1CG,YAA0C,MAAnC,GAAmC,EAA/BvN,EAA+B,EAA/BA,MAA+B,IAAxBiO,aAAwB,WAAhBT,EAAgB,EACnFE,EAAsB,MAAVN,EAAiB,4BAA8B,qBAC3DO,EACK,MAAT3N,EACI2I,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZvN,EAAM2N,QACZE,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,KAIP4wD,EAAwB,SAAC,GAAqD,IAAnDtyD,EAAkD,EAAlDA,OAAkD,IAA1CG,YAA0C,MAAnC,GAAmC,EAA/BvN,EAA+B,EAA/BA,MAA+B,IAAxBiO,aAAwB,WAAhBT,EAAgB,EAClFE,EAAsB,MAAVN,EAAiB,2BAA6B,qBAC1DO,EACK,MAAT3N,EACI2I,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZvN,EAAM2N,QACZE,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,KAIP6wD,EAAyB,SAAC,GAMhC,IALLvyD,EAKI,EALJA,OAKI,IAJJG,YAII,MAJG,GAIH,MAHJvN,aAGI,MAHI,CAAE2N,QAAS,MAGf,MAFJ4iB,gBAEI,aADJtiB,aACI,WADIT,EACJ,EACEE,EACM,MAAVN,EACKmjB,EAEC,oCADA,4BAEF,qBACA5iB,EACa,MAAjB3N,EAAM2N,QACFhF,cAAU0E,cACR,CACEC,GAAII,GAEN,CAAEN,SAAQG,SAEZvN,EAAM2N,QACZE,IAAKC,KAAK,CACRC,KAAM,QACNc,UAAW,UACXb,KAAK,GAAD,OAAKL,GACTM,MAAOA,EACPC,kBAAkB,EAClBC,mBAAmB,EACnBO,YAAa,CACXC,cAAe,mBAEjBG,gBAAgB,KAiBP8wD,EAAgC,SAAC,GAQP,IAPrC9hE,EAOoC,EAPpCA,OACA+hE,EAMoC,EANpCA,WACAC,EAKoC,EALpCA,WAKoC,IAJpCC,kBAIoC,aAHpCC,kBAGoC,aAFpC3C,aAEoC,MAF5B,QAE4B,EADpC4C,EACoC,EADpCA,cAEApyD,IAAKC,KAAK,CACRC,KAAM,UACNsvD,MAAOA,EACPxrD,MAAOlJ,cAAU0E,cACf,CACEC,GAAIyyD,EACA,oCACAC,EACA,qCACA,oCAEN,CAAEH,aAAYC,eAEhB9xD,KACG+xD,GAAeC,EAIZ,GAHAC,GAEEt3D,cAAU0E,cAAc,CAAEC,GAAI,yBAEtCa,mBAAmB,EAEnBivD,kBAAkB,EAClB1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAe,+BAEjBE,UAAW,UACXC,gBAAgB,EAChByuD,kBAAmB50D,cAAU0E,cAAc,CACzCC,GAAIyyD,EACA,wBACAC,EACA,yBACA,yBAENxC,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,kBAChDmwD,cAAc,EACdC,aAAa,IACZC,MAAK,SAACjlD,GACHA,EAAOklD,aACT9/D,QAKOoiE,EAA+B,SAAC,GAAwC,IAAtCpiE,EAAqC,EAArCA,OAAQ+hE,EAA6B,EAA7BA,WAAYC,EAAiB,EAAjBA,WACjEjyD,IAAKC,KAAK,CACRC,KAAM,UACN8D,MAAOlJ,cAAU0E,cACf,CACEC,GAAI,mCAEN,CAAEuyD,aAAYC,eAEhB9xD,KAAM,GACNG,mBAAmB,EAEnBivD,kBAAkB,EAClB1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAe,+BAEjBE,UAAW,UACXC,gBAAgB,EAChByuD,kBAAmB50D,cAAU0E,cAAc,CACzCC,GAAI,wBAENkwD,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,kBAChDmwD,cAAc,EACdC,aAAa,IACZC,MAAK,SAACjlD,GACHA,EAAOklD,aACT9/D,QAKOqiE,EAAyC,SAAC,GAMhD,IALLriE,EAKI,EALJA,OACA+hE,EAII,EAJJA,WACAC,EAGI,EAHJA,WACAM,EAEI,EAFJA,YAEI,IADJC,kBACI,SACJxyD,IAAKC,KAAK,CACRC,KAAM,UACN8D,MAAOlJ,cAAU0E,cACf,CACEC,GAAI+yD,EACA,oDACA,6CAEN,CAAER,aAAYC,aAAYM,gBAE5BpyD,KAAM,GACNG,mBAAmB,EAEnBivD,kBAAkB,EAClB1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAe,+BAEjBE,UAAW,UACXC,gBAAgB,EAChByuD,kBAAmB50D,cAAU0E,cAAc,CACzCC,GAAI+yD,EAAa,+BAAiC,yBAEpD7C,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,kBAChDmwD,cAAc,EACdC,aAAa,IACZC,MAAK,SAACjlD,GACHA,EAAOklD,aACT9/D,QAcOwiE,EAAwC,SAACxC,GACpD,IAAQhgE,EAAwCggE,EAAxChgE,OAAQ+hE,EAAgC/B,EAAhC+B,WAAYU,EAAoBzC,EAApByC,gBACbC,IAAiB3yD,KACzBC,KAAK,CACVC,KAAM,UACN8D,MAAOlJ,cAAU0E,cACf,CACEC,GAAI,4CAEN,CAAEuyD,aAAYU,oBAEhBpyD,mBAAmB,EAEnBivD,kBAAkB,EAClB1uD,YAAa,CACX4uD,aAAc,kBACd3uD,cAAe,+BAEjBE,UAAW,UACXC,gBAAgB,EAChByuD,kBAAmB50D,cAAU0E,cAAc,CACzCC,GAAI,yBAENkwD,iBAAkB70D,cAAU0E,cAAc,CAAEC,GAAI,kBAChDmwD,cAAc,EACdC,aAAa,IACZC,MAAK,SAACjlD,GACHA,EAAOklD,aACT9/D,QAQO2gE,EAAc,WACzB5wD,IAAKC,KAAK,CACR+D,MAAOlJ,cAAU0E,cAAc,CAAEC,GAAI,mBACrCoB,YAAa,CACX+xD,OAAQ,iBAEVC,WAAY,gEACZpyD,QAAS,WACPT,IAAK4wD,kBAKEkC,EAAe,WAC1B9yD,IAAK+yD,SAMMC,EAAyB,SAAC,GAA4C,IAA1ClzD,EAAyC,EAAzCA,QAAyC,IAAhCM,aAAgC,MAAxB,IAAwB,MAAlBovD,aAAkB,MAAV,IAAU,EAChFxvD,IAAKC,KAAK,CACRG,MAAOA,EACPF,KAAM,OACNC,KAAML,EACNO,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAU,UACVC,OAAO,EACPgvD,MAAOA,EACP/uD,QATQ,SASAD,GACNA,EAAME,iBAAiB,aAAcV,IAAKW,WAC1CH,EAAME,iBAAiB,aAAcV,IAAKY,iBASnCqyD,EAAiC,SAAC,GAAD,IAAGjvD,EAAH,EAAGA,MAAOlE,EAAV,EAAUA,QAASozD,EAAnB,EAAmBA,YAAnB,OAC5C,sBAAKC,UAAW,uCAAhB,UACE,sBAAKA,UAAU,yBAAf,UACE,cAAC,IAAD,aAEEC,SAAKzzD,EACLwzD,UAAW,QACXE,SAAU,GACVC,UAAW,IACPC,YAA0BL,KAEhC,qBAAKC,UAAU,gCAAf,SACE,sBAAMA,UAAU,6BAAhB,SAA8CnvD,SAGlD,qBACEmvD,UAAU,4BACVK,MAAO,CAAEC,UAAW,OACpBC,wBAAyB,CAAEC,OAAQ7zD,SAK5B8zD,EAA4B,SAAC,GAAmD,IAAjDC,EAAgD,EAAhDA,aAAc/zD,EAAkC,EAAlCA,QAASozD,EAAyB,EAAzBA,YAAa9yD,EAAY,EAAZA,MACxE0zD,EAAmBC,SAASC,cAAc,OAEhDh0D,IAAKC,KAAK,CACRO,OAAO,EACPD,SAAU,UACVD,mBAAmB,EACnBF,MAAOA,EACPC,kBAAkB,EAClB4zD,KAAMH,EACNrzD,QAAS,SAACD,GACR0zD,IAASC,OACP,cAAClB,EAAD,CACEjvD,MAAO6vD,EACP/zD,QAASA,EACTozD,YAAaA,IAEfY,IAMJM,UAAW,WACTF,IAASG,uBAAuBP,Q,oEClrChCQ,EAAUC,EAAQ,MAcTC,IAZF,SAAC,GAAkB,IAAD,MAAZvE,EAAY,oBAC7B,OACE,cAAC,IAAD,yBACEqE,QAASA,GACLrE,GAFN,IAGE/vD,KAAI,UAAE+vD,EAAM/vD,YAAR,QAAgB,UACpB+D,KAAI,UAAEgsD,EAAMhsD,YAAR,QAAgB,GACpBwwD,MAAK,UAAExE,EAAMwE,aAAR,QAAiB,oB,+BCX5B,IAKM72D,EALN,OAKqB82D,EAAIC,uBACV/2D,O,iCCNf,yyEAAO,IAAMg3D,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAmB,mBACnBC,EAAqB,qBACrBC,EAAkB,kBAElBC,EAA2B,2BAI3BC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAA4B,4BAE5BC,EAA6B,6BAE7BC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAAgB,gBAChBC,EAAqB,qBACrBC,EAAkB,kBAClBC,EAAuB,uBACvBC,EAA8B,8BAE9BC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAqB,qBACrBC,EAA2B,2BAC3BC,EAAsB,sBACtBC,EAAgC,gCAEhCC,EAAoB,oBAEpBC,EAAiB,iBACjBC,EAAmB,mBACnBC,EAAiB,iBACjBC,EAAuB,uBAEvBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAsB,sBACtBC,EAAuB,uBAEvBC,EAAoB,qBACpBC,GAA4B,4BAC5BC,GAA8B,8BAC9BC,GAAiC,iCAMjCC,GAA8B,8BAC9BC,GAAgC,gCAChCC,GAA6B,6BAE7BC,GAA+B,+BAC/BC,GAAiC,iCACjCC,GAA8B,8BAE9BC,GAAoB,oBACpBC,GAAoB,oBACpBC,GAAqB,qBACrBC,GAAsB,sBACtBC,GAAuB,uBACvBC,GAAyB,yBAEzBC,GAAyB,yBACzBC,GAAyB,0B,gCC9FtC,g8DAoDO,IAAMv5C,EAAe,EACfw5C,EAAqB,EACrBC,EAAkB,EAClBC,EAAmB,EACnBC,EAAiB,EACjBC,EAAiB,EAIjBC,EAAgB,EAIhBC,EAAyB,GAMzBC,EAAe,GACfC,EAAmB,GACnBC,EAAmB,GAYnBC,EAAuB,GAGvBC,EAAkB,GAClBC,EAAmB,GACnBC,EAAmB,GACnBC,EAAmB,GACnBC,EAAe,GACfC,EAAgB,GAQhBC,EAAmB,GACnBC,EAAmB,GACnBC,EAAgB,GAChBC,EAAiB,GACjBC,EAAsB,GACtBC,EAAgB,GAChBC,EAAgC,GAChCC,EAAmB,GACnBC,EAA2B,GAC3BC,EAA4B,GAC5BC,EAAoB,GACpBC,EAAiB,GACjBC,EAAmB,GACnBC,EAAsB,GACtBC,EAA4B,GAE5BC,EAAmC,GAGnCC,EAA8C,sBAC9CC,EAAkC,aAClCC,EAAoC,cACpCC,EAAmC,c,6BC3HhD,g1CAAO,IAAMC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EACX,iDACWC,EACX,mDACWC,EACX,gDAEWC,EAAgC,gCAChCC,EAAkC,kCAElCC,EAA6B,6BAC7BC,EAA+B,+BAE/BC,EAAkC,kCAClCC,EAAoC,oCAEpCC,EAAiB,iBACjBC,EAAsB,sBACtBC,EAAmB,mBACnBC,EAAwB,yB,kCCvDrC,g1CAAO,IAAMC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAAsC,sCACtCC,EAAwC,wCACxCC,EAAqC,qCAErCC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAA4B,4BAC5BC,EAA8B,8BAC9BC,EAA2B,2BAE3BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAAwB,wBACxBC,EAA6B,6BAC7BC,EAA0B,0BAC1BC,EAA+B,+BAE/BC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EACX,gDACWC,EACX,kDACWC,EACX,+CAEWC,EAA2C,2CAC3CC,EACX,6CACWC,EAA0C,0CAE1CC,EACX,4CACWC,EACX,8CACWC,EAA2C,2CAE3CC,EACX,8CACWC,EACX,gDACWC,EACX,6CAEWC,EACX,qDACWC,EACX,uDACWC,EACX,qD,8BC/DF,oqDAAO,IAAMC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAuB,uBACvBC,EAA4B,4BAC5BC,EAAyB,yBACzBC,EAA8B,8BAE9BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAGtCC,EAAyC,yCAGzCC,EAAyC,yCACzCC,EAA2C,2CAC3CC,EAAwC,wCAExCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EAA2C,2CAC3CC,EACX,6CACWC,EAA0C,0CAE1CC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,8B,8BCpE1C,kmCAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAsB,sBACtBC,EAA2B,2BAE3BC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA2C,2CAC3CC,EACX,6CACWC,EAA0C,0CAE1CC,EACX,8CACWC,EACX,gDACWC,EACX,6CAEWC,EACX,gDACWC,EACX,kDACWC,EACX,gD,8BCjDF,4wCAAO,IAAMC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAA4B,4BAC5BC,EAA8B,8BAC9BC,EAA2B,2BAE3BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAAsC,sCACtCC,EAAwC,wCACxCC,EAAqC,qCAErCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAsB,sBACtBC,EAA0B,0BAC1BC,EAAwB,wBACxBC,EAA4B,4BAE5BC,EACX,4CACWC,EAA2C,2CAC3CC,EACX,8CAEWC,EAAyC,yCACzCC,EAAwC,wCACxCC,EAA2C,2CAE3CC,EAAyB,yBACzBC,EAAwB,wBACxBC,EAA2B,2BAE3BC,EAAgC,iC,+BCjD7C,0uCAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAsB,sBACtBC,EAA2B,2BAE3BC,EAAuB,uBACvBC,EAA4B,4BAC5BC,EAAuB,uBACvBC,EAA4B,4BAE5BC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAsC,sCACtCC,EAAwC,wCACxCC,EAAqC,qCAErCC,EACX,mDAMWC,EACX,+CAMWC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,oC,6BC5DhD,wsCAAO,IAAMC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,yCAEzCC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,yCAEzCC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,uC,8BChDnD,6vFAAO,IAAMC,EAAY,EACZC,EAAM,EACNC,EAAU,EACVC,EAAiB,EACjBC,EAAoB,EACpBC,EAAqB,EACrBC,EAAoB,EACpBC,EAAmB,EACnBC,EAAe,EACfC,EAAa,GACbC,EAAc,GACdC,EAAqB,GACrBC,EAAc,GACdC,EAAyB,GACzBC,EAAyB,GACzBC,EAAwB,GACxBC,EAAwB,GACxBC,EAAoB,GACpBC,EAAoB,GACpBC,EAAmB,GACnBC,EAAmB,GACnBC,EAAwB,GACxBC,EAAyB,GACzBC,EAAqB,GACrBC,EAAqB,GACrBC,EAAuB,GACvBC,EAAgC,GAChCC,EAA+B,GAC/BC,EAA6B,GAC7BC,EAAqB,GACrBC,EAAiB,GACjBC,EAAqB,GACrBC,EAA6B,GAC7BC,EAAa,GACbC,EAAsB,GACtBC,EAAmC,GACnCC,EAA8B,GAC9BC,EAAW,GACXC,EAAe,GACfC,EAAW,GACXC,EAAc,GACdC,EAAkB,GAClBC,EAAQ,GACRC,EAAS,GACTC,EAAQ,GACRC,EAAU,GACVC,EAAQ,GACRC,EAAU,GACVC,EAAS,GACTC,EAAgB,GAChBC,EAAgB,GAChBC,GAAU,GACVC,GAAO,GACPC,GAAU,GACVC,GAAS,GACTC,GAAW,GACXC,GAAsB,GACtBC,GAAwB,GACxBC,GAA4B,GAC5BC,GAAc,GACdC,GAAsB,GACtBC,GAAwB,GACxBC,GAAY,GACZC,GAAQ,GACRC,GAAY,GACZC,GAAW,GACXC,GAAqB,GACrBC,GAAqB,GACrBC,GAAa,GACbC,GAAgB,GAChBC,GAA2B,GAC3BC,GAA0B,GAC1BC,GAAoB,GACpBC,GAAoB,GAEpBC,GAAkB,GAClBC,GAAqB,GAErBC,GAAiB,GACjBC,GAAoC,GACpCC,GAAmB,GACnBC,GAAuB,GACvBC,GAA6B,I,8BClF1C,4/BAAO,IAAMC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAiB,iBACjBC,EAAsB,sBACtBC,EAAmB,mBACnBC,EAAwB,wBAExBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAoB,oBACpBC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAyB,yBAEzBC,EAA8B,M,+BCtC3C,8hCAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAsB,sBACtBC,EAA2B,2BAE3BC,EAAuB,uBACvBC,EAA4B,4BAC5BC,EAAuB,uBACvBC,EAA4B,4BAE5BC,EAAqC,IACrCC,EAAsC,K,6BCvCnD,gkCAAO,IAAMC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAyC,yCACzCC,EAA2C,2CAC3CC,EAAwC,wCAExCC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAA2B,2BAC3BC,EAAgC,gCAChCC,EAA6B,6BAC7BC,EAAkC,kCAElCC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,yCAEzCC,EACX,iDACWC,EACX,mDAEWC,EAAgC,gCAChCC,EAAkC,kCAElCC,EAAkC,kCAClCC,EAAoC,oCAEpCC,EAAqB,K,iCC7ClC,s5BAAO,IAAMC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAkB,kBAClBC,EAAuB,uBACvBC,EAAoB,oBACpBC,EAAyB,yBAEzBC,EAAoC,oCACpCC,EAAuC,uCAEvCC,EAAmC,mCACnCC,EAAsC,sCAEtCC,EAA+B,+BAC/BC,EAAiC,iCAEjCC,EAAiC,iCACjCC,EAAmC,oC,8BCnChD,8hCAAO,IAAMC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAkB,kBAClBC,EAAuB,uBACvBC,EAAoB,oBACpBC,EAAyB,yBAEzBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAsC,sCACtCC,EAAwC,wCACxCC,EAAqC,sC,6BCvClD,k1BAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAsB,sBACtBC,EAA2B,4B,gCC/BxC,k1BAAO,IAAMC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAiB,iBACjBC,EAAsB,sBACtBC,EAAmB,mBACnBC,EAAwB,wBAExBC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAyC,yCACzCC,EAA2C,2CAC3CC,EAAwC,yC,6BC/BrD,gzBAAO,IAAMC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAkB,kBAClBC,EAAuB,uBACvBC,EAAoB,oBACpBC,EAAyB,yBAEzBC,EAAe,eAGfC,EAAsB,K,8BChCnC,4uBAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAyB,yBACzBC,EAA2B,2BAE3BC,EAAwC,wCACxCC,EAAuC,uCACvCC,EAA0C,2C,6BC3BvD,8wBAAO,IAAMC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAAkB,kBAClBC,EAAoB,oBACpBC,EAAiB,iBAEjBC,EAAmB,mBACnBC,EAAqB,qBACrBC,EAAkB,kBAElBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAe,eACfC,EAAoB,oBACpBC,EAAiB,iBACjBC,EAAsB,sBAEtBC,EAAoB,K,8BC7BjC,8wBAAO,IAkDKC,EAlDCC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,yCAEzCC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAA4B,4BAC5BC,EAAiC,iCACjCC,EAA8B,8BAC9BC,EAAmC,oC,SAsBpCtB,O,uBAAAA,I,eAAAA,I,6BAAAA,I,2DAAAA,I,8DAAAA,M,mCClDZ,4uBAAO,IAAMuB,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAoB,oBACpBC,EAAsB,sBACtBC,EAAmB,mBAEnBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAiB,iBACjBC,EAAsB,sBACtBC,EAAmB,mBACnBC,EAAwB,yB,6BC3BrC,4uBAAO,IAAMC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAmB,mBACnBC,EAAwB,wBACxBC,EAAqB,qBACrBC,EAA0B,0BAE1BC,EAAsC,sCACtCC,EAAwC,wCACxCC,EAAqC,sC,6BC3BlD,soBAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAsB,sBACtBC,EAA2B,4B,6BCvBxC,4uBAAO,IAAMC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAA4B,4BAC5BC,EAA8B,8BAC9BC,EAA2B,2BAE3BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAAwB,wBACxBC,EAA8B,8BAC9BC,EAA0B,0BAC1BC,EAAgC,iC,6BC3B7C,kpHAEaC,EAAqB,eAAC32F,EAAD,uDAAW,GAAX,MAAmB,CACnDrC,KAAMC,IACNI,QAASgC,IAGE42F,EAAwB,SAACviF,EAAU0G,EAAO/W,EAAYb,GAA9B,MAAkD,CACrFxF,KAAMC,IACNI,QAAS,CACPqW,WACA0G,QACA/W,aACAb,oBAIS0zF,EAAoB,eAACj3F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CACzFhb,KAAMC,IACNI,QAAS,CACP4B,WAISk3F,EAAoB,SAAC3pE,GAAD,MAAa,CAC5CxvB,KAAMC,IACNI,QAASmvB,IAGE4pE,EAAuB,SAAC9sE,EAAMlP,GAAP,MAAkB,CACpDpd,KAAMC,IACNI,QAAS,CACPisB,OACAlP,WAISi8E,EAAmB,eAACp3F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CACxFhb,KAAMC,IACNI,QAAS,CACP4B,WAISq3F,EAA4B,SACvCl+E,GADuC,IAEvC/U,EAFuC,uDAE1B,KACbb,EAHuC,uDAGtB,KAHsB,MAInC,CACJxF,KAAMC,IACNI,QAAS,CAAE+a,eAAc/U,aAAYb,oBAE1B+zF,EAA+B,SAAC7iF,EAAU0G,EAAO/W,EAAYb,GAA9B,MAAkD,CAC5FxF,KAAMC,IACNI,QAAS,CACPqW,WACA0G,QACA/W,aACAb,oBAGSg0F,EAA2B,eAACv3F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAChGhb,KAAMC,IACNI,QAAS,CACP4B,WAISw3F,EAAoB,SAACntE,GAAD,MAAW,CAC1CtsB,KAAMC,IACNI,QAASisB,IAGEotE,EAA+B,iBAAO,CACjD15F,KAAMC,IACNI,QAAS,KAGEs5F,EAAkC,SAACjjF,EAAU0G,EAAO5X,GAAlB,MAAsC,CACnFxF,KAAMC,IACNI,QAAS,CACPqW,WACA0G,QACA5X,oBAISo0F,EAA8B,eACzC33F,EADyC,uDACjC,CAAE8Y,aAAc,QAASC,YAAa,KADL,MAErC,CACJhb,KAAMC,IACNI,QAAS,CACP4B,WAIS43F,EAA+B,SAACrqE,GAAD,MAAa,CACvDxvB,KAAMC,IACNI,QAAS,CAAEmvB,YAGAsqE,EAAkC,SAC7CtqE,EACAE,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,EACAG,EACAC,GAd6C,MAezC,CACJlxB,KAAMC,IACNI,QAAS,CACPmvB,SACAE,WACAG,wBACAC,qBACAG,wBACAC,qBACAG,iBACAC,cACAG,kBACAC,eACAG,iBACAC,cACAG,kBACAC,kBAIS6oE,EAA8B,eACzC93F,EADyC,uDACjC,CAAE8Y,aAAc,QAASC,YAAa,KADL,MAErC,CACJhb,KAAMC,IACNI,QAAS,CACP4B,WAIS+3F,EAA6B,SAACxqE,EAAQ2B,EAAYC,EAAWC,EAASC,GAAzC,MAAwD,CAChGtxB,KAAMC,KACNI,QAAS,CAAEmvB,SAAQ2B,aAAYC,YAAWC,UAASC,eAGxC2oE,EAAgC,SAC3CzqE,EACApoB,EACAoqB,EACAE,EACAC,GAL2C,MAMvC,CACJ3xB,KAAMC,IACNI,QAAS,CACPmvB,SACApoB,WACAoqB,kBACAE,WACAC,eAISuoE,EAA4B,eAACj4F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CACjGhb,KAAMC,KACNI,QAAS,CACP4B,WAISk4F,EAA6B,iBAAO,CAC/Cn6F,KAAMC,KACNI,QAAS,KAGE+5F,EAA8B,SAAC5qE,GAAD,IAASoC,EAAT,uDAAiB,GAAjB,MAAyB,CAClE5xB,KAAMC,KACNI,QAAS,CAAEmvB,SAAQoC,WAGRyoE,EAAiC,SAC5C7qE,EACApoB,EACAoqB,EACAE,EACAC,GAL4C,MAMxC,CACJ3xB,KAAMC,KACNI,QAAS,CACPmvB,SACApoB,WACAoqB,kBACAE,WACAC,eAIS2oE,EAA6B,eACxCr4F,EADwC,uDAChC,CAAE8Y,aAAc,QAASC,YAAa,KADN,MAEpC,CACJhb,KAAMC,KACNI,QAAS,CACP4B,WAIS4rB,EAAsB,SAAC2B,EAAQsC,GAAT,IAAyBC,EAAzB,uDAAsC,KAAtC,MAAgD,CACjF/xB,KAAMC,IACNI,QAAS,CACPmvB,SACAsC,iBACAC,gBAISwoE,EAAkB,SAACjuE,GAAD,MAAW,CACxCtsB,KAAMC,IACNI,QAASisB,IAEEkuE,EAAqB,SAACx8D,EAAO1R,GAAR,MAAkB,CAClDtsB,KAAMC,IACNI,QAAS,CAAE29B,QAAO1R,UAEPmuE,EAAiB,SAACz8D,EAAO/7B,GAAR,MAAmB,CAC/CjC,KAAMC,IACNI,QAAS,CACP29B,QACA/7B,WASSy4F,EAAoB,SAC/BrtF,GAD+B,MAE3B,CACJrN,KAAMC,KACNI,QAASgN,IAEEstF,EAAuB,SAACttF,GAAD,MAA+B,CACjErN,KAAMC,KACNI,QAASgN,IAEEutF,EAAmB,SAAC58D,EAAe/7B,GAAhB,MAAkC,CAChEjC,KAAMC,KACNI,QAAS,CACP29B,QACA/7B,WAIS44F,EAAmB,SAACvuE,GAAD,MAAW,CACzCtsB,KAAMC,IACNI,QAASisB,IAEEwuE,EAAsB,SAACxuE,GAAD,MAAW,CAC5CtsB,KAAMC,IACNI,QAASisB,IAEEyuE,EAAkB,SAAC3oE,EAASnwB,GAAV,MAAqB,CAClDjC,KAAMC,IACNI,QAAS,CACP+xB,UACAnwB,WAIS+4F,EAA4B,SAACxrE,GAAD,MAAa,CACpDxvB,KAAMC,IACNI,QAAS,CAAEmvB,YAEAyrE,EAA+B,SAACzrE,GAAD,MAAa,CACvDxvB,KAAMC,IACNI,QAAS,CAAEmvB,YAEA0rE,EAA2B,SAACj5F,GAAD,MAAY,CAClDjC,KAAMC,IACNI,QAAS,CACP4B,WAISk5F,EAA4B,SAACjkF,GAAD,MAAY,CACnDlX,KAAMC,IACNI,QAAS6W,IAEEkkF,EAA+B,SAAClkF,GAAD,MAAY,CACtDlX,KAAMC,IACNI,QAAS6W,IAGEmkF,EAAuB,SAAC7rE,GAAD,MAAa,CAC/CxvB,KAAMC,IACNI,QAAS,CACPmvB,YAGS8rE,EAA0B,SAAC9rE,EAAQmD,EAAaC,GAAtB,MAAyC,CAC9E5yB,KAAMC,IACNI,QAAS,CACPmvB,SACAmD,cACAC,mBAGS2oE,EAAsB,eAACt5F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAC3Fhb,KAAMC,IACNI,QAAS,CACP4B,WAISu5F,EAAyB,SAAChsE,EAAQ9F,GAAT,MAAuB,CAC3D1pB,KAAMC,KACNI,QAAS,CACPmvB,SACA9F,cAGS+xE,EAA4B,SAACjsE,EAAQ9F,EAAUE,GAAnB,MAA0C,CACjF5pB,KAAMC,KACNI,QAAS,CACPmvB,SACA9F,WACAE,uBAGS8xE,EAAwB,eAACz5F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CAC7Fhb,KAAMC,KACNI,QAAS,CACP4B,WAIS05F,EAAqB,SAACzkF,GAAD,MAAY,CAC5ClX,KAAMC,IACNI,QAAS6W,IAGE0kF,EAAwB,SAAC1kF,GAAD,MAAY,CAC/ClX,KAAMC,IACNI,QAAS6W,IAEE2kF,EAAoB,eAAC55F,EAAD,uDAAS,CAAE8Y,aAAc,QAASC,YAAa,KAA/C,MAA0D,CACzFhb,KAAMC,IACNI,QAAS,CACP4B,WAIS65F,EAAoB,SAAC5kF,EAAOqb,GAAR,MAAuB,CACtDvyB,KAAMC,KACNI,QAAS,CACP6W,QACAqb,eAGSwpE,EAAuB,SAAC7kF,EAAOqb,GAAR,MAAuB,CACzDvyB,KAAMC,KACNI,QAAS,CACP6W,QACAqb,eAGSypE,EAAmB,SAAC9kF,EAAOjV,GAAR,MAAmB,CACjDjC,KAAMC,KACNI,QAAS,CACP6W,QACAjV,WAISg6F,GAAe,SAACzsE,EAAQ0sE,GAAT,MAAwB,CAClDl8F,KAAMC,IACNI,QAAS,CAAEmvB,SAAQ0sE,eAGRC,GAAa,SAAC3sE,GAAD,MAAa,CACrCxvB,KAAMC,KACNI,QAASmvB,IAGE4sE,GAAiB,eAC5BC,EAD4B,uDACX,GADW,MACR,CAEpBr8F,KAAMC,IACNI,QAASg8F,IAGEC,GAAe,SAAC9sE,GAAD,MAAa,CACvCxvB,KAAMC,IACNI,QAASmvB,IAGE+sE,GAAmB,eAC9BF,EAD8B,uDACb,GADa,MACV,CAEpBr8F,KAAMC,IACNI,QAASg8F,IAGEG,GAAgB,SAAChtE,GAAD,MAAa,CACxCxvB,KAAMC,KACNI,QAASmvB,IAGEitE,GAAoB,eAC/BJ,EAD+B,uDACd,GADc,MACX,CAEpBr8F,KAAMC,IACNI,QAASg8F,IAGEK,GAAgB,SAACltE,GAAD,MAAa,CACxCxvB,KAAMC,IACNI,QAASmvB,IAGEmtE,GAAoB,eAC/BN,EAD+B,uDACd,GADc,MACX,CAEpBr8F,KAAMC,IACNI,QAASg8F,IAGEO,GAAyB,SAACptE,EAAQ0C,EAAUW,EAAQC,GAA3B,MAAoC,CACxE9yB,KAAMC,IACNI,QAAS,CACPmvB,SACA0C,WACAW,SACAC,SAGS+pE,GAA4B,SAACliF,GAAD,MAAa,CACpD3a,KAAMC,IACNI,QAASsa,IAEEmiF,GAAwB,SAAC76F,GAAD,MAAY,CAC/CjC,KAAMC,IACNI,QAAS,CACP4B,WAIS86F,GAAkB,iBAAO,CACpC/8F,KAAMC,IACNI,QAAS,KAGE28F,GAAiB,SAAC,GAAD,IAC5BxtE,EAD4B,EAC5BA,OACA8iB,EAF4B,EAE5BA,UAF4B,MAOvB,CACLtyC,KAAMC,KACNI,QAAS,CAAEmvB,SAAQ8iB,eAGR2qD,GAAgB,SAAChqE,EAAmBhxB,GAApB,MAAuC,CAClEjC,KAAMC,KACNI,QAAS,CAAE4B,WAGAi7F,GAAoB,SAACC,GAAD,MAAwC,CACvEn9F,KAAMC,KACNI,QAAS,CAAE88F,aAGAC,GAAuB,iBAAO,CACzCp9F,KAAMC,IACNI,QAAS,KAGEg9F,GAA0B,SAAC73F,GAAD,MAAqB,CAC1DxF,KAAMC,IACNI,QAAS,CACPmF,eAAgBA,KAIP83F,GAAsB,SAACr7F,GAAD,MAAoB,CACrDjC,KAAMC,IACNI,QAAS,CAAE4B,Y,4YCveAs7F,EAAoB,CAC/B,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGIC,EACO,mBADPA,EAEK,iBAFLA,EAGO,mBAHPA,EAIC,aASMC,EAAsB,SAACrsF,EAAQssF,GAC1C,IAAMC,EAAoBC,KAAKC,MAAMzsF,GAE/B0sF,EAAcH,GAAqBD,EAAiB,GAAK,EACzDK,EACJJ,GAAqBD,EAAiB,IAAMC,GAAqBD,EAAiB,GAAK,EACnFM,EACJL,GAAqBD,EAAiB,IAAMC,GAAqBD,EAAiB,GAGhFO,EAAqB,KAYzB,OAdcN,EAAoBD,EAAiB,IAAMC,EAAoB,IAK3EM,EAAqBT,EACZQ,EACTC,EAAqBT,EACZO,EACTE,EAAqBT,EACZM,IACTG,EAAqBT,GAGhBS,GAUIC,EAAsB,SACjC9sF,EACA+sF,GAEI,IADJT,EACG,uDADgB,CAAC,EAAG,GAAI,GAAI,IAAK,KAGpC,GAAIA,EAAiBh7E,OAAS,EAE5B,OADA/hB,QAAQsB,MAAM,kEACPs7F,EAAkB,GAG3B,IAAMI,EAAoBC,KAAKC,MAAMzsF,GAGrC,OAAKusF,GAAqBA,EAAoBD,EAAiB,GACtDH,EAAkB,GAChBI,GAAqBD,EAAiB,IAAMC,EAAoBD,EAAiB,GACnFH,EAAkB,GAChBI,GAAqBD,EAAiB,IAAMC,EAAoBD,EAAiB,GACnFH,EAAkB,GAChBI,GAAqBD,EAAiB,IAAMC,EAAoBD,EAAiB,GACnFH,EAAkB,GAElBA,EAAkB,IAIvBa,EAAqB,SAACC,GAAmD,IACvEC,EAAsBD,EAAWjnE,QAAO,SAACmnE,GAE7C,IACMC,EADOC,MAASC,KAAKH,EAAEI,WAAY,SACX,EAGxBC,EAAwBC,YAAkBN,EAAEO,kBAS5CC,EACH9kE,WAAWskE,EAAES,+BAAiC,GAC7C/kE,WAAWskE,EAAEU,SAAWhlE,WAAWskE,EAAES,gCAErC/kE,WAAWskE,EAAEW,aAAe,GAC9BX,EAAEY,sBAAwB,EAE5B,OAAOX,GAAiBI,GAAyBG,KAG7CK,EAA0Bf,EAAWjnE,QAAO,SAACmnE,GACjD,IACMC,EADOC,MAASC,KAAKH,EAAEI,WAAY,SACX,EACxBC,EAAwBC,YAAkBN,EAAEO,kBAC5CO,EACJplE,WAAWskE,EAAES,gCAAkC,GAC/C/kE,WAAWskE,EAAEU,QAAUhlE,WAAWskE,EAAES,gCACpC/kE,WAAWskE,EAAEW,aAAe,EAE9B,OACEV,GAAiBI,GAAyBS,GAAoBd,EAAEY,uBAAyB,KAIvFG,EAAejB,EAAWjnE,QAAO,SAACmoE,GAAD,OAAOA,EAAET,oBAE1CU,EAAyBnB,EAAWjnE,QACxC,SAACmnE,GAAD,OACGD,EAAoB33F,MAAK,SAAC84F,GAAD,OAAQA,EAAGjwE,SAAW+uE,EAAE/uE,YACjD4vE,EAAwBz4F,MAAK,SAAC84F,GAAD,OAAQA,EAAGjwE,SAAW+uE,EAAE/uE,YACrD8vE,EAAa34F,MAAK,SAAC84F,GAAD,OAAQA,EAAGjwE,SAAW+uE,EAAE/uE,aAIzCkwE,EAAa,CACjBC,oBAAqBC,EAAoB,GAAK,EAAGtB,EAAqB,YACtEuB,uBAAwBD,EAAoB,EAAG,EAAGtB,EAAqB,YACvEwB,gBAAiBxB,EAAoBlnE,QAAO,SAACmnE,GAAD,OAAkC,IAA3BA,EAAEwB,wBACrDC,mBAAoB1B,EAAoBlnE,QAAO,SAACmnE,GAAD,OAAkC,IAA3BA,EAAEwB,wBACxDE,gBAAiB3B,EAAoBlnE,QAAO,SAACmnE,GAAD,OAAkC,IAA3BA,EAAEwB,wBACrDG,gBAAiB5B,EAAoBlnE,QACnC,SAACmnE,GAAD,OAAkC,IAA3BA,EAAEwB,sBAAyD,IAA3BxB,EAAEwB,wBAE3CI,qBAAsB7B,EAAoBlnE,QAAO,SAACmnE,GAAD,OAAkC,IAA3BA,EAAEwB,wBAC1DzB,oBAAqBA,EACrBkB,uBAAwBA,EACxBF,aAAcA,EACdF,wBAAyBA,GAG3B,OAAO,2BACFM,GADL,IAEEU,iBAAuD,IAApCV,EAAWO,gBAAgBv9E,OAAgB47E,EAAoB57E,UAShFk9E,EAAsB,WAAqE,IAApES,EAAmE,uDAA7D,EAAGC,EAA0D,uDAApD,EAAGC,EAAiD,uCAAnCC,EAAmC,uDAAxB,oBACtE,GAAY,IAARH,GAAqB,IAARC,EAAW,CAC1B,IAAMG,EAAWF,EAAanpE,QAAO,SAACmnE,GAAD,MAAuB,SAAhBA,EAAEiC,MAE9C,OAAOC,EAEP,IAAMA,EACI,IAARH,EACIC,EAAanpE,QAAO,SAACmnE,GAAD,OAAOA,EAAEiC,IAAaF,GAAO/B,EAAEiC,IAAaH,KAChEE,EAAanpE,QAAO,SAACmnE,GAAD,OAAOA,EAAEiC,IAAaH,KAChD,OAAOI,GAwBLC,EAAiB,SAACC,GAEtB,OAVoB,SAACC,GAErB,IADA,IAAIC,EAAiB,GACZpvE,EAAImvE,EAAOl+E,OAAS,EAAG+O,GAAK,EAAGA,IACtCovE,GAAkBD,EAAOnvE,GAE3B,OAAOovE,EAKAC,CAtBO,SAACH,GAEf,IADA,IAAIC,EAAS,GACND,EAAM,GACXC,EAAUD,EAAM,EAAKC,EACrBD,EAAM/C,KAAKmD,MAAMJ,EAAM,GAEzB,KAAOC,EAAOl+E,OAAS,IACrBk+E,EAAS,IAAMA,EAEjB,OAAOA,EAYQI,CAAQL,KAInBM,EAAkB,SAACC,EAAaC,GACpC,OAAQD,EAAW,SAAI,EAAKC,KAArB,SAAoC,EAAKA,IAG5CC,EAAU,CACdC,SAAU,CACRC,SAAU,EACVC,WAAY,WACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfC,KAAM,CACJP,SAAU,EACVC,WAAY,OACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfE,KAAM,CACJR,SAAU,EACVC,WAAY,OACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfG,KAAM,CACJT,SAAU,EACVC,WAAY,OACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfI,IAAK,CACHV,SAAU,EACVC,WAAY,MACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfK,IAAK,CACHX,SAAU,EACVC,WAAY,MACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfM,WAAY,CACVZ,SAAU,EACVC,WAAY,aACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfO,cAAe,CACbb,SAAU,EACVC,WAAY,gBACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfQ,QAAS,CACPd,SAAU,EACVC,WAAY,UACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfS,WAAY,CACVf,SAAU,GACVC,WAAY,aACZC,UAAW,EACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfU,iBAAkB,CAChBhB,SAAU,GACVC,WAAY,mBACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfW,UAAW,CACTjB,SAAU,GACVC,WAAY,YACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfY,gBAAiB,CACflB,SAAU,GACVC,WAAY,kBACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfa,eAAgB,CACdnB,SAAU,GACVC,WAAY,iBACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfc,gBAAiB,CACfpB,SAAU,GACVC,WAAY,kBACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfe,MAAO,CACLrB,SAAU,GACVC,WAAY,QACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfgB,WAAY,CACVtB,SAAU,GACVC,WAAY,aACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfiB,YAAa,CACXvB,SAAU,GACVC,WAAY,cACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfkB,IAAK,CACHxB,SAAU,GACVC,WAAY,MACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfmB,IAAK,CACHzB,SAAU,GACVC,WAAY,MACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfoB,eAAgB,CACd1B,SAAU,GACVC,WAAY,iBACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfqB,yBAA0B,CACxB3B,SAAU,GACVC,WAAY,2BACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfsB,aAAc,CACZ5B,SAAU,GACVC,WAAY,eACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEfuB,KAAM,CACJ7B,SAAU,GACVC,WAAY,OACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfwB,WAAY,CACV9B,SAAU,GACVC,WAAY,aACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEfyB,iBAAkB,CAChB/B,SAAU,GACVC,WAAY,mBACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,GAEf0B,UAAW,CACThC,SAAU,GACVC,WAAY,YACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEf2B,SAAU,CACRjC,SAAU,GACVC,WAAY,WACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,IAEf4B,aAAc,CACZlC,SAAU,GACVC,WAAY,eACZC,UAAW,GACXC,cAAe,EACfC,YAAa,EACbC,YAAa,EACbC,YAAa,KAIX6B,EAAgC,SAACC,EAAoBl5F,GACzD,IAAsB,OAAlBk5F,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBhhF,QAAS,EAAG,CAClC,IAAMihF,EAAW,CAAC,YAAa,MAAO,UAAW,aAG3ChpF,EAAS,GA0Bf,OAvBkB,OAAlB+oF,QAAkB,IAAlBA,KAAoBz7E,SAAQ,SAAC27E,GAC3B,IAAMC,EAAaD,EAAIC,WAEvBF,EAAS17E,SAAQ,SAAC7W,GAChB,IAAM0yF,EAAkB1yF,EAAO2yF,cAE1BppF,EAAOmpF,KACVnpF,EAAOmpF,GAAmB,IAG5BnpF,EAAOmpF,GAAP,mBAAoCD,IAApC,UAAuDD,EAAIE,GAA3D,eACGF,EAAIE,GAAmBF,EAAII,MAC5B,KACAC,QAAQ,GAHV,YAQwBC,OAAOC,KAAKxpF,GAAQD,KAAI,SAACtJ,GAAD,oBAClDA,OAAQ5G,EAAK8E,cAAc,CAAEC,GAAG,UAAD,OAAY6B,MACxCuJ,EAAOvJ,OAMd,MAAO,IAGT,SAASgzF,EAAuB/2F,EAAMg3F,EAASC,EAAY7sF,EAAS8sF,GA4BlE,OA3BqBC,mBAAQ,WAAO,IAAD,EACjC,cAAOn3F,QAAP,IAAOA,GAAP,UAAOA,EAAMo3F,mBAAb,aAAO,EAAmB/pF,KAAI,SAACC,GAC7B,IAAM+pF,EAAclkG,IAAcma,GAC5BwxB,EAAQm4D,EAAW1vF,MACvB,SAAC+vF,GAAD,OAAWA,EAAMC,oBAAsBF,EAAYE,qBAMrD,GAHsB,KAAb,OAAPntF,QAAO,IAAPA,OAAA,EAAAA,EAASiL,cACEjT,IAAV08B,GAAoD,KAAf,OAAdo4D,QAAc,IAAdA,OAAA,EAAAA,EAAgBh0D,YAAyB,OAAP94B,QAAO,IAAPA,OAAA,EAAAA,EAASiL,QAAS,EAE3D,CAAC,IAAD,EACXmiF,EAAW,OAAGR,QAAH,IAAGA,GAAH,UAAGA,EAASS,mBAAZ,aAAG,EAAsBlwF,MACxC,SAACmwF,GAAD,OACEA,EAAOH,oBAAsBF,EAAYE,mBACjB,MAAxBF,EAAYM,SACY,MAAxBN,EAAYM,WAEhB,OAAO,2BACFN,GACCv4D,GAAS04D,GAIjB,OAAOH,OAER,CAACr3F,EAAMg3F,EAASC,EAAY7sF,EAAS8sF,M,8BCxhB1C,soBAAO,IAAMU,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EACX,+CACWC,EACX,iDACWC,EACX,8CAEWC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EAAiC,iCACjCC,EAAsC,sCACtCC,EAAmC,mCACnCC,EAAwC,yC,6BC1BrD,soBAAO,IAAMC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAA2C,2CAC3CC,EACX,6CACWC,EAA0C,0CAE1CC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAA6B,6BAC7BC,EAAkC,kCAClCC,EAA+B,+BAC/BC,EAAoC,qC,6BCxBjD,soBAAO,IAAMC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAkB,kBAClBC,EAAuB,uBACvBC,EAAoB,oBACpBC,EAAyB,0B,6BCvBtC,soBAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EACX,kCACWC,EACX,oCACWC,EAAiC,iCAEjCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAoB,oBACpBC,EAAyB,yBACzBC,EAAsB,sBACtBC,EAA2B,4B,6BCzBxC,soBAAO,IAAMC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EACX,qCACWC,EACX,uCACWC,EACX,oCAEWC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAAuB,uBACvBC,EAA4B,4BAC5BC,EAAyB,yBACzBC,EAA8B,+B,8BC1B3C,4uBAAO,IAiCKC,EAjCCC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EACX,6CACWC,EACX,+CACWC,EACX,4CAEWC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,yCAEzCC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,0C,SAE1CrB,K,kBAAAA,E,oBAAAA,E,qBAAAA,E,kBAAAA,E,wBAAAA,E,uBAAAA,E,sBAAAA,E,2BAAAA,E,0BAAAA,E,0BAAAA,M,mCCjCZ,4uBAAO,IAAMsB,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAAqB,qBAErBC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAmB,mBACnBC,EAAwB,wBACxBC,EAAqB,qBACrBC,EAA0B,2B,8BC3BvC,soBAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAqB,qBACrBC,EAAyB,yBACzBC,EAAuB,uBACvBC,EAA2B,4B,6BCvBxC,omBAAO,IAAMC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EACX,4CACWC,EACX,8CACWC,EAA2C,2CAE3CC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,oC,6BCxBhD,u5B,6BCAA,omBAAO,IAAMC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAwC,wCACxCC,EAA0C,0CAC1CC,EAAuC,uCAEvCC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,8BAE9BC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,gC,6BCtB5C,omBAAO,IAAMC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EACX,6CACWC,EACX,+CACWC,EACX,4CAEWC,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,qC,+8EC6KrCC,EASAC,EAOAC,E,kHAhBAF,K,kBAAAA,E,eAAAA,E,cAAAA,E,UAAAA,E,kBAAAA,E,sBAAAA,M,cASAC,K,gBAAAA,E,kBAAAA,E,gBAAAA,E,2BAAAA,M,cAOAC,K,gBAAAA,E,mBAAAA,M,KAkBL,IA0DKC,EAKAC,EA/DCC,EAAqD,CAChEC,OAAG,IACH,SAAK,IACLC,OAAG,IACH,SAAK,IACL,OAAK,IACLC,SAAG,IACH,OAAK,IACL,SAAK,IACLC,SAAG,IACH,SAAK,IACL,SAAK,IACL,OAAK,IACLC,OAAG,IACH,SAAK,IACLC,OAAG,IACHC,SAAG,IACHC,SAAG,IACH,OAAK,IACLC,OAAG,IACH,SAAK,IACL,OAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,OAAK,IACL,OAAK,KAGMC,EAAyD,CACpEC,OAAG,IACHC,SAAG,IACHC,OAAG,IACHC,OAAG,IACH,OAAK,IACLC,OAAG,IACH,SAAK,IACLC,OAAG,IACHZ,SAAG,IACHa,OAAG,IACH,SAAK,IACLC,OAAG,IACHC,OAAG,IACH,SAAK,IACLC,OAAG,IACH,IAAK,IACLC,SAAG,IACH,SAAK,IACLC,OAAG,IACHC,SAAG,IACH,OAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACLC,OAAG,IACH,OAAK,M,SAGK1B,O,qCAAAA,I,oDAAAA,M,cAKAC,O,6BAAAA,I,8BAAAA,M,KCrRL,IAGM0B,EAAmB,SAACC,GAC/B,OAAOA,EAAUC,qBAAWD,EAAS,CAAEE,SAAU,MAAS,OAO/CC,EAA+B,SAACj5F,GAAD,OAC1CA,EAC4B,oBAAjBA,EAAKyb,QACV,IAAID,KAAKxb,EAAKyb,UAAuC,IAA3Bzb,EAAKk5F,qBAA6BC,cAAcC,MAAM,GAAI,GACpFp5F,EACF,MAGOq5F,EAA0B,SAACC,GAA6C,IAA5B/W,EAA2B,wDAC9EgX,EAAQ,EACRC,EAAU,EAgBd,OAdc,IAAVjX,IACF+W,GAAW,IAGTA,GAAW,OAEbA,GAAmB,MADnBC,EAAQjX,KAAKmD,MAAM6T,EAAU,QAI3BA,GAAW,KAEbA,GAAqB,IADrBE,EAAUlX,KAAKmD,MAAM6T,EAAU,IAAM,KAIjC,GAAN,OAAUC,EAAQ,EAAIA,EAAQ,IAAMA,EAApC,kBAAmDC,EAAU,EAAIA,EAAU,IAAMA,EAAjF,UAIWC,EAAmC,SAACH,GAA4B,IAAnB/W,EAAkB,wDACtEmX,EAAO,EACPH,EAAQ,EACRC,EAAU,EAuBd,OArBc,IAAVjX,IACF+W,GAAW,IAGTA,GAAW,QAEbA,GAAkB,OADlBI,EAAOpX,KAAKmD,MAAM6T,EAAU,SAI1BA,GAAW,OAEbA,GAAmB,MADnBC,EAAQjX,KAAKmD,MAAM6T,EAAU,QAI3BA,GAAW,KAEbA,GAAqB,IADrBE,EAAUlX,KAAKmD,MAAM6T,EAAU,IAAM,KAIvCA,EAAUhX,KAAKmD,MAAM6T,GAEf,GAAN,OAAUI,EAAO,EAAIA,EAAO,KAAO,IAAnC,OAAwCH,EAAQ,EAAIA,EAAQ,IAAMA,EAAlE,kBACEC,EAAU,EAAIA,EAAU,IAAMA,EADhC,mBAEWF,EAAU,EAAIA,EAAU,IAAMA,EAFzC,OAMWK,EAA8B,SAACL,GAE1C,IAAIC,EAAQ,EACRC,EAAU,EAYd,OAdAF,EAAU5uG,SAAS4uG,EAAQ3Q,QAAQ,MAIpB,OAEb2Q,GAAmB,MADnBC,EAAQjX,KAAKmD,MAAM6T,EAAU,QAI3BA,GAAW,KAEbA,GAAqB,IADrBE,EAAUlX,KAAKmD,MAAM6T,EAAU,IAAM,KAIjC,GAAN,OAAUC,EAAQ,EAAIA,EAAQ,IAAMA,EAApC,YAA6CC,EAAU,EAAIA,EAAU,IAAMA,EAA3E,YACEF,EAAU,EAAIA,EAAU,IAAMA,IA6GrBM,EAAiB,WAC5B,IAAI90G,EAAQ4S,aAAaC,QAAQ,QAC7BsjB,EAAW4+E,IACf,OAAO/0G,GAASm2B,GAAYA,EAAS5yB,IAAMmzB,KAAKD,MAAQ,KAE7Cs+E,EAAc,wBAAMjiG,KAAKC,OAAkB,QAAZ,EAAAH,oBAAA,eAAcC,QAAQ,cAAe,OAgBpEmiG,EAAoB,SAACC,GAAD,mBAAC,eAC7BA,GAD4B,IAE/BC,OAAO,2BACFD,EAAMC,QADL,IAEJC,UAAW,YACXC,QAAS,UACTC,UAAW,UACXC,UAAW,UACXC,UAAW,eAMFC,EAAe,SAACC,GAG3B,MADE,4JACaC,KAAKC,OAAOF,GAAO9R,gBAU7B,SAASiS,EAAiB7jG,GAC/B,OAAKA,GAELA,EAYF,SAAeA,GAAoB,IAAjB8jG,EAAgB,uDAAH,EAC7B,IAAK9jG,EAAE+I,WAAW5U,SAAS,KACzB,OAAO6L,EAAE+I,WAEX,IAAIg7F,EAAgB/jG,EAAE+I,WAAWi7F,QAAQ,KAAO,EAEhD,OADahkG,EAAE+I,WAAWk7F,OAAO,EAAGF,EAAgBD,GAjBhDI,CAAMlkG,EAAG,IACJ+I,WAAWo7F,QAAQ,wBAAyB,KAHtC,IAMV,SAASC,EAAaC,GAC3B,OAAKC,EAAcD,GAAGV,KAEfrxG,OAAO+xG,GACXvS,QAAQ,GACRqS,QAAQ,wBAAyB,KAJD7xG,OAAO,KAAKw/F,QAAQ,GAgBlD,IAAMyS,EAAW,SAACC,EAAGC,GAAJ,OAAiC,KAApBD,EAAK,GAAKC,IAalCC,EAAa,SAACC,GAAD,OAAgB,MAAPA,GAA+C,oBAAzBA,EAAIC,OAAOC,WAgFvDC,EAA4B,SAACzsG,EAAM0xF,GAAmD,IAA9Bgb,EAA6B,wDAChG,GAAIhb,GAAaA,EAAUx5E,OAAS,EAAG,CAKrC,IAJA,IAAI0O,EAAY,IAAI0F,KAAKolE,EAAU,IAC/B7qE,EAAU,IAAIyF,KAAKolE,EAAU,IAC7Bib,EAAiB,GAEd/lF,GAAaC,GAClB8lF,EAAUniG,KAAK,IAAI8hB,KAAK1F,IACxBA,EAAUgmF,QAAQhmF,EAAUimF,UAAY,GAE1C,OAAOF,EAAUz8F,KAAI,SAACY,GACpB,IAAMg8F,EACJh8F,EAAKi8F,cACL,KACCj8F,EAAKk8F,WAAa,EAAI,GAAK,IAAM,KACjCl8F,EAAKk8F,WAAa,GACnB,KACCl8F,EAAK+7F,UAAY,GAAK,IAAM,IAC7B/7F,EAAK+7F,UAEP,MAAO,CACLI,UAAWP,OAAUznG,EAAY6nG,EACjCI,UAAWR,EAAUI,OAAY7nG,EACjCkoG,WACoB,IAAlBr8F,EAAKs8F,SAAL,UACOptG,EAAK8E,cAAc,CAAEC,GAAI,eADhC,YACmD+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WACpD,OAIV,MAAO,IAIEQ,EAAiB,SAACrtG,EAAM6C,GAAgD,IAC7EyqG,EAAQ,GAEd,GAAIzqG,EAAM,CACRA,EAAK4a,SAAQ,SAACnV,GACRA,EAAK+wF,aAAeiU,EAAMxxG,SAASwM,EAAK+wF,aAC1CiU,EAAM9iG,KAAKlC,EAAK+wF,eAIpB,IAAMkU,EAAUD,EAAMp9F,KAAI,SAACs9F,GACzB,IAAMC,EAAgBC,WAASC,QAAT,OACpB9qG,QADoB,IACpBA,OADoB,EACpBA,EAAMuH,MAAK,SAACsmC,GAAD,OAAOA,EAAE2oD,aAAemU,KAAMC,eACzCG,SAAS,cAELC,EAAcH,WAASC,QAAT,OAClB9qG,QADkB,IAClBA,OADkB,EAClBA,EAAMuH,MAAK,SAACsmC,GAAD,OAAOA,EAAE2oD,aAAemU,KAAMK,aACzCD,SAAS,cAELE,EAAc,CAClB,CACEb,UAAU,mBAAD,OAAqBO,GAC9BO,WAAY,2BACZC,iBAAkB,CAAEC,MAAO,oCAE7B,CACEhB,UAAU,cAAD,OAAgBO,GACzBO,WAAY,sBACZC,iBAAkB,CAAEC,MAAO,oCAE7B,CACEhB,UAAU,mBAAD,OAAqBO,GAC9BO,WAAY,wBACZC,iBAAkB,CAAEC,MAAO,oCAE7B,CACEhB,UAAU,aAAD,OAAeO,GACxBO,WAAY,wBACZC,iBAAkB,CAAEC,MAAO,qCAI/B,MAAO,CACLf,UAAU,OAAD,OAASM,GAClBL,WAAW,GAAD,OACRntG,EAAK8E,cAAc,CAAEC,GAAI,gBAAzB,WAAgDyoG,GADxC,cAEJC,EAFI,eAEgBI,GAC1BG,iBAAkB,CAAEC,MAAO,+BAC3BV,QAASO,MAIb,OAAOP,EAEP,MAAO,IAILW,EAAsD,KAAjC,IAAI5hF,MAAO09E,oBACzBmE,EAA+B,SAACC,GAC3C,MAAyB,kBAAdA,EACFA,EAEUna,IACf,IAAI3nE,KAAK8mE,KAAKC,MAA4B,OAArB+a,EAAY,OAAiB,KAAQF,IAC1DG,OAAO,qBA8CAC,EAAiB,SAACzgF,GAC7B,IAAM0gF,EAAQ,OACd,cAAe1gF,GACb,IAAK,SACH,IAAM2gF,EAAkBjD,OAAO19E,GAAO4gF,OAChCnD,IAAOoD,GAAqB7gF,IAAS0gF,EAAMjD,KAAKkD,GAEtD,OAA+B,IAA3BA,EAAgBt2F,OACX,CACLozF,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,6BAIzC,CACLumG,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,6BAGnE,IAAK,SACH,IAAMumG,IAAOoD,GAAqB7gF,IAAS0gF,EAAMjD,KAAKC,OAAO19E,IAC7D,MAAO,CACLy9E,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,6BAGnE,IAAK,UACH,IAAMumG,IAAOoD,GAAqB7gF,IAAS0gF,EAAMjD,KAAKC,OAAO19E,IAC7D,MAAO,CACLy9E,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,6BAGnE,IAAK,SACH,IAAMumG,IAAOoD,GAAqB7gF,IAAS0gF,EAAMjD,KAAKC,OAAO19E,IAC7D,MAAO,CACLy9E,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,6BAGnE,IAAK,YAML,IAAK,WAML,IAAK,SACH,MAAO,CACLumG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,6BAGhD,IAAK,SACH,IAAMumG,IAAOoD,GAAqB7gF,IAAS0gF,EAAMjD,KAAKC,OAAO19E,IAC7D,MAAO,CACLy9E,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,6BAInE,QACE,IAAMumG,IAAOoD,GAAqB7gF,IAAS0gF,EAAMjD,KAAKC,OAAO19E,IAC7D,MAAO,CACLy9E,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,+BA+B1DknG,EAAgB,SAACp+E,GAC5B,IACIy9E,EADU,cACKA,KAAKC,OAAO19E,IAG/B,OAAIy9E,EACK,CAAEA,KAAMA,EAAM/6F,kBAActL,GAE5B,CAAEqmG,KAAMA,EAAM/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,wBAmExD4pG,EAAkB,SAACC,EAAUC,GACxC,IAAMC,EAAQD,EAAkB3+F,KAAI,SAAC6+F,GAAD,OAAQA,EAAGD,SAyC/C,OAxCgBF,EAAS1+F,KAAI,SAACkpF,EAAK4V,GACjC,IAAIC,EAAiB,IAAIrgG,MA+BzB,OA9BkB8qF,OAAOjsE,OAAO2rE,GAGtB37E,SAAQ,SAACyxF,EAAUC,GAAc,IAAD,EAClCC,IAAWN,EAAMK,KAAN,UAAkBL,EAAMK,UAAxB,aAAkB,EAAiBC,UAC9CC,EAAaP,EAAMK,GACrBL,EAAMK,GAAUG,UAAUJ,GAC1B,CAAE5D,MAAM,EAAM/6F,aAAc,IAEhC,GAAiB,KAAb2+F,EACEE,GACFH,EAAezkG,KAAK,CAClB+kG,OAAQJ,EACRthF,MAAOqhF,EACPz3G,MAAM,qBAGL,CACL,GAAI43G,EAAW/D,KACb,OAEA2D,EAAezkG,KAAK,CAClB+kG,OAAQJ,EACRthF,MAAOqhF,EACPz3G,MAAO43G,EAAW9+F,mBAMnB,2BACF6oF,GADL,IAEEoW,cAAeR,EAAW,EAC1BC,eAAgBA,EAChBQ,aAAYR,EAAe/2F,OAAS,SAgL7Bw3F,EAAa,CACxBC,sBApamC,SAAC9hF,GACpC,IAAK6gF,GAAqB7gF,GACxB,MAAO,CACLy9E,MAAM,EACN/6F,kBAActL,GAKlB,GAAqB,kBAAV4oB,GAEsB,IADP09E,OAAO19E,GAAO4gF,OAClBv2F,OAClB,MAAO,CACLozF,MAAM,EACN/6F,kBAActL,GAKpB,OAAOqpG,EAAezgF,IAkZtBygF,iBACAsB,qBAtTkC,SAAC/hF,GACnC,OAAK6gF,GAAqB7gF,GAOnBo+E,EAAcp+E,GANZ,CACLy9E,MAAM,EACN/6F,kBAActL,IAmTlBgnG,gBACAb,eACAyE,iBApR8B,SAAChiF,GAC/B,IAEE,IAAMiiF,EAAW7D,EAAcp+E,GAEzBkiF,EAAqC,IAAzBxE,OAAO19E,GAAO3V,OAE1B83F,EAAkBF,GAAYC,EAEpC,MAAO,CACLzE,KAAM0E,EACNz/F,aAAcy/F,OACV/qG,EACA7E,cAAU0E,cAAc,CAAEC,GAAI,sBAEpC,MAAOkrG,GACP,MAAO,CACL3E,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,wBAmQhDmrG,YAjPyB,SAACp/F,GAC1B,GAAIujF,GAAkBvjF,IAAkB,KAATA,GAAe,QAAQw6F,KAAKC,OAAOz6F,IAChE,MAAO,CAAEw6F,MAAM,EAAO/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,qBAGpE,IAAMorG,EAAUlc,IAAOnjF,EAAM,cAAcq/F,UAC3C,MAAO,CACL7E,KAAM6E,EACN5/F,aAAc4/F,OAAUlrG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,sBA0OpEqrG,iBAvO8B,SAAChC,GAC/B,IAAMt9F,EAAOq9F,EAA6BC,GACpC9C,EAAOrX,IAAOnjF,EAAM,cAAcq/F,UACxC,MAAO,CACL7E,KAAMA,EACN/6F,aAAc+6F,OAAOrmG,EAAY7E,cAAU0E,cAAc,CAAEC,GAAI,sBAmOjEsrG,sBAjK4B,SAACxiF,GAG7B,OAFuB,OAAVA,QAA4B5oB,IAAV4oB,EAGtB,CAAEy9E,MAAM,EAAM/6F,kBAActL,GAE5B,CACLqmG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,+BA0JhDurG,oBArJ0B,SAACziF,EAAgBhrB,EAAW0tG,GAItD,OAF4B,IADT1tG,EAAK+pB,QAAO,SAACtkB,GAAD,OAAUijG,OAAOjjG,EAAKioG,MAAiBhF,OAAO19E,MAAQ3V,OAI5E,CAAEozF,MAAM,EAAM/6F,kBAActL,GAE5B,CACLqmG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,+BA6IhDyrG,oBAxIiC,SAAC3iF,GAClC,IAAM7tB,EAAkBI,cACxB,GAAqB,kBAAVytB,EACT,MAAO,CACLy9E,KAAMz9E,GAAS,GAAKA,GAAS,EAC7Btd,aAAcvQ,EAAK8E,cAAc,CAAEC,GAAI,6BAI3C,GAAqB,kBAAV8oB,EAAoB,CAC7B,IAAM4iF,EAAwBzwG,EAAK0wG,WAAW,IAAIpkF,KAAKuB,GAAQ,CAAE8iF,QAAS,SAI1E,GAF2B1c,IAAOwc,EAAuB,OAAQzwG,EAAK4wG,QAE/CT,UACrB,MAAO,CACL7E,MAAM,EACN/6F,kBAActL,GAKpB,MAAO,CACLqmG,MAAM,EACN/6F,aAAcvQ,EAAK8E,cAAc,CAAEC,GAAI,+BAiHzC8rG,eAvG4B,SAAChjF,GAC7B,GAAqB,mBAAVA,EAET,MAAO,CAAEy9E,MAAM,EAAM/6F,kBAActL,GAC9B,GAAqB,kBAAV4oB,EAAoB,CACpC,IAAMijF,EAAajjF,EAAM0rE,cAAckV,OACvC,GAAmB,SAAfqC,GAAwC,UAAfA,EAE3B,MAAO,CAAExF,MAAM,EAAM/6F,kBAActL,QAEhC,GAAqB,kBAAV4oB,IACF,IAAVA,GAAyB,IAAVA,GAEjB,MAAO,CAAEy9E,MAAM,EAAM/6F,kBAActL,GAIvC,MAAO,CACLqmG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,+BAqF9CgsG,gBA7D6B,SAACljF,GAC9B,cAAeA,GACb,IAAK,SACH,IAAMy9E,EAAgBz9E,IAAU,IAAMA,GAAS,GAC/C,MAAO,CACLy9E,OACA/6F,aAAe+6F,EAAmBlrG,cAAU0E,cAAc,CAAEC,GAAI,6BAA1CE,GAE1B,IAAK,SACH,IAAM+rG,EAAcvhF,WAAW5B,GACzBy9E,GAAiB2F,MAAMD,IAAgBA,IAAgB,IAAMA,GAAe,GAClF,MAAO,CACL1F,OACA/6F,aAAe+6F,EAAmBlrG,cAAU0E,cAAc,CAAEC,GAAI,6BAA1CE,GAK5B,MAAO,CACLqmG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,qBA0C9CmsG,iBAtC8B,SAACrjF,GAC/B,cAAeA,GACb,IAAK,SACH,IAAMy9E,EAAgBz9E,IAAU,KAAOA,GAAS,IAChD,MAAO,CACLy9E,OACA/6F,aAAe+6F,EAAmBlrG,cAAU0E,cAAc,CAAEC,GAAI,8BAA1CE,GAE1B,IAAK,SACH,IAAM+rG,EAAcvhF,WAAW5B,GACzBy9E,GAAiB2F,MAAMD,IAAgBA,IAAgB,KAAOA,GAAe,IACnF,MAAO,CACL1F,OACA/6F,aAAe+6F,EAAmBlrG,cAAU0E,cAAc,CAAEC,GAAI,8BAA1CE,GAK5B,MAAO,CACLqmG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,+BAmB9CosG,WAnFwB,SAACtjF,GACzB,GAAqB,kBAAVA,EAAoB,CAC7B,IAAMijF,EAAajjF,EAAM0rE,cAAckV,OACvC,GAAmB,MAAfqC,GAAqC,MAAfA,EAExB,MAAO,CAAExF,MAAM,EAAM/6F,kBAActL,QAEhC,GAAqB,kBAAV4oB,IACF,IAAVA,GAAyB,IAAVA,GAEjB,MAAO,CAAEy9E,MAAM,EAAM/6F,kBAActL,GAIvC,MAAO,CACLqmG,MAAM,EACN/6F,aAAcnQ,cAAU0E,cAAc,CAAEC,GAAI,gCAsEnCqsG,EAAkB,SAACvjF,GAC9B,OAAOA,EACJzd,UAAU,OACV07F,QAAQ,mBAAoB,IAC5B2C,QAQQ4C,EAAqB,SAACxuG,GAEjC,GAAoB,kBAATA,GAA4C,IAAvBA,EAAK4rG,OAAOv2F,OAC1C,MAAO,GAKT,MADwB,cACJozF,KAAKzoG,GAChBA,EAIFuuG,EAAgBvuG,IA8GZyuG,EAAgB,SAACzuG,GAC5B,GAAoB,kBAATA,EACT,cAAOA,QAAP,IAAOA,IAAQ,EAGjB,GAAoB,kBAATA,EAAmB,CAC5B,IAAMgrB,EAAQ5zB,OAAO4I,GAErB,OAAO0uG,GAAgB1jF,GAAS,EAAIA,IAY3B2jF,EAAgB,WAAiD,IAAhDC,EAA+C,uDAA1B,sBACjD,OAAO,SAAC/gE,GACN,IAAMghE,EAAIzd,IAAOvjD,GACjB,OAAKghE,EAAEvB,UAIAuB,EAAErD,OAAOoD,IAHdt7G,QAAQo6C,KAAKG,EAAG,uBACT,MAMAihE,EAAiB,SAAC9uG,GAC7B,cAAeA,GACb,IAAK,UACH,OAAOA,EACT,IAAK,SACH,OAAQA,EAAK02F,cAAckV,QACzB,IAAK,OACH,OAAO,EACT,IAAK,QACH,OAAO,EACT,IAAK,IACH,OAAO,EACT,IAAK,IACH,OAAO,EAEX,MACF,IAAK,SACH,OAAgB,IAAT5rG,EACT,QACE,SAaO+uG,EAAU,CACrBC,cA3K2B,SAAChvG,GAC5B,cAAeA,GACb,IAAK,SACH,GAA2B,IAAvBA,EAAK4rG,OAAOv2F,QAAgC,KAAhBrV,EAAK4rG,OACnC,OAEF,OAAO5rG,EACT,IAAK,SAEL,IAAK,UACH,OAAOuuG,EAAgBvuG,EAAK6N,YAC9B,IAAK,SACH,GAAI2jF,GAAkBxxF,GACpB,OAEF,GAAIivG,iBAAOjvG,GACT,OAAOuuG,EAAgBvuG,EAAK6N,cA4JlCqhG,YA7FkB,SAAC3D,GACnB,MAAyB,kBAAdA,EAlCoB,SAAC4D,GAChC,IAAMC,EAAU7e,KAAKmD,MAAMyb,EAAS,OAE9BE,EAAW,IAAI5lF,KADM,MAAV2lF,EACoB,KAE/BE,EAAgBH,EAAS5e,KAAKmD,MAAMyb,GAAU,KAEhDI,EAAehf,KAAKmD,MAAM,MAAQ4b,GAEhC/H,EAAUgI,EAAe,GAE/BA,GAAgBhI,EAEhB,IAAMC,EAAQjX,KAAKmD,MAAM6b,EAAY,MAC/B9H,EAAUlX,KAAKmD,MAAM6b,EAAe,IAAM,GAEhD,OAAO,IAAI9lF,KACT4lF,EAASnF,cACTmF,EAASlF,WACTkF,EAASrF,UACTxC,EACAC,EACAF,GAaOiI,CAAkBjE,GACK,kBAAdA,EACA,IAAI9hF,KAAK8hF,GAEhB0D,iBAAO1D,GACTA,OADF,GAwFPkD,gBACAK,iBACAW,WAdwB,SAACzvG,GACzB,IAAMsN,EAASwhG,EAAe9uG,GAC9B,YAAeoC,IAAXkL,EACKA,EAGFA,EAAS,EAAI,GASpBoiG,gBApF6B,SAACnE,GAC9B,MAAyB,kBAAdA,EACFV,WAASC,QAAQ6E,IAAUpE,GAAWnE,cAAe,CAAEwI,KAAM,QACjEC,QAAQ,SAAU,CAAEC,eAAe,IACnCC,WAC2B,kBAAdxE,EACA,IAAI9hF,KAAK8hF,GAEhB0D,iBAAO1D,GACTA,OADF,IA+EIyE,EAAgB,SAACC,GAC5B,OAAyB,KAAlBA,EAAKC,WAAwC,GAApBD,EAAKE,aAAoBF,EAAKG,cAGnDC,EAAgB,SAACJ,GAC5B,OAAyB,GAAlBA,EAAKC,WAAkBD,EAAKE,cA6BxBG,EAAqB,SAACriG,GAAgB,IAAD,EAChD,MAAmC,oBAA5B,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAMkiG,aAAb,iBAAyCliG,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAMkiG,oBAA/C,QAAmE,GAG/DI,EAA0B,SAACtiG,GAMtC,OAtBqC,SAACA,GAAgB,IAAD,EACrD,MAAiC,oBAA1B,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAMiiG,WAAb,UAA0D,IAAf,OAAJjiG,QAAI,IAAJA,OAAA,EAAAA,EAAMiiG,YAAkB,UAA/D,QAAyE,EAgBzDM,CAAwBviG,GAbR,SAACA,GAAgB,IAAD,EACvD,MAAmC,oBAA5B,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAMkiG,aAAb,UAA8D,IAAjB,OAAJliG,QAAI,IAAJA,OAAA,EAAAA,EAAMkiG,qBAA/C,QAAwE,EAatDM,CAA0BxiG,GAVnB,SAACA,GAAgB,IAAD,EAChD,MAAmC,oBAA5B,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAMmiG,aAAb,iBAAyCniG,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAMmiG,oBAA/C,QAAmE,EAU1DM,CAAmBziG,IA2DxB0iG,EAAgC,SAACnJ,EAAeC,GAC3D,IAAMmJ,EAAgB,IAAInnF,KAK1B,OAJAmnF,EAAQC,SAASrJ,GACjBoJ,EAAQE,WAAWrJ,GACnBmJ,EAAQG,WAAW,GACnBH,EAAQI,gBAAgB,GACjBJ,GAGIK,EAAwB,SAAC1J,GAAD,OAAuC,IAAVA,GAGrD2J,GAA0B,SAACjjG,GACtC,OACEA,EAAKi8F,cACL,KACCj8F,EAAKk8F,WAAa,EAAI,GAAK,IAAM,KACjCl8F,EAAKk8F,WAAa,GACnB,KACCl8F,EAAK+7F,UAAY,GAAK,IAAM,IAC7B/7F,EAAK+7F,WAKImH,GAA0B,SAACtiB,GACtC,GAAIA,GAAaA,EAAUx5E,OAAS,EAAG,CACrC,IAAI0O,EAAY,IAAI0F,KAAKolE,EAAU,IAE/BuiB,EADU,IAAI3nF,KAAKolE,EAAU,IACRnlE,UAAY3F,EAAU2F,UAC/C,OAAoD,GAA7C6mE,KAAK8gB,KAAKD,EAAU,OAA8B,KAEzD,OAAO,GASEE,GAAoB,SAACziB,GAChC,IAAMib,EAAyB,GAC/B,GAAIjb,GAAaA,EAAUx5E,OAAS,EAGlC,IAFA,IAAI0O,EAAY,IAAI0F,KAAKolE,EAAU,IAC/B7qE,EAAU,IAAIyF,KAAKolE,EAAU,IAC1B9qE,GAAaC,GAClB8lF,EAAUniG,KAAK,IAAI8hB,KAAK1F,IACxBA,EAAUgmF,QAAQhmF,EAAUimF,UAAY,GAG5C,OAAOF,GAkBIyH,GAAyB,SAACtjG,GACrC,IAAM9Q,EAAOI,cACb,OAAyB,IAAlB0Q,EAAKs8F,SAAL,UACAptG,EAAK8E,cAAc,CAAEC,GAAI,eADzB,YAC4C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WAClC,IAAlB/7F,EAAKs8F,SAAL,UACGptG,EAAK8E,cAAc,CAAEC,GAAI,eAD5B,YAC+C+L,EAAK+7F,WACpD,IA0DOwH,GAAgB,SAAC/H,EAAUt0G,GAAX,OAjBH,SAACs0G,EAAUt0G,GACnC,IAAIs8G,EACJ,IACEA,OAA0BrvG,IAAbqnG,EAAIt0G,IAAmC,OAAbs0G,EAAIt0G,GAC3C,MAAOP,GACP68G,GAAa,EAEf,OAAOA,EAUyDA,CAAWhI,EAAKt0G,IAOrEq8F,GAAoB,SAACxmE,GAAD,OAAmC,OAAVA,QAA4B5oB,IAAV4oB,GAO/D6gF,GAAuB,SAAC7gF,GAAD,OAAiBwmE,GAAkBxmE,IAE1D0jF,GAAkB,SAACvF,GAC9B,OAAa,OAANA,QAAoB/mG,IAAN+mG,GAAmBiF,MAAMjF,IAGnCuI,GAAqB,SAACvI,GAAD,OAAmCuF,GAAgBvF,IAMxEwI,GAAwB,WAAoB,IAAD,uBAAfC,EAAe,yBAAfA,EAAe,gBACtD,OAAQA,EAAIt4G,MAAK,SAACmM,GAAD,OAAU+rF,GAAkB/rF,OAQlCosG,GAAsB,SAAC5B,GAClC,OAAIvB,GAAgBuB,GAAc,EAE3B1f,KAAKC,MAAOyf,EAAO,KAAQ,KAAO,KAG9B6B,GAAsB,SAAC7B,GAClC,OAAIvB,GAAgBuB,GAAc,EACpB,KAAPA,GAQI8B,GAAiC,SAAC9B,GAC7C,OAAIvB,GAAgBuB,GAAc,EAC3B1f,KAAKC,MAAuC,KAAhCyf,EAAO,KAAO74G,OAAO46G,UAAkB,KAK/CC,GAAmB,SAAChkG,GAAD,OAFA,SAACA,GAAD,OAAgBA,EAAKyb,UAAY,IAEjBwoF,CAAiBjkG,GAAQ,IAQlE,SAASkkG,GAAyBC,EAAiBC,GACxD,KAAID,EAAM/8F,OAAS,GAAnB,CACA,IAAIi9F,EACJ,IACEA,EAAcF,EAAMC,EAAa,GACjC,MAAOz9G,GAEP,YADAtB,QAAQsB,MAAM,IAAI29G,MAAM,uBAG1B,OAAOD,GASF,SAASE,GAA6BJ,EAAiBC,GAC5D,KAAID,EAAM/8F,OAAS,GAAnB,CACA,IAAIi9F,EACJ,IACEA,EAAcF,EAAMC,EAAa,GACjC,MAAOz9G,GAEP,YADAtB,QAAQsB,MAAM,IAAI29G,MAAM,uBAG1B,OAAOD,GAQF,IAUMG,GAAkC,SAACzxG,EAASsoG,GAEvD,IAZiCH,EAY3BuJ,EAAW1xG,EAAE0oB,UAAY4/E,EAAE5/E,UAG3BipF,EAAiBvhB,IAAOwhB,IAAIF,GAAUlH,OAAO,SAG7ChE,EAAQjX,KAAKmD,MAAMtC,IAAOshB,SAASA,GAAUG,WAEnD,MAAM,GAAN,QApBiC1J,EAoBJ3B,GAnBrB2B,EAAI,IAAMA,GAAK,EAAI,IAAM,IAAMA,GAmBvC,YAAuCwJ,IAkC5BG,GAAgC,SAAC7kG,GAC5C,IAAM9Q,EAAOI,cACPwmB,EAAY,IAAI0F,MAAK,IAAIA,MAAO29E,cAAc2B,OAAO,EAAG,KACxD/kF,EAAgB/V,aAAgBwb,KAAOxb,EAAO,IAAIwb,KAAKxb,GACzD8kG,EAAYhvF,EAAUmmF,cAEtB8I,EAAc,CAAC,GADHD,EAAY,IAAM,GAAKA,EAAY,MAAQ,GAAMA,EAAY,MAAQ,EAAI,GAAK,GAC7D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACjEE,EAAWjvF,EAAQkmF,cAAgB6I,EACnCG,EAAYlvF,EAAQmmF,WAAapmF,EAAUomF,WAC3C+I,EAAY,IACdD,IACAC,GAAa,IAEf,IAAIC,EAAUnvF,EAAQgmF,UAAYjmF,EAAUimF,UACxCmJ,EAAU,IACRD,EAAY,EACdA,KAEAD,IACAC,EAAY,IAEdC,GAAWH,EAAYjvF,EAAUomF,aAGnC,IAAIiJ,EAAWD,GAAW,EAAI5iB,KAAKmD,MAAMyf,EAAU,GAAK,EAGxD,OAFAA,GAAW,EAAIC,GAGZH,EAAW,EACRA,EAAW,EAAX,UACKA,EADL,YACiB91G,EAAK8E,cAAc,CAAEC,GAAI,kBAD1C,UAEK+wG,EAFL,YAEiB91G,EAAK8E,cAAc,CAAEC,GAAI,iBAC1C,KACHgxG,EAAY,EACTA,EAAY,EAAZ,WACMA,EADN,YACmB/1G,EAAK8E,cAAc,CAAEC,GAAI,mBAD5C,WAEMgxG,EAFN,YAEmB/1G,EAAK8E,cAAc,CAAEC,GAAI,kBAC5C,KACHkxG,EAAW,EACRA,EAAW,EAAX,WACMA,EADN,YACkBj2G,EAAK8E,cAAc,CAAEC,GAAI,kBAD3C,WAEMkxG,EAFN,YAEkBj2G,EAAK8E,cAAc,CAAEC,GAAI,iBAC3C,KACHixG,EAAU,EACPA,EAAU,EAAV,WACMA,EADN,YACiBh2G,EAAK8E,cAAc,CAAEC,GAAI,kBAD1C,WAEMixG,EAFN,YAEiBh2G,EAAK8E,cAAc,CAAEC,GAAI,gBAC1C,KAMKmxG,GAAY,SAACC,GACxB,OAHmB,SAACA,GAAD,MAAiB,2BAA2B7K,KAAK6K,GAG/DC,CAAMD,IAIK,IADhBj3G,EAAIi3G,EAAIE,UAAU,GAAGv7G,MAAM,KACrBod,SACJhZ,EAAI,CAACA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAGhC,QAAU,EADjBA,EAAI,KAAOA,EAAEyxC,KAAK,MACM,GAAM,IAAMzxC,GAAK,EAAK,IAAS,IAAJA,GAASyxC,KAAK,KAAO,OARhD,mBAExB,IAAIzxC,GASOo3G,GAAyB,SAACtK,GAAD,OACpCuF,GAAgBvF,GAAK,EAArB,OAAyBA,QAAzB,IAAyBA,IAAK,GAmBnBuK,GAAsB,SAACzlG,GAClC,GAAIujF,GAAkBvjF,GAAO,MAAO,GAGpC,IAAM2gG,EAAa,mBACnB,MAAoB,kBAAT3gG,GAjBkB,SAACA,GAC9B,OAAIujF,GAAkBvjF,KAEF,kBAATA,GADG,oEAC6Bw6F,KAAKx6F,IAchB0lG,CAAgB1lG,GAAcmjF,IAAOnjF,GAAMu9F,OAAOoD,GAC9D,kBAAT3gG,GAAqBA,EAAKoH,OAAS,EAAUpH,EACpDA,aAAgBwb,KAAa2nE,IAAOnjF,GAAMu9F,OAAOoD,GACjDxd,IAAOwiB,SAAS3lG,GAAcA,EAAKu9F,OAAOoD,GAEvC,IAGIiF,GAAe,SAAC5lG,GAC3B,IAAMu9F,EAAS,aACf,OAAIha,GAAkBvjF,GAAc,GAChB,kBAATA,GACPA,aAAgBwb,KADiB2nE,IAAOnjF,GAAMu9F,OAAOA,GAErDpa,IAAOwiB,SAAS3lG,GAAcA,EAAKu9F,OAAOA,GACvC,IAGIsI,GAAc,SAACC,GAAD,uBAAe,mCAAf,aAAe,EAA6BtL,KAA7B,OAAkCsL,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAWC,YAE1EC,GAAe,SAAChmG,GAC3B,OAAIujF,GAAkBvjF,GAAc,GAChB,kBAATA,EAA0BmjF,IAAO,IAAI3nE,KAAKxb,IAAOu9F,OAAO,UAC/Dv9F,aAAgBwb,KAAa2nE,IAAOnjF,GAAMu9F,OAAO,UACjDpa,IAAOwiB,SAAS3lG,GAAcA,EAAKu9F,OAAO,UACvC,IAQIzlF,GAAW,SAAXA,EAAY0jF,GAAD,OACtByK,oBAAUzK,GAAK,SAAC/3D,EAAU1mB,EAAO71B,EAAag/G,GAG5CziE,EAFiB0iE,kBAAQD,GAAUh/G,EAAMk/G,oBAAUl/G,IAEnCm/G,mBAAStpF,GAASjF,EAASiF,GAASA,MAGjD,SAASupF,GAAY3xG,EAAc2hB,GACxC,GAAI3hB,EAAKyS,OAASkP,EAAO,CACvB,IAAK,IAAIH,EAAIG,EAAOH,EAAI,EAAGA,IACzB,GACqB,MAAnBxhB,EAAK4xG,OAAOpwF,KACW,KAAtBxhB,EAAK4xG,OAAOpwF,EAAI,IAAmC,KAAtBxhB,EAAK4xG,OAAOpwF,EAAI,IAAmC,KAAtBxhB,EAAK4xG,OAAOpwF,EAAI,IAE3E,OAAOxhB,EAAK4wG,UAAU,EAAGpvF,GAAK,MAGlC,OAAOxhB,EAAK4wG,UAAU,EAAGjvF,GAAS,MAElC,OAAO3hB,EAUJ,IAAM6xG,GAAe,SAACtL,GAAoE,IAAhDuL,EAA+C,wDAC1FC,EAAmBv9G,OAAO+xG,GAE9B,GAAIuF,GAAgBiG,GAAmB,MAAO,IAE9C,GAAiB,kBAANxL,EAAgB,CACzB,IAAMyL,EAAgB,gBAChB3H,EAAW2H,EAAcnM,KAAKU,GACpC,IAAK8D,EAAU,MAAO,IAGxB,IAAM4H,EAAcH,EAAoBn3G,cAAUwwG,OAAS,QACrD+G,EAAqBH,EAAiBI,eAAeF,GAC3D,OAAOC,GAGIE,GAAe,SAAC7L,GAM3B,cAAeA,GACb,IAAK,SACH,OAAO,EACT,IAAK,SACH,MANkB,gBAMGV,KAAKU,GAC5B,QACE,OAAO,IAIA8L,GAAY,yBAAQt8G,SAAQ,UAACw+D,IAAI+9C,6BAAL,QAA8B,MAE1DC,GAAgB,yBAAQx8G,SAAQ,UAACw+D,IAAIi+C,iCAAL,QAAkC,MAElEC,GAAiB,iBAAsC,SAA/Bl+C,IAAIm+C,wBAE5BC,GAAoB,SAACriH,GAChC,IAAQyiC,EAAoBziC,EAApByiC,SAAU6yE,EAAUt1G,EAAVs1G,MACZgN,EAAgB,mBACtB,MACuB,kBAAb7/E,GAAyBA,EAAS18B,SAASu8G,IACjC,kBAAVhN,GAAsBA,EAAMvvG,SAASu8G,IAK1C,SAASC,GAAsBxF,GAEpC,GAAIze,GAAkBye,GAAO,OAAO,EAIpC,IADc,0BACHxH,KAAKwH,GAAO,OAAO,EAE9B,IAAMyF,EAAOzF,EAAKh4G,MAAM,KAAK,GAC7B,OAAOU,SAAS+8G,GAIX,SAASC,GAAyB1F,GAEvC,GAAIze,GAAkBye,GAAO,OAAO,EAIpC,IADc,0BACHxH,KAAKwH,GAAO,OAAO,EAE9B,IAAMxI,EAAUwI,EAAKh4G,MAAM,KAAK,GAChC,OAAOU,SAAS8uG,GAEX,IAAMmO,GAAc,SAAC51G,GAC1B,cAAeA,GACb,IAAK,SACH,OAA8B,IAAvBA,EAAK4rG,OAAOv2F,OACrB,IAAK,SACH,OAAOq5F,GAAgB1uG,GACzB,IAAK,UACH,OAAO,EACT,IAAK,YACH,OAAO,EACT,IAAK,SACH,OAAO6rG,GAAqB7rG,GAC9B,IAAK,WACH,OAAO,EACT,IAAK,SACH,OAAI+L,MAAMqoG,QAAQp0G,GACO,IAAhBA,EAAKqV,SAEVm8E,GAAkBxxF,KA5mBQ61G,EAknBH71G,EAlnBiB81G,EAknBX,GAjnBrCjwG,KAAKoH,UAAU4oG,KAAUhwG,KAAKoH,UAAU6oG,IAknBtC,QACEtkB,GAAkBxxF,GApnBW,IAAC61G,EAAcC,GAwnBrCC,GAAiB,SAAC/1G,GAAD,OAAoB41G,GAAY51G,IAuCvD,IAAMg2G,GAAY,SAACC,GAAsD,IAArCC,EAAoC,uDAAlB,cACrD/4G,EAAkBI,cACxB,OAAOJ,EAAKg5G,WAAWF,EAAO,CAAEtjH,KAAMujH,KAG3BE,GAAY,SAAC1/C,GAA0B,IAAD,EAC3C2/C,EAAO7/C,SAASC,cAAc,OAEpC,OADA4/C,EAAKC,UAAY5/C,EACjB,UAAO2/C,EAAKE,mBAAZ,QAA2B,IAGhBC,GAAmB,SAACrN,GAC/B,OAAKA,EAGE5Y,KAAKC,MAA6B,KAAtB2Y,EAAI/xG,OAAO46G,UAAkB,IAFvC,MAKEyE,GAAkB,SAACC,GAAD,OAE7BhF,GAAmBgF,GAAa7E,GAAoB6E,GAAa,KAAO,OAE7DC,GAAyB,SAAC,GAA4C,IAAD,mBAA1C5yF,EAA0C,KAA/BC,EAA+B,KAChF,GAAIwtE,GAAkBztE,IAAcytE,GAAkBxtE,GAAU,OAAO,EACvE,IAAM4yF,EAAQxlB,IAAOrtE,GAErB,OADYqtE,IAAOptE,GACRqtE,KAAKulB,EAAO,YAqDZC,GAAuB,SAACvf,GACnC,IAEIwf,GAAO,EACPC,GAAM,EACNC,GAAQ,EACRC,OAAgC70G,EAiCpC,OAzF2B,WAC3B,IAAM4xG,EAAYD,UAAUC,UACtBkD,EAAW,SAASzO,KAAKuL,GACzBmD,EAAkB,iEAAiE1O,KACvFuL,GAGIoD,EAAWrD,UAAUqD,SACvBC,EAAsBrS,EAAgBsS,QAEtCF,EAASG,WAAW,OACtBF,EAAKrS,EAAgBwS,QACZJ,EAASG,WAAW,OAC7BF,EAAKrS,EAAgByS,MACZL,EAASG,WAAW,SAC7BF,EAAKrS,EAAgB0S,MAErBN,EAASn+G,SAAS,WAClBm+G,EAASn+G,SAAS,SAClBm+G,EAASn+G,SAAS,QAElBo+G,EAAKrS,EAAgB2S,IACZP,EAASn+G,SAAS,aAC3Bo+G,EAAKrS,EAAgB4S,SAGvB,IAAMC,EAAkB,UAAUpP,KAAKuL,GACjC8D,EAAmB,WAAWrP,KAAKuL,GACnC+D,EAAkB,UAAUtP,KAAKuL,KAAe6D,EAElDG,EAAmB/S,EAAQqS,QAa/B,OAXIO,EACFG,EAAU/S,EAAQgT,OACTH,EACTE,EAAU/S,EAAQiT,QACTH,IACTC,EAAU/S,EAAQkT,QAMb,CACLd,KACAW,UACAI,WALAlB,GAAYC,EAAkBjS,EAAWmT,OAASnT,EAAWoT,SAU5CC,GAOJlB,KAAOrS,EAAgByS,OAChCngB,EAAMkhB,WACRxB,GAAQ,GAEN1f,EAAMmhB,UACR3B,GAAO,IAIPxf,EAAMohB,QACS,QAAdphB,EAAMniG,KAAiBmiG,EAAMl4D,WAAau5E,cAAcC,0BAEzD7B,GAAM,IAGJzf,EAAMniG,OAAOkwG,GAA8B/N,EAAMniG,OAAO4wG,KAC1DgR,GAAM,EAENE,EAAYD,EACRjR,EAA+BzO,EAAMniG,KACrCkwG,EAA2B/N,EAAMniG,QAGnCmiG,EAAMuhB,UACR/B,GAAO,GAELxf,EAAMohB,SACR3B,GAAM,IAIH,CACLD,OACAC,MACAC,QACAC,cAIS6B,GAAQ,SAAC94G,GACpB,OAASA,EAAO,EAAI,GAGT+4G,GAAa,WACxBC,YAAW,WACTtzG,OAAOuzG,SAAS,CACdC,IAAKxzG,OAAOyzG,YACZC,SAAU,aAEX,O,+jBCr4CC/vG,EAAgBvW,YAAgB,CACpCumH,KAzgBW,WAAyB,IAAxB5mH,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAK8Y,IACH,MAAO,GAGT,KAAK7Y,IACH,MAA4BF,EAAOM,QAA3BqW,EAAR,EAAQA,SAAU0G,EAAlB,EAAkBA,MACZvE,EAAQ,eAAQ/Y,GAQtB,OAPAsd,EAAM6K,SAAQ,SAAC7M,GACbvC,EAASuC,GAAT,uCACKtb,EAAMsb,IACN1E,EAAS0E,IAFd,IAGEurG,UAAW7vF,KAAK3jB,MAAMuD,EAAS0E,GAAcwrG,UAAY,KAAO,SAG7D/tG,EAIT,QACE,OAAO/Y,IAqfXsd,MAhfY,WAAyB,IAAxBtd,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAK8Y,IACH,MAAO,GAGT,KAAK7Y,IACH,IAAQmd,EAAUrd,EAAOM,QAAjB+c,MACR,OAAOypG,IAAMzpG,GAIf,QACE,OAAOtd,IAoeXgnH,mBA/dyB,WAAyB,IAAxBhnH,EAAuB,uDAAf,GAAIC,EAAW,uCACjD,OAAQA,EAAOC,MACb,KAAK8Y,IACH,MAAO,GAGT,KAAKiuG,IACL,KAAKA,IACH,MAAuChnH,EAAOM,QAAtCgG,EAAR,EAAQA,WAAYb,EAApB,EAAoBA,eACdqT,EAAQ,eAAQ/Y,GAChBwb,EAAO,IAAIwb,KASjB,OARAxb,EAAK6iG,WAAW7iG,EAAKkiG,aAAe,GACpC3kG,EAASqF,gBAA4B,CACnC9C,aAAc8C,eACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,EAAKm5F,cACXpuG,aACAb,kBAEKqT,EAET,KAAKmuG,IACL,KAAKA,IACH,MAAuCjnH,EAAOM,QAAtCgG,EAAR,EAAQA,WAAYb,EAApB,EAAoBA,eACdqT,EAAQ,eAAQ/Y,GAChBwb,EAAO,IAAIwb,KASjB,OARAxb,EAAK6iG,WAAW7iG,EAAKkiG,aAAe,GACpC3kG,EAASqF,sBAAkC,CACzC9C,aAAc8C,qBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,EAAKm5F,cACXpuG,aACAb,kBAEKqT,EAET,KAAKouG,IACL,KAAKA,IACH,MAAuClnH,EAAOM,QAAtCgG,EAAR,EAAQA,WAAYb,EAApB,EAAoBA,eACdqT,EAAQ,eAAQ/Y,GAChBwb,EAAO,IAAIwb,KASjB,OARAxb,EAAK6iG,WAAW7iG,EAAKkiG,aAAe,GACpC3kG,EAASqF,4BAAwC,CAC/C9C,aAAc8C,2BACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,EAAKm5F,cACXpuG,aACAb,kBAEKqT,EAET,KAAKquG,IACL,KAAKA,IACH,MAAuCnnH,EAAOM,QAAtCgG,EAAR,EAAQA,WAAYb,EAApB,EAAoBA,eACdqT,EAAQ,eAAQ/Y,GAChBwb,EAAO,IAAIwb,KASjB,OARAxb,EAAK6iG,WAAW7iG,EAAKkiG,aAAe,GACpC3kG,EAASqF,mBAA+B,CACtC9C,aAAc8C,kBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,EAAKm5F,cACXpuG,aACAb,kBAEKqT,EAET,KAAKsuG,IACL,KAAKA,IACH,OAAuCpnH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,kBAA8B,CACrC9C,aAAc8C,iBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKuuG,IACL,KAAKA,IACH,IAAMvuG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,iBAA6B,CACpC9C,aAAc8C,gBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAET,KAAKwuG,IACL,KAAKA,IACH,OAAuCtnH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,0BAAsC,CAC7C9C,aAAc8C,yBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKyuG,IACL,KAAKA,IACH,IAAMzuG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAET,KAAK0uG,IACL,KAAKA,IACH,OAAuCxnH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAK2uG,IACL,KAAKA,IACH,IAAM3uG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,gBAA4B,CACnC9C,aAAc8C,eACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAET,KAAK4uG,IACL,KAAKA,IACH,IAAM5uG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,wBAAoC,CAC3C9C,aAAc8C,uBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAET,KAAK6uG,IACL,KAAKA,IACH,OAAuC3nH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,gBAA4B,CACnC9C,aAAc8C,eACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKqG,IACL,KAAKA,IACH,IAAMrG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,mBAA+B,CACtC9C,aAAc8C,kBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAET,KAAK8uG,IACL,KAAKA,IACH,OAAuC5nH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAK+uG,IACL,KAAKA,IACH,OAAuC7nH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKgvG,IACL,KAAKA,IACH,IAAMhvG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAET,KAAKivG,IACL,KAAKA,IACH,OAAuC/nH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,iBAA6B,CACpC9C,aAAc8C,gBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKkvG,IACL,KAAKA,IACH,OAAuChoH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKmvG,IACL,KAAKA,IACH,OAAuCjoH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKovG,IACL,KAAKA,IACH,OAAuCloH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,kBAA8B,CACrC9C,aAAc8C,iBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKqvG,IACL,KAAKA,IACH,OAAuCnoH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,kBAA8B,CACrC9C,aAAc8C,iBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKsvG,IACL,KAAKA,IACH,OAAuCpoH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,iBAA6B,CACpC9C,aAAc8C,gBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAET,KAAKuvG,IACL,KAAKA,IACH,IAAMvvG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,kBAA8B,CACrC9C,aAAc8C,iBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAGT,KAAKwvG,IACL,KAAKA,IACH,IAAMxvG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,uBAAmC,CAC1C9C,aAAc8C,sBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAGT,KAAKyvG,IACL,KAAKA,IACH,OAAuCvoH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,iBAA6B,CACpC9C,aAAc8C,gBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAGT,KAAK0vG,IACL,KAAKA,IACH,OAAuCxoH,EAAOM,QAAtCgG,GAAR,GAAQA,WAAYb,GAApB,GAAoBA,eACdqT,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KASjB,OARAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,oBAAgC,CACvC9C,aAAc8C,mBACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,cACXpuG,cACAb,mBAEKqT,GAGT,KAAK2vG,IACL,KAAKA,IACH,IAAM3vG,GAAQ,eAAQ/Y,GAChBwb,GAAO,IAAIwb,KAOjB,OANAxb,GAAK6iG,WAAW7iG,GAAKkiG,aAAe,GACpC3kG,GAASqF,iCAA6C,CACpD9C,aAAc8C,gCACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,KAAMA,GAAKm5F,eAEN57F,GAGT,KAAK4vG,IACL,KAAKA,IACH,IAAM5vG,GAAQ,eAAQ/Y,GAMtB,OALA+Y,GAASqF,6BAAyC,CAChD9C,aAAc8C,4BACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,MAAM,IAAIwb,MAAO4xF,eAEZ7vG,GAGT,KAAK8vG,IACL,KAAKA,IACH,IAAM9vG,GAAQ,eAAQ/Y,GAMtB,OALA+Y,GAASqF,6BAAyC,CAChD9C,aAAc8C,4BACdyoG,UAAW7vF,KAAKD,MAAQ,IAAO,GAC/Bvb,MAAM,IAAIwb,MAAO4xF,eAEZ7vG,GAIT,QACE,OAAO/Y,IAmEX8oH,eA7DqB,WAA4B,IAA3B9oH,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAK8Y,IACH,OAAO,EAET,KAAK7Y,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiDX+oH,cA5CoB,WAA4B,IAA3B/oH,EAA0B,wDAAXC,EAAW,uCAC/C,OAAQA,EAAOC,MACb,KAAK8Y,IACH,OAAO,EAET,KAAK7Y,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+BXgpH,kBAzBwB,WAA2B,IAA1BhpH,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAK8Y,IACH,OAAO,KAET,KAAK7Y,IACH,IAAQgC,EAAUlC,EAAOM,QAAjB4B,MACR,OAAOA,EAET,KAAKhC,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAcPipH,EAAwB,CAC5BvmH,IAAK,WACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CAAC,iBAAkB,gBAAiB,sBAKlCC,gBAAeimH,EAAuBryG,GAG9C,IAAM3T,EAAc,SAACjD,GAAD,OAAWA,EAAM4W,UAG/BsyG,EAAY,SAAClpH,EAAOsb,GAAR,OAAyBrY,EAAYjD,GAAO4mH,KAAKtrG,IAC7D6tG,EAAiC,SAACnpH,EAAOsb,GAAR,OAC5CrY,EAAYjD,GAAOgnH,mBAAmB1rG,GAClCrY,EAAYjD,GAAOgnH,mBAAmB1rG,GAAcurG,UACpD,MACOuC,EAA4B,SAACppH,EAAOsb,GAAR,OACvCrY,EAAYjD,GAAOgnH,mBAAmB1rG,GAClCrY,EAAYjD,GAAOgnH,mBAAmB1rG,GAAcE,KACpD,MACO6tG,EAAkC,SAACrpH,EAAOsb,GAAR,aAC7CrY,EAAYjD,GAAOgnH,mBAAmB1rG,GAAtC,UACIrY,EAAYjD,GAAOgnH,mBAAmB1rG,UAD1C,aACI,EAAqD/U,WACrD,MACO+iH,EAAsC,SAACtpH,EAAOsb,GAAR,aACjDrY,EAAYjD,GAAOgnH,mBAAmB1rG,GAAtC,UACIrY,EAAYjD,GAAOgnH,mBAAmB1rG,UAD1C,aACI,EAAqD5V,eACrD,MASOuY,EAAkB,SAACje,GAAD,OAAW,SAAC+d,GACzC,OAAOA,EAAiBnD,KAAI,SAACuC,GAC3B,GAAI,OAACA,QAAD,IAACA,OAAD,EAACA,EAAQ7B,aAKN,CAEL,MACElB,+BAA2Cpa,EAAO,CAChDqG,iBAAkB8W,EAAO5W,WACzBD,qBAAsB6W,EAAOzX,iBAHzBa,EAAR,EAAQA,WAAYb,EAApB,EAAoBA,eAAgBgB,EAApC,EAAoCA,wBAK9B6iH,EAA0BJ,EAA+BnpH,EAAOmd,EAAO7B,cACvEkuG,EAAkBN,EAAUlpH,EAAOmd,EAAO7B,cAAcurG,UACxD4C,EAA6BJ,EACjCrpH,EACAmd,EAAO7B,cAEHouG,EAAiCJ,EACrCtpH,EACAmd,EAAO7B,cAUT,OALI6B,EAAO7B,eAKN6B,EAAOzW,yBAA4BA,GAA4BhB,KAKrC,MAA3B6jH,EACK,OAKPA,EAA0BC,GAC1BC,IAA+BljH,GAC/BmjH,IAAmChkH,KAOnC+jH,IAA+BljH,GAC/BmjH,IAAmChkH,GAE5B,OApDT,IAAMshH,EAAqBmC,EAA+BnpH,EAAOmd,GACjE,OAA0B,MAAtB6pG,EAAmC,OACnCA,EAAqBkC,EAAUlpH,EAAOmd,GAAQ0pG,gBA0D3C8C,EAAwB,SAAC3pH,EAAO+d,GAC3C,IAAI6rG,GAAa,EAMjB,OALA7rG,EAAiBnD,KAAI,SAACU,GAAkB,IAAD,EAC/BurG,EAAYsC,EAA+BnpH,EAAOsb,IACvC,MAAburG,GACKA,EAAY,IAAZ,UAAiBqC,EAAUlpH,EAAOsb,UAAlC,aAAiB,EAAgCurG,cADnC+C,GAAa,MAG/BA,GAKIC,GAAwB,SAAC7pH,GAAD,OAAWiD,EAAYjD,GAAO+oH,gB,8BClrBnE,8fAAO,IAAMe,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,0B,6BClBtC,8fAAO,IAAMC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,sBAEtBC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,0B,6BClBtC,8fAAO,IAAMC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAAwB,wBACxBC,EAA0B,0BAC1BC,EAAuB,uBAEvBC,EAAyB,yBACzBC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,2B,6BClBvC,8fAAO,IAAMC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,4BAE5BC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,yBAEzBC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAA6B,6BAC7BC,EAA+B,+BAC/BC,EAA4B,6B,iCClBzC,wqBAAO,IAAMC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,mCAEnCC,EACX,kDAEWC,EACX,kDAEWC,EAAqC,qCACrCC,EAAuC,uCACvCC,EAAoC,oCAEpCC,EACX,iDACWC,EACX,mDACWC,EACX,gDAEWC,EACX,iDACWC,EACX,mDACWC,EACX,gDAEWC,EACX,+CACWC,EACX,iDACWC,EACX,8CAEWC,EACX,+CACWC,EACX,iDACWC,EACX,+C,i9CC8VI13G,EAAY9W,YAAgB,CAChCumH,KAtXW,WAAyB,IAAxB5mH,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3BqW,EAAR,EAAQA,SAAU0G,EAAlB,EAAkBA,MACZvE,EAAQ,eAAQ/Y,GAStB,OARAsd,EAAM6K,SAAQ,SAACoM,GACbxb,EAASwb,GAAT,qCACElM,YAAY,GACTroB,EAAMu0B,IACN3d,EAAS2d,IAHd,IAIEwrC,aAAa,OAGVhnD,EAGT,KAAK5Y,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B29B,EAAR,EAAQA,MAAO1K,EAAf,EAAeA,SACTza,EAAW+1G,IAAK9uH,EAAOk+B,GAM7B,OALAnlB,EAASya,EAASe,YAAlB,uCACKv0B,EAAMk+B,IACN1K,GAFL,IAGEusC,aAAa,IAERhnD,EAGT,KAAK5Y,IACL,KAAKA,IACH,IAAMqzB,EAAWvzB,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGwzB,EAASe,WAFZ,uCAGOu6F,IAAK9uH,EAAMwzB,EAASe,YAAa,CAAC,iBAClCu6F,IAAKt7F,EAAU,CAAC,iBAJvB,IAKIusC,aAAa,MAMnB,KAAK5/D,IACL,KAAKA,IACH,IAAMqzB,EAAWvzB,EAAOM,QAClBwY,EAAQ,eAAQ/Y,GAMtB,OALA+Y,EAASya,EAASe,YAAlB,yBACElM,YAAY,GACTmL,GAFL,IAGEusC,aAAa,IAERhnD,EAET,KAAK5Y,IACL,KAAKA,IACH,IAAMqzB,EAAWvzB,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGwzB,EAASe,WAFZ,uCAGOv0B,EAAMwzB,EAASe,aAHtB,IAIII,YAAa30B,EAAMwzB,EAASe,aACzBf,GALP,IAMIusC,aAAa,MAMnB,KAAK5/D,IACL,KAAKA,IACH,IAAQ+9B,EAAUj+B,EAAOM,QAAjB29B,MACR,OAAIl+B,EAAMk+B,GACD4wF,IAAK9uH,EAAOk+B,GAEdl+B,EAET,KAAKG,IACL,KAAKA,IACH,IAAQw0B,EAAgB10B,EAAOM,QAAvBo0B,YACR,OAAO,2BACF30B,GADL,kBAEG20B,EAAYJ,WAFf,uCAGOu6F,IAAK9uH,EAAM20B,EAAYJ,YAAa,CAAC,iBACrCI,GAJP,IAKIorC,aAAa,MAMnB,KAAK5/D,IACH,IAAQo0B,EAAet0B,EAAOM,QAAtBg0B,WACR,OAAOu6F,IAAK9uH,EAAOu0B,GAIrB,KAAKp0B,IACH,IAAMo0B,EAAat0B,EAAOM,QACpBwY,EAAQ,2BACT/Y,GADS,kBAEXu0B,EAFW,2BAGPv0B,EAAMu0B,IAHC,IAIVlM,YAAY,MAGhB,OAAOtP,EAGT,KAAK5Y,IACH,IAAMo0B,EAAat0B,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGu0B,EAFH,2BAGOv0B,EAAMu0B,IAHb,IAIIlM,YAAY,MAKlB,KAAKloB,IACH,IAAM4uH,EAAc9uH,EAAOM,QACrBwY,EAAQ,eAAQ/Y,GAiBtB,OAhB0B,GAAtB+uH,EAAYnsG,OACduF,IAAQnoB,GAAO,SAACwzB,EAAee,GAC7Bxb,EAASwb,GAAT,2BACKf,GADL,IAEEnL,YAAY,OAIhB0mG,EAAY5mG,SAAQ,SAACoM,GACnBxb,EAASwb,GAAT,2BACKv0B,EAAMu0B,IADX,IAEElM,YAAY,OAKXtP,EAGT,KAAK5Y,IACH,IAAM4uH,EAAc9uH,EAAOM,QACrBwY,EAAQ,eAAQ/Y,GAiBtB,OAhB0B,GAAtB+uH,EAAYnsG,OACduF,IAAQnoB,GAAO,SAACwzB,EAAee,GAC7Bxb,EAASwb,GAAT,2BACKf,GADL,IAEEnL,YAAY,OAIhB0mG,EAAY5mG,SAAQ,SAACoM,GACnBxb,EAASwb,GAAT,2BACKv0B,EAAMu0B,IADX,IAEElM,YAAY,OAKXtP,EAIT,QACE,OAAO/Y,IAgNXsd,MA3MY,WAAyB,IAAxBtd,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQmd,EAAUrd,EAAOM,QAAjB+c,MACR,OAAOypG,IAAMzpG,GAGf,KAAKnd,IACH,IAAQmd,EAAUrd,EAAOM,QAAjB+c,MACR,OAAOixC,IAAK,GAAD,mBAAKvuD,GAAL,YAAesd,KAG5B,KAAKnd,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B29B,EAAR,EAAQA,MAAO1K,EAAf,EAAeA,SACf,OAAOxzB,EAAM4a,KAAI,SAAC2Z,GAAD,OAAiBA,IAAe2J,EAAQ1K,EAASe,WAAaA,KAGjF,KAAKp0B,IACH,IAAQo0B,EAAet0B,EAAOM,QAAtBg0B,WACR,OAAOv0B,EAAMs3B,QAAO,SAAC03F,GAAD,OAAqBA,IAAoBz6F,KAI/D,KAAKp0B,IACL,KAAKA,IACH,IAAMqzB,EAAWvzB,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkBwzB,EAASe,aAI7B,KAAKp0B,IACL,KAAKA,IACH,IAAQ+9B,EAAUj+B,EAAOM,QAAjB29B,MACR,OAAOl+B,EAAMs3B,QAAO,SAAC03F,GAAD,OAAqBA,IAAoB9wF,KAI/D,QACE,OAAOl+B,IAoKXivH,sBA/I4B,WAA4B,IAA3BjvH,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX8oH,eA/JqB,WAA4B,IAA3B9oH,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXkvH,SAlIe,WAA4B,IAA3BlvH,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXmvH,UApHgB,WAA4B,IAA3BnvH,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXovH,WAtGiB,WAA4B,IAA3BpvH,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXqvH,yBAxE+B,WAA2B,IAA1BrvH,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQgC,EAAUlC,EAAOM,QAAjB4B,MACR,OAAOA,EAET,KAAKhC,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DXgpH,kBAzFwB,WAA2B,IAA1BhpH,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQgC,EAAUlC,EAAOM,QAAjB4B,MACR,OAAOA,EAET,KAAKhC,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXsvH,YA1DkB,WAA2B,IAA1BtvH,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQgC,EAAUlC,EAAOM,QAAjB4B,MACR,OAAOA,EAET,KAAKhC,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXuvH,aA3CmB,WAA2B,IAA1BvvH,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQgC,EAAUlC,EAAOM,QAAjB4B,MACR,OAAOA,EAET,KAAKhC,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCXwvH,cA5BoB,WAA2B,IAA1BxvH,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQgC,EAAUlC,EAAOM,QAAjB4B,MACR,OAAOA,EAET,KAAKhC,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEmX,YAGR,IAAMlU,EAAc,SAACjD,GAAD,OAAWA,EAAMmX,WAG/Bs4G,EAAc,SAACzvH,EAAOu0B,GACjC,IAAM7pB,EAAOI,cACP0oB,EAAWvwB,EAAYjD,GAAO4mH,KAAKryF,GACzC,GAAIf,EAAU,CACZ,IAAMk8F,EAAiBl8F,EAAS0S,iBAC5BD,IAA8BjmC,EAAOwzB,EAAS0S,uBAC9Cv2B,EACEggH,EAAen8F,EAAS+S,eAC1BN,IAA8BjmC,EAAOwzB,EAAS+S,qBAC9C52B,EACEigH,EAAsBp8F,EAASkT,sBACjCT,IAA8BjmC,EAAOwzB,EAASkT,4BAC9C/2B,EACEsW,EAAeuN,EAAS9tB,eAC1Be,kBAAsCzG,EAAOwzB,EAAS9tB,qBACtDiK,EACEwM,EAAWqX,EAAS5tB,WACtBiqH,cAA8B7vH,EAAOwzB,EAAS5tB,iBAC9C+J,EACE6b,EAAcgI,EAAS1tB,cACzBgqH,iBAAoC9vH,EAAOwzB,EAAS1tB,oBACpD6J,EACJ,OAAO,2BACF6jB,GADL,IAEEu8F,oBAAkC,OAAdL,QAAc,IAAdA,OAAA,EAAAA,EAAgBtpF,eAAgB,GACpD4pF,kBAA8B,OAAZL,QAAY,IAAZA,OAAA,EAAAA,EAAcvpF,eAAgB,GAChD6pF,yBAA4C,OAAnBL,QAAmB,IAAnBA,OAAA,EAAAA,EAAqBxpF,eAAgB,GAC9Dzd,kBAA8B,OAAZ1C,QAAY,IAAZA,OAAA,EAAAA,EAAc0C,mBAAoB,GACpD5L,cAAsB,OAARZ,QAAQ,IAARA,OAAA,EAAAA,EAAUY,eAAgB,GACxCsP,iBAA4B,OAAXb,QAAW,IAAXA,OAAA,EAAAA,EAAaa,kBAAmB,GACjDsS,SAAUnL,EAASmL,UAAY,GAC/BuxF,mBAAoBxlH,EAAK8E,cAAc,CACrCC,GAAI+jB,EAAS28F,cAAgB,aAAe,kBAMvCC,EAA2B,SAACpwH,EAAOqwH,GAC9C,IAAM3lH,EAAOI,cAEP0oB,EADY88F,EAAiBtwH,GACR8U,MAAK,SAAC0e,GAAD,OAAcA,EAAS68F,cAAgBA,KACvE,GAAI78F,EAAU,CACZ,IAAMk8F,EAAiBl8F,EAAS0S,iBAC5BD,IAA8BjmC,EAAOwzB,EAAS0S,uBAC9Cv2B,EACEggH,EAAen8F,EAAS+S,eAC1BN,IAA8BjmC,EAAOwzB,EAAS+S,qBAC9C52B,EACEigH,EAAsBp8F,EAASkT,sBACjCT,IAA8BjmC,EAAOwzB,EAASkT,4BAC9C/2B,EACEsW,EAAeuN,EAAS9tB,eAC1Be,kBAAsCzG,EAAOwzB,EAAS9tB,qBACtDiK,EACEwM,EAAWqX,EAAS5tB,WACtBiqH,cAA8B7vH,EAAOwzB,EAAS5tB,iBAC9C+J,EACE6b,EAAcgI,EAAS1tB,cACzBgqH,iBAAoC9vH,EAAOwzB,EAAS1tB,oBACpD6J,EACJ,OAAO,2BACF6jB,GADL,IAEEu8F,oBAAkC,OAAdL,QAAc,IAAdA,OAAA,EAAAA,EAAgBtpF,eAAgB,GACpD4pF,kBAA8B,OAAZL,QAAY,IAAZA,OAAA,EAAAA,EAAcvpF,eAAgB,GAChD6pF,yBAA4C,OAAnBL,QAAmB,IAAnBA,OAAA,EAAAA,EAAqBxpF,eAAgB,GAC9Dzd,kBAA8B,OAAZ1C,QAAY,IAAZA,OAAA,EAAAA,EAAc0C,mBAAoB,GACpD5L,cAAsB,OAARZ,QAAQ,IAARA,OAAA,EAAAA,EAAUY,eAAgB,GACxCsP,iBAA4B,OAAXb,QAAW,IAAXA,OAAA,EAAAA,EAAaa,kBAAmB,GACjDsS,SAAUnL,EAASmL,UAAY,GAC/BuxF,mBAAoBxlH,EAAK8E,cAAc,CACrCC,GAAI+jB,EAAS28F,cAAgB,aAAe,kBAMvCI,EAAuC,SAClDvwH,EACAqwH,EACA3uH,GAEA,IAAMgJ,EAAOI,cAEP0oB,EADYg9F,EAA4BxwH,EAAO0B,GAC1BoT,MAAK,SAAC0e,GAAD,OAAcA,EAAS68F,cAAgBA,KAEvE,GAAK78F,EAAL,CAEA,IAAMk8F,EAAiBl8F,EAAS0S,iBAC5BD,IAA8BjmC,EAAOwzB,EAAS0S,uBAC9Cv2B,EACEggH,EAAen8F,EAAS+S,eAC1BN,IAA8BjmC,EAAOwzB,EAAS+S,qBAC9C52B,EACEigH,EAAsBp8F,EAASkT,sBACjCT,IAA8BjmC,EAAOwzB,EAASkT,4BAC9C/2B,EACEsW,EAAeuN,EAAS9tB,eAC1Be,kBAAsCzG,EAAOwzB,EAAS9tB,qBACtDiK,EACEwM,EAAWqX,EAAS5tB,WACtBiqH,cAA8B7vH,EAAOwzB,EAAS5tB,iBAC9C+J,EACE6b,EAAcgI,EAAS1tB,cACzBgqH,iBAAoC9vH,EAAOwzB,EAAS1tB,oBACpD6J,EACJ,OAAO,2BACF6jB,GADL,IAEEu8F,oBAAkC,OAAdL,QAAc,IAAdA,OAAA,EAAAA,EAAgBtpF,eAAgB,GACpD4pF,kBAA8B,OAAZL,QAAY,IAAZA,OAAA,EAAAA,EAAcvpF,eAAgB,GAChD6pF,yBAA4C,OAAnBL,QAAmB,IAAnBA,OAAA,EAAAA,EAAqBxpF,eAAgB,GAC9Dzd,kBAA8B,OAAZ1C,QAAY,IAAZA,OAAA,EAAAA,EAAc0C,mBAAoB,GACpD5L,cAAsB,OAARZ,QAAQ,IAARA,OAAA,EAAAA,EAAUY,eAAgB,GACxCsP,iBAA4B,OAAXb,QAAW,IAAXA,OAAA,EAAAA,EAAaa,kBAAmB,GACjDsS,SAAUnL,EAASmL,UAAY,GAC/BuxF,mBAAoBxlH,EAAK8E,cAAc,CACrCC,GAAI+jB,EAAS28F,cAAgB,aAAe,kBAKrCG,EAAmB,SAACtwH,GAAD,OAC9BiD,EAAYjD,GACTsd,MAAM1C,KAAI,SAACnL,GAAD,OAAQggH,EAAYzvH,EAAOyP,MACrC6nB,QAAO,SAAC9D,GAAD,OAAcA,EAASi9F,eAAiB,MAEvCD,EAA8B,SAACxwH,EAAO0B,GAAR,OACzC4uH,EAAiBtwH,GAAOs3B,QACtB,SAAC9D,GAAD,OACE9xB,KACEA,EAAW6E,YAAc7E,EAAW6E,aAAeitB,EAASjtB,eAC5D7E,EAAWgE,gBAAkBhE,EAAWgE,iBAAmB8tB,EAAS9tB,mBACpEhE,EAAWkE,YAAclE,EAAWkE,aAAe4tB,EAAS5tB,eAC5DlE,EAAWoE,eAAiBpE,EAAWoE,gBAAkB0tB,EAAS1tB,mBAG7D4qH,EAAuB,SAAC1wH,GACnC,IAAM2wH,EAAoBL,EAAiBtwH,GAAOs3B,QAAO,SAAC9D,GAAD,OAAcA,EAASnL,cAEhF,OAAiC,IAA7BsoG,EAAkB/tG,OAAqB,KAEvC+tG,EAAkB/tG,OAAS,EAAU+tG,OAAzC,GAEWC,EAAkB,SAAC5wH,GAAD,OAC7BswH,EAAiBtwH,GAAOs3B,QAAO,SAAC9D,GAAD,OAAwC,IAA1BA,EAASq9F,iBAC3CC,EAA8B,SAAC9wH,EAAO0B,GAAR,OACzCkvH,EAAgB5wH,GAAOs3B,QACrB,SAAC9D,GAAD,OACE9xB,KACEA,EAAW6E,YAAc7E,EAAW6E,aAAeitB,EAASjtB,eAC5D7E,EAAWgE,gBAAkBhE,EAAWgE,iBAAmB8tB,EAAS9tB,mBACpEhE,EAAWkE,YAAclE,EAAWkE,aAAe4tB,EAAS5tB,eAC5DlE,EAAWoE,eAAiBpE,EAAWoE,gBAAkB0tB,EAAS1tB,mBAG7DirH,EAAgB,SAAC/wH,GAAD,OAC3BswH,EAAiBtwH,GAAOs3B,QAAO,SAAC9D,GAAD,OAAwC,IAA1BA,EAASq9F,iBAE3CG,EAA4B,SAAChxH,EAAO0B,GAAR,OACvCqvH,EAAc/wH,GAAOs3B,QACnB,SAAC9D,GAAD,OACE9xB,KACEA,EAAW6E,YAAc7E,EAAW6E,aAAeitB,EAASjtB,eAC5D7E,EAAWgE,gBAAkBhE,EAAWgE,iBAAmB8tB,EAAS9tB,mBACpEhE,EAAWkE,YAAclE,EAAWkE,aAAe4tB,EAAS5tB,eAC5DlE,EAAWoE,eAAiBpE,EAAWoE,gBAAkB0tB,EAAS1tB,mBAG7DmrH,EAAiC,SAACjxH,EAAO0B,GAAR,OAC5CsvH,EAA0BhxH,EAAO0B,GAAYkZ,KAAI,SAAC2pG,GAChD,IAAM2M,EAAaC,IACjB,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAAYv2G,KAC7E,SAACw2G,EAAKjzG,GAAN,uBACEomG,EAAM6M,UADR,aACE,EACI5rH,MAAM,OACPoV,KAAI,SAAC4iG,GAAD,MAAW,CACd4T,IAAKjzG,EACLkzG,UAAW7T,EAAKh4G,MAAM,KAAK,GAC3B8rH,QAAS9T,EAAKh4G,MAAM,KAAK,OAE1B8xB,QAAO,SAAC85F,GAAD,OAASA,EAAIE,eAG7B,OAAO,2BAAK/M,GAAZ,IAAmB2M,mBAGVK,EAAsB,SAACvxH,GAClC,IAAM2wH,EAAoBL,EAAiBtwH,GAAOs3B,QAAO,SAAC9D,GAAD,OAAcA,EAASnL,cAEhF,OAAiC,IAA7BsoG,EAAkB/tG,OAAqB+tG,EAAkB,GAEjD,MAIDa,EAAiC,SAACxxH,GAAD,OAAWiD,EAAYjD,GAAOivH,uBAC/DwC,EAA0B,SAACzxH,GAAD,OAAWiD,EAAYjD,GAAO8oH,gBACxD4I,EAAmB,SAAC1xH,GAAD,OAAWiD,EAAYjD,GAAOkvH,UACjDyC,EAAoB,SAAC3xH,GAAD,OAAWiD,EAAYjD,GAAOmvH,WAClDyC,EAAqB,SAAC5xH,GAAD,OAAWiD,EAAYjD,GAAOovH,YAGnDyC,EAAwC,SAAC7xH,GAAD,OACnDiD,EAAYjD,GAAOqvH,0BACRyC,EAAiC,SAAC9xH,GAAD,OAAWiD,EAAYjD,GAAOgpH,mBAC/D+I,EAA0B,SAAC/xH,GAAD,OAAWiD,EAAYjD,GAAOsvH,aACxD0C,EAA2B,SAAChyH,GAAD,OAAWiD,EAAYjD,GAAOuvH,cACzD0C,EAA4B,SAACjyH,GAAD,OAAWiD,EAAYjD,GAAOwvH,gB,+BC1mBvE,wZAAO,IAAM0C,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,yCAEzCC,EAAuC,uCACvCC,EAAyC,yCACzCC,EAAsC,sCAEtCC,EAAwC,wCACxCC,EAA0C,0CAC1CC,EAAuC,uCAEvCC,EAA0C,0CAC1CC,EACX,4CACWC,EAAyC,0C,yKCD9CC,EAA0CC,IAA1CD,OAAQE,EAAkCD,IAAlCC,YAAaC,EAAqBF,IAArBE,iBAEvBC,EAAe,SAACC,EAAW/yD,GAC/B,IAAIgzD,GAAmB,EACvB,IACEA,EACEA,GACCD,EAAU5lH,KAAK8lH,OACdC,IAAEC,OAAOJ,EAAU5lH,KAAK8lH,MAAMpvB,eAAez9F,SAAS8sH,IAAEC,OAAOnzD,EAAM6jC,gBACzE,MAAOuvB,IACT,IACEJ,EACEA,GACCD,EAAU5lH,KAAKkmH,YACdH,IAAEC,OAAOJ,EAAU5lH,KAAKkmH,WAAWxvB,eAAez9F,SAAS8sH,IAAEC,OAAOnzD,EAAM6jC,gBAC9E,MAAOuvB,IAET,OAAOJ,GAGHM,EAAa,SAACzzD,GAClB,OACE,cAAC6yD,EAAD,2BAAY7yD,GAAZ,aACE,sBAAKuD,MAAO,CAAEmwD,QAAS,OAAQC,cAAe,OAA9C,UACsB,MAAnB3zD,EAAM1yD,KAAK2C,MAAgB,qBAAKizD,UAAU,OAAf,SAAuBlD,EAAM1yD,KAAK2C,OAC7D+vD,EAAM1yD,KAAKsmH,SACV,qBACEC,IAAK7zD,EAAM1yD,KAAKsmH,QAChBrwD,MAAO,CACLmwD,QAAS,eACTn0D,MAAO,MACPu0D,OAAQ,MACRC,YAAa,SACbvwD,UAAW,aAIhBxD,EAAM1yD,KAAK8lH,aAKdY,EAAkB,SAACh0D,GACvB,OACE,cAAC+yD,EAAD,2BAAiB/yD,GAAjB,aACE,sBAAKuD,MAAO,CAAEmwD,QAAS,OAAQC,cAAe,OAA9C,UACsB,MAAnB3zD,EAAM1yD,KAAK2C,MAAgB,qBAAKizD,UAAU,OAAf,SAAuBlD,EAAM1yD,KAAK2C,OAC7D+vD,EAAM1yD,KAAKsmH,SACV,qBACEC,IAAK7zD,EAAM1yD,KAAKsmH,QAChBrwD,MAAO,CACLmwD,QAAS,eACTn0D,MAAO,MACPu0D,OAAQ,MACRC,YAAa,SACbvwD,UAAW,aAIhBxD,EAAM1yD,KAAK8lH,aAMda,EAAQ,IAAIC,IAAkB,CAClCC,cAAe,GACfC,YAAY,IAGRC,EAAW,SAACr0D,GAChB,IAAMs0D,EAAOt0D,EAAMr1D,SACb4pH,EAAc,SAAC,GAAD,IAAG9xH,EAAH,EAAGA,IAAKyb,EAAR,EAAQA,MAAOs2G,EAAf,EAAeA,OAAQjxD,EAAvB,EAAuBA,MAAvB,OAClB,cAAC,IAAD,CAAc0wD,MAAOA,EAAOQ,YAAa,EAAaD,OAAQA,EAAQ/a,SAAUv7F,EAAhF,SACG,cAAGw2G,QAAH,IAAYC,EAAZ,EAAYA,cAAZ,OACC,qBAAKC,IAAKD,EAAyBpxD,MAAOA,EAA1C,SACG+wD,EAAKp2G,IADsBzb,KAFeA,IASnD,OAAO6xH,EAAK3xG,OAAS,EACnB,cAAC,IAAD,CAAWkyG,cAAY,EAAvB,SACG,cAAGf,OAAH,OACC,cAAC,IAAD,CACEgB,eAAgB,CACdv1D,MAAO,OACPw1D,gBAAiB,UACjBC,SAAU,QAEZzxD,MAAO,CACLhE,MAAO,QAETA,MAAO,EACPu0D,OAAQ,IACRmB,SAAUX,EAAK3xG,QAAU,EACzB4xG,YAAaA,EACbW,UAAW,SAACN,GACV,IAAMd,EAASG,EAAMiB,UAAUN,GAC/B,OAAOd,EAAkB,GAATA,QAMxB,cAACd,EAAD,eAAsBhzD,KAmMXm1D,IA1JkB,SAACn1D,GAAW,IAAD,IAGxCo1D,EAiBEp1D,EAjBFo1D,MACAC,EAgBEr1D,EAhBFq1D,WAFF,GAkBIr1D,EAfFs1D,eAeEt1D,EAdFu1D,gBAJF,MAIY,GAJZ,KAkBIv1D,EAbFv1D,KAaEu1D,EAZFw1D,kBANF,SAOEx6G,EAWEglD,EAXFhlD,aACA6+F,EAUE75C,EAVF65C,SACA4b,EASEz1D,EATFy1D,kBACAC,EAQE11D,EARF01D,QAVF,EAkBI11D,EAPF21D,kCAXF,MAW+B,SAACr9F,GAAD,OAAW,MAX1C,IAkBI0nC,EANFiC,kBAZF,SAaE2zD,EAKE51D,EALF41D,WAEAC,GAGE71D,EAJF81D,cAIE91D,EAHF61D,UACAE,EAEE/1D,EAFF+1D,QACGC,EAjBL,YAkBIh2D,EAlBJ,0NAmBci2D,iBAAiBnyD,SAASxpD,MAGxC47G,qBAAU,gBACkBxmH,IAAtB+lH,GAAiCU,EAAcV,KAClD,CAACA,IAEJS,qBAAU,WAER,GAAK78G,MAAMqoG,QAAQ6T,GAAnB,CAGA,IAAMa,EAAYb,EAAQ1gH,MAAK,SAACwhH,GAAD,OAAQ,OAADA,QAAC,IAADA,OAAA,EAAAA,EAAG/9F,QAASm9F,KAI9Ctc,YAAqBid,QACG1mH,IAAtB+lH,GAAiCU,EAAcV,GAMjDtc,YAAqBsc,IACvBU,EAAc,SAEf,QAACZ,QAAD,IAACA,OAAD,EAACA,EAAS5yG,SAEb,IAAMwzG,EAAgB,SAAC79F,GACrB88F,EAAMkB,SAASh+F,GAEXq9F,GACFA,EAA2Br9F,IAG/B,OACE,eAAC,IAAD,WACG09F,EAAW5C,OACV,eAAC,IAAD,CAAOlwD,UAAU,aAAaqzD,IAAKP,EAAWxmH,GAA9C,UACGwmH,EAAW5C,MACXvZ,GAAY,sBAAM32C,UAAU,WAAhB,sBAGjB,eAAC,IAAD,WACE,cAAC,IAAD,CAAiBszD,UAAU,UAA3B,SAAsCx2D,EAAMy2D,mBAC5C,cAAC,IAAD,uCACMrB,GACAY,GAFN,IAKEU,OAAQ,CACNC,WAAY,SAACD,GAAD,mBAAC,eAAiBA,GAAlB,IAA0BE,OAAQ,QAC9Cz2D,MAAO,SAAC02D,EAAU92H,GAAX,MAAsB,CAC3B81H,SAAUA,IAEZiB,QAAS,SAACD,EAAU92H,GAClB,OAAO,2BACF82H,GADL,IAGEE,WAAWh3H,EAAMi3H,UAAY,kBAC7BC,OAAQl3H,EAAMi3H,UAAN,oBA3DNE,UA2DM,eAEJ,kCAGRC,YAAa,SAACN,EAAU92H,GACtB,OAAO,2BACF82H,GADL,IAEEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ9yD,MAAO,UACP+yD,WAAY,kEAGhBC,SAAU,SAACX,EAAU92H,GACnB,OAAO,2BACF82H,GADL,IAGEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ9yD,MAAO,UACP+yD,WAAY,mEAIlB/nH,GAAIwmH,EAAWxmH,GACfsjH,WAAY,CAAED,OAAQY,EAAYV,YAAaiB,EAAiBK,YAChEoD,YAAW,UACTzB,EAAWyB,mBADF,QACiB5sH,cAAU0E,cAAc,CAAEC,GAAI,wBAE1D0zD,UACsB,MAApBmyD,EAAWnzH,MAAgB,kCAAoC,wBAEjEo0H,SAAU,SAAC1xB,EAAO8yB,GACe,UAA3BA,EAAgB13H,QAAsB01H,GAASA,IACnDS,EAAcvxB,EAAQA,EAAMtsE,MAAQ,MAChC09F,EAAW2B,UAAU3B,EAAW2B,SAAS/yB,IAE/CgzB,OAAQxC,EAAMwC,OACd7B,QAASA,EACTR,QAASA,EACTtC,aAAcA,EACd4E,YAAa7B,EAAW6B,YACxB51D,WAAYA,EACZ3pC,MACEi9F,EAAQl+F,QAAO,SAACygG,GACd,IAAMC,EAAa/hB,OAAOof,EAAM98F,OAC1B0/F,EAAWhiB,OAAO8hB,EAAOx/F,OACzB2/F,EAAgB,QAAQliB,KAAKgiB,GAAc9xH,SAASmvH,EAAM98F,OAAS88F,EAAM98F,MAE/E,OADoB,QAAQy9E,KAAKiiB,GAAY/xH,SAAS+xH,GAAYF,EAAOx/F,SAClD2/F,KACtB,IAAM,KAEXrC,WAAYA,EACZsC,iBAAkB,kBAAMrtH,cAAU0E,cAAc,CAAEC,GAAI,sBACtD2oH,cAAe,IACfC,iBAAkB5C,OAAY9lH,EAAYo0D,SAASu0D,cAAc,WAEnE,cAAC,IAAD,CAAiB7B,UAAU,SAA3B,SAAqCx2D,EAAMs4D,qBAE5CjD,EAAWnzH,OACV,qBAAKghE,UAAU,mBAAmBK,MAAO,CAAEmwD,QAAS,SAApD,UACG,UAAA2B,EAAWnzH,aAAX,eAAkB2N,UAAWmL,GAC5B,cAAC,IAAD,CAAkBxL,GAAG,gC,sIC7Q3B+oH,EAAY,SAACv4D,GAAkB,IAAD,QAEhCxwD,EAiBEwwD,EAjBFxwD,GACA4jH,EAgBEpzD,EAhBFozD,MACAvZ,EAeE75C,EAfF65C,SACA4d,EAcEz3D,EAdFy3D,YACArC,EAaEp1D,EAbFo1D,MACAC,EAYEr1D,EAZFq1D,WANF,EAkBIr1D,EAXF//D,YAPF,MAOS,OAPT,IAkBI+/D,EAVFw4D,yBARF,MAQsB,MARtB,EASEC,EASEz4D,EATFy4D,kBACAhC,EAQEz2D,EARFy2D,iBACA6B,EAOEt4D,EAPFs4D,gBACAI,EAME14D,EANF04D,SACA19G,EAKEglD,EALFhlD,aACA29G,EAIE34D,EAJF24D,oBACAC,EAGE54D,EAHF44D,qBACAnD,EAEEz1D,EAFFy1D,kBACAE,EACE31D,EADF21D,2BAGFO,qBAAU,WACiB,MAArBT,GAA2BU,EAAcV,KAC5C,CAACA,IAEJ,IAAMU,EAAgB,SAAC79F,GACrB88F,EAAMkB,SAASh+F,GACXq9F,GACFA,EAA2Br9F,IAI/B,OACE,eAAC,IAAD,WACG86F,GACC,eAAC,IAAD,CAAOlwD,UAAU,aAAaqzD,IAAK/mH,EAAnC,UACG4jH,EACAvZ,GAAY,sBAAM32C,UAAU,WAAhB,mBACS,MAArBu1D,GAA6BA,KAGlC,eAAC,IAAD,WACGhC,GACC,cAAC,IAAD,CAAiBD,UAAU,UAA3B,SACE,cAAC,IAAD,UAAiBC,MAGrB,cAAC,IAAD,0CAEOpD,IAAExE,KAAF,eAAY7uD,GAAS,CACtB,6BACA,oBACA,mBALN,IAQE1nC,MAAK,UAAE88F,EAAM98F,aAAR,QAAiB,GACtBs/F,OAAQxC,EAAMwC,OACdtB,SAAU,SAAC1xB,GACTuxB,EAAcvxB,EAAM6c,OAAOnpF,QAE7By9F,QAAS/1D,EAAM+1D,QACfvmH,GAAIA,EACJioH,YAAaA,EACboB,aAAcL,EACdv4H,KAAMA,EACN64H,QAA6B,MAApBzD,EAAWnzH,MACpBw2H,SAAUA,KAEXJ,GACC,cAAC,IAAD,CAAiB9B,UAAU,SAA3B,SACE,cAAC,IAAD,UAAiB8B,SAItBjD,EAAWnzH,OAAmC,aAA1BmzH,EAAWnzH,MAAMjC,KACpC,qBAAKijE,UAAU,mBAAmBK,MAAO,CAAEmwD,QAAS,SAApD,UACG,UAAA2B,EAAWnzH,aAAX,eAAkB2N,UAAWmL,GAC5B,cAAC,IAAD,CAAkBxL,GAAG,2BAGvB6lH,EAAWnzH,OAAmC,YAA1BmzH,EAAWnzH,MAAMjC,KACvC,qBAAKijE,UAAU,mBAAmBK,MAAO,CAAEmwD,QAAS,SAApD,UACG,UAAA2B,EAAWnzH,aAAX,eAAkB2N,UAAW8oH,GAC5B,cAAC,IAAD,CAAkBnpH,GAAG,0BAGvB6lH,EAAWnzH,OAAmC,aAA1BmzH,EAAWnzH,MAAMjC,KACvC,qBAAKijE,UAAU,mBAAmBK,MAAO,CAAEmwD,QAAS,SAApD,UACG,UAAA2B,EAAWnzH,aAAX,eAAkB2N,UAAW+oH,GAC5B,cAAC,IAAD,CAAkBppH,GAAG,0BAIzB,OAMR+oH,EAAUQ,aAAe,GAEVR,O,+BC5If,4dAAO,IAAMS,EAAmC,mCACnCC,EAAqC,qCACrCC,EAAkC,kCAElCC,EAA2C,2CAC3CC,EACX,6CACWC,EAA0C,0CAE1CC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,gCAEhCC,EAA0B,0BAG1BC,EAA6B,6BAC7BC,EAA+B,sCAC/BC,EAAiC,iCACjCC,EAAmC,oC,u2BCgBnCC,EAAgC,CAC3CC,OAAQ,CACNvqH,GAAI,IACJ/E,KAAM,yBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,iCACTC,UAAW,0BAEbC,QAAS,CACP3qH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,uBAEbE,IAAK,CACH5qH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,uBAEbG,OAAQ,CACN7qH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,uBAEbI,QAAS,CACP9qH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,iCAEbK,WAAY,CACV/qH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,iCAEbM,WAAY,CACVhrH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,iCAEbO,SAAU,CACRjrH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,uBAEbQ,WAAY,CACVlrH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,iCAEbS,UAAW,CACTnrH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,iCAEbU,QAAS,CACPprH,GAAI,EACJ/E,KAAM,sBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,8BACTC,UAAW,uBAEbW,mBAAoB,CAClBrrH,GAAI,GACJ/E,KAAM,uBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,+BACTC,UAAW,kCAEbY,aAAc,CACZtrH,GAAI,GACJ/E,KAAM,uBACN+5D,MAAO,UACPw1D,UAAW,UACXC,QAAS,+BACTC,UAAW,mCASFa,EAAkB,SAACvrH,GAC9B,OAAQA,GACN,KAAK,IACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,EACH,OAAO,cAAC,IAAD,IACT,KAAK,GACH,OAAO,cAAC,IAAD,IAEX,OAAO,cAAC,IAAD,KAGIwrH,EAAmB,SAACxrH,GAE/B,IAAIzP,EAAQ+5H,EAAcC,OAC1B,OAAQvqH,GACN,KAAK,IACHzP,EAAQ+5H,EAAcC,OACtB,MACF,KAAK,EACHh6H,EAAQ+5H,EAAcK,QACtB,MACF,KAAK,EACHp6H,EAAQ+5H,EAAcM,IACtB,MACF,KAAK,EACHr6H,EAAQ+5H,EAAcO,OACtB,MACF,KAAK,EACHt6H,EAAQ+5H,EAAcQ,QACtB,MACF,KAAK,EACHv6H,EAAQ+5H,EAAcS,WACtB,MACF,KAAK,EACHx6H,EAAQ+5H,EAAcU,WACtB,MACF,KAAK,EACHz6H,EAAQ+5H,EAAcW,SACtB,MACF,KAAK,EACH16H,EAAQ+5H,EAAcY,WACtB,MACF,KAAK,EACH36H,EAAQ+5H,EAAca,UACtB,MACF,KAAK,EACH56H,EAAQ+5H,EAAcc,QACtB,MACF,KAAK,GACH76H,EAAQ+5H,EAAce,mBACtB,MACF,KAAK,GACH96H,EAAQ+5H,EAAcgB,aACtB,MACF,QACE/6H,EAAQ+5H,EAAcC,OAG1B,OAAOh6H,GAGIk7H,EAAoB,SAC/Bl7H,GAD+B,MAK3B,CACJg1H,gBAAiBh1H,EAAMykE,MACvBA,MAAOzkE,EAAMi6H,YAGFkB,EAAmB,SAC9BC,EACAC,EACAvoG,EACA9qB,EACAszH,EACAC,GAN8B,OAQ9BF,GACC,CAACtB,EAAcO,OAAO7qH,GAAIsqH,EAAca,UAAUnrH,IAAIjJ,SAAS40H,EAAU3rH,IACtE,MAAQzH,EACRozH,EAAU3rH,KAAOsqH,EAAcW,SAASjrH,GACxC,MAAQ6rH,EACRF,EAAU3rH,KAAOsqH,EAAcK,QAAQ3qH,GACvC,GACAqjB,EACA,MAAQyoG,EACR,KAEOC,EAAc,SAACC,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,WAGIC,EAAoB,SAAC1pG,GAChC,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,cACT,KAAK,GACH,MAAO,iBACT,KAAK,GACH,MAAO,0BACT,KAAK,GACH,MAAO,eACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,kBACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,iCACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,eACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,4BACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,4BACT,KAAK,GACH,MAAO,mCACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,yBACT,KAAK,GACH,MAAO,gBACT,KAAK,GACH,MAAO,0BACT,KAAK,GACH,MAAO,yBACT,KAAK,GACH,MAAO,oBACT,KAAK,GACH,MAAO,sBACT,KAAK,GACH,MAAO,iBACT,KAAK,GACH,MAAO,kBACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,wBACT,KAAK,IACH,MAAO,iBACT,KAAK,IACH,MAAO,kBACT,KAAK,KACH,MAAO,qBACT,KAAK,KACH,MAAO,eACT,KAAK,KACH,MAAO,gCACT,KAAK,KACH,M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","file":"static/js/main.8be1f910.chunk.js","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Reducer Auth */\n/* -------------------------------------------------------------------------- */\n// Este reducer contiene toda la información del usuario en sesión.\n\nimport jwtDecode from 'jwt-decode';\nimport { combineReducers } from 'redux';\nimport camelcaseKeys from 'camelcase-keys';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as types from '../../types/auth';\nimport { tsNullKeyword } from '@babel/types';\n\nconst token = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return action.payload.token;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return action.payload.newToken;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.tokenRefreshFailCount && tokenRefreshFailCount >= 2 ? null : state;\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst tokenRefreshFailCount = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_COMPLETED: {\n return 0;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return state + 1;\n }\n default: {\n return state;\n }\n }\n};\n\nconst user = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.token));\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.newToken));\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED: {\n const mapOptions = { ...action.payload };\n console.log({ mapOptions });\n\n return {\n ...state,\n enableLocationClustering: mapOptions.enableLocationClustering ? 1 : 0,\n locationMapLabelAlwaysOn: mapOptions.locationMapLabelAlwaysOn ? 1 : 0,\n activateUnitTrackMode: mapOptions.activateUnitTrackMode ? 1 : 0,\n unitMapLabelAlwaysOn: mapOptions.unitMapLabelAlwaysOn ? 1 : 0,\n unitsLabelContent: mapOptions.unitsLabelContent,\n zoomLevelToStartClustering: mapOptions.zoomLevelToStartClustering\n };\n }\n\n case types.PROFILE_UPDATE_PICTURE_COMPLETED: {\n const newImage = { ...action.payload };\n return {\n ...state,\n imageName: newImage.imageName,\n userImageUrl: newImage.userImageUrl\n };\n }\n\n case types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED: {\n const homeScreenId = action.payload;\n return {\n ...state,\n homeScreenId: homeScreenId\n };\n }\n\n case types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED: {\n const mapEntitiesFilterTab = action.payload;\n return {\n ...state,\n mapEntitiesFilterTab: mapEntitiesFilterTab\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst membership = (state = {}, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.AUTHENTICATION_SET_MEMBERSHIP: {\n const membership = action.payload;\n return membership;\n }\n default: {\n return state;\n }\n }\n};\n\nconst navigationOptions = (state = { productId: 1 }, action) => {\n switch (action.type) {\n case types.PROFILE_CHANGE_PRODUCT_COMPLETED: {\n const productId = action.payload;\n return {\n ...state,\n productId\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst isAuthenticating = (state = false, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return false;\n }\n case types.AUTHENTICATION_FAILED: {\n return false;\n }\n case types.AUTHENTICATION_USER_INFORMATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_USER_INFORMATION_COMPLETED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileGeneralInformation = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMapSettingsConfiguration = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileMapOptions = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_OPTIONS_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED:\n case types.PROFILE_UPDATE_MAP_OPTIONS_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfilePassword = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_PASSWORD_COMPLETED:\n case types.PROFILE_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRefreshing = (state = false, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return true;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return false;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst refreshingError = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return null;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return null;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst error = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return null;\n }\n case types.AUTHENTICATION_FAILED_CLEAR: {\n return null;\n }\n case types.AUTHENTICATION_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst catalogFilters = (state = {}, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return null;\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.PROFILE_SET_CATALOGS_FILTERS: {\n const { catalog, filters, initialValues } = action.payload;\n return {\n ...state,\n catalog,\n filters,\n initialValues\n };\n }\n default: {\n return state;\n }\n }\n};\n\nconst auth = combineReducers({\n token,\n user,\n membership,\n navigationOptions,\n isAuthenticating,\n isUpdatingMapSettingsConfiguration,\n isUpdatingProfileGeneralInformation,\n isUpdatingProfilePassword,\n isUpdatingProfileMapOptions,\n isRefreshing,\n error,\n refreshingError,\n tokenRefreshFailCount,\n catalogFilters\n});\n\nconst authPersistConfig = {\n key: 'auth',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'isUpdatingProfilePassword',\n 'isUpdatingProfileGeneralInformation',\n 'isUpdatingMapSettingsConfiguration',\n 'isUpdatingProfileMapOptions',\n 'isAuthenticating'\n ]\n // blackList: [],\n // whiteList: [],\n};\n\nexport default persistReducer(authPersistConfig, auth);\n\n//Own state\nexport const getOwnState = (state) => state.auth;\n\nexport const getUser = (state) => getOwnState(state).user;\n\n//Information\nexport const getAuthToken = (state) => getOwnState(state).token;\nexport const getIsAuthenticating = (state) => getOwnState(state).isAuthenticating;\n//Updating profile\nexport const getIsUpdatingProfileInformation = (state) =>\n getOwnState(state).isUpdatingProfileGeneralInformation;\nexport const getisUpdatingMapSettingsConfiguration = (state) =>\n getOwnState(state).isUpdatingMapSettingsConfiguration;\nexport const getIsUpdatingProfileMapOptions = (state) =>\n getOwnState(state).isUpdatingProfileMapOptions;\nexport const getIsUpdatingProfilePassword = (state) => getOwnState(state).isUpdatingProfilePassword;\nexport const getAuthenticatingError = (state) => getOwnState(state).error;\nexport const getAuthUserID = (state) =>\n getOwnState(state).user ? getOwnState(state).user.user_id : null;\nexport const getAuthExpiration = (state) =>\n getOwnState(state).user ? getOwnState(state).user.exp : null;\nexport const getAuthUsername = (state) =>\n getOwnState(state).user ? getOwnState(state).user.username : null;\nexport const getAuthUser = (state) => getOwnState(state).user ?? {};\nexport const getAuthUserForMembership = (state) => ({\n ...(getOwnState(state).user ?? {}),\n ...(getOwnState(state).membership ?? {})\n});\n\nexport const getAuthUserTimezoneName = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.zoneName\n ? getOwnState(state).user.zoneName\n : Intl.DateTimeFormat().resolvedOptions().timeZone\n : Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nexport const getAuthUserCountryIdsForGoogleSearch = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.countriesForGoogleSearch\n ? getOwnState(state).user.countriesForGoogleSearch\n : null\n : null;\n\nexport const getAuthUserMapEntitiesFilterTab = (state) =>\n getOwnState(state).user ? Number(getOwnState(state).user.mapEntitiesFilterTab) : null;\n\nexport const getAuthUserMapGroupIdActive = (state) =>\n getOwnState(state).user ? getOwnState(state).user.mapGroupIdActive : null;\n\nexport const getAuthUserUnitsMarkerRotationActive = (state) => \n getOwnState(state).user ? getOwnState(state).user.unitMarkersRotation == 1 : false;\n\n/**\n * Get auth user map center\n * @param {*} state State from Redux\n * @returns {LatLngExpression}\n */\nexport const getAuthUserMapHomeCenter = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeLatitude && getOwnState(state).user.homeLongitude\n ? [getOwnState(state).user.homeLatitude, getOwnState(state).user.homeLongitude]\n : [14.62, -90.53]\n : [14.62, -90.53];\nexport const getAuthUserMapHomeZoom = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeZoom\n ? getOwnState(state).user.homeZoom\n : 12\n : 12;\nexport const isAuthenticated = (state) => getAuthToken(state) != null;\nexport const getAuthUserPermissions = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.permissions == ''\n ? []\n : getOwnState(state).user?.permissions.split(',')\n : [];\n\nexport const getAuthUserOrganizationId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.organizationId\n ? getOwnState(state).user.organizationId\n : null\n : null;\n\nexport const getAuthUserDivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.divisionId\n ? getOwnState(state).user.divisionId\n : null\n : null;\n\nexport const getAuthUserSubdivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.subdivisionId\n ? getOwnState(state).user.subdivisionId\n : null\n : null;\n\nexport const getAuthUserAccessLevelId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.accessLevelId\n ? getOwnState(state).user.accessLevelId\n : null\n : null;\n\nexport const getAuthUserHomeScreenId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.homeScreenId\n ? parseInt(getOwnState(state).user?.homeScreenId)\n : null\n : null;\n\nexport const getNavigationProduct = (state) =>\n getOwnState(state).navigationOptions\n ? getOwnState(state).navigationOptions?.productId\n ? parseInt(getOwnState(state).navigationOptions?.productId)\n : null\n : null;\n\nexport const getAuthUserMembershipFilters = (state, { filterOperatorId, filterOrganizationId }) => {\n const {\n accessLevelId,\n operatorId: userOperatorId,\n organizationId: userOrganizationId\n } = getAuthUserForMembership(state);\n\n if ([9, 11, 13, 15].includes(parseInt(accessLevelId))) {\n if (filterOperatorId && !filterOrganizationId)\n return {\n operatorId: filterOperatorId,\n organizationId: null\n };\n else if (!filterOperatorId && filterOrganizationId)\n return {\n operatorId: organizationSelectors.getOrganization(state, filterOrganizationId)?.operatorId,\n organizationId: filterOrganizationId\n };\n else if (!filterOperatorId && !filterOrganizationId) {\n return {\n //NOTA: Anteriormente se tenia los valores quemados del usuario\n operatorId: null,\n organizationId: null\n };\n } else\n return {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n };\n } else\n return {\n allowNullOrganizationId: true,\n operatorId: null,\n organizationId: null\n };\n};\n\nexport const getAuthUserOperatorId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.operatorId\n ? getOwnState(state).user.operatorId\n : null\n : null;\nexport const getAuthUserHasPermissionsAny = (state, permissions = []) =>\n permissions.some((userPer) => getAuthUserPermissions(state).includes(userPer));\n\nexport const getAuthUserHasPermissionByAccessLevels = (state, accessLevels = []) =>\n accessLevels.includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const isAuthUserSystemOrOperator = (state) =>\n [9, 13, 15].includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const getAuthUserHasPermissionsEvery = (state, permissions = []) =>\n permissions.every((userPer) => getAuthUserPermissions(state).includes(userPer));\n\nexport const getUserCatalogFilters = (state) => getOwnState(state).catalogFilters;\n\n//Systems\n// -------------------------------------------------------------------\n// | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n// -------------------------------------------------------------------\n// | distance | km | km | mi |\n// | capacity | gal | lt | gal |\n// | temperature | C | C | F |\n// | distance2 | m | m | pies |\n// | speed | km/h | km/h | mph |\n// | fuel | km/gal | km/l | mpg |\n// | fuel2 | g/h | l/h | g/h |\n// -------------------------------------------------------------------\n//\n// IMPORTANTE: La base de datos utiliza Metric System 2\n// 1-> Centroamericano\n// 2-> Metrico Decimal\n// 3-> U.S\n\nexport const getAuthSystems = (state) => {\n const distance = getOwnState(state)?.user?.distanceSystem;\n const capacity = getOwnState(state)?.user?.capacitySystem;\n\n return {\n distance,\n capacity,\n volume: getOwnState(state)?.user?.volumeSystem,\n temperature: getOwnState(state)?.user?.temperatureSystem,\n distance2: getOwnState(state)?.user?.distance2System,\n speed: getOwnState(state)?.user?.speedSystem,\n fuel: getOwnState(state)?.user?.fuelSystem,\n fuel2: getOwnState(state)?.user?.fuel2System,\n performance: `${distance}/${capacity}`\n };\n};\n\nexport const getParsers = (state) => ({\n /* -------------------------------------------------------------------------- */\n /* Distance */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema métrico del usuario (Kilometros o Millas)\n */\n convertMetersToAuthUserDistanceSystem: (meters) =>\n meters / (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n /**\n * Parser de Kilometros -> Sistema métrico del usuario (Kilometros o Millas)\n */\n convertKilometersToAuthUserDistanceSystem: (kilometers) =>\n kilometers / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema métrico del usuario (Kilometros o Millas) -> Metros\n */\n convertAuthUserDistanceSystemToMeters: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n\n /* Pasar de sistema métrico del usuario (Kilometros o Millas) -> Kilometros */\n convertAuthUserDistanceSystemToKilometers: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Capacity */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | capacity | gal | lt | gal |\n // -------------------------------------------------------------------\n /**\n * Parser de Galones -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertGalonsToAuthUserCapacitySystem: (gal) =>\n gal * (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Galones\n */\n convertAuthUserCapacitySystemToGalons: (authUserCapacitySystem) =>\n authUserCapacitySystem / (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Litros -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertLitersToAuthUserCapacitySystem: (lt) =>\n lt / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Litros\n */\n convertAuthUserCapacitySystemToLiters: (authUserCapacitySystem) =>\n authUserCapacitySystem * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n\n /* -------------------------------------------------------------------------- */\n /* Volume */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de m³ -> Sistema de volumen del usuario (m³ o yd³)\n */\n convertCubicMetersToAuthUserVolumeSystem: (cubicMeters) =>\n cubicMeters / (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (m³ o yd³) -> m³\n */\n convertAuthUserVolumeSystemToCubicMeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (m³ o yd³) -> cm³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1) * 1000000,\n\n /**\n * Parser de metros cubicos a centimetros cubicos (m³) -> cm³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * 1000000,\n\n /* -------------------------------------------------------------------------- */\n /* Temperature */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Celsius -> Sistema de temperatura del usuario (Celsius o Fahrenheit)\n */\n convertCelsiusToAuthUserTemperatureSystem: (c) =>\n getAuthUser(state)?.metricSystemId == 3 ? (c * 9) / 5 + 32 : c,\n /**\n * Parser de Sistema de temperatura del usuario (Celsius o Fahrenheit) -> Celsius\n */\n convertAuthUserTemperatureSystemToCelsius: (authUserTemperatureSystem) =>\n getAuthUser(state)?.metricSystemId == 3\n ? (authUserTemperatureSystem - 32) * (5 / 9)\n : authUserTemperatureSystem,\n\n /* -------------------------------------------------------------------------- */\n /* Distance2 */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema métrico del usuario (Metros o Pies)\n */\n convertMetersToAuthUserDistance2System: (meters) =>\n meters * (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n /**\n * Parser de Sistema métrico del usuario (Metros o Pies) -> Metros\n */\n convertAuthUserDistance2SystemToMeters: (authUserDistance2System) =>\n authUserDistance2System / (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Speed */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de km/h -> Sistema de velocidad del usuario (km/h o mph)\n */\n convertKilometersPerHourToAuthUserSpeedSystem: (kilometersPerHour) =>\n kilometersPerHour / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema de velocidad del usuario (km/h o mph) -> km/h\n */\n convertAuthUserSpeedSystemToKilometersPerHour: (authUserSpeedSystem) =>\n authUserSpeedSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Fuel */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel | km/gal | km/l | mpg |\n // -------------------------------------------------------------------\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerGalonToAuthUserFuelSystem: (kmPerGal) =>\n getAuthUser(state)?.metricSystemId == 2\n ? kmPerGal / 3.7854\n : getAuthUser(state)?.metricSystemId == 3\n ? kmPerGal / 1.609\n : kmPerGal,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerGalon: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 2 //km/lt\n ? authUserFuelSystem * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? authUserFuelSystem * 1.609\n : authUserFuelSystem,\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerLiterToAuthUserFuelSystem: (kmPerLiter) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? kmPerLiter * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (kmPerLiter * 3.7854) / 1.609\n : kmPerLiter,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerLiter: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? authUserFuelSystem / 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (authUserFuelSystem / 3.7854) * 1.609\n : authUserFuelSystem,\n /* -------------------------------------------------------------------------- */\n /* Fuel2 */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel2 | g/h | l/h | g/h |\n // -------------------------------------------------------------------\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertGalonsPerHourToAuthUserFuel2System: (galPerHour) =>\n galPerHour * (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToGalonsPerHour: (authUserFuel2System) =>\n authUserFuel2System / (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertLitersPerHourToAuthUserFuel2System: (litersPerHour) =>\n litersPerHour / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToLitersPerHour: (authUserFuel2System) =>\n authUserFuel2System * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854)\n});\n\n//Status of sagas\nexport const getIsRefreshingToken = (state) => getOwnState(state).isRefreshing;\n\n//Errors\nexport const getRefreshingError = (state) => getOwnState(state).refreshingError;\n\n//Errors\nexport const getTokenRefreshFailCount = (state) => getOwnState(state).tokenRefreshFailCount;\n","import React from \"react\";\nimport { useIntl } from \"react-intl\";\n\n// 'intl' service singleton reference\nlet intl;\n\nexport function IntlGlobalProvider({ children }) {\n intl = useIntl(); // Keep the 'intl' service reference\n return children;\n}\n\n// Getter function to expose the read-only 'intl' service\nexport function appIntl() {\n return intl;\n}\n","/* -------------------------------------------------------------------------- */\n/* Tipos del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nexport const AUTHENTICATION_STARTED = 'AUTHENTICATION_STARTED';\nexport const AUTHENTICATION_COMPLETED = 'AUTHENTICATION_COMPLETED';\nexport const AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED';\n\nexport const AUTHENTICATION_FAILED_CLEAR = 'AUTHENTICATION_FAILED_CLEAR';\nexport const AUTHENTICATION_IDENTITY_CLEARED = 'AUTHENTICATION_IDENTITY_CLEARED';\n\nexport const AUTHENTICATION_SET_MEMBERSHIP = 'AUTHENTICATION_SET_MEMBERSHIP';\n\nexport const AUTHENTICATION_USER_INFORMATION_STARTED = 'AUTHENTICATION_USER_INFORMATION_STARTED';\nexport const AUTHENTICATION_USER_INFORMATION_COMPLETED =\n 'AUTHENTICATION_USER_INFORMATION_COMPLETED';\n\nexport const TOKEN_REFRESH_STARTED = 'TOKEN_REFRESH_STARTED';\nexport const TOKEN_REFRESH_FORCE_STARTED = 'TOKEN_REFRESH_FORCE_STARTED';\nexport const TOKEN_REFRESH_COMPLETED = 'TOKEN_REFRESH_COMPLETED';\nexport const TOKEN_REFRESH_FAILED = 'TOKEN_REFRESH_FAILED';\n\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_STARTED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_STARTED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_FAILED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_FAILED';\n\nexport const PROFILE_UPDATE_PASSWORD_STARTED = 'PROFILE_UPDATE_PASSWORD_STARTED';\nexport const PROFILE_UPDATE_PASSWORD_COMPLETED = 'PROFILE_UPDATE_PASSWORD_COMPLETED';\nexport const PROFILE_UPDATE_PASSWORD_FAILED = 'PROFILE_UPDATE_PASSWORD_FAILED';\n\nexport const PROFILE_UPDATE_PICTURE_STARTED = 'PROFILE_UPDATE_PICTURE_STARTED';\nexport const PROFILE_UPDATE_PICTURE_COMPLETED = 'PROFILE_UPDATE_PICTURE_COMPLETED';\nexport const PROFILE_UPDATE_PICTURE_FAILED = 'PROFILE_UPDATE_PICTURE_FAILED';\n\nexport const PROFILE_UPDATE_MAP_OPTIONS_STARTED = 'PROFILE_UPDATE_MAP_OPTIONS_STARTED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_COMPLETED = 'PROFILE_UPDATE_MAP_OPTIONS_COMPLETED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_FAILED = 'PROFILE_UPDATE_MAP_OPTIONS_FAILED';\n\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED';\n\nexport const PROFILE_UPDATE_HOME_SCREEN_STARTED = 'PROFILE_UPDATE_HOME_SCREEN_STARTED';\nexport const PROFILE_UPDATE_HOME_SCREEN_COMPLETED = 'PROFILE_UPDATE_HOME_SCREEN_COMPLETED';\nexport const PROFILE_UPDATE_HOME_SCREEN_FAILED = 'PROFILE_UPDATE_HOME_SCREEN_FAILED';\n\nexport const PROFILE_CHANGE_PRODUCT_STARTED = 'PROFILE_CHANGE_PRODUCT_STARTED';\nexport const PROFILE_CHANGE_PRODUCT_COMPLETED = 'PROFILE_CHANGE_PRODUCT_COMPLETED';\nexport const PROFILE_CHANGE_PRODUCT_FAILED = 'PROFILE_CHANGE_PRODUCT_FAILED';\n\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED';\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED';\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED';\n\nexport const PROFILE_SET_CATALOGS_FILTERS = 'PROFILE_SET_CATALOGS_FILTERS';\n","export const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n};\n","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\n\nexport const promiseWith = (data: T) => {\n return new Promise((resolve) => resolve(data));\n};\n\nexport class HttpAxios {\n service: AxiosInstance;\n\n constructor(config: any) {\n this.service = axios.create(config);\n }\n\n async getWithToken(path: string, token: string) {\n const response = await this.service.get(path, {\n headers: { Authorization: `Bearer ${token}` }\n });\n return promiseWith(response.data);\n }\n\n async getPdf(path: string, token: string): Promise {\n const response = await this.service.get(path, {\n headers: { Authorization: `Bearer ${token}` },\n responseType: 'arraybuffer'\n });\n return promiseWith(response.data);\n }\n\n async get(path: string, config?: AxiosRequestConfig): Promise {\n const response = await this.service.get(path, config);\n return promiseWith(response.data);\n }\n\n async patch(path: string, payload: string) {\n const response = await this.service.patch(path, payload);\n return promiseWith(response.data);\n }\n\n async post(path: string, payload: any, config?: AxiosRequestConfig) {\n const response = await this.service.post(path, payload, config);\n return promiseWith(response.data);\n }\n\n async put(path: string, payload: any = {}, config?: AxiosRequestConfig) {\n const response = await this.service.put(path, payload, config);\n return promiseWith(response.data);\n }\n\n async delete(path: string) {\n const response = await this.service.delete(path);\n return promiseWith(response.data);\n }\n}\n","/* eslint-disable class-methods-use-this,no-param-reassign,no-restricted-syntax */\nimport API_BASE_URL from 'redux/sagas/settings/apibaseurl';\nimport { headers } from './constants';\nimport { HttpAxios } from './http-axios';\nimport { ConfigMessages, ConfigActions } from './http-events';\n\nexport const buildParams = (params: any) => {\n if (params) {\n for (const key in params) {\n if (params[key] === '' || params[key] === undefined) {\n delete params[key];\n }\n }\n return Object.keys(params).length > 0 ? params : undefined;\n }\n return undefined;\n};\n\nclass HttpWebtrack extends HttpAxios {\n configMessage: ConfigMessages | undefined;\n configAction: ConfigActions | undefined;\n\n constructor() {\n super({ baseURL: API_BASE_URL, headers });\n }\n\n setConfigMessage = (configMessage: ConfigMessages | undefined) => {\n this.configMessage = configMessage;\n };\n\n setConfigActions = (configAction: ConfigActions | undefined) => {\n this.configAction = configAction;\n };\n}\n\nexport default HttpWebtrack;\n","import Swal from 'sweetalert2';\nimport { ConfigMessages } from 'utility/http/http-events';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\n\nexport interface AlertsConfig extends ConfigMessages {\n success?: string | null;\n altText?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Common Success, Confirmation And Error Alerts */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessMessage = ({ success, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'success',\n text: `${success}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showConfirmationMessage = ({ title, message, confirmText, action, width }) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width,\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: confirmText,\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showErrorAlertFailChanges = ({ error, timer = undefined, title = 'Error' }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showErrorCustomMessage = (config: AlertsConfig) => {\n Swal.fire({\n icon: 'error',\n text: `${config.customMessageError}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#FF4757',\n buttonsStyling: false\n });\n};\n\nexport const showErrorAlertWarning = ({ error, timer = undefined, title = '' }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Success Alerts Created, Edited and Deleted */\n/* -------------------------------------------------------------------------- */\nconst getSuccessMessage = (genderType: string | undefined, action: string) => {\n switch (genderType) {\n case 'PluralFemale':\n return `common.${action}SuccessMessageMultipleAlt`;\n case 'PluralMale':\n return `common.${action}SuccessMessageMultiple`;\n case 'SingularFemale':\n return `common.${action}SuccessMessageAlt`;\n case 'SingularMale':\n return `common.${action}SuccessMessage`;\n default:\n return 'common.changesSuccess';\n }\n};\n\nexport const showSuccessCreatedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'created');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: 3000,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessEditedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'edited');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessCustomMessage = (config: AlertsConfig) => {\n Swal.fire({\n icon: 'success',\n text: `${config.customMessage}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDeletedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'deleted');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessLeavedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'leaved');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Error Alerts Created, Edited And Deleted */\n/* -------------------------------------------------------------------------- */\nconst getFailMessage = (genderType: string | undefined, action: string) => {\n switch (genderType) {\n case 'PluralFemale':\n return `common.${action}FailMessageMultipleAlt`;\n case 'PluralMale':\n return `common.${action}FailMessageMultiple`;\n case 'SingularFemale':\n return `common.${action}FailMessageAlt`;\n case 'SingularMale':\n return `common.${action}FailMessage`;\n default:\n return 'common.changesFail';\n }\n};\n\nexport const showFailCreatedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'created');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailEditedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'edited');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailDeletedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'deleted');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailLeavedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'leaved');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\nexport const showDeleteConfirmationMessage = ({ action, objectType, objectName }) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.deleteConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text: appIntl().formatMessage({ id: 'common.deleteWarning' }),\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* LOADING Alert */\n/* -------------------------------------------------------------------------- */\nexport const showLoading = () => {\n Swal.fire({\n title: appIntl().formatMessage({ id: 'common.loading' }),\n customClass: {\n loader: 'custom-loader'\n },\n loaderHtml: '
',\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const closeLoading = () => {\n Swal.close();\n};\n","/* eslint-disable no-param-reassign,no-case-declarations */\nimport * as axios from 'axios';\nimport Swal from 'sweetalert2';\nimport API_BASE_URL from 'redux/sagas/settings/apibaseurl';\nimport * as alerts from 'redux/utils/alerts-interceptors';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\n\nexport interface ConfigMessages {\n object: string;\n name?: string;\n customMessage?: string;\n customMessageError?: string;\n action?: 'Create' | 'Delete' | 'Edit' | 'Get' | 'Custom' | 'Leave';\n genderType?: 'PluralFemale' | 'SingularFemale' | 'PluralMale' | 'SingularMale';\n successTimer?: number;\n useSuccessTimer?: boolean;\n errorTimer?: number;\n}\n\nexport interface ConfigActions {\n successAction?: Function;\n errorAction?: Function;\n}\n\nexport const redirectTo = (document: any, path: string) => {\n document.location = path;\n // window.history.pushState({}, '', path);\n // window.location.reload();\n};\n\nexport const handleSuccess = (\n response: any,\n configMessage: ConfigMessages | undefined,\n configAction: ConfigActions | undefined\n) => {\n if (configMessage) {\n const { successTimer = 4000, useSuccessTimer = true } = configMessage;\n const alertObject: alerts.AlertsConfig = {\n object: appIntl().formatMessage({\n id: configMessage.object\n }),\n name: configMessage.name,\n genderType: configMessage.genderType,\n successTimer: !!useSuccessTimer ? successTimer : undefined,\n customMessage: configMessage.customMessage\n };\n\n switch (configMessage.action) {\n case 'Create':\n alerts.showSuccessCreatedMessage(alertObject);\n break;\n case 'Delete':\n alerts.showSuccessDeletedMessage(alertObject);\n break;\n case 'Edit':\n alerts.showSuccessEditedMessage(alertObject);\n break;\n case 'Leave':\n alerts.showSuccessLeavedMessage(alertObject);\n break;\n case 'Custom':\n if (configMessage.customMessage) alerts.showSuccessCustomMessage(alertObject);\n break;\n }\n }\n if (configAction?.successAction) configAction.successAction(response.data);\n // HttpWebtrack.setConfigMessage(undefined);\n // HttpWebtrack.setConfigActions(undefined);\n return response;\n};\n\nexport const handleError = (\n error: any,\n configMessage: ConfigMessages | undefined,\n configAction: ConfigActions | undefined\n) => {\n const Toast = Swal.mixin({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: 6000\n });\n\n switch (error?.response?.status) {\n // case 401:\n // Toast.fire({\n // icon: 'error',\n // title: 'No Autorizado'\n // });\n // break;\n // case 403:\n // Toast.fire({\n // icon: 'error',\n // title: 'No Autorizado'\n // });\n // setTimeout(() => {\n // if (error?.response.data?.source !== 'login') {\n // localStorage.clear();\n // redirectTo(document, `${API_BASE_URL}/`);\n // }\n // }, 2000);\n // break;\n // case 404:\n // Toast.fire({\n // icon: 'error',\n // title: 'Servicio no encontrado!'\n // });\n // break;\n default:\n if (configMessage) {\n const alertObject: alerts.AlertsConfig = {\n object: appIntl().formatMessage({\n id: configMessage.object\n }),\n name: configMessage.name,\n genderType: configMessage.genderType,\n errorTimer: configMessage.action === 'Custom' ? 4000 : configMessage.errorTimer,\n customMessageError: configMessage.customMessageError\n };\n\n switch (configMessage.action) {\n case 'Create':\n alerts.showFailCreatedMessage(alertObject);\n break;\n case 'Delete':\n alerts.showFailDeletedMessage(alertObject);\n break;\n case 'Leave':\n alerts.showFailLeavedMessage(alertObject);\n break;\n case 'Edit':\n alerts.showFailEditedMessage(alertObject);\n // case 'Get':\n // alerts.showErrorAlertFailChanges({\n // error: { errorMessage: 'Error al obtener el listado' }\n // });\n break;\n case 'Custom':\n if (configMessage.customMessageError) alerts.showErrorCustomMessage(alertObject);\n break;\n }\n }\n break;\n }\n if (configAction?.errorAction) configAction.errorAction(error);\n // HttpWebtrack.setConfigMessage(undefined);\n // HttpWebtrack.setConfigActions(undefined);\n return Promise.reject(error);\n};\n","import { AxiosRequestConfig, AxiosResponse } from 'axios';\n// import { actions } from 'app/Layout/slice';\nimport { HttpWebtrack } from '../index';\n\nconst httpWebtrack = new HttpWebtrack();\n\nconst methods = ['POST', 'PUT', 'DELETE'];\n\nexport const loadingOverlyaInterceptor = (store: any) => {\n httpWebtrack.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n if (methods.some((x) => x === config.method?.toUpperCase())) {\n // store.dispatch(actions.showSpinner());\n }\n return config;\n },\n (error: any) => {\n // store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.response.use(\n (axiosResponse: AxiosResponse) => {\n if (methods.some((x) => x === axiosResponse.config.method?.toUpperCase())) {\n //store.dispatch(actions.hideSpinner());\n }\n\n return axiosResponse;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n if (methods.some((x) => x === config.method?.toUpperCase())) {\n //store.dispatch(actions.showSpinner());\n }\n return config;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.response.use(\n (axiosResponse: AxiosResponse) => {\n if (methods.some((x) => x === axiosResponse.config.method?.toUpperCase())) {\n //store.dispatch(actions.hideSpinner());\n }\n\n return axiosResponse;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n};\n","/* eslint-disable no-param-reassign */\nimport { endDateAdjustment } from './interceptor-utils';\n\nexport const redirectTo = (document: any, path: string) => {\n document.location = path;\n};\n\nexport const refreshTokenInterceptor = (failedRequest: any, session: any, store: any) => {\n //aquí iría el refresh token luego de que el backend responde con token vencido\n};\n\nexport const authTokenInterceptor = async (config: any, session: any) => {\n if (session?.token) {\n config.headers.Authorization = `Bearer ${session?.token}`;\n }\n\n return { ...config, data: endDateAdjustment(config?.data) };\n};\n","import { AxiosResponse } from 'axios';\nimport { HttpWebtrack } from 'utility/http';\nimport { handleError, handleSuccess } from 'utility/http/http-events';\nimport { loadingOverlyaInterceptor } from 'utility/http/interceptors/loading-overlay-interceptor';\nimport { authTokenInterceptor } from './auth-token-interceptor';\n\nconst ConfigureWebtrackInterceptor = (store: any, httpWebtrack: HttpWebtrack) => {\n loadingOverlyaInterceptor(store);\n httpWebtrack.service.interceptors.request.use(\n (conf: any) => {\n const session = store.getState()?.auth;\n return authTokenInterceptor(conf, session);\n },\n (error: any) => {\n return Promise.reject(error);\n }\n );\n httpWebtrack.service.interceptors.response.use(\n (response: AxiosResponse): AxiosResponse => {\n return handleSuccess(response, httpWebtrack.configMessage, httpWebtrack.configAction);\n },\n (error) => {\n return handleError(error, httpWebtrack.configMessage, httpWebtrack.configAction);\n }\n );\n};\n\nexport default {\n ConfigureWebtrackInterceptor\n};\n","// ** ThemeConfig Import\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\n// ** Returns Initial Menu Collapsed State\r\nconst initialMenuCollapsed = () => {\r\n const item = window.localStorage.getItem('menuCollapsed');\r\n //** Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed;\r\n};\r\n\r\n// ** Initial State\r\nconst initialState = {\r\n isRTL: themeConfig.layout.isRTL,\r\n menuCollapsed: initialMenuCollapsed(),\r\n menuHidden: themeConfig.layout.menu.isHidden,\r\n menuPinner: themeConfig.layout.menu.isPinner,\r\n contentWidth: themeConfig.layout.contentWidth\r\n};\r\n\r\nconst layoutReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'HANDLE_CONTENT_WIDTH':\r\n return { ...state, contentWidth: action.payload };\r\n case 'HANDLE_MENU_COLLAPSED':\r\n window.localStorage.setItem('menuCollapsed', action.payload);\r\n return { ...state, menuCollapsed: action.payload };\r\n case 'HANDLE_MENU_HIDDEN':\r\n return { ...state, menuHidden: action.payload };\r\n case 'HANDLE_MENU_PINNER':\r\n return { ...state, menuPinner: action.payload };\r\n case 'HANDLE_RTL':\r\n return { ...state, isRTL: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default layoutReducer;\r\n","import { User } from 'react-feather';\nexport default [\n {\n id: 'accountSettings',\n title: 'profile.profile',\n icon: ,\n permissions: [],\n iconName: 'Users',\n navLink: '/account-settings'\n }\n];\n","import sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions from '../../../navigation/outside-sidebar';\n\nimport * as navbarTypes from '../../types/navbar';\n// ** Initial State\nconst initialState = {\n suggestions: [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ],\n bookmarks: [],\n query: '',\n isFetchingBookmarks: false\n};\n\nconst navbar = (state = initialState, action) => {\n switch (action.type) {\n case navbarTypes.HANDLE_SEARCH_QUERY:\n return { ...state, query: action.payload };\n case navbarTypes.GET_BOOKMARKS_FETCH_COMPLETED:\n return {\n ...state,\n bookmarks: action.payload.bookmarks,\n suggestions: action.payload.suggestions,\n isFetchingBookmarks: false\n };\n case navbarTypes.GET_BOOKMARKS_FETCH_FAILED:\n return {\n ...state,\n isFetchingBookmarks: false\n };\n case navbarTypes.GET_BOOKMARKS_FETCH_STARTED:\n return {\n ...state,\n isFetchingBookmarks: true\n };\n case navbarTypes.UPDATE_BOOKMARKED_STARTED:\n let objectToUpdate;\n\n // ** find & update object\n state.suggestions.find((item) => {\n if (item.id === action.payload.id) {\n item.isBookmarked = !item.isBookmarked;\n objectToUpdate = item;\n }\n });\n\n // ** Get index to add or remove bookmark from array\n const bookmarkIndex = state.bookmarks.findIndex((x) => x.id === action.payload.id);\n\n if (bookmarkIndex === -1) {\n state.bookmarks.push(objectToUpdate);\n } else {\n state.bookmarks.splice(bookmarkIndex, 1);\n }\n\n return { ...state };\n default:\n return state;\n }\n};\n\nexport default navbar;\n\n//Own state\nexport const getOwnState = (state) => state.navbar;\n\n// Get User Bookmarks\nexport const getUserBookmarks = (state) => getOwnState(state).bookmarks;\n//Status of sagas\nexport const isFetchingBookmarks = (state) => getOwnState(state).isFetchingBookmarks;\n","import { combineReducers } from 'redux';\nimport currencies from './currencies';\nimport paymentMethods from './payment-methods';\nimport timeZones from './time-zones';\nimport countries from './countries';\nimport providers from './cellular-providers';\nimport vehicleMakers from './vehicle-makers';\nimport vehicleModels from './vehicle-models';\nimport insuranceCompanies from './insurance-companies';\nimport insuranceAgents from './insurance-agents';\nimport sensorBrands from './sensor-brands';\nimport sensorModels from './sensor-models';\nimport sensorMeasures from './sensor-measures';\nimport locationClasses from './location-classes';\nimport brands from './brands';\n\nconst staticCatalogs = combineReducers({\n currencies,\n timeZones,\n countries,\n providers,\n vehicleMakers,\n vehicleModels,\n insuranceCompanies,\n insuranceAgents,\n sensorBrands,\n sensorModels,\n sensorMeasures,\n paymentMethods,\n locationClasses,\n brands\n});\n\nexport default staticCatalogs;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs;\n","// ** Redux Imports\nimport { combineReducers } from 'redux';\nimport { reducer as formReducer } from 'redux-form';\n// ** Reducers Imports\nimport localforage from 'localforage';\nimport agents from 'views/screens/Agents/reducers';\nimport assets from 'views/screens/Assets/reducers';\nimport people from 'views/screens/Contacts/reducers';\nimport organizationContracts from 'views/screens/Contracts/reducers';\nimport contractTemplates from 'views/screens/ContractTemplates/reducers';\nimport customers from 'views/screens/Customers/reducers';\nimport divisions from 'views/screens/Divisions/reducers';\nimport drivers from 'views/screens/Drivers/reducers';\nimport entities from 'views/screens/Entities/reducers';\nimport etaModels from 'views/screens/ETAModelRoutes/reducers';\nimport forms from 'views/screens/Forms/reducers';\nimport geofences from 'views/screens/Geofences/reducers';\nimport groups from 'views/screens/Groups/reducers';\nimport jobs from 'views/screens/Jobs/reducers';\nimport locations from 'views/screens/Locations/reducers';\nimport maintenanceLines from 'views/screens/MaintenanceLines/reducers';\nimport modules from 'views/screens/Modules/reducers';\nimport userNotifications from 'views/screens/Notifications/reducers';\nimport offices from 'views/screens/Offices/reducers';\nimport operators from 'views/screens/Operators/reducers';\nimport organizations from 'views/screens/Organizations/reducers';\nimport protocols from 'views/screens/Protocols/reducers';\nimport quotations from 'views/screens/Quotations/reducers';\nimport routes from 'views/screens/Routes/reducers/routes';\nimport schedules from 'views/screens/Schedules/reducers';\nimport sensors from 'views/screens/Sensors/reducers';\nimport serviceClasses from 'views/screens/ServiceClasses/reducers';\nimport sims from 'views/screens/SIMs/reducers';\nimport subdivisions from 'views/screens/Subdivisions/reducers';\nimport units from 'views/screens/Units/reducers';\nimport monitoringUsers from 'views/screens/Users/reducers';\nimport categories from 'views/screens/vehicleMaintenance/reducers/catalogs/categories';\nimport providers from 'views/screens/vehicleMaintenance/reducers/catalogs/providers';\nimport spareParts from 'views/screens/vehicleMaintenance/reducers/catalogs/spareParts';\nimport workmanship from 'views/screens/vehicleMaintenance/reducers/catalogs/workmanship';\nimport noticesByDate from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate';\nimport noticesByHourmeter from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter';\nimport noticesByOdometer from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer';\nimport vehicles from 'views/screens/Vehicles/reducers';\nimport workplans from 'views/screens/Workplans/reducers/workplans';\nimport * as authTypes from '../types/auth';\nimport auth from './auth';\nimport layout from './layout';\nimport navbar from './navbar';\nimport staticCatalogs from './static-catalogs';\n\nconst reducer = combineReducers({\n auth,\n layout,\n operators,\n organizations,\n divisions,\n subdivisions,\n serviceClasses,\n agents,\n navbar,\n modules,\n entities,\n people,\n workplans,\n locations,\n drivers,\n monitoringUsers,\n routes,\n schedules,\n units,\n categories,\n workmanship,\n geofences,\n staticCatalogs,\n sims,\n vehicles,\n assets,\n sensors,\n forms,\n jobs,\n groups,\n quotations,\n organizationContracts,\n contractTemplates,\n customers,\n offices,\n form: formReducer,\n noticesByOdometer,\n noticesByDate,\n noticesByHourmeter,\n providers,\n spareParts,\n maintenanceLines,\n protocols,\n userNotifications,\n etaModels\n});\n\nconst rootReducer = (state, action): any => {\n let newState = { ...state };\n\n if (!action) {\n return reducer;\n }\n\n if (action.type === authTypes.AUTHENTICATION_IDENTITY_CLEARED) {\n //Remove Session Information\n localStorage.removeItem('auth');\n localStorage.removeItem('userData');\n //Clear redux-persist storage\n localforage.removeItem('persist:root');\n //Set initialState\n const {\n jobs,\n groups,\n entities,\n routes,\n workplans,\n locations,\n drivers,\n auth,\n geofences,\n units\n } = state;\n newState = {\n jobs,\n groups,\n entities,\n routes,\n workplans,\n locations,\n drivers,\n auth,\n geofences,\n units\n };\n }\n return reducer(newState, action);\n};\n\nexport default rootReducer;\nexport type RootState = ReturnType;\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const agent = new schema.Entity(\n \"agents\",\n {},\n { idAttribute: \"agentId\" }\n);\nexport const agents = new schema.Array(agent);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as agentSelectors from '../reducers';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAgentsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/agent/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { agents },\n result //order\n } = normalize(resultData, schemas.agents); //normalize data to byId and order\n yield put(actions.completeFetchingAgents(agents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingAgents(error));\n }\n}\n\nexport function* watchFetchAgentsList() {\n yield takeEvery(types.AGENTS_FETCH_STARTED, fetchAgentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchAgentsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/agent/GET`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { agents },\n result //order\n } = normalize(resultData, schemas.agents); //normalize data to byId and order\n yield put(actions.completePartialFetchingAgents(agents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingAgents(error));\n }\n}\n\nexport function* watchPartialFetchAgentsList() {\n yield takeEvery(types.AGENTS_PARTIAL_FETCH_STARTED, partialFetchAgentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addAgent(action) {\n const agent = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/save`, {\n method: 'POST',\n body: JSON.stringify({ ...agent, agentId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedAgent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingAgent(agent.agentId, addedAgent));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: agent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAgent(agent.agentId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAgent(agent.agentId, error));\n }\n}\n\nexport function* watchAddAgentsStarted() {\n yield takeEvery(types.AGENT_ADD_STARTED, addAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAgent(action) {\n const agent = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...agent\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAgent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAgent(editedAgent));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: editedAgent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldAgent } = yield select((state) => selectors.getAgent(state, agent.agentId));\n yield put(actions.failEditingAgent(oldAgent, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldAgent } = yield select((state) => selectors.getAgent(state, agent.agentId));\n yield put(actions.failEditingAgent(oldAgent, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditAgentsStarted() {\n yield takeEvery(types.AGENT_EDIT_STARTED, editAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAgent(action) {\n const { agentId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedAgent = yield select((state) => agentSelectors.getAgent(state, agentId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/delete`, {\n method: 'POST',\n body: JSON.stringify({ agentId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingAgent(agentId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: deletedAgent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAgent(agentId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAgent(agentId, error));\n }\n}\n\nexport function* watchRemoveAgentStarted() {\n yield takeEvery(types.AGENT_REMOVE_STARTED, removeAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH AGENT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAgent(action) {\n const agentId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/${agentId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const agent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingAgent(agent));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingAgent(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingAgent(error));\n }\n}\n\nexport function* watchAgentFetchStarted() {\n yield takeEvery(types.AGENT_FETCH_STARTED, fetchAgent);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Divisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const division = new schema.Entity(\n \"divisions\",\n {},\n { idAttribute: \"divisionId\" }\n);\nexport const divisions = new schema.Array(division);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchDivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { divisions },\n result //order\n } = normalize(resultData, schemas.divisions); //normalize data to byId and order\n yield put(actions.completeFetchingDivisions(divisions, result, operatorId, organizationId));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingDivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingDivisions(error));\n }\n}\n\nexport function* watchFetchDivisionsList() {\n yield takeEvery(types.DIVISIONS_FETCH_STARTED, fetchDivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchDivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { divisions },\n result //order\n } = normalize(resultData, schemas.divisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingDivisions(divisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingDivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingDivisions(error));\n }\n}\n\nexport function* watchPartialFetchDivisionsList() {\n yield takeEvery(types.DIVISIONS_PARTIAL_FETCH_STARTED, partialFetchDivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addDivision(action) {\n const division = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/save`, {\n method: 'POST',\n body: JSON.stringify({ ...division, divisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedDivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingDivision(division.divisionId, addedDivision));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: division.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingDivision(division.divisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingDivision(division.divisionId, error));\n }\n}\n\nexport function* watchAddDivisionsStarted() {\n yield takeEvery(types.DIVISION_ADD_STARTED, addDivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editDivision(action) {\n const division = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/division/save`, {\n method: 'POST',\n body: JSON.stringify(division),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedDivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingDivision(editedDivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: editedDivision.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldDivision } = yield select((state) =>\n selectors.getDivision(state.divisions, division.divisionId)\n );\n yield put(actions.failEditingDivision(oldDivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldDivision = yield select((state) => selectors.getDivision(state, division.divisionId));\n yield put(actions.failEditingDivision(oldDivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditDivisionsStarted() {\n yield takeEvery(types.DIVISION_EDIT_STARTED, editDivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeDivision(action) {\n const { divisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedDivision = yield select((state) => selectors.getDivision(state, divisionId));\n const response = yield call(fetch, `${API_BASE_URL}/division/delete`, {\n method: 'POST',\n body: JSON.stringify({ divisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingDivision(divisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: deletedDivision.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingDivision(divisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingDivision(divisionId, error));\n }\n}\n\nexport function* watchRemoveDivisionStarted() {\n yield takeEvery(types.DIVISION_REMOVE_STARTED, removeDivision);\n}\n","/* Schema Entities */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const entity = new schema.Entity('entities', {}, { idAttribute: 'entityTypeId' });\nexport const entities = new schema.Array(entity);\n","import * as types from '../types';\n\nexport const startFetchingDestinations = (filters = {}) => ({\n type: types.ETAMONITORING_DESTINATIONS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingDestination = (entities, order, operatorId, organizationId) => ({\n type: types.ETAMONITORING_DESTINATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingDestination = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ETAMONITORING_DESTINATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import * as types from '../../../types/static-catalogs/countries';\n\nexport const startFetchingCountries = (filters = {}) => ({\n type: types.COUNTRIES_FETCH_STARTED,\n payload: { filters }\n});\nexport const completeFetchingCountries = (entities, order) => ({\n type: types.COUNTRIES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingCountries = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.COUNTRIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCountries = (filters = {}) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_STARTED,\n payload: { filters }\n});\nexport const completePartialFetchingCountries = (entities, order) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingCountries = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const selectModel = (modelId) => ({\n type: types.COUNTRY_SELECTED,\n payload: modelId\n});\n\nexport const deselectModel = (modelId) => ({\n type: types.COUNTRY_DESELECTED,\n payload: modelId\n});\n\nexport const deselectAllCountries = (\n modelIds = [] //List of ModelIds\n) => ({\n type: types.COUNTRIES_ALL_DESELECTED,\n payload: modelIds\n});\n","import { all, call, put, select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as entityTypes from '../../../screens/Entities/constants';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as types from '../types';\n//Se importan las actions de las entities que se quieren actualizar\nimport * as divisionsActions from 'views/screens/Divisions/actions';\nimport * as geofencesActions from 'views/screens/Geofences/actions';\nimport * as maintenanceLinesActions from 'views/screens/MaintenanceLines/actions';\nimport * as operatorsActions from 'views/screens/Operators/actions';\nimport * as organizationsActions from 'views/screens/Organizations/actions';\nimport * as subdivisionsActions from 'views/screens/Subdivisions/actions';\nimport * as workplansActions from 'views/screens/Workplans/actions/workplans';\nimport * as unitsActions from '../../Units/actions';\n\nimport * as agentActions from 'views/screens/Agents/actions';\nimport * as assetsActions from 'views/screens/Assets/actions';\nimport * as contactsActions from 'views/screens/Contacts/actions';\nimport * as organizationContractsActions from 'views/screens/Contracts/actions';\nimport * as contractTemplatesActions from 'views/screens/ContractTemplates/actions';\nimport * as customersActions from 'views/screens/Customers/actions';\nimport * as destinationActions from 'views/screens/ETAModelRoutes/actions';\nimport * as formsActions from 'views/screens/Forms/actions';\nimport * as groupsActions from 'views/screens/Groups/actions';\nimport * as jobActions from 'views/screens/Jobs/actions';\nimport * as notificationsActions from 'views/screens/Notifications/actions';\nimport * as protocolsActions from 'views/screens/Protocols/actions';\nimport * as routesActions from 'views/screens/Routes/actions/routes';\nimport * as sensorsActions from 'views/screens/Sensors/actions';\nimport * as serviceClassesActions from 'views/screens/ServiceClasses/actions';\nimport * as countriesActions from '../../../../redux/actions/static-catalogs/countries';\nimport * as driverActions from '../../Drivers/actions';\nimport * as locationActions from '../../Locations/actions';\nimport * as modulesActions from '../../Modules/actions';\nimport * as officeActions from '../../Offices/actions';\nimport * as schedulesActions from '../../Schedules/actions';\nimport * as simActions from '../../SIMs/actions';\nimport * as monitoringUsers from '../../Users/actions';\nimport * as vehicleActions from '../../Vehicles/actions/index';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchEntitiesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/entities-datetimes`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { entities },\n result //order\n } = normalize(resultData, schemas.entities); //normalize data to byId and order\n yield put(actions.completeFetchingEntities(entities, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingEntities(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingEntities(error));\n }\n}\n\nexport function* watchFetchEntitiesList() {\n yield takeEvery(types.ENTITIES_FETCH_STARTED, fetchEntitiesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* updateEntities(action) {\n const isFetchedListEntities = yield select(selectors.isFetchedListEntities);\n if (isFetchedListEntities) {\n try {\n const entitiesToUpdate = action.payload;\n const isEntityUpdatedFunction = yield select(selectors.isEntityUpdated);\n const isEntityUpdated = isEntityUpdatedFunction(entitiesToUpdate);\n yield all(\n entitiesToUpdate.map((entity, index) => {\n //Si no esta actualizada se actualiza con la acción fetch de la propia entidad\n const entityTypeId = entity?.entityTypeId || entity;\n if (isEntityUpdated[index] !== true) {\n switch (parseInt(entityTypeId)) {\n case entityTypes.ENTITY_UNITS:\n if (isEntityUpdated[index] === null)\n return put(\n unitsActions.startFetchingUnits({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n unitsActions.startPartialFetchingUnits(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SUBDIVISONS:\n if (isEntityUpdated[index] === null)\n return put(\n subdivisionsActions.startFetchingSubdivisions({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n subdivisionsActions.startPartialFetchingSubdivisions(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_MAINTENANCE_LINES:\n if (isEntityUpdated[index] === null)\n return put(\n maintenanceLinesActions.startFetchingMaintenanceLines({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n maintenanceLinesActions.startPartialFetchingMaintenanceLines(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_VEHICLES:\n if (isEntityUpdated[index] === null)\n return put(\n vehicleActions.startFetchingVehicles({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n vehicleActions.startPartialFetchingVehicles(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_MODULES:\n if (isEntityUpdated[index] === null)\n return put(\n modulesActions.startFetchingModules({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n modulesActions.startPartialFetchingModules(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_AGENTS:\n if (isEntityUpdated[index] === null) return put(agentActions.startFetchingAgents());\n else return put(agentActions.startPartialFetchingAgents(parseInt(entityTypeId)));\n case entityTypes.ENTITY_SERVICE_CLASSES:\n if (isEntityUpdated[index] === null)\n return put(\n serviceClassesActions.startFetchingServiceClasses(\n {\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n },\n entity.isDropdown\n )\n );\n else\n return put(\n serviceClassesActions.startPartialFetchingServiceClasses(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_OPERATORS:\n if (isEntityUpdated[index] === null)\n return put(operatorsActions.startFetchingOperators());\n else\n return put(\n operatorsActions.startPartialFetchingOperators(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_DIVISIONS:\n if (isEntityUpdated[index] === null)\n return put(\n divisionsActions.startFetchingDivisions({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n divisionsActions.startPartialFetchingDivisions(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_FORMS:\n if (isEntityUpdated[index] === null) return put(formsActions.startFetchingForms());\n else return put(formsActions.startPartialFetchingForms(parseInt(entityTypeId)));\n case entityTypes.ENTITY_ORGANIZATIONS:\n if (isEntityUpdated[index] === null)\n return put(organizationsActions.startFetchingOrganizations());\n else\n return put(\n organizationsActions.startPartialFetchingOrganizations(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_USERS:\n if (isEntityUpdated[index] === null)\n return put(\n monitoringUsers.startFetchingMonitoringUsers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n monitoringUsers.startPartialFetchingMonitoringUsers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ORGANIZATION_CONTRACTS:\n if (isEntityUpdated[index] === null)\n return put(\n organizationContractsActions.startFetchingOrganizationContracts({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n organizationContractsActions.startPartialFetchingOrganizationContracts(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_CONTRACT_TEMPLATES:\n // console.log('Se actualiza plantillas de contratos');\n if (isEntityUpdated[index] === null)\n return put(\n contractTemplatesActions.startFetchingContractTemplates({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n contractTemplatesActions.startPartialFetchingContractTemplates(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_CUSTOMERS:\n if (isEntityUpdated[index] === null)\n return put(\n customersActions.startFetchingCustomers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n customersActions.startPartialFetchingCustomers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_CONTACTS:\n if (isEntityUpdated[index] === null)\n return put(contactsActions.startFetchingContacts());\n else\n return put(contactsActions.startPartialFetchingContacts(parseInt(entityTypeId)));\n case entityTypes.ENTITY_WORKPLANS:\n if (isEntityUpdated[index] === null)\n return put(\n workplansActions.startFetchingWorkplans({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n workplansActions.startPartialFetchingWorkplans(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_GEOFENCES:\n if (isEntityUpdated[index] === null)\n return put(\n geofencesActions.startFetchingGeofences({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n bounds: entity.bounds\n })\n );\n else\n return put(\n geofencesActions.startPartialFetchingGeofences(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SCHEDULES:\n if (isEntityUpdated[index] === null)\n return put(schedulesActions.startFetchingSchedules());\n else\n return put(\n schedulesActions.startPartialFetchingSchedules(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_ROUTES:\n if (isEntityUpdated[index] === null)\n return put(\n routesActions.startFetchingRoutes({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n routesActions.startPartialFetchingRoutes(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SIM_CARDS:\n if (isEntityUpdated[index] === null)\n return put(\n simActions.startFetchingSims({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n simActions.startPartialFetchingSims(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n null,\n null,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_COUNTRIES:\n if (isEntityUpdated[index] === null)\n return put(countriesActions.startFetchingCountries());\n else\n return put(\n countriesActions.startPartialFetchingCountries(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_LOCATIONS:\n if (isEntityUpdated[index] === null)\n return put(\n locationActions.startFetchingLocations({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n bounds: entity?.bounds\n })\n );\n else\n return put(\n locationActions.startPartialFetchingLocations(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_OFFICES:\n if (isEntityUpdated[index] === null)\n return put(\n officeActions.startFetchingOffices({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n officeActions.startPartialFetchingOffices(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_DRIVERS:\n if (isEntityUpdated[index] === null)\n return put(\n driverActions.startFetchingDrivers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n driverActions.startPartialFetchingDrivers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ASSETS:\n if (isEntityUpdated[index] === null)\n return put(\n assetsActions.startFetchingAssets({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n assetsActions.startPartialFetchingAssets(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SENSORS:\n if (isEntityUpdated[index] === null)\n return put(sensorsActions.startFetchingSensors());\n else return put(sensorsActions.startPartialFetchingSensors(parseInt(entityTypeId)));\n case entityTypes.ENTITY_JOBS_BACKLOG:\n if (isEntityUpdated[index] === null)\n return put(jobActions.startFetchingJobsBacklog());\n else return put(jobActions.startPartialFetchingJobsBacklog(parseInt(entityTypeId)));\n case entityTypes.ENTITY_GROUPS:\n if (isEntityUpdated[index] === null)\n return put(\n groupsActions.startFetchingGroups({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n groupsActions.startPartialFetchingGroups(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_PROTOCOLS:\n if (isEntityUpdated[index] === null)\n return put(\n protocolsActions.startFetchingProtocols({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n protocolsActions.startPartialFetchingProtocols(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_DESTINATIONS:\n return put(\n destinationActions.startFetchingDestinations({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n case entityTypes.ENTITY_USER_NOTIFICATIONS:\n if (isEntityUpdated[index] === null)\n return put(\n notificationsActions.startFetchingUserNotifications({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n notificationsActions.startPartialFetchingUserNotifications(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n default:\n break;\n }\n }\n })\n );\n yield put(actions.completeUpdatingEntities());\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingEntities(error));\n }\n }\n}\n\nexport function* watchUpdateEntities() {\n yield takeEvery(types.ENTITIES_UPDATE_STARTED, updateEntities);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Geofences */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteGeofenceService,\n getGeofencesListService,\n saveGeofenceService,\n getGeofenceByIdService\n} from '../services/geofences';\nimport * as types from '../types';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport { call, takeEvery, put, select } from 'redux-saga/effects';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGeofencesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n bounds: filterBounds\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n {\n operatorId: operatorId,\n organizationId: organizationId,\n minLat: filterBounds?.minLat,\n maxLat: filterBounds?.maxLat,\n minLng: filterBounds?.minLng,\n maxLng: filterBounds?.maxLng\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingGeofences(\n geofences,\n result,\n operatorId,\n organizationId,\n filterBounds?.showInMapGeofences ? filterBounds?.showInMapGeofences : false\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_FETCH_STARTED, fetchGeofencesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGeofencesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGeofences(geofences, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_PARTIAL_FETCH_STARTED, partialFetchGeofencesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGeofence(action) {\n const geofence = action.payload;\n saveGeofenceService(\n { ...geofence, geofenceId: null },\n {\n successAction: (response) => {\n const addedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingGeofence(geofence.geofenceId, addedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGeofence(geofence.geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchAddGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_ADD_STARTED, addGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofence(action) {\n const geofence = action.payload;\n const oldGeofence = yield select((state) => selectors.getGeofence(state, geofence.geofenceId));\n saveGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n const editedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingGeofence(editedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingGeofence(oldGeofence, error));\n }\n }\n );\n}\n\nexport function* watchEditGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_EDIT_STARTED, editGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofence(action) {\n const { geofenceId } = action.payload;\n const geofence = yield select((state) => selectors.getGeofence(state, geofenceId));\n deleteGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGeofence(geofenceId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGeofence(geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGeofenceStarted() {\n yield takeEvery(types.GEOFENCE_REMOVE_STARTED, removeGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Geofence Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignGeofenceUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitsGeofences(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n}\n\nexport function* watchAssignGeofenceUnit() {\n yield takeEvery(types.GEOFENCE_ASSIGN_UNIT_STARTED, assignGeofenceUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofenceAssignation(action) {\n const unitGeofences = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteUnitGeofences`, {\n method: 'POST',\n body: JSON.stringify(unitGeofences),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(unitGeofences));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByGeofences(action) {\n //const unitGeofences = action.payload;\n console.log('removeAll payload', action.payload);\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByGeofences`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByUnits(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByUnits`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\nexport function* watchRemoveGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_STARTED, removeGeofenceAssignation);\n}\n\nexport function* watchRemoveAllAssignmentsByGeofences() {\n yield takeEvery(\n types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n removeAllAssigmentsByGeofences\n );\n}\n\nexport function* watchRemoveAllAssignmentsByUnits() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED, removeAllAssigmentsByUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Edit Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofenceAssignation(action) {\n const unitGeofenceInfo = action.payload.unitGeofenceInfo;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/editUnitGeofenceNotification`, {\n method: 'POST',\n body: JSON.stringify(unitGeofenceInfo),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeEditingGeofenceAssignation(unitGeofenceInfo));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyEdited'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n}\n\nexport function* watchEditGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_EDIT_STARTED, editGeofenceAssignation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET GEOFENCE BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchGeofenceById(action) {\n const geofenceId = action.payload;\n getGeofenceByIdService(\n {\n geofenceId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingGeofence(resultData, [resultData.geofenceId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofence(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofenceById() {\n yield takeEvery(types.GEOFENCE_FETCH_STARTED, fetchGeofenceById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Modules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n//Cambio de nombre porque module causaba problemas al inicializar\nexport const moduleSchema = new schema.Entity(\n \"modules\",\n {},\n { idAttribute: \"deviceId\" }\n);\nexport const modules = new schema.Array(moduleSchema);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { getModulesListService } from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModulesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchFetchModulesList() {\n yield takeEvery(types.MODULES_FETCH_STARTED, fetchModulesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchModulesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchModulesList() {\n yield takeEvery(types.MODULES_PARTIAL_FETCH_STARTED, partialFetchModulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({ ...module, deviceId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: module.identifier\n });\n const addedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingModule(module.deviceId, addedModule));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n}\n\nexport function* watchAddModulesStarted() {\n yield takeEvery(types.MODULE_ADD_STARTED, addModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...module\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingModule(editedModule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: editedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditModulesStarted() {\n yield takeEvery(types.MODULE_EDIT_STARTED, editModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeModule(action) {\n const { module } = action.payload;\n const moduleId = module.deviceId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedModule = module;\n const response = yield call(fetch, `${API_BASE_URL}/module/delete`, {\n method: 'POST',\n body: JSON.stringify({ moduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingModule(moduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: deletedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n}\n\nexport function* watchRemoveModuleStarted() {\n yield takeEvery(types.MODULE_REMOVE_STARTED, removeModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH MODULE */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModule(action) {\n const moduleId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/${moduleId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const module = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingModule(module));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingModule(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingModule(error));\n }\n}\n\nexport function* watchModuleFetchStarted() {\n yield takeEvery(types.MODULE_FETCH_STARTED, fetchModule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Operators */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const operator = new schema.Entity(\n \"operators\",\n {},\n { idAttribute: \"operatorId\" }\n);\nexport const operators = new schema.Array(operator);\n","/* -------------------------------------------------------------------------- */\n/* Schema Contacts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contact = new schema.Entity('contacts', {}, { idAttribute: 'contactId' });\nexport const contacts = new schema.Array(contact);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as operatorSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOperatorsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completeFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n}\n\nexport function* watchFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_FETCH_STARTED, fetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOperatorsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completePartialFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n}\n\nexport function* watchPartialFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_PARTIAL_FETCH_STARTED, partialFetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify({ ...operator, operatorId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n // const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeAddingOperator(operator.operatorId, addedOperator));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: operator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n}\n\nexport function* watchAddOperatorsStarted() {\n yield takeEvery(types.OPERATOR_ADD_STARTED, addOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify(operator),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n const {\n entities: { contacts },\n result //order\n } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOperator(editedOperator));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: editedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOperatorsStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STARTED, editOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOperator(action) {\n const { operatorId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedOperator = yield select((state) =>\n operatorSelectors.getOperator(state, operatorId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/delete`, {\n method: 'POST',\n body: JSON.stringify({ operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOperator(operatorId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: deletedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n}\n\nexport function* watchRemoveOperatorStarted() {\n yield takeEvery(types.OPERATOR_REMOVE_STARTED, removeOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT STANDARD PRICES */\n/* -------------------------------------------------------------------------- */\nfunction* editOperatorStandardPrices(action) {\n const standardPrices = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/saveStandardPrices`, {\n method: 'POST',\n body: JSON.stringify(standardPrices),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperatorStandardPrices = camelcaseKeys(jsonResult.data);\n\n // console.log('editedOperator', editedOperator);\n yield put(actions.completeEditingOperatorStandardPrices(editedOperatorStandardPrices));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'operators.editStandardPricesSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n}\n\nexport function* watchEditOperatorStandardPricesStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STANDARD_PRICES_STARTED, editOperatorStandardPrices);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organizations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const organization = new schema.Entity(\n \"organizations\",\n {},\n { idAttribute: \"organizationId\" }\n);\nexport const organizations = new schema.Array(organization);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as quotationActions from '../../Quotations/actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from 'views/screens/Organizations/reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as organizationUsers from '../../../../redux/schemas/organizations-users';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport forEach from 'lodash/forEach';\nimport groupBy from 'lodash/groupBy';\nimport chain from 'lodash/chain';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteOrganizationService,\n getOrganizationsListService,\n saveOrganizationService, \n saveWorkplanOrderConfigurationService\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 var orderStatusIds = response.data.orderStatusIdList.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 const orderStatusByOrganization = groupBy(orderStatusIds, '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 if (organization.organizationId in orderStatusByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n orderStatusIds: orderStatusByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n orderStatusIds: []\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\n/* -------------------------------------------------------------------------- */\n/* WORKPLAN ORDERS CONFIGURATION */\n/* -------------------------------------------------------------------------- */\n\nfunction* editWorkplanOrdersConfiguration(action) {\n const { organization } = action.payload;\n console.log('organization', organization);\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state, organization.organizationId)\n );\n saveWorkplanOrderConfigurationService(\n {\n organizationId: organization.organizationId, \n organizationName: organization.organizationName, \n orderTag: organization.orderTag, \n orderVolumeUnit: organization.orderVolumeUnit, \n useWorkplanOrders: organization.useWorkplanOrders, \n orderStatusIds: organization.orderStatusIds\n }, \n {\n successAction: (response) => {\n if (response.success) {\n const editedOrganization = camelcaseKeys(response.data.updatedOrganization);\n const orderStatusIdList = response.data.orderStatusIdList.map((result) => camelcaseKeys(result))\n\n console.log('updatedorg', {...editedOrganization, orderStatusIdList})\n\n store.dispatch(actions.completeUpdatingWorkplanOrdersConfiguration({...editedOrganization, orderStatusIds: orderStatusIdList}));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'workplans.orderConfigurationSuccess' }), \n timer: 5000\n });\n } else {\n alerts.showErrorAlertFailChanges({\n error:{\n errorMessage: appIntl().formatMessage({ id: 'workplans.orderConfigurationError' })\n }\n });\n }\n }, \n errorAction: (error) => {\n store.dispatch(actions.failUpdatingWorkplanOrdersConfiguration(oldOrganization, error));\n alerts.showErrorAlertFailChanges({\n error:{\n errorMessage: appIntl().formatMessage({ id: 'workplans.orderConfigurationError' })\n }\n })\n }\n }\n ) \n}\n\nexport function* watchEditWorkplanOrdersConfiguration() {\n yield takeEvery(\n types.ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_STARTED,\n editWorkplanOrdersConfiguration\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 {\n filters: {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n },\n isDropdown\n } = action.payload;\n\n const { operatorId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\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 }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { serviceClasses },\n result //order\n } = normalize(resultData, schemas.serviceClasses); //normalize data to byId and order\n yield put(actions.completeFetchingServiceClasses(serviceClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n}\n\nexport function* watchFetchServiceClassesList() {\n yield takeEvery(types.SERVICECLASSES_FETCH_STARTED, fetchServiceClassesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify({ ...serviceClass, serviceClassId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingServiceClass(serviceClass.serviceClassId, addedServiceClass)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: addedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n}\n\nexport function* watchAddServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_ADD_STARTED, addServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify(serviceClass),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingServiceClass(editedServiceClass));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: editedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_EDIT_STARTED, editServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeServiceClass(action) {\n const { serviceClassId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClassId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/delete`, {\n method: 'POST',\n body: JSON.stringify({ serviceClassId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingServiceClass(serviceClassId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: deletedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n}\n\nexport function* watchRemoveServiceClassStarted() {\n yield takeEvery(types.SERVICECLASS_REMOVE_STARTED, removeServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SERVICE CLASS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClass(action) {\n const serviceClassId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/${serviceClassId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const serviceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingServiceClass(serviceClass));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n}\n\nexport function* watchServiceClassFetchStarted() {\n yield takeEvery(types.SERVICECLASS_FETCH_STARTED, fetchServiceClass);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const subdivision = new schema.Entity(\n \"subdivisions\",\n {},\n { idAttribute: \"subdivisionId\" }\n);\nexport const subdivisions = new schema.Array(subdivision);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSubdivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completeFetchingSubdivisions(subdivisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n}\n\nexport function* watchFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_FETCH_STARTED, fetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSubdivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingSubdivisions(\n subdivisions,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n}\n\nexport function* watchPartialFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_PARTIAL_FETCH_STARTED, partialFetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify({ ...subdivision, subdivisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSubdivision(subdivision.subdivisionId, addedSubdivision));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: subdivision.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n}\n\nexport function* watchAddSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_ADD_STARTED, addSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify(subdivision),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSubdivision(editedSubdivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: editedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_EDIT_STARTED, editSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSubdivision(action) {\n const { subdivisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivisionId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/delete`, {\n method: 'POST',\n body: JSON.stringify({ subdivisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSubdivision(subdivisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: deletedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n}\n\nexport function* watchRemoveSubdivisionStarted() {\n yield takeEvery(types.SUBDIVISION_REMOVE_STARTED, removeSubdivision);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Units */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Metrics */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceMetric = new schema.Entity(\n 'deviceMetrics',\n {},\n { idAttribute: 'deviceMetricId' }\n);\nexport const deviceMetrics = new schema.Array(deviceMetric);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Actions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceAction = new schema.Entity(\n 'deviceActions',\n {},\n { idAttribute: 'deviceActionId' }\n);\nexport const deviceActions = new schema.Array(deviceAction);\n","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n","/* -------------------------------------------------------------------------- */\n/* Schema Reports */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const report = new schema.Entity('reports', {}, { idAttribute: 'reportId' });\nexport const reports = new schema.Array(report);\n","/* -------------------------------------------------------------------------- */\n/* Schema Images */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const image = new schema.Entity('images', {}, { idAttribute: 'imageId' });\nexport const images = new schema.Array(image);\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensor = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensor);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport { ENTITY_UNITS } from '../../Entities/constants';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as deviceMetricsSchemas from '../schemas/deviceMetrics';\nimport * as deviceActionsSchemas from '../schemas/deviceActions';\nimport * as groupsSchemas from '../schemas/groups';\nimport * as reportsSchemas from '../schemas/reports';\nimport * as imagesSchemas from '../schemas/images';\nimport * as sensorsSchemas from '../schemas/sensors';\nimport * as types from '../types';\nimport {\n getUnitsListService,\n getUnitsLiveStatusListService,\n getUnitInformationService,\n executeDeviceActionService,\n getUnitHistoricalPositionsReportService,\n acknowledgeUnitEventService,\n updateDeviceService,\n updateSimCardService,\n getUnitByIdService,\n getUnitTrajectoryService\n} from '../services';\nimport { camelize } from 'utility/Utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnits(units, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsList() {\n yield takeEvery(types.UNITS_FETCH_STARTED, fetchUnitsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchUnitsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingUnits(units, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchUnitsList() {\n yield takeEvery(types.UNITS_PARTIAL_FETCH_STARTED, partialFetchUnitsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsLiveStatusList(action) {\n const operatorId = yield select(entitySelectors.getUserUpdateByEntityOperatorId, ENTITY_UNITS);\n const organizationId = yield select(\n entitySelectors.getUserUpdateByEntityOrganizationId,\n ENTITY_UNITS\n );\n const userFetchDate = yield select(selectors.getUnitLiveFetchDate, organizationId);\n\n getUnitsLiveStatusListService(\n { operatorId, organizationId, userFetchDate },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnitsLiveStatus(units, result, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitsLiveStatus(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsLiveStatusList() {\n yield takeEvery(types.UNITS_LIVE_STATUS_FETCH_STARTED, fetchUnitsLiveStatusList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitInformation(action) {\n const { unitId } = action.payload;\n\n getUnitInformationService(\n { unitId },\n {\n successAction: (response) => {\n const resultData = response.data;\n //Unit data Live Status\n const unitData = camelcaseKeys(resultData.unitData);\n //Unit device metrics\n const unitMetrics = resultData.unitMetrics.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceMetrics: deviceMetricsEntities },\n result: deviceMetricsOrder //order\n } = normalize(unitMetrics, deviceMetricsSchemas.deviceMetrics); //normalize data to byId and order\n\n //Unit device actions\n const unitActions = resultData.unitActions.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceActions: deviceActionsEntities },\n result: deviceActionsOrder //order\n } = normalize(unitActions, deviceActionsSchemas.deviceActions); //normalize data to byId and order\n\n //Unit groups\n const groupsData = resultData.groupsData.map((result) => camelcaseKeys(result));\n const {\n entities: { groups: groupsEntities },\n result: groupsOrder //order\n } = normalize(groupsData, groupsSchemas.groups); //normalize data to byId and order\n\n //Unit Reports\n const unitReports = resultData.unitReports.map((result) => camelcaseKeys(result));\n const {\n entities: { reports: reportsEntities },\n result: reportsOrder //order\n } = normalize(unitReports, reportsSchemas.reports); //normalize data to byId and order\n\n //Unit Images\n const unitImages = resultData.unitImages.map((result) => camelcaseKeys(result));\n const {\n entities: { images: imagesEntities },\n result: imagesOrder //order\n } = normalize(unitImages, imagesSchemas.images); //normalize data to byId and order\n\n //Unit Sensors\n const unitSensorMeasures = resultData.unitSensorMeasures.map((result) =>\n camelcaseKeys(result)\n );\n const {\n entities: { sensors: sensorsEntities },\n result: sensorsOrder //order\n } = normalize(unitSensorMeasures, sensorsSchemas.sensors); //normalize data to byId and order\n\n store.dispatch(\n actions.completeFetchingUnitInformation(\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitInformation(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitInformationStarted() {\n yield takeEvery(types.UNIT_INFORMATION_FETCH_STARTED, fetchUnitInformation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitHistoricalPositionsReport(action) {\n const { unitId, reportType, startDate, endDate, idleSpeed } = action.payload;\n\n getUnitHistoricalPositionsReportService(\n { unitId, reportType, startDate, endDate, idleSpeed },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitPositions(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitPositions(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitHistoricalPositionsStarted() {\n yield takeEvery(types.UNIT_POSITIONS_FETCH_STARTED, fetchUnitHistoricalPositionsReport);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH TRAJECTORY */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitTrajectory(action) {\n const { unitId, limit } = action.payload;\n\n getUnitTrajectoryService(\n { unitId, limit },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitTrajectory(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitTrajectory(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitTrajectoryStarted() {\n yield takeEvery(types.UNIT_TRAJECTORY_FETCH_STARTED, fetchUnitTrajectory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EXECUTE DEVICE ACTION */\n/* -------------------------------------------------------------------------- */\nfunction* executeDeviceAction(action) {\n const { unitId, deviceActionId, parameters } = action.payload;\n\n executeDeviceActionService({\n unitId,\n deviceActionId,\n parameters\n });\n}\n\nexport function* watchExecuteDeviceAction() {\n yield takeEvery(types.UNIT_EXECUTE_DEVICE_ACTION, executeDeviceAction);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify({ ...unit, unitId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingUnit(unit.unitId, addedUnit));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n}\n\nexport function* watchAddUnitsStarted() {\n yield takeEvery(types.UNIT_ADD_STARTED, addUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify(unit),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingUnit(editedUnit));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n\n //store.dispatch(actions.startFetchingUnits());\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUnitsStarted() {\n yield takeEvery(types.UNIT_EDIT_STARTED, editUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNIT ACKNOWLEDGE */\n/* -------------------------------------------------------------------------- */\nfunction* acknowledgeUnitEvent(action) {\n const { unitId } = action.payload;\n acknowledgeUnitEventService(\n { unitId },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAcknowledgeUnitEvent(unitId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAcknowledgeUnitEvent(error));\n }\n }\n );\n}\n\nexport function* watchAcknowledgeUnitEvent() {\n yield takeEvery(types.UNIT_ACKNOWLEDGE_STARTED, acknowledgeUnitEvent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeUnit(action) {\n const unitBody = action.payload;\n const units = unitBody.units;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/delete`, {\n method: 'POST',\n body: JSON.stringify({ units }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingUnit(unitBody.units, unitBody.unitsName));\n alerts.showSuccessDisabledMessage({\n object: appIntl().formatMessage({\n id: unitBody.units.length > 1 ? 'units.units' : 'units.unit'\n }),\n multiple: unitBody.units.length > 1,\n altText: true,\n name: unitBody.unitsName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n}\n\nexport function* watchRemoveUnitStarted() {\n yield takeEvery(types.UNIT_REMOVE_STARTED, removeUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACTIVE UNITS */\n/* -------------------------------------------------------------------------- */\nfunction* activeUnits(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/updateUnitStatus`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeActivingUnits(units));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'units.unitsWereSuccessfullyActived'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n}\n\nexport function* watchActiveUnits() {\n yield takeEvery(types.UNITS_ACTIVE_STARTED, activeUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN DRIVER */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriver(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/assignDriver`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningDriverUnits(units));\n units[0].driverName && units[0].driverName !== ''\n ? alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: units.length > 1 ? 'drivers.drivers' : 'drivers.driver'\n }),\n name: units.length > 1 ? '' : units[0].driverName,\n plural: units.length > 1\n })\n : alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'drivers.driver'\n })\n });\n\n /* store.dispatch(actions.startFetchingUnits()); */\n store.dispatch(actions.startFetchingUnitsLiveStatus());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignDriverUnitsStarted() {\n yield takeEvery(types.UNITS_ASSIGN_DRIVER_STARTED, assignDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* startUnitDowntime(action) {\n const { unitId, reasonId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/startDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId, reasonId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeStartDowntimeUnit(\n unitId,\n editedUnit.reasonId,\n editedUnit.reasonDescription\n )\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.startDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n}\n\nexport function* watchStartUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_START_DOWNTIME_STARTED, startUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* END UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* endUnitDowntime(action) {\n const { unitId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/endDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeEndDowntimeUnit(unitId, editedUnit.mainStateId, editedUnit.mainStateDate)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.endDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n}\n\nexport function* watchEndUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_END_DOWNTIME_STARTED, endUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CREATE SHARED LINK */\n/* -------------------------------------------------------------------------- */\nfunction* createSharedLink(action) {\n const { unitId, unitName, emails, ttl } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/unit/shareUnitLocationLink`, {\n method: 'POST',\n body: JSON.stringify({ unitId, unitName, emails, ttl }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const sharedLink = jsonResult.data;\n yield put(actions.completeCreatingShareLink(sharedLink));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.sharedLinkCreatedSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'common.sharedLinkCreatingFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchCreateSharedLinkUnitStarted() {\n yield takeEvery(types.UNIT_CREATE_SHARE_LINK_STARTED, createSharedLink);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE DEVICE */\n/* -------------------------------------------------------------------------- */\nfunction* updateDevice(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData.additionalOnSuccess;\n updateDeviceService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateDevice(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateDevice(oldUnitId, error.toString()));\n }\n });\n}\n\nexport function* watchUpdateDevice() {\n yield takeEvery(types.UNIT_UPDATE_DEVICE_STARTED, updateDevice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE SIM */\n/* -------------------------------------------------------------------------- */\nfunction* updateSim(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData?.additionalOnSuccess;\n\n updateSimCardService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateSim(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateSim(oldUnitId, error?.toString() ?? ''));\n }\n });\n}\n\nexport function* watchUpdateSim() {\n yield takeEvery(types.UNIT_UPDATE_SIM_STARTED, updateSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET UNIT BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchUnitById(action) {\n const unitId = action.payload;\n getUnitByIdService(\n {\n unitId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingUnit(resultData, [resultData.unitId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnit(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitById() {\n yield takeEvery(types.UNIT_FETCH_STARTED, fetchUnitById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Schedules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const schedule = new schema.Entity('schedules', {}, { idAttribute: 'scheduleId' });\nexport const schedules = new schema.Array(schedule);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as scheduleSelectors from '../reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport * as utility from '../../../../utility/Utils';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { addSchedulesDescription } from '../utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSchedulesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completeFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n}\n\nexport function* watchFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_FETCH_STARTED, fetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSchedulesList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completePartialFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n}\n\nexport function* watchPartialFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_PARTIAL_FETCH_STARTED, partialFetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_ADD_STARTED, addSchedule);\n}\n\nexport function* completeAddingSchedule({ payload }) {\n const { oldId, schedule } = payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchAddSchedulesCompleted() {\n yield takeEvery(types.SCHEDULE_ADD_COMPLETED, addSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSchedule(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n yield put(actions.startFetchingSchedules());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_EDIT_STARTED, editSchedule);\n}\n\n// added in order to resolve problem of not refreshing the schedule list after editing a schedule\nfunction* completeEditSchedule(action) {\n const schedule = action.payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchCompleteEditSchedule() {\n yield takeEvery(types.SCHEDULE_EDIT_COMPLETED, completeEditSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* addShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_ADD_STARTED, addShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* editScheduleShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingShift(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_EDIT_STARTED, editScheduleShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSchedule(action) {\n const { scheduleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/delete`, {\n method: 'POST',\n body: JSON.stringify({ scheduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const scheduleDeleted = yield select(scheduleSelectors.getSchedule, scheduleId);\n yield put(actions.completeRemovingSchedule(scheduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: scheduleDeleted?.scheduleName\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n}\n\nexport function* watchRemoveScheduleStarted() {\n yield takeEvery(types.SCHEDULE_REMOVE_STARTED, removeSchedule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema bookmarks */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const bookmark = new schema.Entity(\n \"bookmarks\",\n {},\n { idAttribute: \"id\" }\n);\nexport const bookmarks = new schema.Array(bookmark);\n","/* eslint-disable semi */\n/* -------------------------------------------------------------------------- */\n/* Saga Auth */\n/* -------------------------------------------------------------------------- */\n\nimport camelcaseKeys from 'camelcase-keys';\nimport jwtDecode from 'jwt-decode';\nimport { normalize } from 'normalizr';\nimport { call, delay, put, select, takeEvery } from 'redux-saga/effects';\nimport sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions, * as outsideSidebar from '../../../navigation/outside-sidebar';\nimport * as actions from '../../actions/auth';\nimport * as navbarActions from '../../actions/navbar';\nimport * as selectors from '../../reducers/auth';\nimport * as navbarSelectors from '../../reducers/navbar';\nimport * as schemas from '../../schemas/bookmarks';\nimport * as types from '../../types/auth';\nimport * as navbarTypes from '../../types/navbar';\nimport * as alerts from '../../utils/alerts';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport TOKEN_LIFE_TIME from '../settings/tokenLifeTime';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { getTokenRefreshFailCount } from '../../reducers/auth';\n\nfunction* login(action) {\n try {\n let timerInterval;\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/login`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n // alerts.closeLoading();\n if (response.status <= 300) {\n const { token } = yield response.json();\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n let userData = camelcaseKeys(jwtDecode(token));\n yield localStorage.setItem('userData', JSON.stringify(userData));\n\n // alerts.showSuccessMessage({\n // success: `Bienvenido ${userData.username}`,\n // timer: 2000,\n // });\n\n // yield put(reset(\"login\"));\n ////////////////////////////////////////\n yield put(actions.completeLogin(token));\n // Obtener informacion adicional del usuario\n // yield put(actions.authenticationUserInformationStarted());\n } else {\n yield put(\n actions.failLogin(\n 'El nombre de usuario y contraseña introducidos no coinciden con nuestros registros. Revísalos e inténtalo de nuevo.'\n )\n );\n\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseña introducidos no coinciden con nuestros registros. Revísalos e inténtalo de nuevo.'\n }\n });\n }\n } catch (error) {\n yield put(actions.failLogin('Falló la autentitación.'));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseña introducidos no coinciden con nuestros registros. Revísalos e inténtalo de nuevo.'\n }\n });\n }\n}\n\nexport function* watchLoginStarted() {\n yield takeEvery(types.AUTHENTICATION_STARTED, login);\n}\n\nfunction* userInformationRequest(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userId = yield select(selectors.getAuthUserID);\n\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n\n const responseSuperAdmin = yield call(fetch, `${API_BASE_URL}/superAdmins/${userId}/`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n });\n\n if (responseSuperAdmin.status <= 300) {\n const jsonResultUser = yield responseSuperAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n const responseRestaurantAdmin = yield call(\n fetch,\n `${API_BASE_URL}/restaurantAdmins/${userId}/`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n }\n );\n\n if (responseRestaurantAdmin.status <= 300) {\n const jsonResultUser = yield responseRestaurantAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n yield put(actions.logout());\n }\n }\n }\n } catch (error) {\n yield put(actions.logout());\n yield put(actions.failRefreshToken('Falló la conexión'));\n }\n}\n\nexport function* watchUserInformationRequest() {\n yield takeEvery(types.AUTHENTICATION_USER_INFORMATION_STARTED, userInformationRequest);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* refreshToken(action) {\n const tokenRefreshFailCount = yield select(getTokenRefreshFailCount);\n try {\n const isAuth = yield select((state) => state.auth.token != null);\n const token = yield select((state) => state.auth.token);\n\n const expiration = yield select((state) => state.auth.user.exp);\n const now = parseInt(new Date().getTime() / 1000);\n\n if (expiration - now < TOKEN_LIFE_TIME / 2) {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n const { non_field_errors } = yield response.json();\n yield put(actions.failRefreshToken({ ...non_field_errors[0], tokenRefreshFailCount }));\n yield delay(200);\n }\n }\n } catch (error) {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n\n yield put(actions.failRefreshToken('Falló la conexión'));\n }\n}\n\nexport function* watchRefreshTokenStarted() {\n yield takeEvery(types.TOKEN_REFRESH_STARTED, refreshToken);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FORCE REFRESH TOKEN WHEN PROFILE UPDATED */\n/* -------------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* forceRefreshToken(action) {\n const token = yield select((state) => state.auth.token);\n\n try {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n // yield put(actions.logout());\n // const { non_field_errors } = yield response.json();\n // yield put(actions.failRefreshToken(non_field_errors[0]));\n // yield delay(200);\n }\n } catch (error) {\n // yield put(actions.logout());\n // yield put(actions.failRefreshToken('Falló la conexión'));\n }\n}\n\nexport function* watchForceRefreshToken() {\n yield takeEvery(\n [\n types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n types.PROFILE_UPDATE_PICTURE_COMPLETED,\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n types.TOKEN_REFRESH_FORCE_STARTED,\n types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED\n ],\n forceRefreshToken\n );\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH BOOKMARKS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUserBookmarks(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/userSettings`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const bookmarkSetting = jsonResult.data.filter(\n (setting) => camelcaseKeys(setting).settingId == 19\n );\n const bookmarkSettingValue =\n bookmarkSetting.length == 1 ? camelcaseKeys(bookmarkSetting[0]).settingValue : '';\n const bookmarkIds =\n (bookmarkSettingValue ?? '') != '' ? bookmarkSettingValue.split(',') : [];\n const optionsSuggestions = [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ];\n const {\n entities: {\n bookmarks //byId\n },\n result //order\n } = normalize(optionsSuggestions, schemas.bookmarks); //normalize data to byId and order\n let userBookmarks = bookmarkIds.map((id) => {\n bookmarks[id] = {\n ...bookmarks[id],\n isBookmarked: true\n };\n return {\n ...bookmarks[id]\n };\n });\n let newSuggestions = result.map((id) => bookmarks[id]);\n\n yield put(navbarActions.completeFetchingBookmarks(userBookmarks, newSuggestions));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n}\n\nexport function* watchFetchUserBookmarksStarted() {\n yield takeEvery(navbarTypes.GET_BOOKMARKS_FETCH_STARTED, fetchUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD USER BOOKMARK */\n/* -------------------------------------------------------------------------- */\nfunction* updateUserBookmarks(action) {\n // const id = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userBookmarks = yield select(navbarSelectors.getUserBookmarks);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const userBookmarksSettingsValue = userBookmarks.map((ub) => ub.id).toString();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettings`, {\n method: 'POST',\n body: JSON.stringify({\n settingId: 19,\n settingValue: userBookmarksSettingsValue\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n // const updateUserSettings = camelcaseKeys(jsonResult.data);\n yield put(navbarActions.updateBookmarkedCompleted());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n}\n\nexport function* watchUpdateUserBookmarkssStarted() {\n yield takeEvery(navbarTypes.UPDATE_BOOKMARKED_STARTED, updateUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE GENERAL INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileGeneralInformation(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n yield delay(2000);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveProfile`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileGeneralInformation(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n}\n\nexport function* watchUpdateProfileGeneralInformationStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n updateProfileGeneralInformation\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP SETTINGS CONFIG */\n/* -------------------------------------------------------------------------- */\nfunction* updateMapProfileSettings(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettingsMap`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapSettingsConfiguration(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n}\n\nexport function* watchUpdateMapProfileSettingsStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n updateMapProfileSettings\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP OPTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileMapOptions(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapOptions`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapOptions.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileMapOptions(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n}\n\nexport function* watchUpdateProfileMapOptionsStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_OPTIONS_STARTED, updateProfileMapOptions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfilePassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfilePassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n}\n\nexport function* watchUpdateProfilePasswordStarted() {\n yield takeEvery(types.PROFILE_UPDATE_PASSWORD_STARTED, updateProfilePassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE HOME SCREEN */\n/* -------------------------------------------------------------------------- */\nfunction* updateHomeScreen(action) {\n const homeScreenId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/homeScreen`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileHomeScreen(homeScreenId));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n}\n\nexport function* watchUpdateProfileHomeScreenStarted() {\n yield takeEvery(types.PROFILE_UPDATE_HOME_SCREEN_STARTED, updateHomeScreen);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRODUCT */\n/* -------------------------------------------------------------------------- */\nfunction* changeProduct(action) {\n const serviceId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n /*const response = yield call(fetch, `${API_BASE_URL}/profile/service`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });*/\n // alerts.closeLoading();\n //const jsonResult = yield response.json();\n //if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeProduct.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeChangingProduct(serviceId));\n /*} else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeActualService.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileActualService(error));\n }*/\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeProduct.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangingProduct(error));\n }\n}\n\nexport function* watchChangeProductStarted() {\n yield takeEvery(types.PROFILE_CHANGE_PRODUCT_STARTED, changeProduct);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PINNED TAB */\n/* -------------------------------------------------------------------------- */\n\nfunction* updateMapFilterTabPinned(action) {\n const mapEntitiesFilterTab = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapFilterTabPinned`, {\n method: 'POST',\n body: JSON.stringify({\n mapEntitiesFilterTab: mapEntitiesFilterTab\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: `profile.mapOptions.pinnedTabSuccessMessage${mapEntitiesFilterTab}`\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapFilterTabPinned(mapEntitiesFilterTab));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.pinnedTabFailMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapFilterTabPinned(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.pinnedTabFailMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapFilterTabPinned(error));\n }\n}\n\nexport function* watchUpdateMapFilterTabPinnedStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED, updateMapFilterTabPinned);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const route = new schema.Entity('routes', {}, { idAttribute: 'routeId' });\nexport const routes = new schema.Array(route);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Route Checkpoints */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeCheckpoint = new schema.Entity(\n 'routeCheckpoints',\n {},\n { idAttribute: (value) => `${value.routeId}-${value.checkpointId}` }\n);\nexport const routeCheckpoints = new schema.Array(routeCheckpoint);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routes';\nimport * as types from '../../types/routes';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routes';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getRoutesListService,\n saveRouteService,\n deleteRouteService,\n deleteRoutesService\n} from '../../services/routes';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRoutes(routes, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchFetchRoutesList() {\n yield takeEvery(types.ROUTES_FETCH_STARTED, fetchRoutesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchRoutesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingRoutes(routes, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchRoutesList() {\n yield takeEvery(types.ROUTES_PARTIAL_FETCH_STARTED, partialFetchRoutesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addRoute(action) {\n const route = action.payload;\n\n saveRouteService(\n { ...route, route: { ...route.route, routeId: null } },\n {\n successAction: async (response) => {\n const addedRoute = camelcaseKeys(response.data.routeData);\n const addedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(addedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeAddingRoute(route.route.routeId, {\n route: { ...addedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingRoute(route.route.routeId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddRoutesStarted() {\n yield takeEvery(types.ROUTE_ADD_STARTED, addRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRoute(action) {\n const route = action.payload;\n const { oldRoute } = yield select(selectors.getRoute, route.route.routeId);\n\n saveRouteService(\n route,\n {\n successAction: async (response) => {\n const editedRoute = camelcaseKeys(response.data.routeData);\n const editedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(editedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeEditingRoute({\n route: { ...editedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingRoute(oldRoute, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditRoutesStarted() {\n yield takeEvery(types.ROUTE_EDIT_STARTED, editRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoute(action) {\n const { routeId } = action.payload;\n const routeDeleted = yield select(selectors.getRoute, routeId);\n\n deleteRouteService(\n { routeId, routeName: routeDeleted?.routeName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingRoute(routeId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingRoute(routeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveRouteStarted() {\n yield takeEvery(types.ROUTE_REMOVE_STARTED, removeRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoutes(action) {\n const { routeIds } = action.payload;\n\n deleteRoutesService(\n { routeIds },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingRoutes(routeIds.split(',').map((routeId) => parseInt(routeId)))\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingRoutes(\n routeIds.split(',').map((routeId) => parseInt(routeId)),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveRoutesStarted() {\n yield takeEvery(types.ROUTES_REMOVE_STARTED, removeRoutes);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Route */\n/* -------------------------------------------------------------------------- */\nfunction* copyRoute(action) {\n const route = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/copyRoute`, {\n method: 'POST',\n body: JSON.stringify(route),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyRoute(\n route.routeId,\n jsonResult.data.newRouteId,\n route.newRouteName,\n route.organizationId,\n route.divisionId,\n route.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n}\n\nexport function* watchCopyRouteStarted() {\n yield takeEvery(types.ROUTE_COPY_STARTED, copyRoute);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from 'views/../redux/sagas/settings/apibaseurl.js';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { appIntl } from 'views/../utility/context/IntlGlobalProvider';\nimport * as alerts from 'views/../redux/utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContactsList(action) {\n const { query, selected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contact/getDropdown`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n body: JSON.stringify({ selected: selected })\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contacts },\n result //order\n } = normalize(resultData, schemas.contacts); //normalize data to byId and order\n yield put(actions.completeFetchingContacts(contacts, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n }\n } catch (err) {\n const error: any = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n}\n\nexport function* watchFetchContactsList() {\n yield takeEvery(types.CONTACTS_FETCH_STARTED, fetchContactsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contact, contactId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingContact(contact.contactId, addedContact));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n}\n\nexport function* watchAddContactsStarted() {\n yield takeEvery(types.CONTACT_ADD_STARTED, addContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify(contact),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContact(editedContact));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContact } = yield select((state) =>\n selectors.getContact(state.contacts, contact.contactId)\n );\n yield put(actions.failEditingContact(oldContact, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldContact = yield select((state) => selectors.getContact(state, contact.contactId));\n yield put(actions.failEditingContact(oldContact, error));\n }\n}\n\nexport function* watchEditContactsStarted() {\n yield takeEvery(types.CONTACT_EDIT_STARTED, editContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContact(action) {\n const contactBody = action.payload;\n const contacts = contactBody.contacts;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/delete`, {\n method: 'POST',\n body: JSON.stringify({ contacts }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContact(contactBody.contacts, contactBody.contactsName));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: contactBody.contacts.length > 1 ? 'contacts.contacts2' : 'contacts.contact'\n }),\n name: contactBody.contactsName,\n multiple: contactBody.contacts.length > 1\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n}\n\nexport function* watchRemoveContactsStarted() {\n yield takeEvery(types.CONTACT_REMOVE_STARTED, removeContact);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routeCheckpoints';\nimport * as types from '../../types/routeCheckpoints';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routeCheckpoints';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { getRouteCheckpointsListService } from '../../services/routeCheckpoints';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRouteCheckpointsList(action) {\n const routeId = action.payload;\n\n getRouteCheckpointsListService(\n { routeId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const finalResultData = resultData.map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(finalResultData, schemas.routeCheckpoints); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRouteCheckpoints(routeCheckpoints, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRouteCheckpoints(error));\n }\n }\n );\n}\n\nexport function* watchFetchRouteCheckpointsList() {\n yield takeEvery(types.ROUTE_CHECKPOINTS_FETCH_STARTED, fetchRouteCheckpointsList);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesAssignments';\nimport * as types from '../../types/routesAssignments';\nimport * as selectors from '../../reducers/routesAssignments';\nimport * as schemas from '../../schemas/routesAssignments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteAssignmentService,\n getRouteAssignmentsListService,\n importRouteAssignmentsService,\n saveAssignmentService\n} from '../../services/routesAssignments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssignmentsList(action) {\n const { startDate, endDate, organizationId, divisionId, subdivisionId } = action.payload;\n\n getRouteAssignmentsListService(\n { startDate, endDate, organizationId, divisionId, subdivisionId },\n {\n successAction: (response) => {\n const resultDataByDate = response.data.assignmentsByDate.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 1\n }));\n const resultDataBySchedule = response.data.assignmentsBySchedule.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 2\n }));\n const {\n entities: { assignmentsByDate },\n result: orderByDate //order\n } = normalize(resultDataByDate, schemas.assignmentsByDate); //normalize data to byId and order\n const {\n entities: { assignmentsBySchedule },\n result: orderBySchedule //order\n } = normalize(resultDataBySchedule, schemas.assignmentsBySchedule); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingAssignments(\n assignmentsByDate,\n orderByDate,\n assignmentsBySchedule,\n orderBySchedule\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssignments(error));\n }\n }\n );\n}\n\nexport function* watchFetchAssignmentsList() {\n yield takeEvery(types.ROUTES_ASSIGNMENTS_FETCH_STARTED, fetchAssignmentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignment(action) {\n const assignment = action.payload;\n const { oldAssignment } = yield select((state) =>\n selectors.getRoutesAssignment(state, assignment.routeAssignmentId)\n );\n saveAssignmentService(\n {\n ...assignment,\n routeAssignmentId: oldAssignment.routeAssignmentId,\n routeId: oldAssignment.routeId,\n unitId: oldAssignment.unitId,\n scheduleId: oldAssignment.scheduleId,\n unitName: oldAssignment.unitName\n },\n {\n successAction: (response) => {\n const editedAssignment = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditingAssignment(assignment.routeAssignmentId, editedAssignment)\n );\n },\n errorAction: (error) => {\n store.dispatch(\n actions.failEditingAssignment(assignment.routeAssignmentId, oldAssignment, error)\n );\n }\n }\n );\n}\n\nexport function* watchEditAssignmentsStarted() {\n yield takeEvery(types.ROUTES_ASSIGNMENT_EDIT_STARTED, editAssignment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAssignment(action) {\n const { routeAssignmentId } = action.payload;\n const deletedAssignment = yield select((state) =>\n selectors.getRoutesAssignment(state, routeAssignmentId)\n );\n deleteAssignmentService(\n { ...deletedAssignment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingAssignment(routeAssignmentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingAssignment(routeAssignmentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveAssignmentStarted() {\n yield takeEvery(types.ROUTES_ASSIGNMENT_REMOVE_STARTED, removeAssignment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* importRouteAssignments(action) {\n const { routeAssignments } = action.payload;\n\n importRouteAssignmentsService(\n { ...routeAssignments },\n {\n successAction: (response) => {\n const resultDataByDate = response.data.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 1\n }));\n const {\n entities: { assignmentsByDate },\n result: orderByDate //order\n } = normalize(resultDataByDate, schemas.assignmentsByDate); //normalize data to byId and order\n store.dispatch(actions.completeImportingRouteAssignments(assignmentsByDate, orderByDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingRouteAssignments(error));\n }\n }\n );\n}\n\nexport function* watchImportRouteAssignments() {\n yield takeEvery(types.ROUTES_ASSIGNMENTS_IMPORT_STARTED, importRouteAssignments);\n}\n","import * as types from '../../types/routesComments';\n\nexport const startFetchingComments = (routeAssignmentId) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED,\n payload: { routeAssignmentId }\n});\nexport const completeFetchingComments = (entities, order) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingComments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_STARTED,\n payload: comment\n});\nexport const completeAddingComment = (oldId, comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED,\n payload: { oldId, comment }\n});\nexport const failAddingComment = (oldId, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED,\n payload: comment\n});\nexport const completeEditingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED,\n payload: comment\n});\nexport const failEditingComment = (oldComment, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED,\n payload: {\n oldComment,\n error\n }\n});\n\nexport const startRemovingComment = (routeCommentId) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED,\n payload: {\n routeCommentId\n }\n});\nexport const completeRemovingComment = (routeCommentId) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED,\n payload: {\n routeCommentId\n }\n});\nexport const failRemovingComment = (routeCommentId, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED,\n payload: {\n routeCommentId,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'routeCommentId' });\nexport const comments = new schema.Array(comment);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesComments';\nimport * as types from '../../types/routesComments';\nimport * as selectors from '../../reducers/routesComments';\nimport * as schemas from '../../schemas/routesComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getRouteCommentsListService,\n saveCommentService\n} from '../../services/routesComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { routeAssignmentId } = action.payload;\n\n getRouteCommentsListService(\n { routeAssignmentId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchCommentsList() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, routeCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.routeCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editComment(action) {\n const comment = action.payload;\n const { oldComment } = yield select((state) =>\n selectors.getRoutesComment(state, comment.routeCommentId)\n );\n saveCommentService(\n { ...comment },\n {\n successAction: (response) => {\n const editedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingComment(editedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingComment(oldComment, error));\n }\n }\n );\n}\n\nexport function* watchEditCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED, editComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { routeCommentId } = action.payload;\n const deletedComment = yield select((state) => selectors.getRoutesComment(state, routeCommentId));\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(routeCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCommentStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED, removeComment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeExecution = new schema.Entity(\n 'routesExecutions',\n {},\n { idAttribute: 'routeAssignmentId' }\n);\nexport const routesExecutions = new schema.Array(routeExecution);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesExecutions';\nimport * as types from '../../types/routesExecutions';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routesExecutions';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n changeToAlternateRouteService,\n saveRouteExecutionService\n} from '../../services/routeExecution';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n const { scheduledBySchedule } = camelcaseKeys(jsonResult.data.scheduledBySchedule);\n const { totalNotShown } = camelcaseKeys(jsonResult.data.totalNotShown);\n const resultData = jsonResult.data.routesList.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, schemas.routesExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingRoutesExecutions(routesExecutions, result, {\n ...indicators,\n scheduledBySchedule,\n totalNotShown\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n}\n\nexport function* watchFetchRoutesExecutions() {\n yield takeEvery(types.ROUTES_EXECUTIONS_FETCH_STARTED, fetchRoutesExecutions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRouteExecution(action) {\n const routeExecution = action.payload;\n const oldRouteExecution = yield select((state) =>\n selectors.getRoutesExecution(state, routeExecution.routeAssignmentId)\n );\n saveRouteExecutionService(\n {\n ...routeExecution,\n routeAssignmentId: oldRouteExecution.routeAssignmentId,\n unitName: oldRouteExecution.unitName\n },\n {\n successAction: (response) => {\n const editedRouteExecution = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditRouteExecution({ ...routeExecution, ...editedRouteExecution })\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditRouteExecution(error));\n }\n }\n );\n}\n\nexport function* watchEditRouteExecutionStarted() {\n yield takeEvery(types.ROUTE_EXECUTION_EDIT_STARTED, editRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* changeToAlternateRoute(action) {\n const { routeAssignmentId, routeId, reason } = action.payload;\n changeToAlternateRouteService(\n { routeAssignmentId, routeId, reason },\n {\n successAction: (response) => {\n if (response.success)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.successfullyChangeAlternateRoute'\n })\n });\n store.dispatch(actions.completeChangeToAlternateRoute(routeAssignmentId, routeId, reason));\n },\n errorAction: (error) => {\n const errorTxt = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.changeAlternateRouteMessageError'\n })\n };\n alerts.showErrorAlertFailChanges({ error: errorTxt });\n store.dispatch(actions.failChangeToAlternateRoute(error));\n }\n }\n );\n}\n\nexport function* watchChangeToAlternateRouteStarted() {\n yield takeEvery(types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED, changeToAlternateRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Route Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignRouteExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitRoutesExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n}\n\nexport function* watchAsignRouteExecutionUnit() {\n yield takeEvery(types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED, assignRouteExecutionUnit);\n}\n","import * as types from '../../types/routesReport';\n\nexport const startFetchingRoutesReport = (filters = {}) => ({\n type: types.ROUTES_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutesReport = (\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n) => ({\n type: types.ROUTES_REPORT_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n }\n});\nexport const failFetchingRoutesReport = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesReport';\nimport * as types from '../../types/routesReport';\nimport * as selectors from '../../reducers/routes';\nimport * as routesExecutionsSchemas from '../../schemas/routesExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as routesSchemas from '../../schemas/routes';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getReport`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const routes = jsonResult.data.routes.map((result) => camelcaseKeys(result));\n const {\n entities: { routes: routesEntities },\n result: routesOrder //order\n } = normalize(routes, routesSchemas.routes); //normalize data to byId and order\n\n const resultData = jsonResult.data.routeExecutions.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, routesExecutionsSchemas.routesExecutions); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingRoutesReport(\n routesExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n}\n\nexport function* watchFetchRoutesReport() {\n yield takeEvery(types.ROUTES_REPORT_FETCH_STARTED, fetchRoutesReport);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const monitoringUser = new schema.Entity('monitoringUsers', {}, { idAttribute: 'userName' });\nexport const monitoringUsers = new schema.Array(monitoringUser);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authActions from '../../../../redux/actions/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as entitySelectors from '../../Entities/reducers';\nimport {\n getUsersListService,\n saveUserService,\n deleteUserService,\n getUserByIdService\n} from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMonitoringUsersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_FETCH_STARTED, fetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMonitoringUsersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_PARTIAL_FETCH_STARTED, partialFetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMonitoringUser(action) {\n const monitoringUser = action.payload;\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const addedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeAddingMonitoringUser(monitoringUser.userName, addedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMonitoringUser(monitoringUser.userName, error));\n }\n }\n );\n}\n\nexport function* watchAddMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_ADD_STARTED, addMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMonitoringUser(action) {\n const monitoringUser = action.payload;\n const oldMonitoringUser = yield select((state) =>\n selectors.getMonitoringUser(state, monitoringUser.oldUserName)\n );\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const editedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeEditingMonitoringUser(monitoringUser.oldUserName, editedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMonitoringUser(oldMonitoringUser, error));\n }\n }\n );\n}\n\nexport function* watchEditMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_EDIT_STARTED, editMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMonitoringUser(action) {\n const { users, usersName } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/delete`, {\n method: 'POST',\n body: JSON.stringify({ users }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingMonitoringUser(users, usersName));\n\n //verificar si en la lista de usuario eliminados esta incluido el usuario logeado\n const loggedUsername = yield select(authSelectors.getAuthUsername);\n //si esta en la lista, forzamos un logout\n if (users.includes(loggedUsername)) yield put(authActions.logout());\n else\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: users.length > 1 ? 'users.users' : 'users.user'\n }),\n multiple: users.length > 1,\n name: usersName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n}\n\nexport function* watchRemoveMonitoringUserStarted() {\n yield takeEvery(types.MONITORING_USER_REMOVE_STARTED, removeMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE USER PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateMonitoringUserPassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/user/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMonitoringUserPassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n}\n\nexport function* watchUpdateMonitoringUserPasswordStarted() {\n yield takeEvery(types.MONITORING_USER_UPDATE_PASSWORD_STARTED, updateMonitoringUserPassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE ROLES AND PERMISSIONS */\n/* -------------------------------------------------------------------------- */\nfunction* saveRolesAndPermissions(action) {\n const rolesAndPermissions = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/user/saveRolesAndPermissions`, {\n method: 'POST',\n body: JSON.stringify(rolesAndPermissions),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSavingMonitoringUserRolesAndPermissions(rolesAndPermissions));\n alerts.showSuccessRolesAndPermissionsSavedMessage({\n name: rolesAndPermissions.userName\n });\n const userInSession = yield select(authSelectors.getAuthUser);\n if (rolesAndPermissions.userName === userInSession.username) {\n yield put(authActions.startForceRefreshToken());\n }\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveMonitoringUserRolesAndPermissionsStarted() {\n yield takeEvery(types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED, saveRolesAndPermissions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* assignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/AssignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n }),\n name: userAssignSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignScheduleUsersStarted() {\n yield takeEvery(types.USERS_ASSIGN_SCHEDULE_STARTED, assignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* unassignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/UnassignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeUnassigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchUnassignScheduleUsersStarted() {\n yield takeEvery(types.USERS_UNASSIGN_SCHEDULE_STARTED, unassignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchMonitoringUserById(action) {\n const monitoringUserId = action.payload;\n getUserByIdService(\n {\n monitoringUserId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingMonitoringUser(resultData, [resultData.userName]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUser(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUserById() {\n yield takeEvery(types.MONITORING_USER_FETCH_STARTED, fetchMonitoringUserById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workplanId' });\nexport const workplans = new schema.Array(workplan);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplans';\nimport * as types from '../../types/workplans';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplans';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as workplanSelectors from '../../reducers/workplans';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getWorkplansListService,\n deleteWorkplanService,\n saveWorkplanService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansList(action) {\n const { \n operatorId: filterOperatorId, \n organizationId: filterOrganizationId, \n divisionId, \n subdivisionId, \n groupId\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { operatorId, organizationId, divisionId, subdivisionId, groupId },\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: 'commentId' });\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, commentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.commentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.commentId, 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 { commentId } = action.payload;\n const deletedComment = yield select((state) =>\n selectors.getWorkplansComment(state, commentId)\n );\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(commentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(commentId, 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 getFormByIdService = (request: any, 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}/getById`, 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, put, select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport uniq from 'lodash/uniq';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\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 {\n getFormByIdService,\n getFormsListService,\n getFormsQuestionsListService,\n getFormsSectionsListService,\n resendResponseFormService,\n saveExternalFormService,\n saveFormService,\n saveResponseFormService\n} from '../services/forms';\nimport * as types from '../types';\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/* -------------------------------------------------------------------------- */\n/* FETCH BY ID */\n/* -------------------------------------------------------------------------- */\nfunction* fetchFormById(action) {\n const formId = action.payload;\n getFormByIdService(\n { formId },\n {\n successAction: (response) => {\n const formList = response.data.formList.map((result) => camelcaseKeys(result));\n const sectionList = response.data.sectionList.map((result) => camelcaseKeys(result));\n const questionList = response.data.questionList.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result: resultForm //order\n } = normalize(formList, schemas.forms); //normalize data to byId and order\n\n const {\n entities: { sections },\n result: resultSections //order\n } = normalize(sectionList, schemas.sections);\n\n const {\n entities: { questions },\n result: resultQuestions //order\n } = normalize(questionList, schemas.questions);\n\n store.dispatch(\n actions.completeFetchingForm(\n forms,\n resultForm,\n sections,\n resultSections,\n questions,\n resultQuestions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingForm(error));\n }\n }\n );\n}\n\nexport function* watchFetchFormById() {\n yield takeEvery(types.FORM_FETCH_STARTED, fetchFormById);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SECTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSections(action) {\n const formId = action.payload;\n\n getFormsSectionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sections },\n result //order\n } = normalize(resultData, schemas.sections); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormSections(sections, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormSections(error));\n }\n }\n );\n}\n\nexport function* watchFetchSections() {\n yield takeEvery(types.FORM_SECTIONS_FETCH_STARTED, fetchSections);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH QUESTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuestions(action) {\n const formId = action.payload;\n\n getFormsQuestionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { questions },\n result //order\n } = normalize(resultData, schemas.questions); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormQuestions(questions, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormQuestions(error));\n }\n }\n );\n}\n\nexport function* watchFetchQuestions() {\n yield takeEvery(types.FORM_QUESTIONS_FETCH_STARTED, fetchQuestions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addForm(action) {\n const form = action.payload;\n saveFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddFormsStarted() {\n yield takeEvery(types.FORM_ADD_STARTED, addForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editForm(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response?.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditFormsStarted() {\n yield takeEvery(types.FORM_EDIT_STARTED, editForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* addFormExternal(action) {\n const form = action.payload;\n saveExternalFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_ADD_STARTED, addFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* editFormExternal(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveExternalFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_EDIT_STARTED, editFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeForm(action) {\n const { formId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedForm = yield select((state) => selectors.getForm(state, formId));\n const response = yield call(fetch, `${API_BASE_URL}/form/delete`, {\n method: 'POST',\n body: JSON.stringify({ formId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingForm(formId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'forms.form'\n }),\n name: deletedForm.organizationFormName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n}\n\nexport function* watchRemoveFormStarted() {\n yield takeEvery(types.FORM_REMOVE_STARTED, removeForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Save responses */\n/* -------------------------------------------------------------------------- */\nfunction* saveResponse(action) {\n const formResponse = action.payload;\n saveResponseFormService(\n { ...formResponse },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAddingResponse());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingResponse());\n }\n }\n );\n}\n\nexport function* watchResponseAddedStarted() {\n yield takeEvery(types.FORM_RESPONSE_SAVE_STARTED, saveResponse);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Get responses */\n/* -------------------------------------------------------------------------- */\nfunction* getResponses(action) {\n const payload = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/form/getResponses`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...payload })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const {\n success,\n data: { definition, answers }\n } = jsonResult;\n const camelDefinition = camelcaseKeys(definition);\n const {\n entities: { responses },\n result\n }: { entities: any; result: any[] } = normalize(camelDefinition, schemas.responses);\n const finalObject = {};\n uniq(result).forEach((answer) => {\n const {\n entities: { questions },\n result\n }: { entities: any; result: any[] } = normalize(responses[answer], schemas.questions);\n finalObject[answer] = {\n questions: questions,\n result: result\n };\n });\n yield put(\n actions.completeFetchingResponse(finalObject, uniq(result), payload.organizationFormId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingResponse(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // yield put(actions.failFetchingForm(error));\n }\n}\n\nexport function* watchResponseFetchStarted() {\n yield takeEvery(types.FORM_RESPONSE_FETCH_STARTED, getResponses);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Resend responses */\n/* -------------------------------------------------------------------------- */\nfunction* resendResponse(action) {\n const { organizationFormId, responseIds } = action.payload;\n resendResponseFormService(\n { organizationFormId, responseIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeResendingResponse(organizationFormId, responseIds));\n },\n errorAction: (error) => {\n store.dispatch(actions.failResendingResponse(organizationFormId, responseIds));\n }\n }\n );\n}\n\nexport function* watchResponseResendStarted() {\n yield takeEvery(types.FORM_RESPONSE_RESEND_STARTED, resendResponse);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Categories */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const category = new schema.Entity('categories', {}, { idAttribute: 'categoryId' });\nexport const categories = new schema.Array(category);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveCategoryDTO, DeleteCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveCategory = (request: SaveCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: `${request.categoryId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/categories`, request);\n};\n\nexport const deleteCategory = (request: DeleteCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteCategory/${request.categoryId}`);\n};\n\nexport const getCategoryList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/categories`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/categories';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/categories';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteCategory,\n getCategoryList,\n saveCategory\n} from 'views/screens/vehicleMaintenance/services/categoriesService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { DeleteCategoryDTO, SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCategoriesList(action) {\n try {\n const jsonResult = yield call(getCategoryList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { categories },\n result //order\n } = normalize(resultData, schemas.categories); //normalize data to byId and order\n yield put(actions.completeFetchingCategories(categories, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCategories(error));\n }\n}\n\nexport function* watchFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_FETCH_STARTED, fetchCategoriesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCategoriesList(action) {}\n\nexport function* watchPartialFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_PARTIAL_FETCH_STARTED, partialFetchCategoriesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingCategory(addedData.categoryId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingCategory(request.tempId, e));\n }\n}\n\nexport function* watchAddCategoriesStarted() {\n yield takeEvery(types.CATEGORY_ADD_STARTED, addCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingCategory({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchEditCategoriesStarted() {\n yield takeEvery(types.CATEGORY_EDIT_STARTED, editCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteCategory, request);\n yield put(actions.completeRemovingCategory(request.categoryId));\n } catch (e) {\n yield put(actions.failRemovingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchRemoveCategoryStarted() {\n yield takeEvery(types.CATEGORY_REMOVE_STARTED, removeCategory);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const maintenanceLine = new schema.Entity(\n 'maintenanceLines',\n {},\n { idAttribute: 'maintenanceLineId' }\n);\nexport const maintenanceLines = new schema.Array(maintenanceLine);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/maintenanceLine';\n\nexport const getMaintenanceLinesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: request.maintenanceLineId ? 'Edit' : 'Create',\n name: request.maintenanceLineName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const copyMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Custom',\n genderType: 'SingularFemale',\n customMessage: intl.formatMessage({\n id: 'maintenanceLines.copySuccessful'\n }),\n customMessageError: intl.formatMessage({\n id: 'maintenanceLines.copyError'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/copy`, request);\n};\n\nexport const importMaintenanceLinesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importMaintenanceLines`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getMaintenanceLinesListService,\n saveMaintenanceLineService,\n deleteMaintenanceLineService,\n copyMaintenanceLineService,\n importMaintenanceLinesService\n} from '../services';\nimport { store } from 'redux/storeConfig/store';\nimport { MaintenancePlans } from '../types';\n\nconst mapStringToObject = (range: string) => {\n const [odometer, title, description, maintenanceRangeId, maintenanceLineId] = range.split('~');\n return {\n odometer: parseInt(odometer),\n title,\n description,\n maintenanceRangeId: Number(maintenanceLineId),\n maintenanceLineId: Number(maintenanceRangeId)\n };\n};\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMaintenanceLinesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_FETCH_STARTED, fetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMaintenanceLinesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED, partialFetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n saveMaintenanceLineService(\n { ...maintenanceLine, maintenanceLineId: null },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const addedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(\n actions.completeAddingMaintenanceLine(\n maintenanceLine.maintenanceLineId,\n addedMaintenanceLine\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMaintenanceLine(maintenanceLine.maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchAddMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_ADD_STARTED, addMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n const oldMaintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLine.maintenanceLineId)\n );\n saveMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const editedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeEditingMaintenanceLine(editedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMaintenanceLine(oldMaintenanceLine, error));\n }\n }\n );\n}\n\nexport function* watchEditMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_EDIT_STARTED, editMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMaintenanceLine(action) {\n const { maintenanceLineId } = action.payload;\n const maintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLineId)\n );\n deleteMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingMaintenanceLine(maintenanceLineId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingMaintenanceLine(maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_REMOVE_STARTED, removeMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n copyMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const copiedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeCopyMaintenanceLine(copiedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failCopyMaintenanceLine(error));\n }\n }\n );\n}\n\nexport function* watchCopyMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_COPY_STARTED, copyMaintenanceLine);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Notices */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const notice = new schema.Entity(\n 'notices',\n {},\n { idAttribute: (value) => `${value.unitId}-${value.noticeId}` }\n);\nexport const notices = new schema.Array(notice);\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\nimport { NoticeByDateRequest, NoticeByHourmeterRequest, NoticeByOdometerRequest } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { ConfigActions } from 'utility/http/http-events';\n\nexport const baseUrl = '/vehicleMaintenance';\n\nexport const saveNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByOdometer`, request);\n};\n\nexport const saveNoticeByHourmeter = (\n request: Partial,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByHourMeter`, request);\n};\n\nexport const saveNoticeByDate = (request: NoticeByDateRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByDate`, request);\n};\n\nexport const deleteNotice = (request: { noticeId: number; unitId: number }) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteNotice/${request.noticeId}/${request.unitId}`);\n};\n\nexport const getNoticeByOdometerList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByOdometer`);\n};\n\nexport const getNoticeByDateList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByDate`);\n};\n\nexport const getNoticeByHourmeterList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByHourmeter`);\n};\n\nexport const renewNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByOdometer`, request);\n};\n\nexport const renewNoticeByHourmeter = (request: NoticeByHourmeterRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByHourmeter`, request);\n};\n\nexport const renewNoticeByDate = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByDate`, request);\n};\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByOdometerList,\n renewNoticeByOdometer,\n saveNoticeByOdometer\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport { getPreventiveNoticesByOdometerFormattedData } from 'views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const intl = appIntl();\n const jsonResult = yield call(getNoticeByOdometerList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n\n // SE CALCULA EL PROGRESO Y EL LABEL PARA CADA UNO DE LOS AVISOS PREVENTIVOS\n let entitiesCop = getPreventiveNoticesByOdometerFormattedData(resultData, intl);\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByDateList,\n saveNoticeByDate\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByDateList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n /*\n const jsonResult = yield call(renewNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n */\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByHourmeterList,\n saveNoticeByHourmeter,\n renewNoticeByHourmeter\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n NoticeByDateRequest,\n NoticeByHourmeterRequest\n} from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByHourmeterList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(\n `${addedData.unitId}-${addedData.noticeId}`,\n request?.tempId ?? '',\n {\n ...request,\n ...addedData\n }\n )\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_REMOVE_STARTED, removeNotice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'providerId' });\nexport const providers = new schema.Array(provider);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveProviderCategoryDTO, DeleteProviderCategoryDTO } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveProviderCategory = (request: SaveProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: `${request.providerId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/providers`, request);\n};\n\nexport const deleteProviderCategory = (request: DeleteProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteProvider/${request.providerId}`);\n};\n\nexport const getProviderList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/providers`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/providers';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/providers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteProviderCategory,\n getProviderList,\n saveProviderCategory\n} from 'views/screens/vehicleMaintenance/services/providersService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteProviderCategoryDTO,\n SaveProviderCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n try {\n const jsonResult = yield call(getProviderList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED2, fetchProvidersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchProvidersList(action) {}\n\nexport function* watchPartialFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_PARTIAL_FETCH_STARTED2, partialFetchProvidersList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingProvider(addedData.providerId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingProvider(request.tempId, e));\n }\n}\n\nexport function* watchAddProvidersStarted() {\n yield takeEvery(types.PROVIDER_ADD_STARTED, addProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingProvider({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingProvider(request.providerId, e));\n }\n}\n\nexport function* watchEditProvidersStarted() {\n yield takeEvery(types.PROVIDER_EDIT_STARTED, editProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteProviderCategory, request);\n yield put(actions.completeRemovingProvider(request.providerId));\n } catch (e) {\n yield put(actions.failRemovingProvider(request.providerId, e));\n }\n}\n\nexport function* watchRemoveProviderStarted() {\n yield takeEvery(types.PROVIDER_REMOVE_STARTED, removeProvider);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workmanships */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workmanship = new schema.Entity('workmanships', {}, { idAttribute: 'workmanshipId' });\nexport const workmanships = new schema.Array(workmanship);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveWorkmanshipCategoryDTO, DeleteWorkmanshipCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveWorkmanshipCategory = (request: SaveWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: `${request.workmanshipId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/workmanship`, request);\n};\n\nexport const deleteWorkmanshipCategory = (request: DeleteWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteWorkmanship/${request.workmanshipId}`);\n};\n\nexport const getWorkmanshipsList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/workmanship`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/workmanship';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/workmanship';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteWorkmanshipCategory,\n getWorkmanshipsList,\n saveWorkmanshipCategory\n} from 'views/screens/vehicleMaintenance/services/workmanshipService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkmanshipsList(action) {\n try {\n const jsonResult = yield call(getWorkmanshipsList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { workmanships },\n result //order\n } = normalize(resultData, schemas.workmanships); //normalize data to byId and order\n yield put(actions.completeFetchingWorkmanships(workmanships, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkmanships(error));\n }\n}\n\nexport function* watchFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_FETCH_STARTED, fetchWorkmanshipsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkmanshipsList(action) {}\n\nexport function* watchPartialFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_PARTIAL_FETCH_STARTED, partialFetchWorkmanshipsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingWorkmanship(addedData.workmanshipId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingWorkmanship(request.tempId, e));\n }\n}\n\nexport function* watchAddWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_ADD_STARTED, addWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingWorkmanship({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchEditWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_EDIT_STARTED, editWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkmanship(action: PayloadAction<{ workmanshipId: number; description: string }>) {\n const request = action.payload;\n try {\n yield call(deleteWorkmanshipCategory, request);\n yield put(actions.completeRemovingWorkmanship(request.workmanshipId));\n } catch (e) {\n yield put(actions.failRemovingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchRemoveWorkmanshipStarted() {\n yield takeEvery(types.WORKMANSHIP_REMOVE_STARTED, removeWorkmanship);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sparePart = new schema.Entity('spareParts', {}, { idAttribute: 'sparePartId' });\nexport const spareParts = new schema.Array(sparePart);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveSparePartCategoryDTO, DeleteSparePartCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveSparePartCategory = (request: SaveSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: `${request.sparePartId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/spareParts`, request);\n};\n\nexport const deleteSparePartCategory = (request: DeleteSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteSparePart/${request.sparePartId}`);\n};\n\nexport const getSparePartList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/spareParts`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/spareParts';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/spareParts';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteSparePartCategory,\n getSparePartList,\n saveSparePartCategory\n} from 'views/screens/vehicleMaintenance/services/sparePartsService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteSparePartCategoryDTO,\n SaveSparePartCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSparePartsList(action) {\n try {\n const jsonResult = yield call(getSparePartList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { spareParts },\n result //order\n } = normalize(resultData, schemas.spareParts); //normalize data to byId and order\n yield put(actions.completeFetchingSpareParts(spareParts, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSpareParts(error));\n }\n}\n\nexport function* watchFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_FETCH_STARTED, fetchSparePartsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSparePartsList(action) {}\n\nexport function* watchPartialFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_PARTIAL_FETCH_STARTED, partialFetchSparePartsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingSparePart(addedData.sparePartId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingSparePart(request.tempId, e));\n }\n}\n\nexport function* watchAddSparePartsStarted() {\n yield takeEvery(types.SPAREPART_ADD_STARTED, addSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingSparePart({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchEditSparePartsStarted() {\n yield takeEvery(types.SPAREPART_EDIT_STARTED, editSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteSparePartCategory, request);\n yield put(actions.completeRemovingSparePart(request.sparePartId));\n } catch (e) {\n yield put(actions.failRemovingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchRemoveSparePartStarted() {\n yield takeEvery(types.SPAREPART_REMOVE_STARTED, removeSparePart);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const protocol = new schema.Entity('protocols', {}, { idAttribute: 'protocolId' });\nexport const protocols = new schema.Array(protocol);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/protocol';\n\ninterface ProtocolAddRequest {\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n eventTypes: string;\n protocolPriority: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface ProtocolDeleteRequest {\n protocolId: number;\n protocolName: string;\n}\n\nexport const getProtocolsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveProtocolService = (request: ProtocolAddRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: request.protocolId ? 'Edit' : 'Create',\n name: request.protocolName,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteProtocolService = (\n request: ProtocolDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Delete',\n name: `${request.protocolName}`,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport {\n deleteProtocolService,\n getProtocolsListService,\n saveProtocolService\n} from '../services/protocols';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchProtocolsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n getProtocolsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completeFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_FETCH_STARTED, fetchProtocolsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\n\nfunction* partialFetchProtocolsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getProtocolsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completePartialFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_PARTIAL_FETCH_STARTED, partialFetchProtocolsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\n\nfunction* addProtocol(action) {\n const protocol = action.payload;\n saveProtocolService(\n {\n ...protocol,\n protocolId: null\n },\n {\n successAction: (response) => {\n const addedProtocol = camelcaseKeys(response?.data[0]);\n console.log('addedProtocol', addedProtocol);\n store.dispatch(actions.completeAddingProtocol(protocol.protocolId, addedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingProtocol(protocol.protocolId, error));\n }\n }\n );\n}\n\nexport function* watchAddProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_ADD_STARTED, addProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\n\nfunction* editProtocol(action) {\n const protocol = action.payload;\n const oldProtocol = yield select((state) => selectors.getProtocol(state, protocol.protocolId));\n saveProtocolService(\n {\n ...protocol\n },\n {\n successAction: (response) => {\n const editedProtocol = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingProtocol(editedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingProtocol(oldProtocol, error));\n }\n }\n );\n}\n\nexport function* watchEditProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_EDIT_STARTED, editProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProtocol(action) {\n const { protocolId } = action.payload;\n const protocol = yield select((state) => selectors.getProtocol(state, protocolId));\n deleteProtocolService(\n { ...protocol },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingProtocol(protocolId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingProtocol(protocolId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_REMOVE_STARTED, removeProtocol);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const Destination = new schema.Entity('destinations', {}, { idAttribute: 'etaModelId' });\nexport const Destinations = new schema.Array(Destination);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/etaModel';\n\n\ninterface DestinationFilters {\n operatorId?: number;\n organizationId?: number;\n\n}\n\n\nexport const getDestinationListService = (request: DestinationFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDestinationDropDown`, request);\n};\n","import { select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as actions from '../actions';\nimport * as schemas from '../schemas';\nimport { getDestinationListService } from '../services';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchETAMonitoringDestinationList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n userId: filterUserId\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDestinationListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n console.log('resultData getDestinationListService', resultData);\n const {\n entities: { destinations },\n result //order\n } = normalize(resultData, schemas.Destinations); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingDestination(destinations, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingDestination(error));\n }\n }\n );\n}\n\nexport function* watchFetchETAModelList() {\n yield takeEvery(\n types.ETAMONITORING_DESTINATIONS_FETCH_STARTED,\n fetchETAMonitoringDestinationList\n );\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema User Notifications */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nexport const userNotification = new schema.Entity(\n 'userNotifications',\n {},\n { idAttribute: 'notificationId' }\n);\nexport const userNotifications = new schema.Array(userNotification);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\n\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as types from '../types';\nimport { camelize } from 'utility/Utils';\nimport {\n getSystemNotificationsListService,\n getUserNotificationsListService,\n markUserNotificationsAsReadService\n} from '../services';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH USER NOTIFICATIONS LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUserNotificationsList(action) {\n const { operatorId, organizationId } = action.payload;\n\n // const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n // filterOperatorId,\n // filterOrganizationId\n // });\n console.log('operatorId', operatorId);\n console.log('organizationId', organizationId);\n if (operatorId && organizationId) {\n getUserNotificationsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { userNotifications },\n result\n } = normalize(resultData, schemas.userNotifications);\n store.dispatch(actions.completeFetchingUserNotifications(userNotifications, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUserNotifications(error));\n }\n }\n );\n }\n}\n\nexport function* watchFetchUserNotificationsList() {\n yield takeEvery(types.USER_NOTIFICATIONS_FETCH_STARTED, fetchUserNotificationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchUserNotificationsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSystemNotificationsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { userNotifications },\n result\n } = normalize(resultData, schemas.userNotifications);\n store.dispatch(\n actions.completePartialFetchingUserNotifications(\n userNotifications,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingUserNotifications(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchUserNotificationsList() {\n yield takeEvery(\n types.USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED,\n partialFetchUserNotificationsList\n );\n}\n\nfunction* markAsReadUserNotifications(action) {\n const notificationIds = action.payload;\n\n markUserNotificationsAsReadService(\n { notificationIds: notificationIds.join(',') },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const resultIds = resultData.map((result) => result.notificationId);\n console.log('resultIds', resultIds);\n console.log('resultData', resultData);\n store.dispatch(\n actions.completeReadingUserNotification(\n resultData,\n resultData.map((result) => result.notificationId)\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failReadingUserNotification(notificationIds));\n }\n }\n );\n}\n\nexport function* watchMarkAsReadUserNotification() {\n yield takeEvery(types.USER_NOTIFICATION_READ_STARTED, markAsReadUserNotifications);\n}\n","import { all, fork } from 'redux-saga/effects';\nimport {\n watchAddAgentsStarted,\n watchAgentFetchStarted,\n watchEditAgentsStarted,\n watchFetchAgentsList,\n watchPartialFetchAgentsList,\n watchRemoveAgentStarted\n} from '../../views/screens/Agents/sagas';\nimport {\n watchAddDivisionsStarted,\n watchEditDivisionsStarted,\n watchFetchDivisionsList,\n watchPartialFetchDivisionsList,\n watchRemoveDivisionStarted\n} from '../../views/screens/Divisions/sagas';\nimport { watchFetchEntitiesList, watchUpdateEntities } from '../../views/screens/Entities/sagas';\nimport {\n watchAddGeofencesStarted,\n watchAssignGeofenceUnit,\n watchEditGeofenceAssignation,\n watchEditGeofencesStarted,\n watchFetchGeofenceById,\n watchFetchGeofencesList,\n watchPartialFetchGeofencesList,\n watchRemoveAllAssignmentsByGeofences,\n watchRemoveAllAssignmentsByUnits,\n watchRemoveGeofenceAssignation,\n watchRemoveGeofenceStarted\n} from '../../views/screens/Geofences/sagas';\nimport {\n watchAddModulesStarted,\n watchEditModulesStarted,\n watchFetchModulesList,\n watchModuleFetchStarted,\n watchPartialFetchModulesList,\n watchRemoveModuleStarted\n} from '../../views/screens/Modules/sagas';\nimport {\n watchAddOperatorsStarted,\n watchEditOperatorStandardPricesStarted,\n watchEditOperatorsStarted,\n watchFetchOperatorsList,\n watchPartialFetchOperatorsList,\n watchRemoveOperatorStarted\n} from '../../views/screens/Operators/sagas';\nimport {\n watchAddOrganizationDowntimeReasonsStarted,\n watchAddOrganizationsStarted,\n watchCodeAssignStarted,\n watchEditOrganizationDowntimeReasonsStarted,\n watchEditOrganizationsStarted,\n watchFetchOrganizationsList,\n watchPartialFetchOrganizationsList,\n watchRegistrationCodeStarted,\n watchRemoveOrganizationDowntimeReasonsStarted,\n watchEditWorkplanOrdersConfiguration,\n watchRemoveOrganizationStarted,\n watchSaveConsolidableEventsStarted\n} from '../../views/screens/Organizations/sagas';\nimport {\n watchAddServiceClassesStarted,\n watchEditServiceClassesStarted,\n watchFetchServiceClassesList,\n watchRemoveServiceClassStarted,\n watchServiceClassFetchStarted\n} from '../../views/screens/ServiceClasses/sagas';\nimport {\n watchAddSubdivisionsStarted,\n watchEditSubdivisionsStarted,\n watchFetchSubdivisionsList,\n watchPartialFetchSubdivisionsList,\n watchRemoveSubdivisionStarted\n} from '../../views/screens/Subdivisions/sagas';\nimport {\n watchAcknowledgeUnitEvent,\n watchActiveUnits,\n watchAddUnitsStarted,\n watchAssignDriverUnitsStarted,\n watchCreateSharedLinkUnitStarted,\n watchEditUnitsStarted,\n watchEndUnitDowntimeStarted,\n watchExecuteDeviceAction,\n watchFetchUnitById,\n watchFetchUnitHistoricalPositionsStarted,\n watchFetchUnitInformationStarted,\n watchFetchUnitTrajectoryStarted,\n watchFetchUnitsList,\n watchFetchUnitsLiveStatusList,\n watchPartialFetchUnitsList,\n watchRemoveUnitStarted,\n watchStartUnitDowntimeStarted,\n watchUpdateSim\n} from '../../views/screens/Units/sagas';\nimport {\n watchAddSchedulesStarted,\n watchAddShiftStarted,\n watchEditSchedulesShiftStarted,\n watchEditSchedulesStarted,\n watchFetchSchedulesList,\n watchPartialFetchSchedulesList,\n watchRemoveScheduleStarted\n} from './../../views/screens/Schedules/sagas';\nimport {\n watchChangeProductStarted,\n watchFetchUserBookmarksStarted,\n watchForceRefreshToken,\n watchLoginStarted,\n watchRefreshTokenStarted,\n watchUpdateMapFilterTabPinnedStarted,\n watchUpdateMapProfileSettingsStarted,\n watchUpdateProfileGeneralInformationStarted,\n watchUpdateProfileHomeScreenStarted,\n watchUpdateProfileMapOptionsStarted,\n watchUpdateProfilePasswordStarted,\n watchUpdateUserBookmarkssStarted,\n watchUserInformationRequest\n} from './auth';\n\nimport {\n watchAddRoutesStarted,\n watchCopyRouteStarted,\n watchEditRoutesStarted,\n watchFetchRoutesList,\n watchPartialFetchRoutesList,\n watchRemoveRouteStarted,\n watchRemoveRoutesStarted\n} from '../../views/screens/Routes/sagas/routes';\n\nimport {\n watchAddContactsStarted,\n watchEditContactsStarted,\n watchFetchContactsList,\n watchRemoveContactsStarted\n} from 'views/screens/Contacts/sagas';\nimport { watchFetchRouteCheckpointsList } from '../../views/screens/Routes/sagas/routeCheckpoints';\nimport {\n watchEditAssignmentsStarted,\n watchFetchAssignmentsList,\n watchImportRouteAssignments,\n watchRemoveAssignmentStarted\n} from '../../views/screens/Routes/sagas/routesAssignments';\nimport {\n watchAddCommentsStarted,\n watchEditCommentsStarted,\n watchFetchCommentsList,\n watchRemoveCommentStarted\n} from '../../views/screens/Routes/sagas/routesComments';\nimport {\n watchAsignRouteExecutionUnit,\n watchChangeToAlternateRouteStarted,\n watchEditRouteExecutionStarted,\n watchFetchRoutesExecutions\n} from '../../views/screens/Routes/sagas/routesExecutions';\nimport { watchFetchRoutesReport } from '../../views/screens/Routes/sagas/routesReport';\nimport {\n watchAddMonitoringUsersStarted,\n watchAssignScheduleUsersStarted,\n watchEditMonitoringUsersStarted,\n watchFetchMonitoringUserById,\n watchFetchMonitoringUsersList,\n watchPartialFetchMonitoringUsersList,\n watchRemoveMonitoringUserStarted,\n watchSaveMonitoringUserRolesAndPermissionsStarted,\n watchUnassignScheduleUsersStarted,\n watchUpdateMonitoringUserPasswordStarted\n} from '../../views/screens/Users/sagas';\nimport {\n watchAddWorkplansStarted,\n watchAssignDestinationGeofenceStarted,\n watchAssignOriginGeofenceStarted,\n watchAssignWorkGeofenceStarted,\n watchCopyWorkplanStarted,\n watchEditWorkplansStarted,\n watchFetchWorkplanLocationsList,\n watchFetchWorkplansList,\n watchPartialFetchWorkplansList,\n watchRemoveWorkplanStarted\n} from '../../views/screens/Workplans/sagas/workplans';\nimport {\n watchEditWorkplanAssignmentByDateTimeStarted,\n watchEditWorkplanAssignmentByScheduleStarted,\n watchFetchWorkplansAssignmentsList,\n watchRemoveWorkplanAssignmentStarted\n} from '../../views/screens/Workplans/sagas/workplansAssignments';\nimport {\n watchAddWorkplansCommentStarted,\n watchFetchWorkplansCommentsList,\n watchRemoveWorkplansCommentStarted\n} from '../../views/screens/Workplans/sagas/workplansComments';\nimport {\n watchAddWorkplanExecutionLocationsStarted,\n watchEditWorkplanExecutionLocationsStarted,\n watchRemoveWorkplanExecutionLocationStarted\n} from '../../views/screens/Workplans/sagas/workplansExecutionLocations';\nimport {\n watchAsignWorkplanExecutionUnit,\n watchCancelWorkplanExecution,\n watchChangeWorkplanExecutionUnit,\n watchFetchWorkplanExecution,\n watchFetchWorkplansExecutions,\n watchFinalizeWorkplanExecution,\n watchManualTransitWorkplanExecution\n} from '../../views/screens/Workplans/sagas/workplansExecutions';\nimport { watchFetchWorkplansReport } from '../../views/screens/Workplans/sagas/workplansReport';\nimport {\n watchFetchWorkplansAllVisits,\n watchFetchWorkplansVisits\n} from '../../views/screens/Workplans/sagas/workplansVisits';\nimport { watchFetchConfigurationsList } from './configurations';\nimport { watchFetchModelsList } from './models';\nimport { watchFetchBrandsList } from './static-catalogs/brands';\n\nimport {\n watchFetchCountriesList,\n watchFetchCurrenciesList,\n watchFetchInsuranceAgentsList,\n watchFetchInsuranceCompaniesList,\n watchFetchLocationClassesList,\n watchFetchPaymentMethodsList,\n watchFetchProvidersList,\n watchFetchSensorBrandsList,\n watchFetchSensorMeasuresList,\n watchFetchSensorModelsList,\n watchFetchTimeZonesList,\n watchFetchVehicleMakersList,\n watchFetchVehicleModelsList\n} from './static-catalogs';\n\nimport {\n watchAddSimsStarted,\n watchEditSimsStarted,\n watchFetchSimById,\n watchFetchSimsList,\n watchPartialFetchSimsList,\n watchRemoveSimStarted\n} from '../../views/screens/SIMs/sagas';\n\nimport {\n watchAddVehiclesStarted,\n watchEditVehiclesStarted,\n watchFetchVehiclesList,\n watchLicenseCheckStarted,\n watchPartialFetchVehiclesList,\n watchRemoveVehicleStarted\n} from '../../views/screens/Vehicles/sagas';\n\nimport {\n watchAddAssetsStarted,\n watchEditAssetsStarted,\n watchFetchAssetsList,\n watchIdentifierCheckStarted,\n watchPartialFetchAssetsList,\n watchRemoveAssetStarted,\n watchSecuritySealCodeCheckStarted\n} from '../../views/screens/Assets/sagas';\n\nimport {\n watchAddSensorsStarted,\n watchEditSensorsStarted,\n watchFetchSensorsList,\n watchPartialFetchSensorsList,\n watchRemoveSensorStarted,\n watchSensorCalibrationFinalizeStarted,\n watchSensorCalibrationStartStarted,\n watchSensorIdentifierCheckStarted\n} from '../../views/screens/Sensors/sagas';\n\nimport {\n watchAddLocationsStarted,\n watchEditLocationsStarted,\n watchFetchLocationById,\n watchFetchLocationsList,\n watchImportLocationsStarted,\n watchPartialFetchLocationsList,\n watchRemoveLocationStarted\n} from '../../views/screens/Locations/sagas';\n\nimport {\n watchAddDriversStarted,\n watchAssignDriversToUnits,\n watchAssignSensor,\n watchEditDriversStarted,\n watchFetchDriversList,\n watchPartialFetchDriversList,\n watchRemoveDriverStarted,\n watchStartImportDriverAndUnit,\n watchUnassignSensor\n} from '../../views/screens/Drivers/sagas';\n\nimport {\n watchAddJobsBacklogStarted,\n watchAssignFilesJobsBacklogStarted,\n watchAssignFormsJobsBacklogStarted,\n watchAssignUsersJobsBacklogStarted,\n watchChangeDueDateJobsBacklogStarted,\n watchChangeMinMaxTimeJobsBacklogStarted,\n watchChangePriorityJobsBacklogStarted,\n watchChangeStartDateJobsBacklogStarted,\n watchChangeStatusJobsBacklogStarted,\n watchChangeStatusJobsBoardStarted,\n watchEditJobsBacklogStarted,\n watchFetchJob,\n watchFetchJobsBacklogList,\n watchFetchJobsBoardList,\n watchFetchJobsReportList,\n watchImportJobsStarted,\n watchPartialFetchJobsBacklogList,\n watchRemoveJobsBacklogStarted,\n watchRescheduleJobsStarted\n} from '../../views/screens/Jobs/sagas';\n\nimport {\n watchAddEntitiesToGroup,\n watchAddGroupStarted,\n watchAddGroupWithEntitiesStarted,\n watchEditConfigurationNotificationsStarted,\n watchEditGroupsStarted,\n watchEditUserProfileInGroup,\n watchFetchAllEntitiesInGroup,\n watchFetchGroupById,\n watchFetchGroupsList,\n watchLeaveGroupStarted,\n watchPartialFetchGroupsList,\n watchRemoveEntitiesFromGroup,\n watchRemoveGroupStarted\n} from '../../views/screens/Groups/sagas';\n\nimport {\n watchAcceptDenyQuotationCustomerStarted,\n watchAddQuotationsStarted,\n watchApproveDenyQuotationManagementStarted,\n watchCheckQuotationSchedulingStarted,\n watchCopyQuotationsStarted,\n watchEditQuotationsStarted,\n watchFetchQuotationsList,\n watchPartialFetchQuotationsList,\n watchRemoveQuotationStarted,\n watchScheduleQuotationsStarted,\n watchSetTimesupQuotationStarted\n} from '../../views/screens/Quotations/sagas';\n\nimport {\n watchAddOrganizationContractsStarted,\n watchEditOrganizationContractsStarted,\n watchFetchOrganizationContractsList,\n watchPartialFetchOrganizationContractsList,\n watchRemoveOrganizationContractStarted\n} from '../../views/screens/Contracts/sagas';\n\nimport {\n watchAddContractTemplatesStarted,\n watchEditContractTemplatesStarted,\n watchFetchContractTemplatesList,\n watchPartialFetchContractTemplatesList,\n watchRemoveContractTemplateStarted\n} from '../../views/screens/ContractTemplates/sagas';\n\nimport {\n watchAddCustomersStarted,\n watchEditCustomersStarted,\n watchFetchCustomersList,\n watchPartialFetchCustomersList,\n watchRemoveCustomerStarted\n} from '../../views/screens/Customers/sagas';\n\nimport {\n watchAddOfficesStarted,\n watchEditOfficesStarted,\n watchFetchOfficesList,\n watchPartialFetchOfficesList,\n watchRemoveOfficeStarted\n} from '../../views/screens/Offices/sagas';\n\nimport {\n watchAddExternalFormsStarted,\n watchAddFormsStarted,\n watchEditExternalFormsStarted,\n watchEditFormsStarted,\n watchFetchFormsList,\n watchFetchQuestions,\n watchFetchSections,\n watchPartialFetchFormsList,\n watchRemoveFormStarted,\n watchResponseAddedStarted,\n watchResponseFetchStarted,\n watchResponseResendStarted, \n watchFetchFormById\n} from '../../views/screens/Forms/sagas';\n\nimport {\n watchAddCategoriesStarted,\n watchEditCategoriesStarted,\n watchFetchCategoriesList,\n watchPartialFetchCategoriesList,\n watchRemoveCategoryStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/categories';\n\nimport {\n watchAddMaintenanceLinesStarted,\n watchCopyMaintenanceLineStarted,\n watchEditMaintenanceLinesStarted,\n watchFetchMaintenanceLinesList,\n watchPartialFetchMaintenanceLinesList,\n watchRemoveMaintenanceLineStarted\n} from '../../views/screens/MaintenanceLines/sagas';\n\nimport {\n watchAddNoticesStarted,\n watchEditNoticesStarted,\n watchFetchNoticesList,\n watchPartialFetchNoticesList,\n watchRemoveNoticeStarted,\n watchRenewNoticesStarted\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer';\n\nimport {\n watchAddNoticesStarted as watchAddNoticesStarted2,\n watchEditNoticesStarted as watchEditNoticesStarted2,\n watchFetchNoticesList as watchFetchNoticesList2,\n watchPartialFetchNoticesList as watchPartialFetchNoticesList2,\n watchRemoveNoticeStarted as watchRemoveNoticeStarted2,\n watchRenewNoticesStarted as watchRenewNoticesStarted2\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate';\n\nimport {\n watchAddNoticesStarted as watchAddNoticesStarted3,\n watchEditNoticesStarted as watchEditNoticesStarted3,\n watchFetchNoticesList as watchFetchNoticesList3,\n watchPartialFetchNoticesList as watchPartialFetchNoticesList3,\n watchRemoveNoticeStarted as watchRemoveNoticeStarted3,\n watchRenewNoticesStarted as watchRenewNoticesStarted3\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter';\n\nimport {\n watchAddProvidersStarted,\n watchEditProvidersStarted,\n watchFetchProvidersList as watchFetchProvidersList2,\n watchPartialFetchProvidersList,\n watchRemoveProviderStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/providers';\n\nimport {\n watchAddWorkmanshipsStarted,\n watchEditWorkmanshipsStarted,\n watchFetchWorkmanshipsList,\n watchPartialFetchWorkmanshipsList,\n watchRemoveWorkmanshipStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/workmanship';\n\nimport {\n watchAddSparePartsStarted,\n watchEditSparePartsStarted,\n watchFetchSparePartsList,\n watchPartialFetchSparePartsList,\n watchRemoveSparePartStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/spareParts';\n\nimport {\n watchAddProtocolStarted,\n watchEditProtocolStarted,\n watchFetchProtocolsList,\n watchPartialFetchProtocolsList,\n watchRemoveProtocolStarted\n} from '../../views/screens/Protocols/sagas';\n\nimport { watchFetchETAModelList } from '../../views/screens/ETAModelRoutes/sagas';\n\nimport {\n watchFetchUserNotificationsList,\n watchMarkAsReadUserNotification,\n watchPartialFetchUserNotificationsList\n} from '../../views/screens/Notifications/sagas';\n\nfunction* mainSaga() {\n yield all([\n //Login\n fork(watchLoginStarted),\n fork(watchUserInformationRequest),\n fork(watchRefreshTokenStarted),\n\n //UserSettings\n fork(watchFetchUserBookmarksStarted),\n fork(watchUpdateUserBookmarkssStarted),\n\n //Profile\n fork(watchUpdateProfileGeneralInformationStarted),\n fork(watchUpdateProfileMapOptionsStarted),\n fork(watchUpdateProfilePasswordStarted),\n fork(watchForceRefreshToken),\n fork(watchUpdateMapProfileSettingsStarted),\n fork(watchUpdateProfileHomeScreenStarted),\n fork(watchChangeProductStarted),\n fork(watchUpdateMapFilterTabPinnedStarted),\n\n //Entities\n fork(watchFetchEntitiesList),\n fork(watchUpdateEntities),\n\n //Operators\n fork(watchFetchOperatorsList),\n fork(watchPartialFetchOperatorsList),\n fork(watchAddOperatorsStarted),\n fork(watchEditOperatorsStarted),\n fork(watchEditOperatorStandardPricesStarted),\n fork(watchRemoveOperatorStarted),\n\n //Organizations\n fork(watchFetchOrganizationsList),\n fork(watchPartialFetchOrganizationsList),\n fork(watchAddOrganizationsStarted),\n fork(watchEditOrganizationsStarted),\n fork(watchRemoveOrganizationStarted),\n fork(watchRegistrationCodeStarted),\n fork(watchCodeAssignStarted),\n fork(watchSaveConsolidableEventsStarted),\n fork(watchAddOrganizationDowntimeReasonsStarted),\n fork(watchEditOrganizationDowntimeReasonsStarted),\n fork(watchRemoveOrganizationDowntimeReasonsStarted),\n fork(watchEditWorkplanOrdersConfiguration),\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 fork(watchFetchFormById),\n\n //Protocols\n fork(watchFetchProtocolsList),\n fork(watchPartialFetchProtocolsList),\n fork(watchAddProtocolStarted),\n fork(watchEditProtocolStarted),\n fork(watchRemoveProtocolStarted),\n\n // Notifications\n fork(watchFetchUserNotificationsList),\n fork(watchPartialFetchUserNotificationsList),\n fork(watchMarkAsReadUserNotification),\n\n //ETA Models\n fork(watchFetchETAModelList)\n ]);\n}\n\nexport default mainSaga;\n","/* eslint-disable semi */\r\nimport { applyMiddleware, compose, createStore } from 'redux';\r\nimport { createInjectorsEnhancer } from 'redux-injectors';\r\nimport { persistReducer, persistStore } from 'redux-persist';\r\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\r\nimport localforage from 'localforage';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport reducer from '../reducers';\r\nimport mainSaga from '../sagas';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst persistConfig = {\r\n key: 'root',\r\n storage: localforage,\r\n stateReconciler: autoMergeLevel2,\r\n blacklist: [\r\n 'auth',\r\n 'entities',\r\n 'workplans',\r\n 'routes',\r\n 'locations',\r\n 'drivers',\r\n 'geofences',\r\n 'jobsBacklog',\r\n 'groups',\r\n 'jobsBoard',\r\n 'jobsReport',\r\n 'units'\r\n ],\r\n //auth is a nested blacklist, check auth reducer for blacklist details\r\n //blacklist no guarda\r\n //whitelist sí guarda\r\n // There is an issue in the source code of redux-persist (default setTimeout does not cleaning)\r\n timeout: null\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, reducer);\r\n\r\nlet composeEnhancers = compose;\r\n\r\n// if (process.env.NODE_ENV === \"development\") {\r\ncomposeEnhancers =\r\n (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\r\n trace: true,\r\n traceLimit: 15\r\n })) ||\r\n compose;\r\n// }\r\n\r\nconst runSaga = sagaMiddleware.run;\r\nconst injectEnhancer = createInjectorsEnhancer({\r\n createReducer: reducer,\r\n runSaga\r\n});\r\n\r\n// const store = composeEnhancers(applyMiddleware(sagaMiddleware))(createStore)(persistedReducer);\r\nconst store = createStore(\r\n persistedReducer,\r\n composeEnhancers(applyMiddleware(sagaMiddleware), injectEnhancer)\r\n);\r\n\r\nconst persistor = persistStore(store);\r\n\r\nsagaMiddleware.run(mainSaga);\r\n\r\nexport { persistor, store };\r\n","import { UnitLiveStatus } from './UnitLiveStatusTypes';\n\nexport const UNITS_FETCH_STARTED = 'UNITS_FETCH_STARTED';\nexport const UNITS_FETCH_COMPLETED = 'UNITS_FETCH_COMPLETED';\nexport const UNITS_FETCH_FAILED = 'UNITS_FETCH_FAILED';\n\nexport const UNITS_PARTIAL_FETCH_STARTED = 'UNITS_PARTIAL_FETCH_STARTED';\nexport const UNITS_PARTIAL_FETCH_COMPLETED = 'UNITS_PARTIAL_FETCH_COMPLETED';\nexport const UNITS_PARTIAL_FETCH_FAILED = 'UNITS_PARTIAL_FETCH_FAILED';\n\nexport const UNIT_FETCH_STARTED = 'UNIT_FETCH_STARTED';\nexport const UNIT_FETCH_COMPLETED = 'UNIT_FETCH_COMPLETED';\nexport const UNIT_FETCH_FAILED = 'UNIT_FETCH_FAILED';\n\nexport const UNIT_ADD_TO_STATE = 'UNIT_ADD_TO_STATE';\n\nexport const UNITS_LIVE_STATUS_FETCH_STARTED = 'UNITS_LIVE_STATUS_FETCH_STARTED';\nexport const UNITS_LIVE_STATUS_FETCH_COMPLETED = 'UNITS_LIVE_STATUS_FETCH_COMPLETED';\nexport const UNITS_LIVE_STATUS_FETCH_FAILED = 'UNITS_LIVE_STATUS_FETCH_FAILED';\n\nexport const UNIT_INFORMATION_FETCH_STARTED = 'UNIT_INFORMATION_FETCH_STARTED';\nexport const UNIT_INFORMATION_FETCH_COMPLETED = 'UNIT_INFORMATION_FETCH_COMPLETED';\nexport const UNIT_INFORMATION_FETCH_FAILED = 'UNIT_INFORMATION_FETCH_FAILED';\n\nexport const UNIT_POSITIONS_FETCH_STARTED = 'UNIT_POSITIONS_FETCH_STARTED';\nexport const UNIT_POSITIONS_FETCH_COMPLETED = 'UNIT_POSITIONS_FETCH_COMPLETED';\nexport const UNIT_POSITIONS_FETCH_FAILED = 'UNIT_POSITIONS_FETCH_FAILED';\nexport const UNIT_POSITIONS_RESET_IS_FETCHED = 'UNIT_POSITIONS_RESET_IS_FETCHED';\n\nexport const UNIT_TRAJECTORY_FETCH_STARTED = 'UNIT_TRAJECTORY_FETCH_STARTED';\nexport const UNIT_TRAJECTORY_FETCH_COMPLETED = 'UNIT_TRAJECTORY_FETCH_COMPLETED';\nexport const UNIT_TRAJECTORY_FETCH_FAILED = 'UNIT_TRAJECTORY_FETCH_FAILED';\n\nexport const UNIT_EXECUTE_DEVICE_ACTION = 'UNIT_EXECUTE_DEVICE_ACTION';\n\nexport const UNIT_ADD_STARTED = 'UNIT_ADD_STARTED';\nexport const UNIT_ADD_COMPLETED = 'UNIT_ADD_COMPLETED';\nexport const UNIT_ADD_FAILED = 'UNIT_ADD_FAILED';\n\nexport const UNIT_EDIT_STARTED = 'UNIT_EDIT_STARTED';\nexport const UNIT_EDIT_COMPLETED = 'UNIT_EDIT_COMPLETED';\nexport const UNIT_EDIT_FAILED = 'UNIT_EDIT_FAILED';\n\nexport const UNIT_ACKNOWLEDGE_STARTED = 'UNIT_ACKNOWLEDGE_STARTED';\nexport const UNIT_ACKNOWLEDGE_COMPLETED = 'UNIT_ACKNOWLEDGE_COMPLETED';\nexport const UNIT_ACKNOWLEDGE_FAILED = 'UNIT_ACKNOWLEDGE_FAILED';\n\nexport const UNIT_REMOVE_STARTED = 'UNIT_REMOVE_STARTED';\nexport const UNIT_REMOVE_COMPLETED = 'UNIT_REMOVE_COMPLETED';\nexport const UNIT_REMOVE_FAILED = 'UNIT_REMOVE_FAILED';\n\nexport const UNIT_SELECTED = 'UNIT_SELECTED';\nexport const UNITS_ALL_SELECTED = 'UNITS_ALL_SELECTED';\nexport const UNIT_DESELECTED = 'UNIT_DESELECTED';\nexport const UNITS_ALL_DESELECTED = 'UNITS_ALL_DESELECTED';\n\nexport const UNIT_SHOW_IN_MAP = 'UNIT_SHOW_IN_MAP';\nexport const UNITS_ALL_SHOW_IN_MAP = 'UNITS_ALL_SHOW_IN_MAP';\nexport const UNIT_HIDE_IN_MAP = 'UNIT_HIDE_IN_MAP';\nexport const UNITS_ALL_HIDE_IN_MAP = 'UNITS_ALL_HIDE_IN_MAP';\n\nexport const UNIT_FETCH_INTERVAL = 30000;\nexport const UNIT_SHARED_LINK_INTERVAL = 15000;\nexport const UNIT_ACTIVE_TRACKING_FETCH_INTERVAL = 5000;\nexport const UNIT_IDLE_SPEED = 5;\nexport const UNIT_DATA_LIMIT_FOR_CLUSTERING = 1500;\n\nexport const SET_DATE_RANGE = 'SET_DATE_RANGE';\n\nexport const UNITS_ACTIVE_STARTED = 'UNITS_ACTIVE_STARTED';\nexport const UNITS_ACTIVE_COMPLETED = 'UNITS_ACTIVE_COMPLETED';\nexport const UNITS_ACTIVE_FAILED = 'UNITS_ACTIVE_FAILED';\n\nexport const UNITS_ASSIGN_DRIVER_STARTED = 'UNITS_ASSIGN_DRIVER_STARTED';\nexport const UNITS_ASSIGN_DRIVER_COMPLETED = 'UNITS_ASSIGN_DRIVER_COMPLETED';\n\nexport const UNIT_CREATE_SHARE_LINK_STARTED = 'UNIT_CREATE_SHARE_LINK_STARTED';\nexport const UNIT_CREATE_SHARE_LINK_COMPLETED = 'UNIT_CREATE_SHARE_LINK_COMPLETED';\nexport const UNIT_CREATE_SHARE_LINK_FAILED = 'UNIT_CREATE_SHARE_LINK_FAILED';\n\nexport const UNIT_CLEAR_SHARE_LINK = 'UNIT_CLEAR_SHARE_LINK';\n\nexport const UNIT_CHANGE_STATUS_STARTED = 'UNIT_CHANGE_STATUS_STARTED';\nexport const UNIT_CHANGE_STATUS_COMPLETED = 'UNIT_CHANGE_STATUS_COMPLETED';\n\nexport const UNIT_RESTORE_STATUS_STARTED = 'UNIT_RESTORE_STATUS_STARTED';\nexport const UNIT_RESTORE_STATUS_COMPLETED = 'UNIT_RESTORE_STATUS_COMPLETED';\nexport const UNIT_RESTORE_STATUS_FAILED = 'UNIT_RESTORE_STATUS_FAILED';\n\nexport const UNIT_START_DOWNTIME_STARTED = 'UNIT_START_DOWNTIME_STARTED';\nexport const UNIT_START_DOWNTIME_COMPLETED = 'UNIT_START_DOWNTIME_COMPLETED';\nexport const UNIT_START_DOWNTIME_FAILED = 'UNIT_START_DOWNTIME_FAILED';\n\nexport const UNIT_END_DOWNTIME_STARTED = 'UNIT_END_DOWNTIME_STARTED';\nexport const UNIT_END_DOWNTIME_COMPLETED = 'UNIT_END_DOWNTIME_COMPLETED';\nexport const UNIT_END_DOWNTIME_FAILED = 'UNIT_END_DOWNTIME_FAILED';\n\nexport const UNIT_UPDATE_DEVICE_STARTED = 'UNIT_DEVICE_ASSIGNMENT_STARTED';\nexport const UNIT_UPDATE_DEVICE_COMPLETED = 'UNIT_DEVICE_ASSIGNMENT_COMPLETED';\nexport const UNIT_UPDATE_DEVICE_FAILED = 'UNIT_DEVICE_ASSIGNMENT_FAILED';\n\nexport const UNIT_UPDATE_SIM_STARTED = 'UNIT_UPDATE_SIM_STARTED';\nexport const UNIT_UPDATE_SIM_COMPLETED = 'UNIT_UPDATE_SIM_COMPLETED';\nexport const UNIT_UPDATE_SIM_FAILED = 'UNIT_UPDATE_SIM_FAILED';\n\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED';\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED';\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_FAILED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_FAILED';\n// Interfaces\nexport interface UnitMainState {\n id: number;\n intl: string;\n color: string;\n textColor: string;\n tooltip: string;\n shortIntl: string;\n}\nexport interface UnitsMainState {\n [key: string]: UnitMainState;\n}\n\nexport interface ReduxUnit extends Omit, 'isCharging'> {\n isSelected: boolean;\n isShownInMap: boolean;\n unitId: number;\n unitPublicId: string;\n unitStatus: number;\n unitStatusName: string;\n unitTypeId: number;\n unitName: string;\n alias: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n deviceId: number;\n propertyTypeId: number;\n propertyTypeDescription: string;\n deviceIdentifier: string;\n serialNumber: string;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n driverId: number;\n vehicleId: number;\n vehicleName: string;\n licensePlate: string;\n simCardId: number;\n imsi: string;\n cellularNumber: string | number;\n mobileOperatorId: number;\n mobileOperatorName: string;\n comments: string;\n contractDate: string;\n contractNumber: string;\n lastPaymentDate: string;\n periodicity: any;\n instalationDate: string;\n privateCode: string;\n privateCode2: string;\n themeId: number;\n serviceClassId: number;\n serviceClassName: string;\n membershipCode: number | string;\n applicationIdentity: string | number;\n scheduleId?: number;\n scheduleName: string;\n countryId: number;\n mainStateTypeId: number;\n idleSpeed: number;\n assets: string;\n offlineTime: number;\n startedTime: number;\n stoppedTime: number;\n idleTime: number;\n utcZoneId: number;\n downtimeReasonId: number;\n downtimeReasonDescription: string;\n lastCommunicationDate: string;\n isConfirmed: boolean;\n operatorName: string;\n divisionName: string;\n subdivisionName: string;\n mainVoltage: number;\n solarVoltage: number;\n battery: number;\n backupBattery: any;\n isCharging: number | boolean;\n doorState: any;\n coverTamperState: any;\n padlockState: any;\n satellites: number;\n firmwareVersion: null | any;\n gsmSignalLevel: null | any;\n hardwareVersion: null | any;\n plmn: number;\n mcc: number;\n mnc: number;\n cellNumber: number;\n iccid: number;\n trailerId: number;\n appVersion: any;\n padlockAuthorizationType: any;\n historicalPositions: any;\n simCellularNumber: any;\n cellularProviderName: any;\n assetIdentifier: any;\n trajectory: any;\n deviceImei: any;\n devicePropertyTypeId: any;\n vehicleMakerName: any;\n vehicleModelName: any;\n chasis: any;\n motor: any;\n}\n\nexport interface PartialUnit extends Partial {}\n\nexport interface GroupUnit\n extends Pick {\n groupName: string;\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2';\nimport withReactContent from 'sweetalert2-react-content';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { getMessageTypeAvatarProps } from '../../../views/screens/Notifications/views/listSystemNotifications/utils';\nimport Avatar from '@core/components/avatar';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n/* -------------------------------------------------------------------------- */\n/* Common Success, Confirmation And Error Alerts */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessMessage = ({ success, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'success',\n text: `${success}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showConfirmationMessage = ({\n title = '',\n message,\n confirmText = '',\n action,\n iconColor = '#FF4757',\n actionNot = () => {},\n confirmButtonClass = 'btn btn-outline-danger mr-1',\n showCancelButton = true,\n width = 500\n}) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width,\n showCancelButton,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: confirmButtonClass\n },\n iconColor,\n buttonsStyling: false,\n confirmButtonText: confirmText || appIntl().formatMessage({ id: 'common.confirm' }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n } else {\n actionNot();\n }\n });\n};\ninterface showConfirmationWithCheckboxMessageProps {\n title: string;\n message?: string;\n confirmText: string;\n inputLabel: string;\n action: Function;\n width?: any;\n initialValue?: 0 | 1;\n}\nexport const showConfirmationWithCheckboxMessage = (\n props: showConfirmationWithCheckboxMessageProps\n) => {\n const { title, message, confirmText, inputLabel, action, width, initialValue } = props;\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width || 500,\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: confirmText,\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true,\n input: 'checkbox',\n inputValue: initialValue || 0,\n inputPlaceholder: inputLabel\n }).then((result) => {\n if (result.isConfirmed) {\n action(result.value);\n }\n });\n};\n\nexport const showConfirmationMessageToast = ({\n title = '',\n message,\n confirmText = '',\n iconColor = '',\n action,\n timer = 0,\n width = 500,\n showCancelButton = true\n}) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n position: 'top-end',\n timer: timer === 0 ? undefined : timer,\n timerProgressBar: timer !== 0,\n didOpen(toast) {\n if (timer !== 0) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n },\n toast: true,\n showConfirmButton: true,\n width: width,\n showCancelButton,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-primary mb-1'\n },\n iconColor: iconColor || '#3FC3EE',\n buttonsStyling: false,\n confirmButtonText: confirmText || appIntl().formatMessage({ id: 'common.confirm' }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' })\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\ninterface ShowErrorAlertFailChangesProps {\n error: any;\n timer?: number;\n title?: any;\n icon?: SweetAlertIcon;\n}\n\nexport const showErrorAlertFailChanges = ({\n error,\n timer = undefined,\n title = 'Error',\n icon = 'error'\n}: ShowErrorAlertFailChangesProps) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: icon,\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showErrorAlertReportNoAvailable = () => {\n const message = appIntl().formatMessage({ id: 'common.reportNotAvailable' });\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n text: `${message}`,\n showConfirmButton: false,\n allowOutsideClick: false,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showLoadingReport = ({ timer = 3000 }) => {\n const message = appIntl().formatMessage({ id: 'reports.loadingReport' });\n Swal.fire({\n title: `${message}`,\n timer: timer,\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const showErrorAlertFailChangesToast = ({ error, timer = 4000 }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n timer: timer,\n icon: 'error',\n text: `${message}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#FF4757',\n buttonsStyling: false\n });\n};\n\ntype errorProps = {\n error?: { errorMessage: string } | null | undefined;\n timer?: any;\n title?: string;\n};\n\nexport const showErrorAlertWarning = ({ error, timer = undefined, title = '' }: errorProps) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Success Alerts Created, Edited and Deleted */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessCreatedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.createdSuccessMessageAlt'\n : 'common.createdSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessEditedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.editedSuccessMessageAlt'\n : 'common.editedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessApprovedDeniedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n approve = 1\n}) => {\n const messageId =\n approve === 1\n ? object != null\n ? altText\n ? 'common.approvedSuccessMessageAlt'\n : 'common.approvedSuccessMessage'\n : 'common.changesSuccess'\n : object != null\n ? altText\n ? 'common.deniedSuccessMessageAlt'\n : 'common.deniedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAcceptedDeniedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n accept = 1\n}) => {\n const messageId =\n accept === 1\n ? object != null\n ? altText\n ? 'common.acceptedSuccessMessageAlt'\n : 'common.acceptedSuccessMessage'\n : 'common.changesSuccess'\n : object != null\n ? altText\n ? 'common.deniedSuccessMessageAlt'\n : 'common.deniedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessScheduledMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.scheduledSuccessMessageAlt'\n : 'common.scheduledSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessRolesAndPermissionsSavedMessage = ({\n name = '',\n success = null,\n timer = 4000\n}) => {\n const messageId = 'common.savedRolesAndPermissionsSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAssignedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n plural = false\n}) => {\n const messageId =\n object != null\n ? altText && !plural\n ? 'common.assignedSuccessMessageAlt'\n : altText && plural\n ? 'common.assignedSuccessMessageAlts'\n : !altText && plural\n ? 'common.assignedSuccessMessages'\n : 'common.assignedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessUnassignedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.unassignedSuccessMessageAlt'\n : 'common.unassignedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDeletedMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.deletedSuccessMessageAlt'\n : 'common.deletedSuccessMessage'\n : altText\n ? 'common.deletedSuccessMessageMultipleAlt'\n : 'common.deletedSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessRemovedFromGroupMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.removedFromGroupSuccessMessageAlt'\n : 'common.removedFromGroupSuccessMessage'\n : altText\n ? 'common.removedFromGroupSuccessMessageMultipleAlt'\n : 'common.removedFromGroupSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAddedToGroupMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.addedToGroupSuccessMessageAlt'\n : 'common.addedToGroupSuccessMessage'\n : altText\n ? 'common.addedToGroupSuccessMessageMultipleAlt'\n : 'common.addedToGroupSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDisabledMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.disabledSuccessMessageAlt'\n : 'common.disabledSuccessMessage'\n : altText\n ? 'common.disabledSuccessMessageMultipleAlt'\n : 'common.disabledSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessCancelNotificationMessage = ({ timer = 4000 }) => {\n const message = appIntl().formatMessage({\n id: 'common.cancelNotificationSuccessMessage'\n });\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Error Alerts Created, Edited And Deleted */\n/* -------------------------------------------------------------------------- */\nexport const showFailCreatedMessage = ({ object, name = '', error, timer = undefined }) => {\n const messageId = object != null ? 'common.createdFailMessage' : 'common.changesFail';\n const message =\n error == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailEditedMessage = ({ object, name = '', error, timer = undefined }) => {\n const messageId = object != null ? 'common.editedFailMessage' : 'common.changesFail';\n const message =\n error == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailDeletedMessage = ({\n object,\n name = '',\n error = { message: null },\n multiple = false,\n timer = undefined\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? 'common.deletedFailMessage'\n : 'common.deletedFailMessageMultiple'\n : 'common.changesFail';\n const message =\n error.message == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\ninterface DeleteConfirmationMessageProps {\n action: any;\n objectType: any;\n objectName: any;\n isDisabled?: boolean;\n isUnassign?: boolean;\n deleteWarning?: any;\n width?: any;\n}\n\nexport const showDeleteConfirmationMessage = ({\n action,\n objectType,\n objectName,\n isDisabled = false,\n isUnassign = false,\n width = '32rem',\n deleteWarning\n}: DeleteConfirmationMessageProps) => {\n Swal.fire({\n icon: 'warning',\n width: width,\n title: appIntl().formatMessage(\n {\n id: isDisabled\n ? 'common.disableConfirmationMessage'\n : isUnassign\n ? 'common.unassignConfirmationMessage'\n : 'common.deleteConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text:\n !isDisabled && !isUnassign\n ? deleteWarning\n ? deleteWarning\n : appIntl().formatMessage({ id: 'common.deleteWarning' })\n : '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: isDisabled\n ? 'common.confirmDisable'\n : isUnassign\n ? 'common.confirmUnassign'\n : 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showLeaveConfirmationMessage = ({ action, objectType, objectName }) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.leaveConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text: '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmLeave'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showRemoveFromGroupConfirmationMessage = ({\n action,\n objectType,\n objectName,\n objectCount,\n isMultiple = false\n}) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: isMultiple\n ? 'common.removeFromGroupConfirmationMessageMultiple'\n : 'common.removeFromGroupConfirmationMessage'\n },\n { objectType, objectName, objectCount }\n ),\n text: '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: isMultiple ? 'common.confirmRemoveMultiple' : 'common.confirmRemove'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\ninterface DeleteMultiple {\n action?: any;\n objectType?: any;\n objectsQuantity?: number;\n}\n\nexport const showDeleteConfirmationMessageMultiple = (props: DeleteMultiple) => {\n const { action, objectType, objectsQuantity } = props;\n const MySwal = withReactContent(Swal);\n MySwal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.deleteConfirmationMessageMultiple'\n },\n { objectType, objectsQuantity }\n ),\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* LOADING Alert */\n/* -------------------------------------------------------------------------- */\nexport const showLoading = () => {\n Swal.fire({\n title: appIntl().formatMessage({ id: 'common.loading' }),\n customClass: {\n loader: 'custom-loader'\n },\n loaderHtml: '
',\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const closeLoading = () => {\n Swal.close();\n};\n\n/* -------------------------------------------------------------------------- */\n/* INFORMATION Alert */\n/* -------------------------------------------------------------------------- */\nexport const showInformationMessage = ({ message, timer = 4000, width = 500 }) => {\n Swal.fire({\n timer: timer,\n icon: 'info',\n text: message,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n width: width,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Notifications Alerts. */\n/* -------------------------------------------------------------------------- */\n\nexport const CustomToastNotificationContent = ({ title, message, messageType }) => (\n
\n
\n \n
\n {title}\n
\n
\n
\n \n);\n\nexport const showUserNotificationAlert = ({ messageTitle, message, messageType, timer }) => {\n const ToasterContainer = document.createElement('div');\n\n Swal.fire({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: timer,\n timerProgressBar: true,\n html: ToasterContainer,\n didOpen: (toast) => {\n ReactDOM.render(\n ,\n ToasterContainer\n );\n\n // toast.addEventListener('mouseenter', Swal.stopTimer);\n // toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n willClose: () => {\n ReactDOM.unmountComponentAtNode(ToasterContainer);\n }\n });\n};\n","// icon.js\nimport IcoMoon from 'react-icomoon';\nconst iconSet = require('./IcomoonReactive/selection.json');\n\nconst Icon = ({ ...props }) => {\n return (\n \n );\n};\n\nexport default Icon;\n","/* eslint-disable semi */\nimport { env } from '../../../env';\n/* -------------------------------------------------------------------------- */\n/* APIBASEURL */\n/* -------------------------------------------------------------------------- */\nconst API_BASE_URL = env.REACT_APP_API_BASE_URL;\nexport default API_BASE_URL;\n","export const FORMS_FETCH_STARTED = 'FORMS_FETCH_STARTED';\nexport const FORMS_FETCH_COMPLETED = 'FORMS_FETCH_COMPLETED';\nexport const FORMS_FETCH_FAILED = 'FORMS_FETCH_FAILED';\n\nexport const FORM_FETCH_STARTED = 'FORM_FETCH_STARTED';\nexport const FORM_FETCH_COMPLETED = 'FORM_FETCH_COMPLETED';\nexport const FORM_FETCH_FAILED = 'FORM_FETCH_FAILED';\n\nexport const FORMS_PARTIAL_FETCH_STARTED = 'FORMS_PARTIAL_FETCH_STARTED';\nexport const FORMS_PARTIAL_FETCH_COMPLETED = 'FORMS_PARTIAL_FETCH_COMPLETED';\nexport const FORMS_PARTIAL_FETCH_FAILED = 'FORMS_PARTIAL_FETCH_FAILED';\n\nexport const FORM_SECTIONS_FETCH_STARTED = 'FORM_SECTIONS_FETCH_STARTED';\nexport const FORM_SECTIONS_FETCH_COMPLETED = 'FORM_SECTIONS_FETCH_COMPLETED';\nexport const FORM_SECTIONS_FETCH_FAILED = 'FORM_SECTIONS_FETCH_FAILED';\n\nexport const FORM_QUESTIONS_FETCH_STARTED = 'FORM_QUESTIONS_FETCH_STARTED';\nexport const FORM_QUESTIONS_FETCH_COMPLETED = 'FORM_QUESTIONS_FETCH_COMPLETED';\nexport const FORM_QUESTIONS_FETCH_FAILED = 'FORM_QUESTIONS_FETCH_FAILED';\n\nexport const FORM_ADD_STARTED = 'FORM_ADD_STARTED';\nexport const FORM_ADD_COMPLETED = 'FORM_ADD_COMPLETED';\nexport const FORM_ADD_FAILED = 'FORM_ADD_FAILED';\n\nexport const FORM_SECTION_ADD_STARTED = 'FORM_SECTION_ADD_STARTED';\nexport const FORM_SECTION_ADD_COMPLETED = 'FORM_SECTION_ADD_COMPLETED';\nexport const FORM_SECTION_ADD_FAILED = 'FORM_SECTION_ADD_FAILED';\n\nexport const FORM_EDIT_STARTED = 'FORM_EDIT_STARTED';\nexport const FORM_EDIT_COMPLETED = 'FORM_EDIT_COMPLETED';\nexport const FORM_EDIT_FAILED = 'FORM_EDIT_FAILED';\n\nexport const FORM_EXTERNAL_ADD_STARTED = 'FORM_EXTERNAL_ADD_STARTED';\n\nexport const FORM_EXTERNAL_EDIT_STARTED = 'FORM_EXTERNAL_EDIT_STARTED';\n\nexport const FORM_REMOVE_STARTED = 'FORM_REMOVE_STARTED';\nexport const FORM_REMOVE_COMPLETED = 'FORM_REMOVE_COMPLETED';\nexport const FORM_REMOVE_FAILED = 'FORM_REMOVE_FAILED';\n\nexport const FORM_RESPONSE_SAVE_STARTED = 'FORM_RESPONSE_SAVE_STARTED';\nexport const FORM_RESPONSE_SAVE_COMPLETED = 'FORM_RESPONSE_SAVE_COMPLETED';\nexport const FORM_RESPONSE_SAVE_FAILED = 'FORM_RESPONSE_SAVE_FAILED';\n\nexport const FORM_SELECTED = 'FORM_SELECTED';\nexport const FORMS_ALL_SELECTED = 'FORMS_ALL_SELECTED';\nexport const FORM_DESELECTED = 'FORM_DESELECTED';\nexport const FORMS_ALL_DESELECTED = 'FORMS_ALL_DESELECTED';\nexport const FORMS_ALL_QUESTIONS_CLEARED = 'FORMS_ALL_QUESTIONS_CLEARED';\n\nexport const FORM_SECTION_ADDED = 'FORM_SECTION_ADDED';\nexport const FORM_SECTION_DELETED = 'FORM_SECTION_DELETED';\nexport const FORM_SECTION_MOVED = 'FORM_SECTION_MOVED';\nexport const FORM_SECTION_NAME_EDITED = 'FORM_SECTION_NAME_EDITED';\nexport const FORM_SECTION_COPIED = 'FORM_SECTION_COPIED';\nexport const FORM_SECTION_CHANGE_COLLAPSED = 'FORM_SECTION_CHANGE_COLLAPSED';\n\nexport const FORM_SECTIONS_SET = 'FORM_SECTIONS_SET';\n\nexport const FORM_ROW_ADDED = 'FORM_ROW_ADDED';\nexport const FORM_ROW_DELETED = 'FORM_ROW_DELETED';\nexport const FORM_ROW_MOVED = 'FORM_ROW_MOVED';\nexport const FORM_ROW_NAME_EDITED = 'FORM_ROW_NAME_EDITED';\n\nexport const FORM_QUESTION_ADDED = 'FORM_QUESTION_ADDED';\nexport const FORM_QUESTION_DELETED = 'FORM_QUESTION_DELETED';\nexport const FORM_QUESTION_MOVED = 'FORM_QUESTION_MOVED';\nexport const FORM_QUESTION_COPIED = 'FORM_QUESTION_COPIED';\n\nexport const FORM_QUESTION_SET = 'FORM_QUESTIONS_SET';\nexport const FORM_QUESTION_NAME_EDITED = 'FORM_QUESTION_NAME_EDITED';\nexport const FORM_QUESTION_HEIGHT_EDITED = 'FORM_QUESTION_HEIGHT_EDITED';\nexport const FORM_QUESTION_CHANGE_COLLAPSED = 'FORM_QUESTION_CHANGE_COLLAPSED';\n\nexport const FORM_OPTION_ADDED = 'FORM_OPTION_ADDED';\nexport const FORM_OPTION_DELETED = 'FORM_OPTION_DELETED';\nexport const FORM_OPTION_MOVED = 'FORM_OPTION_MOVED';\n\nexport const FORM_RESPONSE_FETCH_STARTED = 'FORM_RESPONSE_FETCH_STARTED';\nexport const FORM_RESPONSE_FETCH_COMPLETED = 'FORM_RESPONSE_FETCH_COMPLETED';\nexport const FORM_RESPONSE_FETCH_FAILED = 'FORM_RESPONSE_FETCH_FAILED';\n\nexport const FORM_RESPONSE_RESEND_STARTED = 'FORM_RESPONSE_RESEND_STARTED';\nexport const FORM_RESPONSE_RESEND_COMPLETED = 'FORM_RESPONSE_RESEND_COMPLETED';\nexport const FORM_RESPONSE_RESEND_FAILED = 'FORM_RESPONSE_RESEND_FAILED';\n\nexport const FORM_ANSWER_ADDED = 'FORM_ANSWER_ADDED';\nexport const FORM_ANSWER_MOVED = 'FORM_ANSWER_MOVED';\nexport const FORM_ANSWER_EDITED = 'FORM_ANSWER_EDITED';\nexport const FORM_ANSWER_DELETED = 'FORM_ANSWER_DELETED';\nexport const FORM_ANSWER_SELECTED = 'FORM_ANSWER_SELECTED';\nexport const FORM_ANSWER_DESELECTED = 'FORM_ANSWER_DESELECTED';\n\nexport const FORM_RESPONSES_CLEARED = 'FORM_RESPONSES_CLEARED';\nexport const FORM_QUESTIONS_CLEARED = 'FORM_QUESTIONS_CLEARED';\n","// -------------------------------------------\n// | entityTypeId | Entity |\n// -------------------------------------------\n// | 1 |\tUnidad de Rastreo |\n// | 2 |\tSubdivision |\n// | 3 |\tVehiculo |\n// | 4 |\tSIM |\n// | 5 |\tModulo |\n// | 6 |\tPiloto |\n// | 7 |\tTransportista |\n// | 8 |\tNotificacion |\n// | 9 |\tAsesores |\n// | 12 |\tClases de Servicio |\n// | 13 |\tComponentes de Vehiculos |\n// | 14 |\tServicios de Vehiculos |\n// | 15 |\tMensajes de Sistema |\n// | 16 |\tLogin |\n// | 17 |\tUsuarios |\n// | 18 |\tOperador |\n// | 19 |\tDivisión |\n// | 20 | Formularios |\n// | 30 |\tOrganizaciones |\n// | 31 |\tUsuarios |\n// | 32 |\tContactos |\n// | 33 | Planes de Trabajo |\n// | 34 | Geocercas |\n// | 35 | Horarios |\n// | 37 | Rutas |\n// | 40 |\tMarcas |\n// | 41 |\tModelos |\n// | 42 |\tConfiguraciones |\n// | 43 |\tSims |\n// | 44 |\tPaíses |\n// | 45 |\tReferencias |\n// | 46 |\tActivos |\n// | 47 |\tSensores |\n// | 48 |\tJobs |\n// | 49 |\tGrupos |\n// | 50 |\tContratos |\n// | 51 |\tClientes |\n// | 52 |\tLinea de Mantenimiento |\n// | 53 |\tPlantillas de Contratos |\n// | 54 |\tCotizaciones |\n// | 55 | Sucursales |\n// | 56 | Protocolos |\n// | 57 | ETA |\n// 58 | ` User Notification |\n// ---------------------------------------------\n\n//For more information in sql\n// select * from dbo.EntityTypes\n\nexport const ENTITY_UNITS = 1;\nexport const ENTITY_SUBDIVISONS = 2;\nexport const ENTITY_VEHICLES = 3;\nexport const ENTITY_SIM_CARDS = 4;\nexport const ENTITY_MODULES = 5;\nexport const ENTITY_DRIVERS = 6;\n// 7,8 MISSING\n// export const ENTITY_NONE = 7;\n// export const ENTITY_NONE = 8;\nexport const ENTITY_AGENTS = 9;\n// 10,11 MISSING\n// export const ENTITY_NONE = 10;\n// export const ENTITY_NONE = 11;\nexport const ENTITY_SERVICE_CLASSES = 12;\n// 13,14,15,16 MISSING\n// export const ENTITY_NONE = 13;\n// export const ENTITY_NONE = 14;\n// export const ENTITY_NONE = 15;\n// export const ENTITY_NONE = 16;\nexport const ENTITY_USERS = 17;\nexport const ENTITY_OPERATORS = 18;\nexport const ENTITY_DIVISIONS = 19;\n// 20,21,22,23,24,25,26,27,28,29 MISSING\n// export const ENTITY_NONE = 20;\n// export const ENTITY_NONE = 21;\n// export const ENTITY_NONE = 22;\n// export const ENTITY_NONE = 23;\n// export const ENTITY_NONE = 24;\n// export const ENTITY_NONE = 25;\n// export const ENTITY_NONE = 26;\n// export const ENTITY_NONE = 27;\n// export const ENTITY_NONE = 28;\n// export const ENTITY_NONE = 29;\nexport const ENTITY_ORGANIZATIONS = 30;\n// 31 MISSING\n// export const ENTITY_NONE = 31;\nexport const ENTITY_CONTACTS = 32;\nexport const ENTITY_WORKPLANS = 33;\nexport const ENTITY_GEOFENCES = 34;\nexport const ENTITY_SCHEDULES = 35;\nexport const ENTITY_FORMS = 36;\nexport const ENTITY_ROUTES = 37;\n// 38,39,40,41,42,43 MISSING\n// export const ENTITY_NONE = 38;\n// export const ENTITY_NONE = 39;\n// export const ENTITY_NONE = 40;\n// export const ENTITY_NONE = 41;\n// export const ENTITY_NONE = 42;\n// export const ENTITY_NONE = 43;\nexport const ENTITY_COUNTRIES = 44;\nexport const ENTITY_LOCATIONS = 45;\nexport const ENTITY_ASSETS = 46;\nexport const ENTITY_SENSORS = 47;\nexport const ENTITY_JOBS_BACKLOG = 48;\nexport const ENTITY_GROUPS = 49;\nexport const ENTITY_ORGANIZATION_CONTRACTS = 50;\nexport const ENTITY_CUSTOMERS = 51;\nexport const ENTITY_MAINTENANCE_LINES = 52;\nexport const ENTITY_CONTRACT_TEMPLATES = 53;\nexport const ENTITY_QUOTATIONS = 54;\nexport const ENTITY_OFFICES = 55;\nexport const ENTITY_PROTOCOLS = 56;\nexport const ENTITY_DESTINATIONS = 57;\nexport const ENTITY_USER_NOTIFICATIONS = 58;\n\nexport const defaultEntitiesToFetchAftetLogin = [];\n\n// Audit Entities Lookups\nexport const AUDIT_ENTITY_UNIT_MAIN_STATE_TYPE_ID_LOOKUP = 'UnitMainStateTypeId';\nexport const AUDIT_ENTITY_UNIT_STATUS_LOOKUP = 'UnitStatus';\nexport const AUDIT_ENTITY_UNIT_THEME_ID_LOOKUP = 'UnitThemeId';\nexport const AUDIT_ENTITY_UNIT_TYPE_ID_LOOKUP = 'UnitTypeId';\n","export const GROUPS_FETCH_STARTED = 'GROUPS_FETCH_STARTED';\nexport const GROUPS_FETCH_COMPLETED = 'GROUPS_FETCH_COMPLETED';\nexport const GROUPS_FETCH_FAILED = 'GROUPS_FETCH_FAILED';\n\nexport const GROUP_FETCH_STARTED = 'GROUP_FETCH_STARTED';\nexport const GROUP_FETCH_COMPLETED = 'GROUP_FETCH_COMPLETED';\nexport const GROUP_FETCH_FAILED = 'GROUP_FETCH_FAILED';\n\nexport const GROUPS_PARTIAL_FETCH_STARTED = 'GROUPS_PARTIAL_FETCH_STARTED';\nexport const GROUPS_PARTIAL_FETCH_COMPLETED = 'GROUPS_PARTIAL_FETCH_COMPLETED';\nexport const GROUPS_PARTIAL_FETCH_FAILED = 'GROUPS_PARTIAL_FETCH_FAILED';\n\nexport const GROUPS_ALL_ENTITIES_FETCH_STARTED = 'GROUPS_ALL_ENTITIES_FETCH_STARTED';\nexport const GROUPS_ALL_ENTITIES_FETCH_COMPLETED = 'GROUPS_ALL_ENTITIES_FETCH_COMPLETED';\nexport const GROUPS_ALL_ENTITIES_FETCH_FAILED = 'GROUPS_ALL_ENTITIES_FETCH_FAILED';\n\nexport const GROUP_EDIT_STARTED = 'GROUP_EDIT_STARTED';\nexport const GROUP_EDIT_COMPLETED = 'GROUP_EDIT_COMPLETED';\nexport const GROUP_EDIT_FAILED = 'GROUP_EDIT_FAILED';\n\nexport const GROUP_ADD_STARTED = 'GROUP_ADD_STARTED';\nexport const GROUP_ADD_COMPLETED = 'GROUP_ADD_COMPLETED';\nexport const GROUP_ADD_FAILED = 'GROUP_ADD_FAILED';\n\nexport const GROUP_ADD_WITH_ENTITIES_STARTED = 'GROUP_ADD_WITH_ENTITIES_STARTED';\nexport const GROUP_ADD_WITH_ENTITIES_COMPLETED = 'GROUP_ADD_WITH_ENTITIES_COMPLETED';\nexport const GROUP_ADD_WITH_ENTITIES_FAILED = 'GROUP_ADD_WITH_ENTITIES_FAILED';\n\nexport const GROUP_REMOVE_STARTED = 'GROUP_REMOVE_STARTED';\nexport const GROUP_REMOVE_COMPLETED = 'GROUP_REMOVE_COMPLETED';\nexport const GROUP_REMOVE_FAILED = 'GROUP_REMOVE_FAILED';\n\nexport const GROUP_LEAVE_STARTED = 'GROUP_LEAVE_STARTED';\nexport const GROUP_LEAVE_COMPLETED = 'GROUP_LEAVE_COMPLETED';\nexport const GROUP_LEAVE_FAILED = 'GROUP_LEAVE_FAILED';\n\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED';\n\nexport const GROUP_REMOVE_ENTITIES_STARTED = 'GROUP_REMOVE_ENTITIES_STARTED';\nexport const GROUP_REMOVE_ENTITIES_COMPLETED = 'GROUP_REMOVE_ENTITIES_COMPLETED';\n\nexport const GROUP_ADD_ENTITIES_STARTED = 'GROUP_ADD_ENTITIES_STARTED';\nexport const GROUP_ADD_ENTITIES_COMPLETED = 'GROUP_ADD_ENTITIES_COMPLETED';\n\nexport const GROUP_USER_PROFILE_EDIT_STARTED = 'GROUP_USER_PROFILE_EDIT_STARTED';\nexport const GROUP_USER_PROFILE_EDIT_COMPLETED = 'GROUP_USER_PROFILE_EDIT_COMPLETED';\n\nexport const GROUP_SELECTED = 'GROUP_SELECTED';\nexport const GROUPS_ALL_SELECTED = 'GROUPS_ALL_SELECTED';\nexport const GROUP_DESELECTED = 'GROUP_DESELECTED';\nexport const GROUPS_ALL_DESELECTED = 'GROUPS_ALL_DESELECTED';\n\nexport interface ReduxGroup {\n isSelected: boolean;\n users: any;\n locations: { [key: string]: any };\n workplans: { [key: string]: any };\n units: { [key: string]: any };\n geofences: { [key: string]: any };\n drivers: { [key: string]: any };\n groupId: number;\n groupName: string;\n groupStatus: number;\n profileId: number;\n isInGroup: number;\n locationsCount: number;\n workPlansCount: number;\n userCount: number;\n unitCount: number;\n geofenceCount: number;\n driverCount: number;\n permanenceTimeUnauthorizedMeeting: number;\n notifyUnauthorizedMeeting: number;\n notifyMemberAdded: number;\n notifyMemberDeleted: number;\n notifyAdminMemberAdded: number;\n notifyAdminMemberLeave: number;\n notifyAdminMemberDeleted: number;\n notifyAdminGroupDeleted: number;\n safeDriverSpeedLimit: number;\n notifyAdminSpeedEvent: number;\n notifyAdminPhoneEvent: number;\n notifyOwnerSpeedEvent: number;\n notifyOwnerPhoneEvent: number;\n notifyRiskyDriving: number;\n notifyMemberAlertsSac: number;\n notifyAdminAlertsSac: number;\n notifyOwnerAlertsSac: number;\n applicationIdentities: any;\n}\n","export const 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 const ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_STARTED = \n 'ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_STARTED';\nexport const ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_COMPLETED =\n 'ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_COMPLETED';\nexport const ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_FAILED =\n 'ORGANIZATION_WORKPLAN_ORDERS_CONFIGURATION_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 useWorkplanOrders: number;\n orderTag: string;\n orderVolumeUnit: string;\n}\n\nexport interface SacUser {\n userId: number;\n userName: string;\n completeName: string;\n chatUserTypeId: number;\n organizationId: number;\n}\n","export const JOBS_BACKLOG_FETCH_STARTED = 'JOBS_BACKLOG_FETCH_STARTED';\nexport const JOBS_BACKLOG_FETCH_COMPLETED = 'JOBS_BACKLOG_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_FETCH_FAILED = 'JOBS_BACKLOG_FETCH_FAILED';\n\nexport const JOBS_BACKLOG_PARTIAL_FETCH_STARTED = 'JOBS_BACKLOG_PARTIAL_FETCH_STARTED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED = 'JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_FAILED = 'JOBS_BACKLOG_PARTIAL_FETCH_FAILED';\n\nexport const JOB_BACKLOG_ADD_STARTED = 'JOB_BACKLOG_ADD_STARTED';\nexport const JOB_BACKLOG_ADD_COMPLETED = 'JOB_BACKLOG_ADD_COMPLETED';\nexport const JOB_BACKLOG_ADD_FAILED = 'JOB_BACKLOG_ADD_FAILED';\n\nexport const JOB_BACKLOG_EDIT_STARTED = 'JOB_BACKLOG_EDIT_STARTED';\nexport const JOB_BACKLOG_EDIT_COMPLETED = 'JOB_BACKLOG_EDIT_COMPLETED';\nexport const JOB_BACKLOG_EDIT_FAILED = 'JOB_BACKLOG_EDIT_FAILED';\n\nexport const JOB_BACKLOG_SELECTED = 'JOB_BACKLOG_SELECTED';\nexport const JOBS_BACKLOG_ALL_SELECTED = 'JOBS_BACKLOG_ALL_SELECTED';\nexport const JOB_BACKLOG_DESELECTED = 'JOB_BACKLOG_DESELECTED';\nexport const JOBS_BACKLOG_ALL_DESELECTED = 'JOBS_BACKLOG_ALL_DESELECTED';\n\nexport const JOBS_BACKLOG_REMOVE_STARTED = 'JOBS_BACKLOG_REMOVE_STARTED';\nexport const JOBS_BACKLOG_REMOVE_COMPLETED = 'JOBS_BACKLOG_REMOVE_COMPLETED';\nexport const JOBS_BACKLOG_REMOVE_FAILED = 'JOBS_BACKLOG_REMOVE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_STATUS_STARTED = 'JOBS_BACKLOG_CHANGE_STATUS_STARTED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_COMPLETED = 'JOBS_BACKLOG_CHANGE_STATUS_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_FAILED = 'JOBS_BACKLOG_CHANGE_STATUS_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_STARTED = 'JOBS_BACKLOG_CHANGE_PRIORITY_STARTED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED = 'JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_FAILED = 'JOBS_BACKLOG_CHANGE_PRIORITY_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_START_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_START_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_START_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED =\n 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_USERS_STARTED = 'JOBS_BACKLOG_ASSIGN_USERS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_USERS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_FAILED = 'JOBS_BACKLOG_ASSIGN_USERS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FORMS_STARTED = 'JOBS_BACKLOG_ASSIGN_FORMS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_FAILED = 'JOBS_BACKLOG_ASSIGN_FORMS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FILES_STARTED = 'JOBS_BACKLOG_ASSIGN_FILES_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FILES_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_FAILED = 'JOBS_BACKLOG_ASSIGN_FILES_FAILED';\n\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED';\n\nexport const JOBS_BACKLOG_IMPORT_STARTED = 'JOBS_BACKLOG_IMPORT_STARTED';\nexport const JOBS_BACKLOG_IMPORT_COMPLETED = 'JOBS_BACKLOG_IMPORT_COMPLETED';\nexport const JOBS_BACKLOG_IMPORT_FAILED = 'JOBS_BACKLOG_IMPORT_FAILED';\n","export const WORKPLANS_FETCH_STARTED = 'WORKPLANS_FETCH_STARTED';\nexport const WORKPLANS_FETCH_COMPLETED = 'WORKPLANS_FETCH_COMPLETED';\nexport const WORKPLANS_FETCH_FAILED = 'WORKPLANS_FETCH_FAILED';\n\nexport const WORKPLANS_PARTIAL_FETCH_STARTED = 'WORKPLANS_PARTIAL_FETCH_STARTED';\nexport const WORKPLANS_PARTIAL_FETCH_COMPLETED = 'WORKPLANS_PARTIAL_FETCH_COMPLETED';\nexport const WORKPLANS_PARTIAL_FETCH_FAILED = 'WORKPLANS_PARTIAL_FETCH_FAILED';\n\nexport const WORKPLAN_LOCATIONS_FETCH_COMPLETED = 'WORKPLAN_LOCATIONS_FETCH_COMPLETED';\nexport const WORKPLAN_LOCATIONS_FETCH_FAILED = 'WORKPLAN_LOCATIONS_FETCH_FAILED';\n\nexport const WORKPLAN_ADD_STARTED = 'WORKPLAN_ADD_STARTED';\nexport const WORKPLAN_ADD_COMPLETED = 'WORKPLAN_ADD_COMPLETED';\nexport const WORKPLAN_ADD_FAILED = 'WORKPLAN_ADD_FAILED';\n\nexport const WORKPLAN_EDIT_STARTED = 'WORKPLAN_EDIT_STARTED';\nexport const WORKPLAN_EDIT_COMPLETED = 'WORKPLAN_EDIT_COMPLETED';\nexport const WORKPLAN_EDIT_FAILED = 'WORKPLAN_EDIT_FAILED';\n\nexport const WORKPLAN_REMOVE_STARTED = 'WORKPLAN_REMOVE_STARTED';\nexport const WORKPLAN_REMOVE_COMPLETED = 'WORKPLAN_REMOVE_COMPLETED';\nexport const WORKPLAN_REMOVE_FAILED = 'WORKPLAN_REMOVE_FAILED';\n\nexport const WORKPLAN_SELECTED = 'WORKPLAN_SELECTED';\nexport const WORKPLANS_ALL_SELECTED = 'WORKPLANS_ALL_SELECTED';\nexport const WORKPLAN_DESELECTED = 'WORKPLAN_DESELECTED';\nexport const WORKPLANS_ALL_DESELECTED = 'WORKPLANS_ALL_DESELECTED';\n\nexport const WORKPLAN_COPY_STARTED = 'WORKPLAN_COPY_STARTED';\nexport const WORKPLAN_COPY_COMPLETED = 'WORKPLAN_COPY_COMPLETED';\nexport const WORKPLAN_COPY_FAILED = 'WORKPLAN_COPY_FAILED';\n\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED';\n","export const QUOTATIONS_FETCH_STARTED = 'QUOTATIONS_FETCH_STARTED';\nexport const QUOTATIONS_FETCH_COMPLETED = 'QUOTATIONS_FETCH_COMPLETED';\nexport const QUOTATIONS_FETCH_FAILED = 'QUOTATIONS_FETCH_FAILED';\n\nexport const QUOTATIONS_PARTIAL_FETCH_STARTED = 'QUOTATIONS_PARTIAL_FETCH_STARTED';\nexport const QUOTATIONS_PARTIAL_FETCH_COMPLETED = 'QUOTATIONS_PARTIAL_FETCH_COMPLETED';\nexport const QUOTATIONS_PARTIAL_FETCH_FAILED = 'QUOTATIONS_PARTIAL_FETCH_FAILED';\n\nexport const QUOTATIONS_ADD_STARTED = 'QUOTATIONS_ADD_STARTED';\nexport const QUOTATIONS_ADD_COMPLETED = 'QUOTATIONS_ADD_COMPLETED';\nexport const QUOTATIONS_ADD_FAILED = 'QUOTATIONS_ADD_FAILED';\n\nexport const QUOTATIONS_EDIT_STARTED = 'QUOTATIONS_EDIT_STARTED';\nexport const QUOTATIONS_EDIT_COMPLETED = 'QUOTATIONS_EDIT_COMPLETED';\nexport const QUOTATIONS_EDIT_FAILED = 'QUOTATIONS_EDIT_FAILED';\n\nexport const QUOTATIONS_REMOVE_STARTED = 'QUOTATIONS_REMOVE_STARTED';\nexport const QUOTATIONS_REMOVE_COMPLETED = 'QUOTATIONS_REMOVE_COMPLETED';\nexport const QUOTATIONS_REMOVE_FAILED = 'QUOTATIONS_REMOVE_FAILED';\n\nexport const QUOTATIONS_SCHEDULE_STARTED = 'QUOTATIONS_SCHEDULE_STARTED';\nexport const QUOTATIONS_SCHEDULE_COMPLETED = 'QUOTATIONS_SCHEDULE_COMPLETED';\nexport const QUOTATIONS_SCHEDULE_FAILED = 'QUOTATIONS_SCHEDULE_FAILED';\n\nexport const QUOTATIONS_CHECK_SCHEDULING_STARTED = 'QUOTATIONS_CHECK_SCHEDULING_STARTED';\nexport const QUOTATIONS_CHECK_SCHEDULING_COMPLETED = 'QUOTATIONS_CHECK_SCHEDULING_COMPLETED';\nexport const QUOTATIONS_CHECK_SCHEDULING_FAILED = 'QUOTATIONS_CHECK_SCHEDULING_FAILED';\n\nexport const QUOTATIONS_SET_TIMESUP_STARTED = 'QUOTATIONS_SET_TIMESUP_STARTED';\nexport const QUOTATIONS_SET_TIMESUP_COMPLETED = 'QUOTATIONS_SET_TIMESUP_COMPLETED';\nexport const QUOTATIONS_SET_TIMESUP_FAILED = 'QUOTATIONS_SET_TIMESUP_FAILED';\n\nexport const QUOTATIONS_SELECTED = 'QUOTATIONS_SELECTED';\nexport const QUOTATIONS_ALL_SELECTED = 'QUOTATIONS_ALL_SELECTED';\nexport const QUOTATIONS_DESELECTED = 'QUOTATIONS_DESELECTED';\nexport const QUOTATIONS_ALL_DESELECTED = 'QUOTATIONS_ALL_DESELECTED';\n\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED = 'QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED';\n\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED';\n\nexport const QUOTATION_COPY_STARTED = 'QUOTATION_COPY_STARTED';\nexport const QUOTATION_COPY_FAILED = 'QUOTATION_COPY_FAILED';\nexport const QUOTATION_COPY_COMPLETED = 'QUOTATION_COPY_COMPLETED';\n\nexport const QUOTATION_CHANGE_ORGANIZATION = 'QUOTATION_CHANGE_ORGANIZATION';\n","import { ReduxUnit } from 'views/screens/Units/types';\n\nexport const GEOFENCES_FETCH_STARTED = 'GEOFENCES_FETCH_STARTED';\nexport const GEOFENCES_FETCH_COMPLETED = 'GEOFENCES_FETCH_COMPLETED';\nexport const GEOFENCES_FETCH_FAILED = 'GEOFENCES_FETCH_FAILED';\n\nexport const GEOFENCE_FETCH_STARTED = 'GEOFENCE_FETCH_STARTED';\nexport const GEOFENCE_FETCH_COMPLETED = 'GEOFENCE_FETCH_COMPLETED';\nexport const GEOFENCE_FETCH_FAILED = 'GEOFENCE_FETCH_FAILED';\n\nexport const GEOFENCES_PARTIAL_FETCH_STARTED = 'GEOFENCES_PARTIAL_FETCH_STARTED';\nexport const GEOFENCES_PARTIAL_FETCH_COMPLETED = 'GEOFENCES_PARTIAL_FETCH_COMPLETED';\nexport const GEOFENCES_PARTIAL_FETCH_FAILED = 'GEOFENCES_PARTIAL_FETCH_FAILED';\n\nexport const GEOFENCE_ADD_STARTED = 'GEOFENCE_ADD_STARTED';\nexport const GEOFENCE_ADD_COMPLETED = 'GEOFENCE_ADD_COMPLETED';\nexport const GEOFENCE_ADD_FAILED = 'GEOFENCE_ADD_FAILED';\n\nexport const GEOFENCE_EDIT_STARTED = 'GEOFENCE_EDIT_STARTED';\nexport const GEOFENCE_EDIT_COMPLETED = 'GEOFENCE_EDIT_COMPLETED';\nexport const GEOFENCE_EDIT_FAILED = 'GEOFENCE_EDIT_FAILED';\n\nexport const GEOFENCE_REMOVE_STARTED = 'GEOFENCE_REMOVE_STARTED';\nexport const GEOFENCE_REMOVE_COMPLETED = 'GEOFENCE_REMOVE_COMPLETED';\nexport const GEOFENCE_REMOVE_FAILED = 'GEOFENCE_REMOVE_FAILED';\n\nexport const GEOFENCE_SELECTED = 'GEOFENCE_SELECTED';\nexport const GEOFENCES_ALL_SELECTED = 'GEOFENCES_ALL_SELECTED';\nexport const GEOFENCE_DESELECTED = 'GEOFENCE_DESELECTED';\nexport const GEOFENCES_ALL_DESELECTED = 'GEOFENCES_ALL_DESELECTED';\n\nexport const GEOFENCE_SHOW_IN_MAP = 'GEOFENCE_SHOW_IN_MAP';\nexport const GEOFENCES_ALL_SHOW_IN_MAP = 'GEOFENCES_ALL_SHOW_IN_MAP';\nexport const GEOFENCE_HIDE_IN_MAP = 'GEOFENCE_HIDE_IN_MAP';\nexport const GEOFENCES_ALL_HIDE_IN_MAP = 'GEOFENCES_ALL_HIDE_IN_MAP';\n\nexport const GEOFENCE_ASSIGN_UNIT_STARTED = 'GEOFENCE_ASSIGN_UNIT_STARTED';\nexport const GEOFENCE_ASSIGN_UNIT_COMPLETED = 'GEOFENCE_ASSIGN_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGN_UNIT_FAILED = 'GEOFENCE_ASSIGN_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_STARTED = 'GEOFENCE_ASSIGNATION_REMOVE_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_COMPLETED = 'GEOFENCE_ASSIGNATION_REMOVE_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_FAILED = 'GEOFENCE_ASSIGNATION_REMOVE_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_EDIT_STARTED = 'GEOFENCE_ASSIGNATION_EDIT_STARTED';\nexport const GEOFENCE_ASSIGNATION_EDIT_COMPLETED = 'GEOFENCE_ASSIGNATION_EDIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_EDIT_FAILED = 'GEOFENCE_ASSIGNATION_EDIT_FAILED';\n\nexport interface ReduxGeofence {\n isSelected: boolean;\n isShowInMap: boolean;\n geofenceId: number;\n geofenceStatus: number;\n geofenceAddress: string;\n shape: string;\n privateCode: string;\n geofenceName: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n vertexCount: number;\n color: string;\n radius: number;\n latitude: number;\n latitude2?: number;\n longitude: number;\n longitude2?: number;\n isParentGeofence?: boolean;\n isActivationGeofence: boolean;\n parentGeofenceId?: number;\n geofenceWktString: string;\n isConfirmed: boolean;\n isShownInMap: boolean;\n divisionName: string;\n subdivisionName: string;\n}\n\nexport interface Assignment extends ReduxGeofence, ReduxUnit {\n operatorName: string;\n notify: number;\n consoles: string;\n notificationEmails: string;\n}\n","export const ROUTES_EXECUTIONS_FETCH_STARTED = 'ROUTES_EXECUTIONS_FETCH_STARTED';\nexport const ROUTES_EXECUTIONS_FETCH_COMPLETED = 'ROUTES_EXECUTIONS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTIONS_FETCH_FAILED = 'ROUTES_EXECUTIONS_FETCH_FAILED';\n\nexport const ROUTE_EXECUTION_EDIT_STARTED = 'ROUTE_EXECUTION_EDIT_STARTED';\nexport const ROUTE_EXECUTION_EDIT_COMPLETED = 'ROUTE_EXECUTION_EDIT_COMPLETED';\nexport const ROUTE_EXECUTION_EDIT_FAILED = 'ROUTE_EXECUTION_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_CANCEL_STARTED = 'ROUTES_EXECUTION_CANCEL_STARTED';\nexport const ROUTES_EXECUTION_CANCEL_COMPLETED = 'ROUTES_EXECUTION_CANCEL_COMPLETED';\nexport const ROUTES_EXECUTION_CANCEL_FAILED = 'ROUTES_EXECUTION_CANCEL_FAILED';\n\nexport const ROUTES_EXECUTION_FINALIZE_STARTED = 'ROUTES_EXECUTION_FINALIZE_STARTED';\nexport const ROUTES_EXECUTION_FINALIZE_COMPLETED = 'ROUTES_EXECUTION_FINALIZE_COMPLETED';\nexport const ROUTES_EXECUTION_FINALIZE_FAILED = 'ROUTES_EXECUTION_FINALIZE_FAILED';\n\nexport const ROUTES_EXECUTION_REMOVE_STARTED = 'ROUTES_EXECUTION_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_REMOVE_COMPLETED = 'ROUTES_EXECUTION_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_REMOVE_FAILED = 'ROUTES_EXECUTION_REMOVE_FAILED';\n\nexport const ROUTES_EXECUTION_COMPLETE_STARTED = 'ROUTES_EXECUTION_COMPLETE_STARTED';\nexport const ROUTES_EXECUTION_COMPLETE_COMPLETED = 'ROUTES_EXECUTION_COMPLETE_COMPLETED';\nexport const ROUTES_EXECUTION_COMPLETE_FAILED = 'ROUTES_EXECUTION_COMPLETE_FAILED';\n\nexport const ROUTES_EXECUTION_PAUSE_STARTED = 'ROUTES_EXECUTION_PAUSE_STARTED';\nexport const ROUTES_EXECUTION_PAUSE_COMPLETED = 'ROUTES_EXECUTION_PAUSE_COMPLETED';\nexport const ROUTES_EXECUTION_PAUSE_FAILED = 'ROUTES_EXECUTION_PAUSE_FAILED';\n\nexport const ROUTES_EXECUTION_START_STARTED = 'ROUTES_EXECUTION_START_STARTED';\nexport const ROUTES_EXECUTION_START_COMPLETED = 'ROUTES_EXECUTION_START_COMPLETED';\nexport const ROUTES_EXECUTION_START_FAILED = 'ROUTES_EXECUTION_START_FAILED';\n\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED =\n 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED';\n\nexport const ROUTES_EXECUTION_SHARE_STARTED = 'ROUTES_EXECUTION_SHARE_STARTED';\nexport const ROUTES_EXECUTION_SHARE_COMPLETED = 'ROUTES_EXECUTION_SHARE_COMPLETED';\nexport const ROUTES_EXECUTION_SHARE_FAILED = 'ROUTES_EXECUTION_SHARE_FAILED';\n\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_STARTED = 'ROUTES_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED = 'ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_FAILED = 'ROUTES_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport interface RouteExecution {\n routeAssignmentId: number;\n routeId: number;\n routeName: string;\n distance: number;\n privateCode: null | string;\n sourceName: string;\n targetName: string;\n unitId: number;\n unitOrganizationId: number;\n organizationId: number;\n unitName: string;\n unitLocation: string;\n routeStatus: number;\n routeProgress: number;\n speed: number;\n odometer: number;\n gpsDate: string;\n auditDate: string;\n assignmentDate: string;\n finalizedDate: null | string;\n completionDate: null | string;\n cancelDate: null | string;\n stopDate: null | string;\n startDate: null | string;\n transitDate: null | string;\n cancelReason: null | string;\n distanceToCheckpoint: number;\n locationName: string;\n correlative: number;\n assignNotificationEmails: null | string;\n notificationEvents: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n routeNotificationEmails: string;\n requiredStartAtOrigin: boolean;\n completionType: number;\n isSpecialCargo: boolean;\n customField1: null | string;\n customField2: null | string;\n customField3: null | string;\n customField4: null | string;\n customField5: null | string;\n customField6: null | string;\n customerId: number;\n customerName: string;\n onTimeStatus: number;\n speedStatus: number;\n stopStatus: boolean;\n driverId: null | number;\n driverName: null | string;\n driverPhoto: null | string;\n driverPhoneNumber: null | string;\n driverBloodType: null | string;\n driverLicenseNumber: null | string;\n driverLicenseType: null | string;\n driverLicenseExpireDate: null | string;\n driverUseGlasses: null | boolean | number;\n driverBloodSugarProblems: null | boolean | number;\n routeStatusLabel: string;\n routeStatusLabelInfo: string;\n isDeviceOpenLabel: string;\n speedLabel: number;\n routeProgressLabel: string;\n distanceToCheckpointLabel: string;\n distanceLabel: string;\n fuelConsumption: number;\n expectedPerformance: number;\n performanceOnRoute: number;\n distanceProgress: number;\n hasFuelPerformance: boolean | number;\n}\n","export const DASHBOARD = 1;\nexport const MAP = 2;\nexport const REPORTS = 3;\nexport const TRACKING_UNITS = 4;\nexport const GEOFENCES_CATALOG = 5;\nexport const ASSIGNED_GEOFENCES = 6;\nexport const LOCATIONS_CATALOG = 7;\nexport const IMPORT_LOCATIONS = 8;\nexport const BACKLOG_JOBS = 9;\nexport const JOBS_BOARD = 10;\nexport const JOBS_REPORT = 11;\nexport const JOBS_WORK_ACTIVITY = 12;\nexport const SAFE_DRIVER = 13;\nexport const LOGISTIC_ROUTE_CATALOG = 14;\nexport const LOGISTIC_ROUTE_MONITOR = 15;\nexport const LOGISTIC_ROUTE_REPORT = 16;\nexport const ASSIGN_LOGISTIC_ROUTE = 17;\nexport const WORK_PLAN_CATALOG = 18;\nexport const WORK_PLAN_MONITOR = 19;\nexport const WORK_PLAN_REPORT = 20;\nexport const ASSIGN_WORK_PLAN = 21;\nexport const TEMPERATURE_TELEMETRY = 22;\nexport const FUEL_TELEMETRY_MONITOR = 23;\nexport const PREVENTIVE_NOTICES = 24;\nexport const SPAREPARTS_CATALOG = 25;\nexport const WORKMANSHIPS_CATALOG = 26;\nexport const SPAREPARTS_CATEGORIES_CATALOG = 27;\nexport const SPAREPARTS_PROVIDERS_CATALOG = 28;\nexport const GENERAL_MAINTENANCE_REPORT = 29;\nexport const BY_CATEGORY_REPORT = 30;\nexport const BY_UNIT_REPORT = 31;\nexport const BY_WORKSHOP_REPORT = 32;\nexport const IMPORT_MAINTENANCE_TICKETS = 33;\nexport const NEW_TICKET = 34;\nexport const IMPORT_FUEL_TICKETS = 35;\nexport const FUEL_TICKETS_CONSOLIDATED_REPORT = 36;\nexport const FUEL_TICKETS_REPORT_BY_UNIT = 37;\nexport const OPERATOR = 38;\nexport const ORGANIZATION = 39;\nexport const DIVISION = 40;\nexport const SUBDIVISION = 41;\nexport const SERVICE_CLASSES = 42;\nexport const AGENT = 43;\nexport const GROUPS = 44;\nexport const SHIFT = 45;\nexport const TRIGGER = 46;\nexport const USERS = 47;\nexport const DRIVERS = 48;\nexport const PEOPLE = 49;\nexport const FORMS_CATALOG = 50;\nexport const ANSWERS_FORMS = 51;\nexport const DEVICES = 52;\nexport const SIMS = 53;\nexport const SENSORS = 54;\nexport const ASSETS = 55;\nexport const VEHICLES = 56;\nexport const EMAIL_NOTIFICATIONS = 57;\nexport const CONSOLE_NOTIFICATIONS = 58;\nexport const WEB_SERVICE_NOTIFICATIONS = 59;\nexport const IMPORT_JOBS = 60;\nexport const SCHEDULED_WORKPLANS = 61;\nexport const FUEL_TELEMETRY_REPORT = 62;\nexport const CONTRACTS = 63;\nexport const FLEET = 64;\nexport const CUSTOMERS = 65;\nexport const CONTACTS = 66;\nexport const MAINTENANCE_RANGES = 67;\nexport const CONTRACT_TEMPLATES = 68;\nexport const QUOTATIONS = 69;\nexport const OPTIMIZATIONS = 70;\nexport const IMPORT_ROUTE_ASSIGNMENTS = 72;\nexport const RECORD_MULTIPLE_TICKETS = 73;\nexport const BUSINESS_PARTNERS = 74;\nexport const WEB_SERVICE_RATES = 75;\nexport const WORKPLAN_IMPORT = 76;\nexport const TELEMETRY_UNITS = 77;\nexport const WORKSHOP_ADD_ORDER = 78;\nexport const AUTOMATIZATIONS = 79;\nexport const TELEMETRY_OBD2 = 80;\nexport const FUEL_TELEMETRY_REPORT_BY_VEHICLES = 81;\nexport const PROTOCOL_CATALOG = 82;\nexport const SYSTEM_NOTIFICATIONS = 83;\nexport const LOGISTIC_ROUTE_ETA_MONITOR = 84;\n","export const ROUTES_FETCH_STARTED = 'ROUTES_FETCH_STARTED';\nexport const ROUTES_FETCH_COMPLETED = 'ROUTES_FETCH_COMPLETED';\nexport const ROUTES_FETCH_FAILED = 'ROUTES_FETCH_FAILED';\n\nexport const ROUTES_PARTIAL_FETCH_STARTED = 'ROUTES_PARTIAL_FETCH_STARTED';\nexport const ROUTES_PARTIAL_FETCH_COMPLETED = 'ROUTES_PARTIAL_FETCH_COMPLETED';\nexport const ROUTES_PARTIAL_FETCH_FAILED = 'ROUTES_PARTIAL_FETCH_FAILED';\n\nexport const ROUTE_ADD_STARTED = 'ROUTE_ADD_STARTED';\nexport const ROUTE_ADD_COMPLETED = 'ROUTE_ADD_COMPLETED';\nexport const ROUTE_ADD_FAILED = 'ROUTE_ADD_FAILED';\n\nexport const ROUTE_EDIT_STARTED = 'ROUTE_EDIT_STARTED';\nexport const ROUTE_EDIT_COMPLETED = 'ROUTE_EDIT_COMPLETED';\nexport const ROUTE_EDIT_FAILED = 'ROUTE_EDIT_FAILED';\n\nexport const ROUTE_REMOVE_STARTED = 'ROUTE_REMOVE_STARTED';\nexport const ROUTE_REMOVE_COMPLETED = 'ROUTE_REMOVE_COMPLETED';\nexport const ROUTE_REMOVE_FAILED = 'ROUTE_REMOVE_FAILED';\n\nexport const ROUTES_REMOVE_STARTED = 'ROUTES_REMOVE_STARTED';\nexport const ROUTES_REMOVE_COMPLETED = 'ROUTES_REMOVE_COMPLETED';\nexport const ROUTES_REMOVE_FAILED = 'ROUTES_REMOVE_FAILED';\n\nexport const ROUTE_SELECTED = 'ROUTE_SELECTED';\nexport const ROUTES_ALL_SELECTED = 'ROUTES_ALL_SELECTED';\nexport const ROUTE_DESELECTED = 'ROUTE_DESELECTED';\nexport const ROUTES_ALL_DESELECTED = 'ROUTES_ALL_DESELECTED';\n\nexport const ROUTE_COPY_STARTED = 'ROUTE_COPY_STARTED';\nexport const ROUTE_COPY_COMPLETED = 'ROUTE_COPY_COMPLETED';\nexport const ROUTE_COPY_FAILED = 'ROUTE_COPY_FAILED';\n\nexport const ROUTE_SHOW_IN_MAP = 'ROUTE_SHOW_IN_MAP';\nexport const ROUTE_HIDE_IN_MAP = 'ROUTE_HIDE_IN_MAP';\nexport const ROUTES_ALL_SHOW_IN_MAP = 'ROUTES_ALL_SHOW_IN_MAP';\nexport const ROUTES_ALL_HIDE_IN_MAP = 'ROUTES_ALL_HIDE_IN_MAP';\n\nexport const ROUTES_SHARED_LINK_INTERVAL = 15000;\n\nexport interface Route {\n isShownInMap: boolean;\n isSelected: boolean;\n routeId: number;\n routeName: string;\n abbreviation: string;\n distance: number;\n sourceName: string;\n targetName: string;\n privateCode: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: null | string;\n notificationEmails: null | string;\n notificationEvents: null | string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n completionTimeByUser: number;\n speedLimit: number | null;\n startTimeWindow: number | null;\n routeGroupId: number | null;\n checkPoints: number;\n routeStatus: number;\n customerId: number | null;\n customerName: null | string;\n isConfirmed: boolean;\n checkpoints: any[];\n distanceFormat: string;\n speedLimitFormat: number;\n}\n","export const LOCATIONS_FETCH_STARTED = 'LOCATIONS_FETCH_STARTED';\nexport const LOCATIONS_FETCH_COMPLETED = 'LOCATIONS_FETCH_COMPLETED';\nexport const LOCATIONS_FETCH_FAILED = 'LOCATIONS_FETCH_FAILED';\n\nexport const LOCATION_FETCH_STARTED = 'LOCATION_FETCH_STARTED';\nexport const LOCATION_FETCH_COMPLETED = 'LOCATION_FETCH_COMPLETED';\nexport const LOCATION_FETCH_FAILED = 'LOCATION_FETCH_FAILED';\n\nexport const LOCATIONS_PARTIAL_FETCH_STARTED = 'LOCATIONS_PARTIAL_FETCH_STARTED';\nexport const LOCATIONS_PARTIAL_FETCH_COMPLETED = 'LOCATIONS_PARTIAL_FETCH_COMPLETED';\nexport const LOCATIONS_PARTIAL_FETCH_FAILED = 'LOCATIONS_PARTIAL_FETCH_FAILED';\n\nexport const LOCATION_ADD_STARTED = 'LOCATION_ADD_STARTED';\nexport const LOCATION_ADD_COMPLETED = 'LOCATION_ADD_COMPLETED';\nexport const LOCATION_ADD_FAILED = 'LOCATION_ADD_FAILED';\n\nexport const LOCATION_EDIT_STARTED = 'LOCATION_EDIT_STARTED';\nexport const LOCATION_EDIT_COMPLETED = 'LOCATION_EDIT_COMPLETED';\nexport const LOCATION_EDIT_FAILED = 'LOCATION_EDIT_FAILED';\n\nexport const LOCATION_REMOVE_STARTED = 'LOCATION_REMOVE_STARTED';\nexport const LOCATION_REMOVE_COMPLETED = 'LOCATION_REMOVE_COMPLETED';\nexport const LOCATION_REMOVE_FAILED = 'LOCATION_REMOVE_FAILED';\n\nexport const LOCATIONS_IMPORT_STARTED = 'LOCATIONS_IMPORT_STARTED';\nexport const LOCATIONS_IMPORT_COMPLETED = 'LOCATIONS_IMPORT_COMPLETED';\nexport const LOCATIONS_IMPORT_FAILED = 'LOCATIONS_IMPORT_FAILED';\n\nexport const LOCATION_SELECTED = 'LOCATION_SELECTED';\nexport const LOCATIONS_ALL_SELECTED = 'LOCATIONS_ALL_SELECTED';\nexport const LOCATION_DESELECTED = 'LOCATION_DESELECTED';\nexport const LOCATIONS_ALL_DESELECTED = 'LOCATIONS_ALL_DESELECTED';\n\nexport const LOCATION_SHOW_IN_MAP = 'LOCATION_SHOW_IN_MAP';\nexport const LOCATIONS_ALL_SHOW_IN_MAP = 'LOCATIONS_ALL_SHOW_IN_MAP';\nexport const LOCATION_HIDE_IN_MAP = 'LOCATION_HIDE_IN_MAP';\nexport const LOCATIONS_ALL_HIDE_IN_MAP = 'LOCATIONS_ALL_HIDE_IN_MAP';\n\nexport const LOCATION_DATA_LIMIT_FOR_CLUSTERING = 1000;\nexport const LOCATION_DATA_LIMIT_FOR_SHOW_ON_MAP = 5000;\n\nexport interface NewReduxLocation {\n isSelected: boolean;\n isShownInMap: boolean;\n locationId: number;\n locationAddress: string;\n dispatchCompletionType: number | null;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: boolean;\n icon: string;\n latitude: number;\n locationName: string;\n locationTypeId: number;\n longitude: number;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n customerId: number | null;\n officeId: number | null;\n privateCode: null | string;\n radius: number;\n locationClassId: number;\n locationClassName: string;\n locationClassIconName: string;\n locationClassDefaultColor: string | null;\n locationStatus: number;\n fullImageUrl: null | string;\n imageUrl: null | string;\n imageTypeId: number | null;\n imageCount: number;\n isConfirmed: boolean;\n}\n","export const MONITORING_USERS_FETCH_STARTED = 'MONITORING_USERS_FETCH_STARTED';\nexport const MONITORING_USERS_FETCH_COMPLETED = 'MONITORING_USERS_FETCH_COMPLETED';\nexport const MONITORING_USERS_FETCH_FAILED = 'MONITORING_USERS_FETCH_FAILED';\n\nexport const MONITORING_USERS_PARTIAL_FETCH_STARTED = 'MONITORING_USERS_PARTIAL_FETCH_STARTED';\nexport const MONITORING_USERS_PARTIAL_FETCH_COMPLETED = 'MONITORING_USERS_PARTIAL_FETCH_COMPLETED';\nexport const MONITORING_USERS_PARTIAL_FETCH_FAILED = 'MONITORING_USERS_PARTIAL_FETCH_FAILED';\n\nexport const MONITORING_USER_ADD_STARTED = 'MONITORING_USER_ADD_STARTED';\nexport const MONITORING_USER_ADD_COMPLETED = 'MONITORING_USER_ADD_COMPLETED';\nexport const MONITORING_USER_ADD_FAILED = 'MONITORING_USER_ADD_FAILED';\n\nexport const MONITORING_USER_EDIT_STARTED = 'MONITORING_USER_EDIT_STARTED';\nexport const MONITORING_USER_EDIT_COMPLETED = 'MONITORING_USER_EDIT_COMPLETED';\nexport const MONITORING_USER_EDIT_FAILED = 'MONITORING_USER_EDIT_FAILED';\n\nexport const MONITORING_USER_REMOVE_STARTED = 'MONITORING_USER_REMOVE_STARTED';\nexport const MONITORING_USER_REMOVE_COMPLETED = 'MONITORING_USER_REMOVE_COMPLETED';\nexport const MONITORING_USER_REMOVE_FAILED = 'MONITORING_USER_REMOVE_FAILED';\n\nexport const MONITORING_USER_FETCH_STARTED = 'MONITORING_USER_FETCH_STARTED';\nexport const MONITORING_USER_FETCH_COMPLETED = 'MONITORING_USER_FETCH_COMPLETED';\nexport const MONITORING_USER_FETCH_FAILED = 'MONITORING_USER_FETCH_FAILED';\n\nexport const MONITORING_USER_SELECTED = 'MONITORING_USER_SELECTED';\nexport const MONITORING_USERS_ALL_SELECTED = 'MONITORING_USERS_ALL_SELECTED';\nexport const MONITORING_USER_DESELECTED = 'MONITORING_USER_DESELECTED';\nexport const MONITORING_USERS_ALL_DESELECTED = 'MONITORING_USERS_ALL_DESELECTED';\n\nexport const MONITORING_USER_UPDATE_PASSWORD_STARTED = 'MONITORING_USER_UPDATE_PASSWORD_STARTED';\nexport const MONITORING_USER_UPDATE_PASSWORD_COMPLETED =\n 'MONITORING_USER_UPDATE_PASSWORD_COMPLETED';\nexport const MONITORING_USER_UPDATE_PASSWORD_FAILED = 'MONITORING_USER_UPDATE_PASSWORD_FAILED';\n\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED';\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED';\n\nexport const USERS_ASSIGN_SCHEDULE_STARTED = 'USERS_ASSIGN_SCHEDULE_STARTED';\nexport const USERS_ASSIGN_SCHEDULE_COMPLETED = 'USERS_ASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_UNASSIGN_SCHEDULE_STARTED = 'USERS_UNASSIGN_SCHEDULE_STARTED';\nexport const USERS_UNASSIGN_SCHEDULE_COMPLETED = 'USERS_UNASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_FILTER_LIMIT = 1000;\n\nexport interface MonitoringUser {\n isSelected: boolean;\n userId: number;\n userName: string;\n brandId?: number | null;\n imageName: null | string;\n userImageUrl: null | string;\n accessLevelId: number;\n accessLevelName: string;\n divisionId: number;\n divisionName: string;\n email: string;\n emailConfirmed: boolean;\n completeName: string;\n organizationId: number;\n organizationName: string;\n phoneNumber: null | string | number;\n subdivisionId: number;\n subdivisionName: string;\n operatorId: number;\n agentId: number | null;\n operatorName: string;\n groupId: number | string;\n utcZoneId: number;\n metricSystemId: number | null;\n currencyId: number | null;\n driverId: number | null;\n driverName: null | string;\n userStatus: number;\n lastLoginDate: string | null;\n enableLocationClustering: boolean | null;\n locationMapLabelAlwaysOn: boolean | null;\n activateUnitTrackMode: boolean | null;\n unitMapLabelAlwaysOn: boolean | null;\n useGoogleMaps: boolean | null;\n useBingMaps: boolean | null;\n useHereMaps: boolean | null;\n unitsLabelContent: null | string;\n roleId: number | null;\n homeScreenId: number | null;\n scheduleId: number | null;\n scheduleName: null | string;\n isConfirmed: boolean;\n zoomLevelToStartClustering?: number;\n countriesForGoogleSearch?: string;\n mapEntitiesFilterTab?: number | null;\n unitMarkersRotation?: 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","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","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","//filtrar data de vehiculos por performanceStatus segun rango seleccionado por del usuario\nimport camelcaseKeys from 'camelcase-keys';\nimport moment from 'moment';\nimport { useMemo } from 'react';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nexport const performanceColors = [\n '#FF4757',\n '#ffa437',\n '#2ED573',\n '#1E90FF',\n '#7d39f6',\n '#a90003',\n '#7B7B74',\n '#dcdcdc'\n];\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 =\n performanceStatus >= rangePerformance[1] && performanceStatus <= rangePerformance[2] - 1;\n const isEfficient =\n 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 = (\n status,\n expectedPerformance,\n rangePerformance = [0, 80, 90, 110, 200]\n) => {\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\nconst getAllFilteredData = (byVehicles, ranges = [0, 79, 80, 89, 90, 110]) => {\n const unitsWithRecentData = byVehicles.filter((v) => {\n // tiene que haber comunicado en los ultimos 7 dias\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n\n // no debe tener downtime\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n\n // tiene que tener un rendimiento que se pueda calcular\n // - rendimiento esperado > 0\n // AND (\n // - recorrido >= rendimiento esperado\n // - (ya no se aplica) recorrido >= rendimiento esperado * umbral de carga // tiene que recorrer la distancia para consumir la cantidad de combustible para detectar una carga\n // - consumo > 1 ? (litros/galones) //\n // ) OR rendimiento historico > 0\n const hasPerformance =\n (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) ||\n v.historicalFuelEconomy > 0;\n\n return hasRecentData && hasNoDowntimeReasonId && hasPerformance;\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 =\n parseFloat(v.expectedfuelEconomyByVehicles) <= 0 ||\n parseFloat(v.travel) < parseFloat(v.expectedfuelEconomyByVehicles) ||\n parseFloat(v.consumption) < 1;\n\n return (\n hasRecentData && hasNoDowntimeReasonId && hasNoPerformance && v.historicalFuelEconomy <= 0\n );\n });\n\n const dowtimeUnits = byVehicles.filter((u) => u.downTimeReasonId);\n\n const unitsWithoutRecentData = byVehicles.filter(\n (v) =>\n !unitsWithRecentData.some((v2) => v2.unitId === v.unitId) &&\n !unitsWithoutPerformance.some((v2) => v2.unitId === v.unitId) &&\n !dowtimeUnits.some((v2) => v2.unitId === v.unitId)\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(\n (v) => v.performanceStatusNew === 3 || v.performanceStatusNew === 4\n ), // 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 {\n ...allFilters,\n 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') => {\n if (min === 0 && max === 0) {\n const filtered = vehiclesData.filter((v) => v[property] === '0.00');\n\n return filtered;\n } else {\n const filtered =\n 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\nconst 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\nconst dec2binReverse = (dec) => {\n const binary = dec2bin(dec);\n return reverseBinary(binary);\n};\n\nconst searchUseMetric = (metricsMask, bitNumber) => {\n return (metricsMask & (2 ** bitNumber)) == 2 ** bitNumber;\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\nconst getSummaryDataForDynamicTable = (performanceSummary, intl) => {\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 return newConsolidatedInfo;\n }\n\n return [];\n};\n\nfunction 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\nexport {\n dec2binReverse,\n filterTelemetryData,\n getAllFilteredData,\n getSummaryDataForDynamicTable,\n Metrics,\n searchUseMetric,\n useCombinedFuelHistory\n};\n","export const ORGANIZATION_CONTRACTS_FETCH_STARTED = 'ORGANIZATION_CONTRACTS_FETCH_STARTED';\nexport const ORGANIZATION_CONTRACTS_FETCH_COMPLETED = 'ORGANIZATION_CONTRACTS_FETCH_COMPLETED';\nexport const ORGANIZATION_CONTRACTS_FETCH_FAILED = 'ORGANIZATION_CONTRACTS_FETCH_FAILED';\n\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED';\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED';\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED';\n\nexport const ORGANIZATION_CONTRACT_ADD_STARTED = 'ORGANIZATION_CONTRACT_ADD_STARTED';\nexport const ORGANIZATION_CONTRACT_ADD_COMPLETED = 'ORGANIZATION_CONTRACT_ADD_COMPLETED';\nexport const ORGANIZATION_CONTRACT_ADD_FAILED = 'ORGANIZATION_CONTRACT_ADD_FAILED';\n\nexport const ORGANIZATION_CONTRACT_EDIT_STARTED = 'ORGANIZATION_CONTRACT_EDIT_STARTED';\nexport const ORGANIZATION_CONTRACT_EDIT_COMPLETED = 'ORGANIZATION_CONTRACT_EDIT_COMPLETED';\nexport const ORGANIZATION_CONTRACT_EDIT_FAILED = 'ORGANIZATION_CONTRACT_EDIT_FAILED';\n\nexport const ORGANIZATION_CONTRACT_REMOVE_STARTED = 'ORGANIZATION_CONTRACT_REMOVE_STARTED';\nexport const ORGANIZATION_CONTRACT_REMOVE_COMPLETED = 'ORGANIZATION_CONTRACT_REMOVE_COMPLETED';\nexport const ORGANIZATION_CONTRACT_REMOVE_FAILED = 'ORGANIZATION_CONTRACT_REMOVE_FAILED';\n\nexport const ORGANIZATION_CONTRACT_SELECTED = 'ORGANIZATION_CONTRACT_SELECTED';\nexport const ORGANIZATION_CONTRACTS_ALL_SELECTED = 'ORGANIZATION_CONTRACTS_ALL_SELECTED';\nexport const ORGANIZATION_CONTRACT_DESELECTED = 'ORGANIZATION_CONTRACT_DESELECTED';\nexport const ORGANIZATION_CONTRACTS_ALL_DESELECTED = 'ORGANIZATION_CONTRACTS_ALL_DESELECTED';\n","export const CONTRACT_TEMPLATES_FETCH_STARTED = 'CONTRACT_TEMPLATES_FETCH_STARTED';\nexport const CONTRACT_TEMPLATES_FETCH_COMPLETED = 'CONTRACT_TEMPLATES_FETCH_COMPLETED';\nexport const CONTRACT_TEMPLATES_FETCH_FAILED = 'CONTRACT_TEMPLATES_FETCH_FAILED';\n\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED = 'CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED';\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED =\n 'CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED';\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED = 'CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED';\n\nexport const CONTRACT_TEMPLATE_ADD_STARTED = 'CONTRACT_TEMPLATE_ADD_STARTED';\nexport const CONTRACT_TEMPLATE_ADD_COMPLETED = 'CONTRACT_TEMPLATE_ADD_COMPLETED';\nexport const CONTRACT_TEMPLATE_ADD_FAILED = 'CONTRACT_TEMPLATE_ADD_FAILED';\n\nexport const CONTRACT_TEMPLATE_EDIT_STARTED = 'CONTRACT_TEMPLATE_EDIT_STARTED';\nexport const CONTRACT_TEMPLATE_EDIT_COMPLETED = 'CONTRACT_TEMPLATE_EDIT_COMPLETED';\nexport const CONTRACT_TEMPLATE_EDIT_FAILED = 'CONTRACT_TEMPLATE_EDIT_FAILED';\n\nexport const CONTRACT_TEMPLATE_REMOVE_STARTED = 'CONTRACT_TEMPLATE_REMOVE_STARTED';\nexport const CONTRACT_TEMPLATE_REMOVE_COMPLETED = 'CONTRACT_TEMPLATE_REMOVE_COMPLETED';\nexport const CONTRACT_TEMPLATE_REMOVE_FAILED = 'CONTRACT_TEMPLATE_REMOVE_FAILED';\n\nexport const CONTRACT_TEMPLATE_SELECTED = 'CONTRACT_TEMPLATE_SELECTED';\nexport const CONTRACT_TEMPLATES_ALL_SELECTED = 'CONTRACT_TEMPLATES_ALL_SELECTED';\nexport const CONTRACT_TEMPLATE_DESELECTED = 'CONTRACT_TEMPLATE_DESELECTED';\nexport const CONTRACT_TEMPLATES_ALL_DESELECTED = 'CONTRACT_TEMPLATES_ALL_DESELECTED';\n","export const OFFICES_FETCH_STARTED = 'OFFICES_FETCH_STARTED';\nexport const OFFICES_FETCH_COMPLETED = 'OFFICES_FETCH_COMPLETED';\nexport const OFFICES_FETCH_FAILED = 'OFFICES_FETCH_FAILED';\n\nexport const OFFICES_PARTIAL_FETCH_STARTED = 'OFFICES_PARTIAL_FETCH_STARTED';\nexport const OFFICES_PARTIAL_FETCH_COMPLETED = 'OFFICES_PARTIAL_FETCH_COMPLETED';\nexport const OFFICES_PARTIAL_FETCH_FAILED = 'OFFICES_PARTIAL_FETCH_FAILED';\n\nexport const OFFICE_ADD_STARTED = 'OFFICE_ADD_STARTED';\nexport const OFFICE_ADD_COMPLETED = 'OFFICE_ADD_COMPLETED';\nexport const OFFICE_ADD_FAILED = 'OFFICE_ADD_FAILED';\n\nexport const OFFICE_EDIT_STARTED = 'OFFICE_EDIT_STARTED';\nexport const OFFICE_EDIT_COMPLETED = 'OFFICE_EDIT_COMPLETED';\nexport const OFFICE_EDIT_FAILED = 'OFFICE_EDIT_FAILED';\n\nexport const OFFICE_REMOVE_STARTED = 'OFFICE_REMOVE_STARTED';\nexport const OFFICE_REMOVE_COMPLETED = 'OFFICE_REMOVE_COMPLETED';\nexport const OFFICE_REMOVE_FAILED = 'OFFICE_REMOVE_FAILED';\n\nexport const OFFICE_SELECTED = 'OFFICE_SELECTED';\nexport const OFFICES_ALL_SELECTED = 'OFFICES_ALL_SELECTED';\nexport const OFFICE_DESELECTED = 'OFFICE_DESELECTED';\nexport const OFFICES_ALL_DESELECTED = 'OFFICES_ALL_DESELECTED';\n","export const DIVISIONS_FETCH_STARTED = \"DIVISIONS_FETCH_STARTED\";\nexport const DIVISIONS_FETCH_COMPLETED = \"DIVISIONS_FETCH_COMPLETED\";\nexport const DIVISIONS_FETCH_FAILED = \"DIVISIONS_FETCH_FAILED\";\n\nexport const DIVISIONS_PARTIAL_FETCH_STARTED =\n \"DIVISIONS_PARTIAL_FETCH_STARTED\";\nexport const DIVISIONS_PARTIAL_FETCH_COMPLETED =\n \"DIVISIONS_PARTIAL_FETCH_COMPLETED\";\nexport const DIVISIONS_PARTIAL_FETCH_FAILED = \"DIVISIONS_PARTIAL_FETCH_FAILED\";\n\nexport const DIVISION_ADD_STARTED = \"DIVISION_ADD_STARTED\";\nexport const DIVISION_ADD_COMPLETED = \"DIVISION_ADD_COMPLETED\";\nexport const DIVISION_ADD_FAILED = \"DIVISION_ADD_FAILED\";\n\nexport const DIVISION_EDIT_STARTED = \"DIVISION_EDIT_STARTED\";\nexport const DIVISION_EDIT_COMPLETED = \"DIVISION_EDIT_COMPLETED\";\nexport const DIVISION_EDIT_FAILED = \"DIVISION_EDIT_FAILED\";\n\nexport const DIVISION_REMOVE_STARTED = \"DIVISION_REMOVE_STARTED\";\nexport const DIVISION_REMOVE_COMPLETED = \"DIVISION_REMOVE_COMPLETED\";\nexport const DIVISION_REMOVE_FAILED = \"DIVISION_REMOVE_FAILED\";\n\nexport const DIVISION_SELECTED = \"DIVISION_SELECTED\";\nexport const DIVISIONS_ALL_SELECTED = \"DIVISIONS_ALL_SELECTED\";\nexport const DIVISION_DESELECTED = \"DIVISION_DESELECTED\";\nexport const DIVISIONS_ALL_DESELECTED = \"DIVISIONS_ALL_DESELECTED\";\n","export const SUBDIVISIONS_FETCH_STARTED = \"SUBDIVISIONS_FETCH_STARTED\";\nexport const SUBDIVISIONS_FETCH_COMPLETED = \"SUBDIVISIONS_FETCH_COMPLETED\";\nexport const SUBDIVISIONS_FETCH_FAILED = \"SUBDIVISIONS_FETCH_FAILED\";\n\nexport const SUBDIVISIONS_PARTIAL_FETCH_STARTED =\n \"SUBDIVISIONS_PARTIAL_FETCH_STARTED\";\nexport const SUBDIVISIONS_PARTIAL_FETCH_COMPLETED =\n \"SUBDIVISIONS_PARTIAL_FETCH_COMPLETED\";\nexport const SUBDIVISIONS_PARTIAL_FETCH_FAILED =\n \"SUBDIVISIONS_PARTIAL_FETCH_FAILED\";\n\nexport const SUBDIVISION_ADD_STARTED = \"SUBDIVISION_ADD_STARTED\";\nexport const SUBDIVISION_ADD_COMPLETED = \"SUBDIVISION_ADD_COMPLETED\";\nexport const SUBDIVISION_ADD_FAILED = \"SUBDIVISION_ADD_FAILED\";\n\nexport const SUBDIVISION_EDIT_STARTED = \"SUBDIVISION_EDIT_STARTED\";\nexport const SUBDIVISION_EDIT_COMPLETED = \"SUBDIVISION_EDIT_COMPLETED\";\nexport const SUBDIVISION_EDIT_FAILED = \"SUBDIVISION_EDIT_FAILED\";\n\nexport const SUBDIVISION_REMOVE_STARTED = \"SUBDIVISION_REMOVE_STARTED\";\nexport const SUBDIVISION_REMOVE_COMPLETED = \"SUBDIVISION_REMOVE_COMPLETED\";\nexport const SUBDIVISION_REMOVE_FAILED = \"SUBDIVISION_REMOVE_FAILED\";\n\nexport const SUBDIVISION_SELECTED = \"SUBDIVISION_SELECTED\";\nexport const SUBDIVISIONS_ALL_SELECTED = \"SUBDIVISIONS_ALL_SELECTED\";\nexport const SUBDIVISION_DESELECTED = \"SUBDIVISION_DESELECTED\";\nexport const SUBDIVISIONS_ALL_DESELECTED = \"SUBDIVISIONS_ALL_DESELECTED\";\n","export const WORKPLANS_EXECUTIONS_FETCH_STARTED = 'WORKPLANS_EXECUTIONS_FETCH_STARTED';\nexport const WORKPLANS_EXECUTIONS_FETCH_COMPLETED = 'WORKPLANS_EXECUTIONS_FETCH_COMPLETED';\nexport const WORKPLANS_EXECUTIONS_FETCH_FAILED = 'WORKPLANS_EXECUTIONS_FETCH_FAILED';\n\nexport const WORKPLAN_EXECUTION_FETCH_STARTED = 'WORKPLAN_EXECUTION_FETCH_STARTED';\nexport const WORKPLAN_EXECUTION_FETCH_COMPLETED = 'WORKPLAN_EXECUTION_FETCH_COMPLETED';\nexport const WORKPLAN_EXECUTION_FETCH_FAILED = 'WORKPLAN_EXECUTION_FETCH_FAILED';\n\nexport const WORKPLANS_EXECUTION_CANCEL_STARTED = 'WORKPLANS_EXECUTION_CANCEL_STARTED';\nexport const WORKPLANS_EXECUTION_CANCEL_COMPLETED = 'WORKPLANS_EXECUTION_CANCEL_COMPLETED';\nexport const WORKPLANS_EXECUTION_CANCEL_FAILED = 'WORKPLANS_EXECUTION_CANCEL_FAILED';\n\nexport const WORKPLANS_EXECUTION_FINALIZE_STARTED = 'WORKPLANS_EXECUTION_FINALIZE_STARTED';\nexport const WORKPLANS_EXECUTION_FINALIZE_COMPLETED = 'WORKPLANS_EXECUTION_FINALIZE_COMPLETED';\nexport const WORKPLANS_EXECUTION_FINALIZE_FAILED = 'WORKPLANS_EXECUTION_FINALIZE_FAILED';\n\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED = 'WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED';\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED =\n 'WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED = 'WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED = 'WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED =\n 'WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED = 'WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport enum COLORS {\n Visited = '#1e90ff',\n Confirmed = '#2ed573',\n NotVisited = '#ff4757',\n Pending = '#ACACAC',\n ArrivalOnTime = '#2ed573',\n ArrivalEarly = '#1e90ff',\n ArrivalLate = '#FFA502',\n PermanenceNormal = '#2ed573',\n PermanenceShort = '#1e90ff',\n PermanenceLong = '#FFA502'\n}\n","export const CONTACTS_FETCH_STARTED = 'CONTACTS_FETCH_STARTED';\nexport const CONTACTS_FETCH_COMPLETED = 'CONTACTS_FETCH_COMPLETED';\nexport const CONTACTS_FETCH_FAILED = 'CONTACTS_FETCH_FAILED';\n\nexport const CONTACTS_PARTIAL_FETCH_STARTED = 'CONTACTS_PARTIAL_FETCH_STARTED';\nexport const CONTACTS_PARTIAL_FETCH_COMPLETED = 'CONTACTS_PARTIAL_FETCH_COMPLETED';\nexport const CONTACTS_PARTIAL_FETCH_FAILED = 'CONTACTS_PARTIAL_FETCH_FAILED';\n\nexport const CONTACT_ADD_STARTED = 'CONTACT_ADD_STARTED';\nexport const CONTACT_ADD_COMPLETED = 'CONTACT_ADD_COMPLETED';\nexport const CONTACT_ADD_FAILED = 'CONTACT_ADD_FAILED';\n\nexport const CONTACT_EDIT_STARTED = 'CONTACT_EDIT_STARTED';\nexport const CONTACT_EDIT_COMPLETED = 'CONTACT_EDIT_COMPLETED';\nexport const CONTACT_EDIT_FAILED = 'CONTACT_EDIT_FAILED';\n\nexport const CONTACT_REMOVE_STARTED = 'CONTACT_REMOVE_STARTED';\nexport const CONTACT_REMOVE_COMPLETED = 'CONTACT_REMOVE_COMPLETED';\nexport const CONTACT_REMOVE_FAILED = 'CONTACT_REMOVE_FAILED';\n\nexport const CONTACT_FETCH_STARTED = 'CONTACT_FETCH_STARTED';\nexport const CONTACT_FETCH_COMPLETED = 'CONTACT_FETCH_COMPLETED';\nexport const CONTACT_FETCH_FAILED = 'CONTACT_FETCH_FAILED';\n\nexport const CONTACT_SELECTED = 'CONTACT_SELECTED';\nexport const CONTACTS_ALL_SELECTED = 'CONTACTS_ALL_SELECTED';\nexport const CONTACT_DESELECTED = 'CONTACT_DESELECTED';\nexport const CONTACTS_ALL_DESELECTED = 'CONTACTS_ALL_DESELECTED';\n","export const PROTOCOLS_FETCH_STARTED = 'PROTOCOLS_FETCH_STARTED';\nexport const PROTOCOLS_FETCH_COMPLETED = 'PROTOCOLS_FETCH_COMPLETED';\nexport const PROTOCOLS_FETCH_FAILED = 'PROTOCOLS_FETCH_FAILED';\n\nexport const PROTOCOLS_PARTIAL_FETCH_STARTED = 'PROTOCOLS_PARTIAL_FETCH_STARTED';\nexport const PROTOCOLS_PARTIAL_FETCH_COMPLETED = 'PROTOCOLS_PARTIAL_FETCH_COMPLETED';\nexport const PROTOCOLS_PARTIAL_FETCH_FAILED = 'PROTOCOLS_PARTIAL_FETCH_FAILED';\n\nexport const PROTOCOLS_ADD_STARTED = 'PROTOCOLS_ADD_STARTED';\nexport const PROTOCOLS_ADD_COMPLETED = 'PROTOCOLS_ADD_COMPLETED';\nexport const PROTOCOLS_ADD_FAILED = 'PROTOCOLS_ADD_FAILED';\n\nexport const PROTOCOLS_EDIT_STARTED = 'PROTOCOLS_EDIT_STARTED';\nexport const PROTOCOLS_EDIT_COMPLETED = 'PROTOCOLS_EDIT_COMPLETED';\nexport const PROTOCOLS_EDIT_FAILED = 'PROTOCOLS_EDIT_FAILED';\n\nexport const PROTOCOLS_REMOVE_STARTED = 'PROTOCOLS_REMOVE_STARTED';\nexport const PROTOCOLS_REMOVE_COMPLETED = 'PROTOCOLS_REMOVE_COMPLETED';\nexport const PROTOCOLS_REMOVE_FAILED = 'PROTOCOLS_REMOVE_FAILED';\n\nexport const PROTOCOLS_SELECTED = 'PROTOCOLS_SELECTED';\nexport const PROTOCOLS_ALL_SELECTED = 'PROTOCOLS_ALL_SELECTED';\nexport const PROTOCOLS_DESELECTED = 'PROTOCOLS_DESELECTED';\nexport const PROTOCOLS_ALL_DESELECTED = 'PROTOCOLS_ALL_DESELECTED';\n\nexport interface Protocol {\n isSelected: boolean;\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n protocolEvents: string;\n protocolPriority: number;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n isConfirmed: boolean;\n}\n","export const NOTICES_BY_ODOMETER_FETCH_STARTED = 'NOTICES_BY_ODOMETER_FETCH_STARTED';\nexport const NOTICES_BY_ODOMETER_FETCH_COMPLETED = 'NOTICES_BY_ODOMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_ODOMETER_FETCH_FAILED = 'NOTICES_BY_ODOMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED = 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_ODOMETER_ADD_STARTED = 'NOTICE_BY_ODOMETER_ADD_STARTED';\nexport const NOTICE_BY_ODOMETER_ADD_COMPLETED = 'NOTICE_BY_ODOMETER_ADD_COMPLETED';\nexport const NOTICE_BY_ODOMETER_ADD_FAILED = 'NOTICE_BY_ODOMETER_ADD_FAILED';\n\nexport const NOTICE_BY_ODOMETER_EDIT_STARTED = 'NOTICE_BY_ODOMETER_EDIT_STARTED';\nexport const NOTICE_BY_ODOMETER_EDIT_COMPLETED = 'NOTICE_BY_ODOMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_ODOMETER_EDIT_FAILED = 'NOTICE_BY_ODOMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_ODOMETER_RENEW_STARTED = 'NOTICE_BY_ODOMETER_RENEW_STARTED';\nexport const NOTICE_BY_ODOMETER_RENEW_COMPLETED = 'NOTICE_BY_ODOMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_ODOMETER_RENEW_FAILED = 'NOTICE_BY_ODOMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_ODOMETER_REMOVE_STARTED = 'NOTICE_BY_ODOMETER_REMOVE_STARTED';\nexport const NOTICE_BY_ODOMETER_REMOVE_COMPLETED = 'NOTICE_BY_ODOMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_ODOMETER_REMOVE_FAILED = 'NOTICE_BY_ODOMETER_REMOVE_FAILED';\n","export * from './time-zones';\nexport * from './currencies';\nexport * from './countries';\nexport * from './vehicle-makers';\nexport * from './vehicle-models';\nexport * from './insurance-companies';\nexport * from './insurance-agents';\nexport * from './sensor-brands';\nexport * from './sensor-models';\nexport * from './sensor-measures';\nexport * from './payment-methods';\nexport * from './location-classes';\n","export const NOTICES_BY_DATE_FETCH_STARTED = 'NOTICES_BY_DATE_FETCH_STARTED';\nexport const NOTICES_BY_DATE_FETCH_COMPLETED = 'NOTICES_BY_DATE_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_FETCH_FAILED = 'NOTICES_BY_DATE_FETCH_FAILED';\n\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_STARTED = 'NOTICES_BY_DATE_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED = 'NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_FAILED = 'NOTICES_BY_DATE_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_DATE_ADD_STARTED = 'NOTICE_BY_DATE_ADD_STARTED';\nexport const NOTICE_BY_DATE_ADD_COMPLETED = 'NOTICE_BY_DATE_ADD_COMPLETED';\nexport const NOTICE_BY_DATE_ADD_FAILED = 'NOTICE_BY_DATE_ADD_FAILED';\n\nexport const NOTICE_BY_DATE_EDIT_STARTED = 'NOTICE_BY_DATE_EDIT_STARTED';\nexport const NOTICE_BY_DATE_EDIT_COMPLETED = 'NOTICE_BY_DATE_EDIT_COMPLETED';\nexport const NOTICE_BY_DATE_EDIT_FAILED = 'NOTICE_BY_DATE_EDIT_FAILED';\n\nexport const NOTICE_BY_DATE_RENEW_STARTED = 'NOTICE_BY_DATE_RENEW_STARTED';\nexport const NOTICE_BY_DATE_RENEW_COMPLETED = 'NOTICE_BY_DATE_RENEW_COMPLETED';\nexport const NOTICE_BY_DATE_RENEW_FAILED = 'NOTICE_BY_DATE_RENEW_FAILED';\n\nexport const NOTICE_BY_DATE_REMOVE_STARTED = 'NOTICE_BY_DATE_REMOVE_STARTED';\nexport const NOTICE_BY_DATE_REMOVE_COMPLETED = 'NOTICE_BY_DATE_REMOVE_COMPLETED';\nexport const NOTICE_BY_DATE_REMOVE_FAILED = 'NOTICE_BY_DATE_REMOVE_FAILED';\n","export const NOTICES_BY_HOURMETER_FETCH_STARTED = 'NOTICES_BY_HOURMETER_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_FETCH_COMPLETED = 'NOTICES_BY_HOURMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_FETCH_FAILED = 'NOTICES_BY_HOURMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_HOURMETER_ADD_STARTED = 'NOTICE_BY_HOURMETER_ADD_STARTED';\nexport const NOTICE_BY_HOURMETER_ADD_COMPLETED = 'NOTICE_BY_HOURMETER_ADD_COMPLETED';\nexport const NOTICE_BY_HOURMETER_ADD_FAILED = 'NOTICE_BY_HOURMETER_ADD_FAILED';\n\nexport const NOTICE_BY_HOURMETER_EDIT_STARTED = 'NOTICE_BY_HOURMETER_EDIT_STARTED';\nexport const NOTICE_BY_HOURMETER_EDIT_COMPLETED = 'NOTICE_BY_HOURMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_HOURMETER_EDIT_FAILED = 'NOTICE_BY_HOURMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_HOURMETER_RENEW_STARTED = 'NOTICE_BY_HOURMETER_RENEW_STARTED';\nexport const NOTICE_BY_HOURMETER_RENEW_COMPLETED = 'NOTICE_BY_HOURMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_HOURMETER_RENEW_FAILED = 'NOTICE_BY_HOURMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_HOURMETER_REMOVE_STARTED = 'NOTICE_BY_HOURMETER_REMOVE_STARTED';\nexport const NOTICE_BY_HOURMETER_REMOVE_COMPLETED = 'NOTICE_BY_HOURMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_HOURMETER_REMOVE_FAILED = 'NOTICE_BY_HOURMETER_REMOVE_FAILED';\n","export interface Redirect {\n push: (path: string) => void;\n path?: string;\n}\n\nexport interface WithRedirectMeta {\n redirectMeta: Redirect;\n}\n\nexport interface WithCallback {\n action: Function;\n}\n\nexport interface TableRow {\n rowId: string;\n name: string;\n}\nexport interface Question {\n questionId: string;\n name: string;\n type: number;\n isRequired: boolean;\n isPrivate: boolean;\n isCollapsed: boolean;\n answers?: any[];\n}\nexport interface Section {\n sectionId: string;\n name: string;\n questions: Question[];\n rows: TableRow[];\n type: number;\n useDropDownRows: boolean;\n isCollapsed: boolean;\n}\n\nexport interface Form {\n formId?: number;\n name?: string;\n description?: string;\n sections: Section[];\n}\n\nexport interface MovableTypes {\n sourceId: String;\n sourceIndex: number;\n destinationId: String;\n destinationIndex: number;\n type: String;\n draggableId: String;\n source: any;\n destination: any;\n}\n\n/**\n * @description\n * This interface is used to define the properties of the columns of the table\n * Used types in order to dynamically type depending on the values\n * @example\n * if the header text is defined, the static text should not be defined\n */\nexport type TableColumn =\n | ({\n fieldName?: string;\n type?: 'dateTime' | 'number' | 'string' | 'boolean' | undefined;\n editType?: 'numericedit' | 'booleanedit' | 'datetimeedit' | 'stringedit' | undefined;\n headerTemplate?: string;\n allowEditing?: boolean;\n formatColumn?: string | undefined;\n metric?: string;\n customKey?: string;\n textAlign?: string;\n hide?: boolean;\n template?: (d: any) => JSX.Element | string;\n columns?: TableColumn[];\n edit?: any;\n editTemplate?: (params: any) => JSX.Element;\n maxWidth?: number;\n } & ( // header text or static text\n | {\n headerText?: string;\n }\n | {\n staticText?: string;\n }\n ) & // if tooltip is false must define a tooltip column\n (\n | {\n hasTooltip?: false;\n tooltipColumn?: never;\n }\n | {\n hasTooltip: true;\n tooltipColumn: string;\n }\n ))\n | undefined;\n\n// number: VALUE\nexport interface NDict {\n [key: number]: T;\n}\n\n// string: VALUE\nexport interface SDict {\n [key: string]: T;\n}\n\nexport type Dict = NDict | SDict;\n\nexport type NDictionary = { [key: number]: T };\nexport type SDictionary = { [key: string]: T };\nexport type Dictionary = NDictionary | SDictionary;\n\nexport interface AuthUser {\n username: string;\n permissions: string;\n authUserId: string;\n accessLevelId: string;\n rotateUnitMarkers: string;\n completeName: string;\n subdivisionId: string;\n subdivisionName: string;\n divisionId: string;\n divisionName: string;\n organizationId: string;\n organizationName: string;\n agentId: string;\n agentName: string;\n operatorId: string;\n operatorName: string;\n email: string;\n homeLatitude: string;\n homeLayer: string;\n homeLongitude: string;\n homeZoom: string;\n homeScreenId: string;\n currencyId: string;\n loadUnitsOnMap: string;\n loadGeofencesOnMap: string;\n activateUnitTrackMode: string;\n unitMapLabelAlwaysOn: string;\n locationMapLabelAlwaysOn: string;\n enableLocationClustering: string;\n useBingMaps: string;\n useHereMaps: string;\n useGoogleMaps: string;\n useMapquestMaps: string;\n metricSystemId: string;\n distanceSystem: string;\n capacitySystem: string;\n temperatureSystem: string;\n distance2System: string;\n speedSystem: string;\n fuelSystem: string;\n fuel2System: string;\n volumeSystem: string;\n utcZoneId: string;\n zoneName: string;\n utcOffset: string;\n bingMapsApiKey: string;\n googleMapsApiKey: string;\n hereMapsAppCode: string;\n hereMapsAppId: string;\n mapquestConsumerKey: string;\n imagesUrl: string;\n consoleDefaultSoundId: string;\n exp: number;\n}\n\nexport type Char =\n | 'a'\n | 'b'\n | 'c'\n | 'd'\n | 'e'\n | 'f'\n | 'g'\n | 'h'\n | 'i'\n | 'j'\n | 'k'\n | 'l'\n | 'm'\n | 'n'\n | 'o'\n | 'p'\n | 'q'\n | 'r'\n | 's'\n | 't'\n | 'u'\n | 'v'\n | 'w'\n | 'x'\n | 'y'\n | 'z';\n\nexport enum OperatingSystem {\n Windows = 'Windows',\n MacOS = 'Mac OS',\n Linux = 'Linux',\n IOS = 'iOS',\n Android = 'Android',\n Unknown = 'Unknown OS'\n}\n\nexport enum Browser {\n Chrome = 'Chrome',\n Firefox = 'Firefox',\n Safari = 'Safari',\n Unknown = 'Unknown Browser'\n}\n\nexport enum DeviceType {\n Mobile = 'Mobile',\n Desktop = 'Desktop'\n}\n\nexport interface DeviceInfo {\n os: OperatingSystem;\n browser: Browser;\n deviceType: DeviceType;\n}\n\nexport interface KeyboardModifiers {\n ctrl: boolean;\n alt: boolean;\n shift: boolean;\n parsedKey: string | undefined;\n}\n\nexport const optionKeySpecialCharacters: Record = {\n å: 'a',\n '∫': 'b',\n ç: 'c',\n '∂': 'd',\n '´': 'e',\n ƒ: 'f',\n '©': 'g',\n '˙': 'h',\n ˆ: 'i',\n '∆': 'j',\n '˚': 'k',\n '¬': 'l',\n µ: 'm',\n '˜': 'n',\n ø: 'o',\n π: 'p',\n œ: 'q',\n '®': 'r',\n ß: 's',\n '†': 't',\n '¨': 'u',\n '√': 'v',\n '∑': 'w',\n '≈': 'x',\n '¥': 'y',\n '¸': 'z'\n};\n\nexport const optionShiftSpecialCombinations: Record = {\n Å: 'a',\n ı: 'b',\n Ç: 'c',\n Î: 'd',\n '´': 'e',\n Ï: 'f',\n '˝': 'g',\n Ó: 'h',\n ˆ: 'i',\n Ô: 'j',\n '': 'k',\n Ò: 'l',\n Â: 'm',\n '˜': 'n',\n Ø: 'o',\n '\"': 'p',\n Œ: 'q',\n '‰': 'r',\n Í: 's',\n ˇ: 't',\n '¨': 'u',\n '◊': 'v',\n '„': 'w',\n '˛': 'x',\n Á: 'y',\n '¸': 'z'\n};\n\nexport enum PacketType {\n FuelCalibration = 1,\n FuelCalibrationCommand = 2\n}\n\nexport enum FuelCalibrationCommand {\n SetMinValue = 1,\n SetMaxValue = 2\n}\n\nexport interface DeviceProgrammerDTO {\n PacketType: PacketType;\n DeviceIdentifier: string;\n PacketData: T;\n}\n\nexport interface FuelCalibrationValuesPacket {\n Voltage: number;\n IsStable: boolean;\n}\n\nexport interface FuelCalibrationCommandPacket {\n Command: FuelCalibrationCommand;\n Message?: string;\n}\n\nexport interface FuelCalibrationCommandResultPacket {\n Command: FuelCalibrationCommand;\n Result?: 0 | 1 | -1; // 1: Success, 0: Error, -1: Busy\n}\n","import { env } from 'env';\r\nimport exceldate from 'exceldate';\r\nimport { htmlToText } from 'html-to-text';\r\nimport _, { camelCase, isArray, isDate, isObject, transform } from 'lodash';\r\nimport { DateTime } from 'luxon';\r\nimport moment, { Moment } from 'moment';\r\nimport { IntlShape } from 'react-intl';\r\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\r\nimport {\r\n Browser,\r\n DeviceInfo,\r\n DeviceType,\r\n KeyboardModifiers,\r\n OperatingSystem,\r\n optionKeySpecialCharacters,\r\n optionShiftSpecialCombinations\r\n} from './types';\r\n\r\nexport const imageFormatsForReports = ['png', 'jpg', 'jpeg'];\r\n\r\n// Parse HTML to text to use en tooltips\r\nexport const formatHtmlToText = (htmlStr) => {\r\n return htmlStr ? htmlToText(htmlStr, { wordwrap: 130 }) : 'N/A';\r\n};\r\n\r\n// ** Checks if an object is empty (returns boolean)\r\nexport const isObjEmpty = (obj) => Object.keys(obj).length === 0;\r\n\r\n// ** Date minus TimezoneOffset\r\nexport const getDateWithoutTimezoneOffset = (date) =>\r\n date\r\n ? typeof date.getTime === 'function'\r\n ? new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, -1)\r\n : date\r\n : null;\r\n\r\n// etiqueta con formato HH : MM para indicadores\r\nexport const generateHourMinuteLabel = (seconds: number, round: boolean = false) => {\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours} Hrs : ${minutes > 9 ? minutes : '0' + minutes} Mins`;\r\n};\r\n\r\n// etiqueta con formato D : HH : MM : SS para indicadores\r\nexport const generateDayHourMinuteSecondLabel = (seconds, round = false) => {\r\n let days = 0;\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 86400) {\r\n days = Math.floor(seconds / 86400);\r\n seconds -= days * 86400;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n seconds = Math.floor(seconds);\r\n\r\n return `${days > 0 ? days + 'D ' : ''}${hours > 9 ? hours : '0' + hours} Hrs : ${\r\n minutes > 9 ? minutes : '0' + minutes\r\n } Mins : ${seconds > 9 ? seconds : '0' + seconds} S`;\r\n};\r\n\r\n// etiqueta con formato HH:MM:SS\r\nexport const generateHourMinuteSecondStr = (seconds) => {\r\n seconds = parseInt(seconds.toFixed(0));\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours}:${minutes > 9 ? minutes : '0' + minutes}:${\r\n seconds > 9 ? seconds : '0' + seconds\r\n }`;\r\n};\r\n\r\n// ** Returns K format from a number\r\nexport const kFormatter = (num) => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num);\r\n\r\n// ** Converts HTML to string\r\nexport const htmlToString = (html) => html.replace(/<\\/?[^>]+(>|$)/g, '');\r\n\r\n// función que retorna DateTime.now() con offset de usuario\r\nexport const todayWithUtcOffset = (utcOffset?: number) =>\r\n utcOffset ? DateTime.utc().plus({ minutes: +utcOffset }) : DateTime.now();\r\n\r\n// función que retorna la cantidad de horas transcurridas en un rango de fechas\r\n// si el rango incluye el día de hoy entonces las horas transcurridas son hasta DateTime.now()\r\n// -- si endDate es > a DateTime.now() siempre se usará DateTime.now() como fecha fin\r\n\r\nexport const elapsedHoursInDateRange = (\r\n startDate: string | Date | DateTime,\r\n endDate: string | Date | DateTime,\r\n utcOffset?: number\r\n) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dtStart: DateTime =\r\n typeof startDate === 'string'\r\n ? DateTime.fromISO(startDate)\r\n : startDate instanceof DateTime\r\n ? startDate\r\n : DateTime.fromJSDate(startDate);\r\n\r\n const dtEnd: DateTime =\r\n typeof endDate === 'string'\r\n ? DateTime.fromISO(endDate)\r\n : endDate instanceof DateTime\r\n ? endDate\r\n : DateTime.fromJSDate(endDate);\r\n\r\n return dtStart.diff(DateTime.min(today, dtEnd), 'hours').toObject().hours;\r\n};\r\n\r\n// función que retorna la cantidad de horas transcurridas en un día\r\n// si ese día es hoy entonces las horas transcurridas son hasta DateTime.now()\r\nexport const elapsedHoursInDate = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return isToday(dt, utcOffset) ? today.diff(dt, 'hours').toObject().hours : 24.0;\r\n};\r\n\r\n// ** Checks if the passed date is today\r\nexport const isToday = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n dt.get('day') === today.get('day') &&\r\n dt.get('month') === today.get('month') &&\r\n dt.get('year') === today.get('year')\r\n /* eslint-enable */\r\n );\r\n};\r\n\r\n/**\r\n ** Format and return date in Humanize format\r\n ** Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n ** Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (\r\n value,\r\n formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' }\r\n) => {\r\n if (!value) return value;\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n// ** Returns short month of passed date\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value);\r\n let formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric' };\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' };\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n/**\r\n ** Return if user is logged in\r\n ** This is completely up to you and how you want to store the token in your frontend application\r\n * ? e.g. If you are using cookies to store the application please update this function\r\n */\r\nexport const isUserLoggedIn = () => {\r\n let token = localStorage.getItem('auth');\r\n let userData = getUserData();\r\n return token && userData && userData.exp > Date.now() / 1000;\r\n};\r\nexport const getUserData = () => JSON.parse(localStorage?.getItem('userData') || '{}');\r\n/**\r\n ** This function is used for demo purpose route navigation\r\n ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n ** Please note role field is just for showing purpose it's not used by anything in frontend\r\n ** We are checking role just for ease\r\n * ? NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = (userRole) => {\r\n if (userRole === 'admin') return '/';\r\n if (userRole === 'client') return '/access-control';\r\n return '/login';\r\n};\r\n\r\n// ** React Select Theme Colors\r\nexport const selectThemeColors = (theme) => ({\r\n ...theme,\r\n colors: {\r\n ...theme.colors,\r\n primary25: '#7367f01a', // for option hover bg-color\r\n primary: '#7367f0', // for selected option bg-color\r\n neutral10: '#7367f0', // for tags bg-color\r\n neutral20: '#ededed', // for input border-color\r\n neutral30: '#ededed' // for input hover border-color\r\n }\r\n});\r\n\r\n// Checks if given strings is a valid email\r\n// return bool\r\nexport const isValidEmail = (email) => {\r\n const emailRe =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return emailRe.test(String(email).toLowerCase());\r\n};\r\n\r\n// Checks if given strings is a valid email\r\n// returns bool\r\nexport const isNumber = (stringToCheck) => {\r\n const numberRe = /^\\d+$/;\r\n return numberRe.test(stringToCheck);\r\n};\r\n\r\nexport function numberWithCommas(x) {\r\n if (!x) return '0';\r\n //Trunco el número a 2 decimales\r\n x = trunc(x, 2);\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nexport function formatAmount(n: number | string) {\r\n if (!isValidNumber(n).test) return Number('0').toFixed(2);\r\n\r\n return Number(n)\r\n .toFixed(2)\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nfunction trunc(x, posiciones = 0) {\r\n if (!x.toString().includes('.')) {\r\n return x.toString();\r\n }\r\n var decimalLength = x.toString().indexOf('.') + 1;\r\n var numStr = x.toString().substr(0, decimalLength + posiciones);\r\n return numStr;\r\n}\r\n\r\nexport const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\r\n\r\nexport const convertTime = (time) => ({\r\n ...time,\r\n startTime: DateTime.local(\r\n 2000,\r\n 1,\r\n 2,\r\n ...time.startTime.split(':').map((time) => +time)\r\n ).toString(),\r\n endTime: DateTime.local(2000, 1, 2, ...time.endTime.split(':').map((time) => +time)).toString()\r\n});\r\n\r\nexport const isIterable = (obj) => obj != null && typeof obj[Symbol.iterator] === 'function';\r\n\r\nexport const imagesLink = 'https://pictures.webtrack.online/partner/desarrollo/FormsFiles/';\r\n\r\n/**\r\n * Get days between date and today\r\n * @param date\r\n * @returns Days between date and today\r\n */\r\nexport const getDaysBetweenDateAndToday = (date) => {\r\n const intl: IntlShape = appIntl();\r\n const startDate = new Date(date);\r\n const endDate = new Date();\r\n var seconds = Math.abs(endDate?.getTime() - startDate?.getTime()) / 1000;\r\n\r\n if (seconds <= 60) {\r\n return intl.formatMessage({ id: 'units.aFewSecondsAgo' });\r\n }\r\n\r\n var startYear = startDate?.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate?.getFullYear() - startYear;\r\n var monthDiff = endDate?.getMonth() - startDate?.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate?.getDate() - startDate?.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate?.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n var hourDiff = 0;\r\n var minuteDiff = 0;\r\n\r\n if (seconds >= 60 && seconds < 3600) {\r\n minuteDiff = Math.round(seconds / 60);\r\n } else if (seconds >= 3600 && seconds < 86400) {\r\n hourDiff = Math.round(seconds / 3600);\r\n dayDiff = 0;\r\n }\r\n\r\n return yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.yearsAgo' }, { value: yearDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aYearAgo' })}`\r\n : monthDiff > 0\r\n ? monthDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.monthsAgo' }, { value: monthDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMonthAgo' })}`\r\n : weekDiff > 0\r\n ? weekDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.weeksAgo' }, { value: weekDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aWeekAgo' })}`\r\n : dayDiff > 0\r\n ? dayDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.daysAgo' }, { value: dayDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aDayAgo' })}`\r\n : hourDiff > 0\r\n ? hourDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.hoursAgo' }, { value: hourDiff })}`\r\n : `${intl.formatMessage({ id: 'units.anHourAgo' })}`\r\n : minuteDiff > 0\r\n ? minuteDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.minutesAgo' }, { value: minuteDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMinuteAgo' })}`\r\n : '';\r\n};\r\n\r\n//Genera el listado de fechas en un rango de fechas establecido en el DateInput\r\nexport const getDateColumnsInDateRange = (intl, dateRange: string[], stacked: boolean = false) => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let dateArray: any = [];\r\n\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n return dateArray.map((date) => {\r\n const dateTitle =\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate();\r\n\r\n return {\r\n fieldName: stacked ? undefined : dateTitle,\r\n customKey: stacked ? dateTitle : undefined,\r\n staticText:\r\n date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : ''\r\n };\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nexport const getWeekColumns = (intl, data: Array, stacked: boolean = false) => {\r\n const weeks = [];\r\n\r\n if (data) {\r\n data.forEach((item: any) => {\r\n if (item.weekNumber && !weeks.includes(item.weekNumber)) {\r\n weeks.push(item.weekNumber);\r\n }\r\n });\r\n\r\n const columns = weeks.map((week) => {\r\n const startWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).startWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const endWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).endWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const weekColumns = [\r\n {\r\n fieldName: `performance-week${week}`,\r\n headerText: 'jobs.reports.performance',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `travel-week${week}`,\r\n headerText: 'jobs.reports.travel',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `consumption-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `total-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n }\r\n ];\r\n\r\n return {\r\n customKey: `week${week}`,\r\n staticText: `${\r\n intl.formatMessage({ id: 'common.week' }) + ` ${week}`\r\n } | ${startWeekDate} -> ${endWeekDate}`,\r\n customAttributes: { class: 'side-borders-columns-header' },\r\n columns: weekColumns\r\n };\r\n });\r\n\r\n return columns;\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst userTimezoneOffset = new Date().getTimezoneOffset() * 60000;\r\nexport const convertExcelDateToSystemDate = (excelDate) => {\r\n if (typeof excelDate === 'string') {\r\n return excelDate;\r\n } else {\r\n let systemDate = moment(\r\n new Date(Math.round((excelDate - 25569) * 86400 * 1000) + userTimezoneOffset)\r\n ).format('YYYY-MM-DD HH:mm');\r\n return systemDate;\r\n }\r\n};\r\n\r\nexport interface ValidatorsReturn {\r\n test: boolean;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * Is Alpha Numeric Or Empty\r\n * @name isAlphaNumericOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumericOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n // Additional verification for empty values (spaces)\r\n if (typeof value === 'string') {\r\n const valueToValidate = String(value).trim();\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return isAlphaNumeric(value);\r\n};\r\n\r\n/**\r\n * Is Alpha Numeric\r\n * @name isAlphaNumeric\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumeric = (value: unknown): ValidatorsReturn => {\r\n const alpha = /^.+$/;\r\n switch (typeof value) {\r\n case 'string': {\r\n const valueToValidate = String(value).trim();\r\n const test = isNotNullOrUndefined(value) ? alpha.test(valueToValidate) : false;\r\n\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'number': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'boolean': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'object': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'undefined': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'function': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'symbol': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'bigint': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n default: {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Is Valid Number Or Empty\r\n * @name isValidNumberOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumberOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n return isValidNumber(value);\r\n};\r\n\r\n/**\r\n * Is Valid Number\r\n * @name isValidNumber\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumber = (value: unknown): ValidatorsReturn => {\r\n let numeric = /^\\d*\\.?\\d*$/;\r\n let test = numeric.test(String(value));\r\n\r\n // Test if value is a number\r\n if (test) {\r\n return { test: test, errorMessage: undefined };\r\n } else {\r\n return { test: test, errorMessage: appIntl().formatMessage({ id: 'validators.number' }) };\r\n }\r\n};\r\n\r\n/**\r\n * Validate last 4 digits of a card\r\n * @name validLast4Digits\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const validLast4Digits = (value: unknown): ValidatorsReturn => {\r\n try {\r\n // Check if the value is a number\r\n const isNumber = isValidNumber(value);\r\n // Check if the number is a 4 digits number\r\n const is4Digits = String(value).length === 4;\r\n // Check if the number is a 4 digits number and a number\r\n const is4DigitsNumber = isNumber && is4Digits;\r\n // Return the validation\r\n return {\r\n test: is4DigitsNumber,\r\n errorMessage: is4DigitsNumber\r\n ? undefined\r\n : appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n } catch (e) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * Validate provided date\r\n * @name isValidDate\r\n * @description Test if value is valid\r\n * @param date {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * isValidDate('2020-01-01') // true\r\n * isValidDate('2020-01-01 00:00:00') // true\r\n * isValidDate('2020-01-01 00:00:00.000') // true\r\n * isValidDate('2020-01-01 00:00:00.000Z') // true\r\n * isValidDate('2020-01-01 00:00:00.000+00:00') // true\r\n */\r\nexport const isValidDate = (date): ValidatorsReturn => {\r\n if (isNullOrUndefined(date) || date === '' || /^\\s+$/.test(String(date))) {\r\n return { test: false, errorMessage: appIntl().formatMessage({ id: 'validators.date' }) };\r\n }\r\n\r\n const isValid = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: isValid,\r\n errorMessage: isValid ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\nexport const isValidExcelDate = (excelDate) => {\r\n const date = convertExcelDateToSystemDate(excelDate);\r\n const test = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\n\r\nexport const validateColumns = (dataInfo, columnDefinitions) => {\r\n const rules = columnDefinitions.map((cd) => cd.rules);\r\n const newData = dataInfo.map((row, rowIndex) => {\r\n let invalidColumns = new Array();\r\n const rowValues = Object.values(row);\r\n //validar que las columnas esten completas\r\n\r\n rowValues.forEach((colValue, colIndex) => {\r\n const required = rules[colIndex] ? rules[colIndex]?.required : false;\r\n const validation = rules[colIndex]\r\n ? rules[colIndex].validator(colValue)\r\n : { test: true, errorMessage: '' };\r\n\r\n if (colValue === '') {\r\n if (required) {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: `Es requerido`\r\n });\r\n }\r\n } else {\r\n if (validation.test) {\r\n return;\r\n } else {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: validation.errorMessage\r\n });\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...row,\r\n originalRowId: rowIndex + 1,\r\n invalidColumns: invalidColumns,\r\n rowIsValid: invalidColumns.length > 0 ? false : true\r\n };\r\n });\r\n\r\n return newData;\r\n};\r\n\r\n/**\r\n * Validate provided required value\r\n * @name validateRequiredValue\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * validateRequiredValue('') // false\r\n * validateRequiredValue(null) // false\r\n * validateRequiredValue('undefined') // false\r\n * validateRequiredValue('null') // false\r\n * validateRequiredValue('NaN') // false\r\n * validateRequiredValue(undefined) // false\r\n * validateRequiredValue(0) // true\r\n * validateRequiredValue(1) // true\r\n * validateRequiredValue('0') // true\r\n */\r\nconst validateRequiredValue = (value: unknown): ValidatorsReturn => {\r\n const test = value !== null && value !== undefined;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n }\r\n};\r\n\r\nconst validateUniqueValue = (value: unknown, data: any, columnName: any): ValidatorsReturn => {\r\n const valueCount = data.filter((item) => String(item[columnName]) === String(value)).length;\r\n const test = valueCount === 1;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.repeatedValue' })\r\n };\r\n }\r\n};\r\n\r\nexport const isValidDayOfTheWeek = (value: unknown): ValidatorsReturn => {\r\n const intl: IntlShape = appIntl();\r\n if (typeof value === 'number') {\r\n return {\r\n test: value >= 1 && value <= 7,\r\n errorMessage: intl.formatMessage({ id: 'validators.dayOfTheWeek' })\r\n };\r\n }\r\n\r\n if (typeof value === 'string') {\r\n const formattedDayOfTheWeek = intl.formatDate(new Date(value), { weekday: 'long' });\r\n\r\n const dayOfTheWeekMoment = moment(formattedDayOfTheWeek, 'dddd', intl.locale);\r\n\r\n if (dayOfTheWeekMoment.isValid()) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: intl.formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\n/**\r\n * Is valid boolean\r\n * @param value - Value to test\r\n * @description Test if value is valid\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const isValidBoolean = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'boolean') {\r\n // value is a boolean, which is a valid type for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n } else if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === 'true' || toValidate === 'false') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidBit = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === '1' || toValidate === '0') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidLatitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -90 && value <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -90 && parsedValue <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.bit' })\r\n };\r\n};\r\n\r\nexport const isValidLongitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -180 && value <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -180 && parsedValue <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const validators = {\r\n isAlphaNumericOrEmpty,\r\n isAlphaNumeric,\r\n isValidNumberOrEmpty,\r\n isValidNumber,\r\n isValidEmail,\r\n validLast4Digits,\r\n isValidDate,\r\n isValidExcelDate,\r\n validateRequiredValue,\r\n validateUniqueValue,\r\n isValidDayOfTheWeek,\r\n isValidBoolean,\r\n isValidLatitude,\r\n isValidLongitude,\r\n isValidBit\r\n};\r\n\r\nexport const normalizeString = (value: string): string => {\r\n return value\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .trim();\r\n};\r\n\r\n/**\r\n * Normalize input texts\r\n * @param data string from an input\r\n * @returns normalized strings allowing spaces after words\r\n */\r\nexport const normalizeInputText = (data: string): string => {\r\n // Allow clear input\r\n if (typeof data === 'string' && data.trim().length === 0) {\r\n return '';\r\n }\r\n\r\n // Allow only letters and spaces\r\n const validInputRegex = /^(\\w+\\s?)+$/;\r\n if (validInputRegex.test(data)) {\r\n return data;\r\n }\r\n\r\n // Allow only letters, numbers and spaces after words (not before)\r\n return normalizeString(data);\r\n};\r\n\r\nexport const parseToString = (data: unknown): string | undefined => {\r\n switch (typeof data) {\r\n case 'string':\r\n if (data.trim().length === 0 || data.trim() === '') {\r\n return undefined;\r\n }\r\n return data;\r\n case 'number':\r\n return normalizeString(data.toString());\r\n case 'boolean':\r\n return normalizeString(data.toString());\r\n case 'object':\r\n if (isNullOrUndefined(data)) {\r\n return undefined;\r\n }\r\n if (isDate(data)) {\r\n return normalizeString(data.toString());\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * get any date and set todays day, month and year\r\n */\r\n\r\nexport const setTodaysDate = (date: Date): Date => {\r\n const today = new Date();\r\n const newDate = new Date(\r\n today.getFullYear(),\r\n today.getMonth(),\r\n today.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds()\r\n );\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Excel date to JS Date\r\n * @param serial Date saved as number from excel\r\n * @returns {Date} parsed number\r\n */\r\nexport const excelDateToJSDate = (serial: number): Date => {\r\n const utcDays = Math.floor(serial - 25569);\r\n const utcValue = utcDays * 86400;\r\n const dateInfo = new Date(utcValue * 1000);\r\n\r\n const fractionalDay = serial - Math.floor(serial) + 0.0000001;\r\n\r\n let totalSeconds = Math.floor(86400 * fractionalDay);\r\n\r\n const seconds = totalSeconds % 60;\r\n\r\n totalSeconds -= seconds;\r\n\r\n const hours = Math.floor(totalSeconds / (60 * 60));\r\n const minutes = Math.floor(totalSeconds / 60) % 60;\r\n\r\n return new Date(\r\n dateInfo.getFullYear(),\r\n dateInfo.getMonth(),\r\n dateInfo.getDate(),\r\n hours,\r\n minutes,\r\n seconds\r\n );\r\n};\r\n\r\n/**\r\n * function that receives an excel date and returns a date object\r\n * @param date {number} excel date\r\n * @returns {Date | undefined}\r\n * @example\r\n * parseToDate(0.20833333333333334) // 2023-03-31T00:17:57.000Z\r\n */\r\nconst parseToDate = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return excelDateToJSDate(excelDate);\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToDateTime = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return DateTime.fromISO(exceldate(excelDate).toISOString(), { zone: 'utc' })\r\n .setZone('system', { keepLocalTime: true })\r\n .toJSDate();\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToNumber = (data: unknown): number | undefined => {\r\n if (typeof data === 'number') {\r\n return data ?? 0;\r\n }\r\n\r\n if (typeof data === 'string') {\r\n const value = Number(data);\r\n\r\n return isNaNOrNullable(value) ? 0 : value;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @name dateFormatter\r\n * @description date formatter function with moment js library\r\n * @param dateFormat default 'DD/MM/AAAA HH:mm:ss'\r\n * @returns date formatter function\r\n */\r\nexport const dateFormatter = (dateFormat: string = 'DD/MM/YYYY HH:mm:ss') => {\r\n return (d: Date) => {\r\n const m = moment(d);\r\n if (!m.isValid()) {\r\n console.warn(d, 'is not a valid date');\r\n return '';\r\n }\r\n return m.format(dateFormat);\r\n };\r\n};\r\n\r\nexport const parseToBoolean = (data: unknown): boolean | undefined => {\r\n switch (typeof data) {\r\n case 'boolean':\r\n return data;\r\n case 'string':\r\n switch (data.toLowerCase().trim()) {\r\n case 'true':\r\n return true;\r\n case 'false':\r\n return false;\r\n case '1':\r\n return true;\r\n case '0':\r\n return false;\r\n }\r\n break;\r\n case 'number':\r\n return data === 1;\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const parseToBit = (data: unknown): 0 | 1 | undefined => {\r\n const result = parseToBoolean(data);\r\n if (result === undefined) {\r\n return result;\r\n }\r\n\r\n return result ? 1 : 0;\r\n};\r\n\r\nexport const parsers = {\r\n parseToString,\r\n parseToDate,\r\n parseToNumber,\r\n parseToBoolean,\r\n parseToBit,\r\n parseToDateTime\r\n};\r\n\r\nexport const timeToSeconds = (time: Date): number => {\r\n return time.getHours() * 3600 + time.getMinutes() * 60 + time.getSeconds();\r\n};\r\n\r\nexport const timeToMinutes = (time: Date): number => {\r\n return time.getHours() * 60 + time.getMinutes();\r\n};\r\n\r\nexport const getValueFromTryCatch = (handleTry: Function, handleCatch: Function) => {\r\n let value: any;\r\n try {\r\n value = handleTry();\r\n } catch (err) {\r\n console.error(err);\r\n value = handleCatch(err);\r\n }\r\n return value;\r\n};\r\n\r\nexport const compareObjectValues = (obj1: object, obj2: object): boolean =>\r\n JSON.stringify(obj1) === JSON.stringify(obj2);\r\n\r\nexport const getSecondsFromDateHours = (date: Date) => {\r\n return typeof date?.getHours === 'function' ? date?.getHours() * 60 * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDateMinutes = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDate = (date: Date) => {\r\n return typeof date?.getSeconds === 'function' ? date?.getSeconds() ?? 0 : 0;\r\n};\r\n\r\nexport const getMinutesFromDate = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() ?? 0 : 0;\r\n};\r\n\r\nexport const getTotalSecondsFromDate = (date: Date) => {\r\n const hoursInSeconds = getSecondsFromDateHours(date);\r\n const minutesInSeconds = getSecondsFromDateMinutes(date);\r\n const seconds = getSecondsFromDate(date);\r\n\r\n const totalSeconds = hoursInSeconds + minutesInSeconds + seconds;\r\n return totalSeconds;\r\n};\r\n\r\nexport interface keysAndParsers {\r\n key: string;\r\n parse: Function;\r\n}\r\n\r\n/**\r\n * Map formatted string to array\r\n * @param data string formatted like \"1~39~n...^1~28~n...\"\r\n * @param keys array of key to map data to object\r\n * [{key: 'name', parse: () => {}},\r\n * {key: 'lastname', parse: () => {}},\r\n * ...]\r\n * @returns Array\r\n */\r\nexport const mapFormattedStringToArray = (\r\n data: string,\r\n keysAndValidator: Array\r\n): Array => {\r\n // First split to get every object as string\r\n const newArray: Array = data.split('^').map((objectAsString: string) => {\r\n // Second split to get object as array\r\n const objectAsArray: Array = objectAsString.split('~');\r\n\r\n // mapped object with provided keys\r\n const newObject = keysAndValidator.reduce(\r\n (object: any, { key, parse }: keysAndParsers, index: number): any => {\r\n const newOjectAcum = { ...object };\r\n // validates index is contained into array\r\n // in order to avoid access to undefined values\r\n if (objectAsArray.length > index) {\r\n try {\r\n // new attribute = Value from array located in index\r\n newOjectAcum[key] = parse(objectAsArray[index]);\r\n } catch (error) {\r\n newOjectAcum[key] = undefined;\r\n }\r\n }\r\n return newOjectAcum;\r\n },\r\n {}\r\n );\r\n\r\n return newObject;\r\n });\r\n return newArray ?? [];\r\n};\r\n\r\n/**\r\n * Create a Date with provided minutes and hours\r\n * @param hours Number of hours\r\n * @param minutes Number of minutes\r\n * @returns new date with provided minutes and hours\r\n */\r\nexport const createDateWithHoursAndMinutes = (hours: number, minutes: number): Date => {\r\n const newDate: Date = new Date();\r\n newDate.setHours(hours);\r\n newDate.setMinutes(minutes);\r\n newDate.setSeconds(0);\r\n newDate.setMilliseconds(0);\r\n return newDate;\r\n};\r\n\r\nexport const secondsToMilliseconds = (seconds: number): number => seconds * 1000;\r\n\r\n//Genera la etiqueta de fecha en el formato YYYY-MM-DD\r\nexport const generateDateLabelByDate = (date) => {\r\n return (\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate()\r\n );\r\n};\r\n\r\n//Calcula la diferencia de horas que existe en un rango de fechas ingresado en el DateInput\r\nexport const getDaysHoursInDateRange = (dateRange: Array): number => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let difference = endDate.getTime() - startDate.getTime();\r\n return Math.ceil(difference / (1000 * 3600 * 24)) * 24 * 3600;\r\n } else {\r\n return 0;\r\n }\r\n};\r\n\r\n/**\r\n * Generate date array\r\n * @param dateRange Date range provided by date range input\r\n * @returns Array in range of the date\r\n */\r\nexport const generateDateArray = (dateRange: Array): Array => {\r\n const dateArray: Array = [];\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n }\r\n return dateArray;\r\n};\r\n\r\n/**\r\n * Get date as string\r\n * @param date Date to get as string\r\n * @description Returns date as string in format YYYY-MM-DD\r\n * @returns Date as string\r\n */\r\nexport const getDateAsString = (date: Date): string => {\r\n return date.toISOString().substring(0, 10);\r\n};\r\n\r\n/**\r\n * Generate day label by date\r\n * @param date Date to generate label\r\n * @returns Label generated\r\n */\r\nexport const generateDayLabelByDate = (date: Date): string => {\r\n const intl = appIntl();\r\n return date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : '';\r\n};\r\n\r\n/**\r\n * Get date string from date item date range\r\n * @param date Date to generate string\r\n * @returns String of the date\r\n */\r\nexport const getDateStringFromDateItemDateRange = (date: any): string => {\r\n return date.toISOString().substr(0, 10);\r\n};\r\n\r\n/**\r\n * Safe Access to nullable prop\r\n * @param obj Object to validate\r\n * @param key Key to validate in the object\r\n * @param defaultValue Default value provided\r\n * @returns Value in the object of default\r\n */\r\nexport const safeAccessToNullProp = (obj: any, key: string, defaultValue: any = undefined): any => {\r\n let value = undefined;\r\n try {\r\n // Access to value in object, catch if error\r\n value = obj[key];\r\n // if value is undefined throw controlled error\r\n if (isNullOrUndefined(value)) throw new Error('Undefined value');\r\n } catch (error) {\r\n // Catch any error and assign default value as value\r\n value = defaultValue;\r\n }\r\n // Return value or default value\r\n return value;\r\n};\r\n\r\n/**\r\n * Is in object\r\n * validates if a prop is in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isInObject = (obj: any, key: string): boolean => {\r\n let isInObject: boolean;\r\n try {\r\n isInObject = obj[key] !== undefined && obj[key] !== null;\r\n } catch (error) {\r\n isInObject = false;\r\n }\r\n return isInObject;\r\n};\r\n\r\n/**\r\n * Is not in object\r\n * validates if a prop is not in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isNotInObject = (obj: any, key: string): boolean => !isInObject(obj, key);\r\n\r\n/**\r\n * Is null or undefined\r\n * @param value Get any value to validate\r\n * @returns true if is null or undefined, else false\r\n */\r\nexport const isNullOrUndefined = (value: any): boolean => value === null || value === undefined;\r\n\r\n/**\r\n * Is not null or undefined\r\n * @param value Get any value to validate\r\n * @returns false if is null or undefined, else true\r\n */\r\nexport const isNotNullOrUndefined = (value: any) => !isNullOrUndefined(value);\r\n\r\nexport const isNaNOrNullable = (n: number | null | undefined) => {\r\n return n === null || n === undefined || isNaN(n);\r\n};\r\n\r\nexport const isNotNaNOrNullable = (n: number | null | undefined) => !isNaNOrNullable(n);\r\n\r\n/**\r\n * Check if every element is not null or undefined\r\n * return true if there are not null or undefined values\r\n */\r\nexport const areNotNullOrUndefined = (...arr: any[]) => {\r\n return !arr.some((item) => isNullOrUndefined(item));\r\n};\r\n\r\n/**\r\n * Round time for data report\r\n * @param time: number\r\n * @returns: number\r\n */\r\nexport const parseSecondsToHours = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n\r\n return Math.round((time / 3600) * 100) / 100;\r\n};\r\n\r\nexport const parseHoursToSeconds = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return time * 3600;\r\n};\r\n\r\n/**\r\n * Round time for report witht epsilon\r\n * @param time : number time in seconds\r\n * @returns time: number rounded\r\n */\r\nexport const parseSecondsToHoursWithEpsilon = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return Math.round((time / 3600 + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const getTimeInSeconds = (date: Date) => date.getTime() / 1000;\r\n\r\nexport const getTimeInMinutes = (date: Date) => getTimeInSeconds(date) / 60;\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T next element or undefined\r\n */\r\nexport function getNextElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx + 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T previous element or undefined\r\n */\r\nexport function getPreviousElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx - 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Return hour with left zero\r\n * @param n number\r\n * @returns if 9 ? 09 if 10 ? 10\r\n */\r\nexport const addLeftZeroToHours = (n: number): string => {\r\n return (n < 10 && n > -1 ? '0' : '') + n;\r\n};\r\n\r\n/**\r\n * Get difference between dates\r\n * @param a Date end\r\n * @param b Date start\r\n * @returns Time difference as string HH:mm:ss\r\n */\r\nexport const getDifferenceBetweenDatesHHMMSS = (a: Date, b: Date): string => {\r\n // difference in ms\r\n const duration = a.getTime() - b.getTime();\r\n\r\n // minutes and seconds from utc moment date\r\n const minutesSeconds = moment.utc(duration).format('mm:ss');\r\n\r\n // Math floor in order to avoid floats and get only hours\r\n const hours = Math.floor(moment.duration(duration).asHours());\r\n\r\n return `${addLeftZeroToHours(hours)}:${minutesSeconds}`;\r\n};\r\n\r\n/**\r\n * Function that returns number of values\r\n * validates most of the cases of types\r\n * @param obj Object to get number of values\r\n * @returns Return number of values of 0 as default\r\n */\r\nexport const getNumberOfValues = (obj: unknown) => {\r\n // Validate array\r\n if (Array.isArray(obj)) return obj.length;\r\n\r\n // validate null or undefined\r\n if (isNullOrUndefined(obj)) return 0;\r\n\r\n // case object\r\n if (typeof obj == 'object') return Object.values(obj ?? {}).length;\r\n\r\n return 0;\r\n};\r\n\r\nexport const hasTheSameStructure = (objs: Array): boolean => {\r\n if (isNullOrUndefined(objs)) return false;\r\n if (objs.length <= 0) return false;\r\n const keys: Array = Object.keys(objs[0]);\r\n return objs.every((current) => _.isEqual(Object.keys(current), keys));\r\n};\r\n\r\n/**\r\n * Get Days between date and today\r\n * @param date : string | date\r\n * @returns : string indicating difference between date and today\r\n */\r\nexport const getDaysBetweenDateAndTodayRef = (date: Date | string): string => {\r\n const intl = appIntl();\r\n const startDate = new Date(new Date().toISOString().substr(0, 10));\r\n const endDate: Date = date instanceof Date ? date : new Date(date);\r\n var startYear = startDate.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate.getFullYear() - startYear;\r\n var monthDiff = endDate.getMonth() - startDate.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate.getDate() - startDate.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n return (\r\n (yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${yearDiff} ${intl.formatMessage({ id: 'common.years' })}`\r\n : `${yearDiff} ${intl.formatMessage({ id: 'common.year' })}`\r\n : '') +\r\n (monthDiff > 0\r\n ? monthDiff > 1\r\n ? ` ${monthDiff} ${intl.formatMessage({ id: 'common.months' })}`\r\n : ` ${monthDiff} ${intl.formatMessage({ id: 'common.month' })}`\r\n : '') +\r\n (weekDiff > 0\r\n ? weekDiff > 1\r\n ? ` ${weekDiff} ${intl.formatMessage({ id: 'common.weeks' })}`\r\n : ` ${weekDiff} ${intl.formatMessage({ id: 'common.week' })}`\r\n : '') +\r\n (dayDiff > 0\r\n ? dayDiff > 1\r\n ? ` ${dayDiff} ${intl.formatMessage({ id: 'common.days2' })}`\r\n : ` ${dayDiff} ${intl.formatMessage({ id: 'common.day' })}`\r\n : '')\r\n );\r\n};\r\n\r\nexport const isHex = (hex: string) => /^#([A-Fa-f0-9]{3}){1,2}$/.test(hex);\r\n\r\nexport const hexToRgbA = (hex: string) => {\r\n if (!isHex(hex)) return 'rgba(0 ,0 ,0 ,0)';\r\n\r\n let c;\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',1)';\r\n};\r\n\r\nexport const getZeroIfNaNOrNullable = (n?: number | undefined): number =>\r\n isNaNOrNullable(n) ? 0 : n ?? 0;\r\n\r\n/**\r\n * Has Database date format\r\n * @param date date as string\r\n * @returns bolean true if has format\r\n */\r\nexport const hasDBDateFormat = (date: string | undefined): boolean => {\r\n if (isNullOrUndefined(date)) return false;\r\n const regex = /[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}T[0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}/;\r\n if (typeof date === 'string') return regex.test(date);\r\n return false;\r\n};\r\n\r\n/**\r\n * Get Date String formatted\r\n * @param date : undefined | null | string | Date | Moment date\r\n * @returns : date YYYY-MM-DD HH:mm or empty string\r\n */\r\nexport const getDateStrFormatted = (date: unknown): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n\r\n // Format for date\r\n const dateFormat = 'YYYY-MM-DD HH:mm';\r\n if (typeof date === 'string' && hasDBDateFormat(date)) return moment(date).format(dateFormat);\r\n if (typeof date === 'string' && date.length > 0) return date;\r\n if (date instanceof Date) return moment(date).format(dateFormat);\r\n if (moment.isMoment(date)) return date.format(dateFormat);\r\n\r\n return '';\r\n};\r\n\r\nexport const getDateAsKey = (date: Date | Moment | undefined | null | string): string => {\r\n const format = 'YYYY-MM-DD';\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(date).format(format);\r\n if (date instanceof Date) return moment(date).format(format);\r\n if (moment.isMoment(date)) return date.format(format);\r\n return '';\r\n};\r\n\r\nexport const getIsMobile = (navigator) => /iPhone|iPad|iPod|Android/i?.test(navigator?.userAgent);\r\n\r\nexport const getShortDate = (date: string | Date | Moment | undefined | null): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(new Date(date)).format('MMM DD');\r\n if (date instanceof Date) return moment(date).format('MMM DD');\r\n if (moment.isMoment(date)) return date.format('MMM DD');\r\n return '';\r\n};\r\n\r\n/**\r\n * Recursively transforms object to camel case format\r\n * @param obj Object to transform\r\n * @returns Camel case keys of the object\r\n */\r\nexport const camelize = (obj: any) =>\r\n transform(obj, (acc: any, value, key: string, target) => {\r\n const camelKey = isArray(target) ? key : camelCase(key);\r\n\r\n acc[camelKey] = isObject(value) ? camelize(value) : value;\r\n });\r\n\r\nexport function truncateStr(text: string, limit: number) {\r\n if (text.length > limit) {\r\n for (let i = limit; i > 0; i--) {\r\n if (\r\n text.charAt(i) === ' ' &&\r\n (text.charAt(i - 1) != ',' || text.charAt(i - 1) != '.' || text.charAt(i - 1) != ';')\r\n ) {\r\n return text.substring(0, i) + '...';\r\n }\r\n }\r\n return text.substring(0, limit) + '...';\r\n } else {\r\n return text;\r\n }\r\n}\r\n\r\n/**\r\n * Format number 1234.2334 => 1,234.2334\r\n * @param n number\r\n * @param useSelectedLocale boolean in order to use app intl locale or default\r\n * @returns formatted number\r\n */\r\nexport const formatNumber = (n: number | string, useSelectedLocale: boolean = false): string => {\r\n let numberToValidate = Number(n);\r\n\r\n if (isNaNOrNullable(numberToValidate)) return '0';\r\n // validateNumber\r\n if (typeof n === 'string') {\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n const isNumber = regexIsNumber.test(n);\r\n if (!isNumber) return '0';\r\n }\r\n\r\n const localeToUse = useSelectedLocale ? appIntl().locale : 'en-US';\r\n const newNumberFormatted = numberToValidate.toLocaleString(localeToUse);\r\n return newNumberFormatted;\r\n};\r\n\r\nexport const testIsNumber = (n: unknown) => {\r\n // create regex that test if the string is number\r\n // can be negative and have decimals\r\n // const regexIsNumber = /^-?\\d+\\.?\\d*$/;\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n\r\n switch (typeof n) {\r\n case 'number':\r\n return true;\r\n case 'string':\r\n return regexIsNumber.test(n);\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const getUseCRM = () => !!parseInt(env.REACT_APP_PRODUCT_CRM ?? '0');\r\n\r\nexport const getUseConsole = () => !!parseInt(env.REACT_APP_PRODUCT_CONSOLE ?? '0');\r\n\r\nexport const getUseLoginext = () => (env.REACT_APP_USE_LOGINEXT === 'true' ? true : false);\r\n\r\nexport const getIsWebtrackUser = (user): boolean => {\r\n const { userName, email } = user;\r\n const webtrackEmail = '@webtrackgps.net';\r\n return (\r\n (typeof userName === 'string' && userName.includes(webtrackEmail)) ||\r\n (typeof email === 'string' && email.includes(webtrackEmail))\r\n );\r\n};\r\n\r\n// function that get time as string with this format '09-00' and return the hour as number 9\r\nexport function getHourFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const hour = time.split('-')[0];\r\n return parseInt(hour);\r\n}\r\n\r\n// function that get time as string with this format '09-00' and return the minutes as number 0\r\nexport function getMinutesFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const minutes = time.split('-')[1];\r\n return parseInt(minutes);\r\n}\r\nexport const isEmptyData = (data: unknown) => {\r\n switch (typeof data) {\r\n case 'string':\r\n return data.trim().length === 0;\r\n case 'number':\r\n return isNaNOrNullable(data);\r\n case 'boolean':\r\n return false;\r\n case 'undefined':\r\n return true;\r\n case 'symbol':\r\n return isNotNullOrUndefined(data);\r\n case 'function':\r\n return false;\r\n case 'object':\r\n if (Array.isArray(data)) {\r\n return data.length === 0;\r\n }\r\n if (isNullOrUndefined(data)) {\r\n return true;\r\n }\r\n\r\n // @ts-ignore\r\n // by this line the code has validated if the data is null or undefined\r\n return compareObjectValues(data, {});\r\n default:\r\n isNullOrUndefined(data);\r\n }\r\n};\r\n\r\nexport const isNotEmptyData = (data: unknown) => !isEmptyData(data);\r\n\r\n/**\r\n * generate json without backslash\r\n * @param json\r\n * @returns\r\n */\r\nexport function jsonWithoutBackslash(data: any): string {\r\n const json = JSON.stringify(data ?? {});\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport function safeStringify(obj: object) {\r\n const cache = new Set();\r\n const parsed = Object.entries(obj).reduce((acc, [key, value]) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (cache.has(key)) {\r\n return acc;\r\n }\r\n\r\n acc[key] = value;\r\n cache.add(key);\r\n }\r\n\r\n return acc;\r\n }, {});\r\n\r\n console.log({ parsed });\r\n const data = JSON.stringify(parsed);\r\n\r\n return data;\r\n}\r\n\r\nexport function safeStringifyWithoutBackslash(data: object): string {\r\n const json = safeStringify(data);\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport type JoinOptions = 'conjunction' | 'disjunction' | 'unit';\r\nexport const joinTexts = (items: string[], by: JoinOptions = 'conjunction') => {\r\n const intl: IntlShape = appIntl();\r\n return intl.formatList(items, { type: by });\r\n};\r\n\r\nexport const stripHtml = (html: string): string => {\r\n const temp = document.createElement('div');\r\n temp.innerHTML = html;\r\n return temp.textContent ?? '';\r\n};\r\n\r\nexport const roundWithEpsilon = (n?: number) => {\r\n if (!n) {\r\n return null;\r\n }\r\n return Math.round((n + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const formatHourMeter = (hourMeter?: number | null | undefined) =>\r\n // @ts-ignore unreachable error because of validation\r\n isNotNaNOrNullable(hourMeter) ? parseSecondsToHours(hourMeter) + ' H' : 'N/A';\r\n\r\nexport const getSecondsBetweenDates = ([startDate, endDate]: [string, string]) => {\r\n if (isNullOrUndefined(startDate) || isNullOrUndefined(endDate)) return 0;\r\n const start = moment(startDate);\r\n const end = moment(endDate);\r\n return end.diff(start, 'seconds');\r\n};\r\n\r\nexport const getDeviceInfo = (): DeviceInfo => {\r\n const userAgent = navigator.userAgent;\r\n const isMobile = /Mobile/.test(userAgent);\r\n const isBrowserMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n userAgent\r\n );\r\n\r\n const platform = navigator.platform;\r\n let os: OperatingSystem = OperatingSystem.Unknown;\r\n\r\n if (platform.startsWith('Win')) {\r\n os = OperatingSystem.Windows;\r\n } else if (platform.startsWith('Mac')) {\r\n os = OperatingSystem.MacOS;\r\n } else if (platform.startsWith('Linux')) {\r\n os = OperatingSystem.Linux;\r\n } else if (\r\n platform.includes('iPhone') ||\r\n platform.includes('iPad') ||\r\n platform.includes('iPod')\r\n ) {\r\n os = OperatingSystem.IOS;\r\n } else if (platform.includes('Android')) {\r\n os = OperatingSystem.Android;\r\n }\r\n\r\n const isBrowserChrome = /Chrome/i.test(userAgent);\r\n const isBrowserFirefox = /Firefox/i.test(userAgent);\r\n const isBrowserSafari = /Safari/i.test(userAgent) && !isBrowserChrome;\r\n\r\n let browser: Browser = Browser.Unknown;\r\n\r\n if (isBrowserChrome) {\r\n browser = Browser.Chrome;\r\n } else if (isBrowserFirefox) {\r\n browser = Browser.Firefox;\r\n } else if (isBrowserSafari) {\r\n browser = Browser.Safari;\r\n }\r\n\r\n const deviceType: DeviceType =\r\n isMobile || isBrowserMobile ? DeviceType.Mobile : DeviceType.Desktop;\r\n\r\n return {\r\n os,\r\n browser,\r\n deviceType\r\n };\r\n};\r\n\r\nexport const getKeyboardModifiers = (event: KeyboardEvent): KeyboardModifiers => {\r\n const deviceInfo = getDeviceInfo();\r\n\r\n let ctrl = false;\r\n let alt = false;\r\n let shift = false;\r\n let parsedKey: string | undefined = undefined;\r\n\r\n if (deviceInfo.os === OperatingSystem.MacOS) {\r\n if (event.shiftKey) {\r\n shift = true;\r\n }\r\n if (event.metaKey) {\r\n ctrl = true;\r\n }\r\n\r\n if (\r\n event.altKey ||\r\n (event.key === 'Alt' && event.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT)\r\n ) {\r\n alt = true;\r\n }\r\n\r\n if (event.key in optionKeySpecialCharacters || event.key in optionShiftSpecialCombinations) {\r\n alt = true;\r\n // if shift is also pressed check the values\r\n parsedKey = shift\r\n ? optionShiftSpecialCombinations[event.key]\r\n : optionKeySpecialCharacters[event.key];\r\n }\r\n } else {\r\n if (event.ctrlKey) {\r\n ctrl = true;\r\n }\r\n if (event.altKey) {\r\n alt = true;\r\n }\r\n }\r\n\r\n return {\r\n ctrl,\r\n alt,\r\n shift,\r\n parsedKey\r\n };\r\n};\r\n\r\nexport const toBit = (data: unknown): 1 | 0 => {\r\n return !!data ? 1 : 0;\r\n};\r\n\r\nexport const scrollDown = () => {\r\n setTimeout(() => {\r\n window.scrollBy({\r\n top: window.innerHeight,\r\n behavior: 'smooth'\r\n });\r\n }, 300);\r\n};\r\n","/* -------------------------------------------------------------------------- */\n/* Reductor de Entities */\n/* -------------------------------------------------------------------------- */\n\nimport { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport union from 'lodash/union';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as entityTypes from '../../../screens/Entities/constants';\nimport * as types from '../types';\nimport * as operatorsTypes from '../../Operators/types';\nimport * as organizationsTypes from '../../Organizations/types';\nimport * as divisionsTypes from '../../Divisions/types';\nimport * as subdivisionsTypes from '../../Subdivisions/types';\nimport * as maintenanceLinesTypes from '../../MaintenanceLines/types';\nimport * as unitsTypes from '../../Units/types';\nimport * as brandsTypes from '../../../../redux/types/static-catalogs/brands';\nimport * as modelsTypes from '../../../../redux/types/models';\nimport * as geofencesTypes from '../../Geofences/types';\nimport * as workplansTypes from '../../Workplans/types/workplans';\n\nimport * as routesTypes from '../../Routes/types/routes';\nimport * as schedulesTypes from '../../Schedules/types';\nimport * as agentsTypes from '../../Agents/types';\nimport * as serviceClassesTypes from '../../ServiceClasses/types';\nimport * as monitoringUsersTypes from '../../Users/types';\nimport * as contactsActions from 'views/screens/Contacts/types';\nimport * as vehicleTypes from '../../Vehicles/types';\nimport * as assetsTypes from '../../Assets/types';\nimport * as locationTypes from '../../Locations/types';\nimport * as officeTypes from '../../Offices/types';\nimport * as driverTypes from '../../Drivers/types';\nimport * as modulesTypes from '../../Modules/types';\nimport * as sensorsTypes from '../../Sensors/types';\nimport * as simsTypes from 'views/screens/SIMs/types';\nimport * as formsTypes from 'views/screens/Forms/types';\nimport * as jobsTypes from 'views/screens/Jobs/types';\nimport * as groupsTypes from 'views/screens/Groups/types';\nimport * as customersTypes from 'views/screens/Customers/types';\nimport * as contractsTypes from 'views/screens/Contracts/types';\nimport * as contractTemplatesTypes from 'views/screens/ContractTemplates/types';\nimport * as notificationTypes from 'views/screens/Notifications/types';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n case types.ENTITIES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((entityTypeId) => {\n newState[entityTypeId] = {\n ...state[entityTypeId],\n ...entities[entityTypeId],\n timestamp: Date.parse(entities[entityTypeId].auditDate + 'z') / 1000\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ENTITIES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst userUpdateByEntity = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //USER DATETIME UPDATE BY ENTITIES FETCH\n case unitsTypes.UNITS_FETCH_COMPLETED:\n case unitsTypes.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_UNITS] = {\n entityTypeId: entityTypes.ENTITY_UNITS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case subdivisionsTypes.SUBDIVISIONS_FETCH_COMPLETED:\n case subdivisionsTypes.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SUBDIVISONS] = {\n entityTypeId: entityTypes.ENTITY_SUBDIVISONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case maintenanceLinesTypes.MAINTENANCE_LINES_FETCH_COMPLETED:\n case maintenanceLinesTypes.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_MAINTENANCE_LINES] = {\n entityTypeId: entityTypes.ENTITY_MAINTENANCE_LINES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case vehicleTypes.VEHICLES_FETCH_COMPLETED:\n case vehicleTypes.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_VEHICLES] = {\n entityTypeId: entityTypes.ENTITY_VEHICLES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case modulesTypes.MODULES_FETCH_COMPLETED:\n case modulesTypes.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_MODULES] = {\n entityTypeId: entityTypes.ENTITY_MODULES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case agentsTypes.AGENTS_FETCH_COMPLETED:\n case agentsTypes.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_AGENTS] = {\n entityTypeId: entityTypes.ENTITY_AGENTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case serviceClassesTypes.SERVICECLASSES_FETCH_COMPLETED:\n case serviceClassesTypes.SERVICECLASSES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\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 operatorId,\n organizationId\n };\n return newState;\n }\n case operatorsTypes.OPERATORS_FETCH_COMPLETED:\n case operatorsTypes.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_OPERATORS] = {\n entityTypeId: entityTypes.ENTITY_OPERATORS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case divisionsTypes.DIVISIONS_FETCH_COMPLETED:\n case divisionsTypes.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_DIVISIONS] = {\n entityTypeId: entityTypes.ENTITY_DIVISIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case formsTypes.FORMS_FETCH_COMPLETED:\n case formsTypes.FORMS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_FORMS] = {\n entityTypeId: entityTypes.ENTITY_FORMS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case organizationsTypes.ORGANIZATIONS_FETCH_COMPLETED:\n case organizationsTypes.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ORGANIZATIONS] = {\n entityTypeId: entityTypes.ENTITY_ORGANIZATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case monitoringUsersTypes.MONITORING_USERS_FETCH_COMPLETED:\n case monitoringUsersTypes.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_USERS] = {\n entityTypeId: entityTypes.ENTITY_USERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case contactsActions.CONTACTS_FETCH_COMPLETED:\n case contactsActions.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_CONTACTS] = {\n entityTypeId: entityTypes.ENTITY_CONTACTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case workplansTypes.WORKPLANS_FETCH_COMPLETED:\n case workplansTypes.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_WORKPLANS] = {\n entityTypeId: entityTypes.ENTITY_WORKPLANS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case geofencesTypes.GEOFENCES_FETCH_COMPLETED:\n case geofencesTypes.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_GEOFENCES] = {\n entityTypeId: entityTypes.ENTITY_GEOFENCES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case schedulesTypes.SCHEDULES_FETCH_COMPLETED:\n case schedulesTypes.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SCHEDULES] = {\n entityTypeId: entityTypes.ENTITY_SCHEDULES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case routesTypes.ROUTES_FETCH_COMPLETED:\n case routesTypes.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ROUTES] = {\n entityTypeId: entityTypes.ENTITY_ROUTES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case simsTypes.SIMS_FETCH_COMPLETED:\n case simsTypes.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SIM_CARDS] = {\n entityTypeId: entityTypes.ENTITY_SIM_CARDS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case locationTypes.LOCATIONS_FETCH_COMPLETED:\n case locationTypes.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_LOCATIONS] = {\n entityTypeId: entityTypes.ENTITY_LOCATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case officeTypes.OFFICES_FETCH_COMPLETED:\n case officeTypes.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_OFFICES] = {\n entityTypeId: entityTypes.ENTITY_OFFICES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case driverTypes.DRIVERS_FETCH_COMPLETED:\n case driverTypes.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_DRIVERS] = {\n entityTypeId: entityTypes.ENTITY_DRIVERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case assetsTypes.ASSETS_FETCH_COMPLETED:\n case assetsTypes.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ASSETS] = {\n entityTypeId: entityTypes.ENTITY_ASSETS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case sensorsTypes.SENSORS_FETCH_COMPLETED:\n case sensorsTypes.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SENSORS] = {\n entityTypeId: entityTypes.ENTITY_SENSORS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case jobsTypes.JOBS_BACKLOG_FETCH_COMPLETED:\n case jobsTypes.JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_JOBS_BACKLOG] = {\n entityTypeId: entityTypes.ENTITY_JOBS_BACKLOG,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case groupsTypes.GROUPS_FETCH_COMPLETED:\n case groupsTypes.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_GROUPS] = {\n entityTypeId: entityTypes.ENTITY_GROUPS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n\n case customersTypes.CUSTOMERS_FETCH_COMPLETED:\n case customersTypes.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_CUSTOMERS] = {\n entityTypeId: entityTypes.ENTITY_CUSTOMERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n\n case contractsTypes.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case contractsTypes.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ORGANIZATION_CONTRACTS] = {\n entityTypeId: entityTypes.ENTITY_ORGANIZATION_CONTRACTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case contractTemplatesTypes.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case contractTemplatesTypes.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n newState[entityTypes.ENTITY_CONTRACT_TEMPLATES] = {\n entityTypeId: entityTypes.ENTITY_CONTRACT_TEMPLATES,\n timestamp: Date.now() / 1000 - 60,\n date: new Date().toUTCString()\n };\n return newState;\n }\n\n case notificationTypes.USER_NOTIFICATIONS_FETCH_COMPLETED:\n case notificationTypes.USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n newState[entityTypes.ENTITY_USER_NOTIFICATIONS] = {\n entityTypeId: entityTypes.ENTITY_USER_NOTIFICATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: new Date().toUTCString()\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING OR UPDATING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ENTITIES_FETCH_STARTED: {\n return true;\n }\n case types.ENTITIES_FETCH_COMPLETED:\n case types.ENTITIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchedList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ENTITIES_RESET_IS_FETCHED:\n case types.ENTITIES_FETCH_STARTED: {\n return false;\n }\n case types.ENTITIES_FETCH_COMPLETED:\n case types.ENTITIES_FETCH_FAILED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\n//ERRORS FETCHING OR UPDATING\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ENTITIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ENTITIES_FETCH_STARTED:\n case types.ENTITIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst entities: any = combineReducers({\n byId,\n order,\n userUpdateByEntity,\n isFetchingList,\n isFetchedList,\n errorFetchingList\n});\n\nconst entitiesPersistConfig = {\n key: 'entities',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isFetchingList', 'isFetchedList', 'errorFetchingList']\n // blackList: [],\n // whiteList: [],\n};\n\nexport default persistReducer(entitiesPersistConfig, entities);\n\n//Own state\nexport const getOwnState = (state) => state.entities;\n\n//Information\nexport const getEntity = (state, entityTypeId) => getOwnState(state).byId[entityTypeId];\nexport const getUserUpdateByEntityTimestamp = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId].timestamp\n : null;\nexport const getUserUpdateByEntityDate = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId].date\n : null;\nexport const getUserUpdateByEntityOperatorId = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId]?.operatorId\n : null;\nexport const getUserUpdateByEntityOrganizationId = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId]?.organizationId\n : null;\nexport const getEntitiesList = (state) =>\n getOwnState(state).order.map((id) => getEntity(state, id));\n\n/**\n * Is Entity updated\n * @param state Redux State\n * @returns True if is updated, false or null if is not updated\n */\nexport const isEntityUpdated = (state) => (entitiesToUpdate) => {\n return entitiesToUpdate.map((entity) => {\n if (!entity?.entityTypeId) {\n const userUpdateByEntity = getUserUpdateByEntityTimestamp(state, entity);\n if (userUpdateByEntity == null) return null;\n if (userUpdateByEntity < getEntity(state, entity).timestamp) return false;\n return true;\n } else {\n // Vars to validate\n const { operatorId, organizationId, allowNullOrganizationId } =\n authSelectors.getAuthUserMembershipFilters(state, {\n filterOperatorId: entity.operatorId,\n filterOrganizationId: entity.organizationId\n });\n const updateEntityByTimestamp = getUserUpdateByEntityTimestamp(state, entity.entityTypeId);\n const entityTimestamp = getEntity(state, entity.entityTypeId).timestamp;\n const userUpdateEntityOperatorId = getUserUpdateByEntityOperatorId(\n state,\n entity.entityTypeId\n );\n const userUpdateEntityOrganizationId = getUserUpdateByEntityOrganizationId(\n state,\n entity.entityTypeId\n );\n // end Vars to validate\n\n // Entity type is sim\n if (entity.entityTypeId == 4) {\n }\n\n // Return entity as updated because of does not allow organization null\n // Return true in order to don't fetch entity\n if (!entity.allowNullOrganizationId && !allowNullOrganizationId && !organizationId) {\n return true;\n }\n\n // Entity first update, return null in order to update\n if (updateEntityByTimestamp == null) {\n return null;\n }\n\n // Entity is not updated, and return false in order to update\n if (\n updateEntityByTimestamp < entityTimestamp &&\n userUpdateEntityOperatorId === operatorId &&\n userUpdateEntityOrganizationId === organizationId\n ) {\n return false;\n }\n\n // Actualize entity\n if (\n userUpdateEntityOperatorId !== operatorId ||\n userUpdateEntityOrganizationId !== organizationId\n ) {\n return null;\n }\n // Default, does not fetch entity\n return true;\n }\n });\n};\n\nexport const areAllEntitiesUpdated = (state, entitiesToUpdate) => {\n var areUpdated = true;\n entitiesToUpdate.map((entityTypeId) => {\n const timestamp = getUserUpdateByEntityTimestamp(state, entityTypeId);\n if (timestamp == null) areUpdated = false;\n else if (timestamp + 60 < getEntity(state, entityTypeId)?.timestamp) areUpdated = false;\n });\n return areUpdated;\n};\n\n//Status of sagas\nexport const isFetchingListEntities = (state) => getOwnState(state).isFetchingList;\nexport const isFetchedListEntities = (state) => getOwnState(state).isFetchedList;\n\n//Errors\nexport const getFetchingListEntitiesErrors = (state) => getOwnState(state).errorFetchingList;\n","export const CATEGORIES_FETCH_STARTED = 'CATEGORIES_FETCH_STARTED';\nexport const CATEGORIES_FETCH_COMPLETED = 'CATEGORIES_FETCH_COMPLETED';\nexport const CATEGORIES_FETCH_FAILED = 'CATEGORIES_FETCH_FAILED';\n\nexport const CATEGORIES_PARTIAL_FETCH_STARTED = 'CATEGORIES_PARTIAL_FETCH_STARTED';\nexport const CATEGORIES_PARTIAL_FETCH_COMPLETED = 'CATEGORIES_PARTIAL_FETCH_COMPLETED';\nexport const CATEGORIES_PARTIAL_FETCH_FAILED = 'CATEGORIES_PARTIAL_FETCH_FAILED';\n\nexport const CATEGORY_ADD_STARTED = 'CATEGORY_ADD_STARTED';\nexport const CATEGORY_ADD_COMPLETED = 'CATEGORY_ADD_COMPLETED';\nexport const CATEGORY_ADD_FAILED = 'CATEGORY_ADD_FAILED';\n\nexport const CATEGORY_EDIT_STARTED = 'CATEGORY_EDIT_STARTED';\nexport const CATEGORY_EDIT_COMPLETED = 'CATEGORY_EDIT_COMPLETED';\nexport const CATEGORY_EDIT_FAILED = 'CATEGORY_EDIT_FAILED';\n\nexport const CATEGORY_REMOVE_STARTED = 'CATEGORY_REMOVE_STARTED';\nexport const CATEGORY_REMOVE_COMPLETED = 'CATEGORY_REMOVE_COMPLETED';\nexport const CATEGORY_REMOVE_FAILED = 'CATEGORY_REMOVE_FAILED';\n","export const PROVIDERS_FETCH_STARTED2 = 'PROVIDERS_FETCH_STARTED2';\nexport const PROVIDERS_FETCH_COMPLETED2 = 'PROVIDERS_FETCH_COMPLETED2';\nexport const PROVIDERS_FETCH_FAILED2 = 'PROVIDERS_FETCH_FAILED2';\n\nexport const PROVIDERS_PARTIAL_FETCH_STARTED2 = 'PROVIDERS_PARTIAL_FETCH_STARTED2';\nexport const PROVIDERS_PARTIAL_FETCH_COMPLETED2 = 'PROVIDERS_PARTIAL_FETCH_COMPLETED2';\nexport const PROVIDERS_PARTIAL_FETCH_FAILED2 = 'PROVIDERS_PARTIAL_FETCH_FAILED2';\n\nexport const PROVIDER_ADD_STARTED = 'PROVIDER_ADD_STARTED';\nexport const PROVIDER_ADD_COMPLETED = 'PROVIDER_ADD_COMPLETED';\nexport const PROVIDER_ADD_FAILED = 'PROVIDER_ADD_FAILED';\n\nexport const PROVIDER_EDIT_STARTED = 'PROVIDER_EDIT_STARTED';\nexport const PROVIDER_EDIT_COMPLETED = 'PROVIDER_EDIT_COMPLETED';\nexport const PROVIDER_EDIT_FAILED = 'PROVIDER_EDIT_FAILED';\n\nexport const PROVIDER_REMOVE_STARTED = 'PROVIDER_REMOVE_STARTED';\nexport const PROVIDER_REMOVE_COMPLETED = 'PROVIDER_REMOVE_COMPLETED';\nexport const PROVIDER_REMOVE_FAILED = 'PROVIDER_REMOVE_FAILED';\n","export const SPAREPARTS_FETCH_STARTED = 'SPAREPARTS_FETCH_STARTED';\nexport const SPAREPARTS_FETCH_COMPLETED = 'SPAREPARTS_FETCH_COMPLETED';\nexport const SPAREPARTS_FETCH_FAILED = 'SPAREPARTS_FETCH_FAILED';\n\nexport const SPAREPARTS_PARTIAL_FETCH_STARTED = 'SPAREPARTS_PARTIAL_FETCH_STARTED';\nexport const SPAREPARTS_PARTIAL_FETCH_COMPLETED = 'SPAREPARTS_PARTIAL_FETCH_COMPLETED';\nexport const SPAREPARTS_PARTIAL_FETCH_FAILED = 'SPAREPARTS_PARTIAL_FETCH_FAILED';\n\nexport const SPAREPART_ADD_STARTED = 'SPAREPART_ADD_STARTED';\nexport const SPAREPART_ADD_COMPLETED = 'SPAREPART_ADD_COMPLETED';\nexport const SPAREPART_ADD_FAILED = 'SPAREPART_ADD_FAILED';\n\nexport const SPAREPART_EDIT_STARTED = 'SPAREPART_EDIT_STARTED';\nexport const SPAREPART_EDIT_COMPLETED = 'SPAREPART_EDIT_COMPLETED';\nexport const SPAREPART_EDIT_FAILED = 'SPAREPART_EDIT_FAILED';\n\nexport const SPAREPART_REMOVE_STARTED = 'SPAREPART_REMOVE_STARTED';\nexport const SPAREPART_REMOVE_COMPLETED = 'SPAREPART_REMOVE_COMPLETED';\nexport const SPAREPART_REMOVE_FAILED = 'SPAREPART_REMOVE_FAILED';\n\nexport interface SpareParts {\n isSelected: boolean;\n sparePartId: number;\n sparePartName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: null | string;\n categoryName: string;\n categoryId: number;\n categoryIcon: string;\n isConfirmed: boolean;\n}\n","export const WORKMANSHIPS_FETCH_STARTED = 'WORKMANSHIPS_FETCH_STARTED';\nexport const WORKMANSHIPS_FETCH_COMPLETED = 'WORKMANSHIPS_FETCH_COMPLETED';\nexport const WORKMANSHIPS_FETCH_FAILED = 'WORKMANSHIPS_FETCH_FAILED';\n\nexport const WORKMANSHIPS_PARTIAL_FETCH_STARTED = 'WORKMANSHIPS_PARTIAL_FETCH_STARTED';\nexport const WORKMANSHIPS_PARTIAL_FETCH_COMPLETED = 'WORKMANSHIPS_PARTIAL_FETCH_COMPLETED';\nexport const WORKMANSHIPS_PARTIAL_FETCH_FAILED = 'WORKMANSHIPS_PARTIAL_FETCH_FAILED';\n\nexport const WORKMANSHIP_ADD_STARTED = 'WORKMANSHIP_ADD_STARTED';\nexport const WORKMANSHIP_ADD_COMPLETED = 'WORKMANSHIP_ADD_COMPLETED';\nexport const WORKMANSHIP_ADD_FAILED = 'WORKMANSHIP_ADD_FAILED';\n\nexport const WORKMANSHIP_EDIT_STARTED = 'WORKMANSHIP_EDIT_STARTED';\nexport const WORKMANSHIP_EDIT_COMPLETED = 'WORKMANSHIP_EDIT_COMPLETED';\nexport const WORKMANSHIP_EDIT_FAILED = 'WORKMANSHIP_EDIT_FAILED';\n\nexport const WORKMANSHIP_REMOVE_STARTED = 'WORKMANSHIP_REMOVE_STARTED';\nexport const WORKMANSHIP_REMOVE_COMPLETED = 'WORKMANSHIP_REMOVE_COMPLETED';\nexport const WORKMANSHIP_REMOVE_FAILED = 'WORKMANSHIP_REMOVE_FAILED';\n\nexport interface Workmanship {\n isSelected: boolean;\n workmanshipId: number;\n description: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: null | string;\n subdivisionId: number | null;\n subdivisionName: null | string;\n isConfirmed: boolean;\n tempId?: string;\n}\n","export const WORKPLAN_ASSIGNMENT_FETCH_STARTED = 'WORKPLAN_ASSIGNMENT_FETCH_STARTED';\nexport const WORKPLAN_ASSIGNMENT_FETCH_COMPLETED = 'WORKPLAN_ASSIGNMENT_FETCH_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_FETCH_FAILED = 'WORKPLAN_ASSIGNMENT_FETCH_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED';\n\nexport const WORKPLAN_ASSIGNMENT_REMOVE_STARTED = 'WORKPLAN_ASSIGNMENT_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED = 'WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_REMOVE_FAILED = 'WORKPLAN_ASSIGNMENT_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport flattenDeep from 'lodash/flattenDeep';\nimport { DateTime } from 'luxon';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\nimport * as types from '../types';\nimport * as geofenceSelectors from '../../Geofences/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SCHEDULES_FETCH_COMPLETED:\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((scheduleId) => {\n newState[scheduleId] = {\n isSelected: false,\n ...state[scheduleId],\n ...entities[scheduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SCHEDULE_SHIFT_ADD_COMPLETED:\n case types.SCHEDULE_ADD_COMPLETED: {\n const { oldId, schedule } = action.payload;\n const newState = omit(state, oldId);\n newState[schedule.scheduleId] = {\n ...state[oldId],\n ...schedule,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SCHEDULE_SHIFT_EDIT_COMPLETED:\n case types.SCHEDULE_EDIT_COMPLETED: {\n const schedule = action.payload;\n return {\n ...state,\n [schedule.scheduleId]: {\n ...omit(state[schedule.scheduleId], ['oldSchedule']),\n ...omit(schedule, ['oldSchedule']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SCHEDULE_SHIFT_ADD_STARTED:\n case types.SCHEDULE_ADD_STARTED: {\n const schedule = action.payload;\n const newState = { ...state };\n newState[schedule.scheduleId] = {\n isSelected: false,\n ...schedule,\n isConfirmed: false\n };\n return newState;\n }\n case types.SCHEDULE_SHIFT_EDIT_STARTED:\n case types.SCHEDULE_EDIT_STARTED: {\n const schedule = action.payload;\n return {\n ...state,\n [schedule.scheduleId]: {\n ...state[schedule.scheduleId],\n oldSchedule: state[schedule.scheduleId],\n ...schedule,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SCHEDULE_SHIFT_ADD_FAILED:\n case types.SCHEDULE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SCHEDULE_SHIFT_EDIT_FAILED:\n case types.SCHEDULE_EDIT_FAILED: {\n const { oldSchedule } = action.payload;\n return {\n ...state,\n [oldSchedule.scheduleId]: {\n ...omit(state[oldSchedule.scheduleId], ['oldSchedule']),\n ...oldSchedule,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SCHEDULE_REMOVE_COMPLETED: {\n const { scheduleId } = action.payload;\n return omit(state, scheduleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SCHEDULE_SELECTED: {\n const scheduleId = action.payload;\n const newState = {\n ...state,\n [scheduleId]: {\n ...state[scheduleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SCHEDULE_DESELECTED: {\n const scheduleId = action.payload;\n return {\n ...state,\n [scheduleId]: {\n ...state[scheduleId],\n isSelected: false\n }\n };\n }\n\n case types.SCHEDULES_ALL_SELECTED: {\n const scheduleIds = action.payload;\n const newState = { ...state };\n if (scheduleIds.length == 0) {\n forEach(state, (schedule: any, scheduleId) => {\n newState[scheduleId] = {\n ...schedule,\n isSelected: true\n };\n });\n } else {\n scheduleIds.forEach((scheduleId) => {\n newState[scheduleId] = {\n ...state[scheduleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SCHEDULES_ALL_DESELECTED: {\n const scheduleIds = action.payload;\n const newState = { ...state };\n if (scheduleIds.length == 0) {\n forEach(state, (schedule: any, scheduleId) => {\n newState[scheduleId] = {\n ...schedule,\n isSelected: false\n };\n });\n } else {\n scheduleIds.forEach((scheduleId) => {\n newState[scheduleId] = {\n ...state[scheduleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SCHEDULES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SCHEDULE_SHIFT_ADD_COMPLETED:\n case types.SCHEDULE_ADD_COMPLETED: {\n const { oldId, schedule } = action.payload;\n return state.map((scheduleId) => (scheduleId === oldId ? schedule.scheduleId : scheduleId));\n }\n\n case types.SCHEDULE_REMOVE_COMPLETED: {\n const { scheduleId } = action.payload;\n return state.filter((scheduleIdState) => scheduleIdState !== scheduleId);\n }\n\n //CASE ADD STARTED\n case types.SCHEDULE_SHIFT_ADD_STARTED:\n case types.SCHEDULE_ADD_STARTED: {\n const schedule = action.payload;\n return [...state, schedule.scheduleId];\n }\n\n //CASE ADD FAILED\n case types.SCHEDULE_SHIFT_ADD_FAILED:\n case types.SCHEDULE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((scheduleIdState) => scheduleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULES_FETCH_STARTED: {\n return true;\n }\n case types.SCHEDULES_FETCH_COMPLETED:\n case types.SCHEDULES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED:\n case types.SCHEDULES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_ADD_STARTED: {\n return true;\n }\n case types.SCHEDULE_ADD_COMPLETED:\n case types.SCHEDULE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_EDIT_STARTED: {\n return true;\n }\n case types.SCHEDULE_EDIT_COMPLETED:\n case types.SCHEDULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_REMOVE_STARTED: {\n return true;\n }\n case types.SCHEDULE_REMOVE_COMPLETED:\n case types.SCHEDULE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULES_FETCH_STARTED:\n case types.SCHEDULES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULES_PARTIAL_FETCH_STARTED:\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_ADD_STARTED:\n case types.SCHEDULE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_EDIT_STARTED:\n case types.SCHEDULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_REMOVE_STARTED:\n case types.SCHEDULE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst schedules = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default schedules;\n\n//Own state\nexport const getOwnState = (state) => state.schedules;\n\n//Information\nexport const getSchedule = (state, scheduleId) => {\n const intl = appIntl();\n const schedule = getOwnState(state).byId[scheduleId];\n if (schedule) {\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n } else return undefined;\n};\n\nexport const getScheduleByPrivateCode = (state, privateCode) => {\n const intl = appIntl();\n const schedules = getSchedulesList(state);\n const schedule = schedules.find((schedule) => schedule.privateCode === privateCode);\n if (schedule) {\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n } else return undefined;\n};\n\nexport const getScheduleByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n const intl = appIntl();\n const schedules = getScheduleListByMembership(state, membership);\n const schedule = schedules.find((schedule) => schedule.privateCode === privateCode);\n\n if (!schedule) return undefined;\n\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n};\n\nexport const getSchedulesList = (state) =>\n getOwnState(state)\n .order.map((id) => getSchedule(state, id))\n .filter((schedule) => schedule.scheduleStatus > 0);\n\nexport const getScheduleListByMembership = (state, membership: DefaultFilters) =>\n getSchedulesList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getSelectedSchedules = (state) => {\n const selectedSchedules = getSchedulesList(state).filter((schedule) => schedule.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSchedules.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSchedules.length > 0) return selectedSchedules;\n};\nexport const getTriggersList = (state) =>\n getSchedulesList(state).filter((schedule) => schedule.scheduleType === 1);\nexport const getTriggersListByMembership = (state, membership) =>\n getTriggersList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getShiftsList = (state) =>\n getSchedulesList(state).filter((schedule) => schedule.scheduleType === 2);\n\nexport const getShiftsListByMembership = (state, membership) =>\n getShiftsList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getShiftListByMembershipDetail = (state, membership) =>\n getShiftsListByMembership(state, membership).map((shift) => {\n const shiftTimes = flattenDeep(\n ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'].map(\n (day, index) =>\n shift[day]\n ?.split(' | ')\n .map((time) => ({\n day: index,\n startTime: time.split('-')[0],\n endTime: time.split('-')[1]\n }))\n .filter((day) => day.endTime)\n )\n );\n return { ...shift, shiftTimes };\n });\n\nexport const getSelectedSchedule = (state) => {\n const selectedSchedules = getSchedulesList(state).filter((schedule) => schedule.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSchedules.length === 1) return selectedSchedules[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSchedules = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSchedules = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSchedule = (state) => getOwnState(state).isAdding;\nexport const isEditingSchedule = (state) => getOwnState(state).isEditing;\nexport const isRemovingSchedule = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListSchedulesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSchedulesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingScheduleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingScheduleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingScheduleErrors = (state) => getOwnState(state).errorRemoving;\n","export const ROUTES_EXECUTION_COMMENTS_FETCH_STARTED = 'ROUTES_EXECUTION_COMMENTS_FETCH_STARTED';\nexport const ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED =\n 'ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENTS_FETCH_FAILED = 'ROUTES_EXECUTION_COMMENTS_FETCH_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_ADD_STARTED = 'ROUTES_EXECUTION_COMMENT_ADD_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_ADD_COMPLETED = 'ROUTES_EXECUTION_COMMENT_ADD_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_ADD_FAILED = 'ROUTES_EXECUTION_COMMENT_ADD_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_EDIT_STARTED = 'ROUTES_EXECUTION_COMMENT_EDIT_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED = 'ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_EDIT_FAILED = 'ROUTES_EXECUTION_COMMENT_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_STARTED = 'ROUTES_EXECUTION_COMMENT_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED =\n 'ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_FAILED = 'ROUTES_EXECUTION_COMMENT_REMOVE_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport _ from 'lodash';\nimport { CSSProperties, Component, FC, useEffect } from 'react';\nimport { Control, ControllerFieldState, ControllerRenderProps, Field } from 'react-hook-form';\nimport { FormattedMessage, IntlShape } from 'react-intl';\nimport Select, { components, GroupBase, Props as SelectProps } from 'react-select';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport { FormGroup, InputGroup, InputGroupAddon, Label } from 'reactstrap';\nimport { isNotNullOrUndefined } from 'utility/Utils';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst { Option, SingleValue, NoOptionsMessage } = components;\n//Filter option needed to work with formatted messages\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label &&\n _.deburr(candidate.data.label.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n _.deburr(candidate.data.label_intl.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\n\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {props.data.iconSVG && (\n \n )}\n {props.data.label}\n
\n
\n );\n};\n\nconst cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n});\n\nconst MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n};\n\nexport type Options = {\n value: string | number;\n id?: string | number;\n label_intl?: string;\n label?: string | JSX.Element;\n}[];\ninterface Props extends SelectProps {\n id: string;\n field: ControllerRenderProps | any;\n fieldstate: ControllerFieldState | any;\n hasPlaceholder?: boolean;\n options: Options;\n disabled?: boolean;\n label?: string | JSX.Element | null;\n placeholder?: string | Element | JSX.Element;\n isClearable?: boolean;\n intl?: IntlShape;\n isInModal?: boolean;\n errorMessage?: string;\n required?: boolean;\n forceinitialvalue?: string | number | null;\n onClear?: () => void;\n onSelect?: (event) => void;\n additionalonchangefunction?: (value) => void;\n isDisabled?: boolean;\n menuIsOpen?: boolean;\n onInputChange?: (value) => void;\n minWidth?: number;\n prependcomponent?: string | JSX.Element;\n appendcomponent?: string | JSX.Element;\n style?: CSSProperties;\n onFocus?: () => void;\n isLoading?: boolean;\n}\n\nexport type DropdownProps = Props;\n\nconst DropdownInput: FC = (props) => {\n //const [touched, setTouched] = useState(false);\n const {\n field,\n fieldstate,\n hasPlaceholder = true,\n options = [],\n intl,\n isInModal = false,\n errorMessage,\n required,\n forceinitialvalue,\n onClear,\n additionalonchangefunction = (value) => null,\n isDisabled = false,\n menuIsOpen,\n onInputChange,\n minWidth,\n onFocus,\n ...inputProps\n } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n useEffect(() => {\n if (forceinitialvalue !== undefined) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n useEffect(() => {\n // if options are not an array, return void\n if (!Array.isArray(options)) {\n return;\n }\n const isInArray = options.find((o) => o?.value == forceinitialvalue);\n\n // if element is found in array\n // set as initial value, this code only excecutes itself when\n if (isNotNullOrUndefined(isInArray)) {\n if (forceinitialvalue !== undefined) onChangeFinal(forceinitialvalue);\n return;\n }\n\n // forceinitialvalue has a value\n // is not in the array and is defined\n if (isNotNullOrUndefined(forceinitialvalue)) {\n onChangeFinal(null);\n }\n }, [options?.length]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n return (\n \n {inputProps.label && (\n \n )}\n \n {props.prependcomponent}\n ({ ...styles, zIndex: 91000 }),\n input: (provided, state) => ({\n minWidth: minWidth\n }),\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused\n ? `1px solid ${primary} !important`\n : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n }}\n id={inputProps.id}\n components={{ Option: IconOption, SingleValue: IconSingleValue, MenuList }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={\n fieldstate.error != null ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'\n }\n onChange={(event, triggeredAction) => {\n if (triggeredAction.action === 'clear' && onClear) onClear();\n onChangeFinal(event ? event.value : null);\n if (inputProps.onSelect) inputProps.onSelect(event);\n }}\n onBlur={field.onBlur}\n onFocus={onFocus}\n options={options}\n filterOption={filterOption}\n isClearable={inputProps.isClearable}\n isDisabled={isDisabled}\n value={\n options.filter((option) => {\n const fieldValue = String(field.value);\n const optValue = String(option.value);\n const selectedValue = /^\\d+$/.test(fieldValue) ? parseInt(field.value) : field.value;\n const optionValue = /^\\d+$/.test(optValue) ? parseInt(optValue) : option.value;\n return optionValue === selectedValue;\n })[0] || null\n }\n menuIsOpen={menuIsOpen}\n noOptionsMessage={() => appIntl().formatMessage({ id: 'common.noOptions' })}\n maxMenuHeight={250}\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n />\n {props.appendcomponent}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nexport default DropdownInput;\n","/* -------------------------------------------------------------------------- */\n/* Componente TextInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un textfield genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport React, { useEffect, useState } from 'react';\nimport {\n Label,\n Input,\n FormFeedback,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText\n} from 'reactstrap';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\ninterface Props {\n id: any;\n label?: any;\n field: any;\n fieldstate: any;\n type?: any;\n required?: any;\n placeholder?: string;\n errorMessage?: any;\n errorinvalidmessage?: any;\n errorvalidatemessage?: any;\n autocompleteinput?: string;\n topRightComponent?: any;\n prependcomponent?: any;\n appendcomponent?: any;\n forceinitialvalue?: string;\n disabled?: boolean;\n additionalonchangefunction?: Function;\n onFocus?: () => void;\n}\n\nconst TextInput = (props: Props) => {\n const {\n id,\n label,\n required,\n placeholder,\n field,\n fieldstate,\n type = 'text',\n autocompleteinput = 'off',\n topRightComponent,\n prependcomponent,\n appendcomponent,\n disabled,\n errorMessage,\n errorinvalidmessage,\n errorvalidatemessage,\n forceinitialvalue,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (forceinitialvalue != null) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n \n {label && (\n \n )}\n \n {prependcomponent && (\n \n {prependcomponent}\n \n )}\n {\n onChangeFinal(event.target.value);\n }}\n onFocus={props.onFocus}\n id={id}\n placeholder={placeholder}\n autoComplete={autocompleteinput}\n type={type}\n invalid={fieldstate.error != null}\n disabled={disabled}\n />\n {appendcomponent && (\n \n {appendcomponent}\n \n )}\n \n {fieldstate.error && fieldstate.error.type === 'required' ? (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'pattern' ? (\n
\n {fieldstate.error?.message || errorinvalidmessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'validate' ? (\n
\n {fieldstate.error?.message || errorvalidatemessage || (\n \n )}\n
\n ) : (\n ''\n )}\n
\n );\n};\n\nTextInput.defaultProps = {};\n\nexport default TextInput;\n","export const USER_NOTIFICATIONS_FETCH_STARTED = 'USER_NOTIFICATIONS_FETCH_STARTED';\nexport const USER_NOTIFICATIONS_FETCH_COMPLETED = 'USER_NOTIFICATIONS_FETCH_COMPLETED';\nexport const USER_NOTIFICATIONS_FETCH_FAILED = 'USER_NOTIFICATIONS_FETCH_FAILED';\n\nexport const USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED = 'USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED';\nexport const USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED =\n 'USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED';\nexport const USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED = 'USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED';\n\nexport const USER_NOTIFICATION_READ_STARTED = 'USER_NOTIFICATION_READ_STARTED';\nexport const USER_NOTIFICATION_READ_COMPLETED = 'USER_NOTIFICATION_READ_COMPLETED';\nexport const USER_NOTIFICATION_READ_FAILED = 'USER_NOTIFICATION_READ_FAILED';\n\nexport const USER_NOTIFICATION_SHOWN = 'USER_NOTIFICATION_SHOWN';\nexport const USER_NOTIFICATION_UNSHOWN = 'USER_NOTIFICATION_UNSHOWN';\n\nexport const USER_NOTIFICATION_SELECTED = 'USER_NOTIFICATION_SELECTED';\nexport const USER_NOTIFICATION_DESELECTED = 'SYSTEM_NOTIFICATION_USER_DESELECTED';\nexport const USER_NOTIFICATION_ALL_SELECTED = 'USER_NOTIFICATION_ALL_SELECTED';\nexport const USER_NOTIFICATION_ALL_DESELECTED = 'USER_NOTIFICATION_ALL_DESELECTED';\n\nexport interface UserNotification {\n isSelected: boolean;\n isConfirmed: boolean;\n shownAtLogin: boolean;\n systemNotificationId: number;\n notificationId: number;\n messageType: number;\n messageTitle: number;\n message: string;\n startDate: string;\n endDate: string;\n entityTypeId: number;\n operatorId: number;\n organizationId: number;\n accessLevelId: number;\n userId: number;\n mobileOperatorId: number;\n status: number;\n useToast: boolean;\n toastTime: number;\n isWebtrackNotification: boolean;\n}\n","import moment from 'moment';\nimport {\n ArrowDownCircle,\n BatteryCharging,\n Circle,\n Clock,\n MapPin,\n Navigation,\n PauseCircle,\n PlayCircle,\n Power,\n StopCircle,\n Watch,\n Wifi,\n WifiOff\n} from 'react-feather';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { formatHourMeter } from 'utility/Utils';\nimport { UnitMainState, UnitsMainState } from 'views/screens/Units/types';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as deviceActionsSelectors from '../Units/reducers/deviceActions';\nimport * as deviceMetricsSelectors from '../Units/reducers/deviceMetrics';\nimport * as groupsSelectors from '../Units/reducers/groups';\nimport * as imagesSelectors from '../Units/reducers/images';\nimport * as reportsSelectors from '../Units/reducers/reports';\nimport * as sensorsSelectors from '../Units/reducers/sensors';\nimport { Row, Col } from 'reactstrap';\nimport NumericalInput from 'views/formComponents/NumericalInput';\nimport UnitsDropdown from 'views/formComponents/UnitsDropdown';\nimport UsersDropdown from 'views/formComponents/UsersDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport DateInput from 'views/formComponents/DateInput';\nimport LocationsDropdownInput from 'views/formComponents/LocationDropDown';\nimport EventsDropdown from 'views/formComponents/EventsDropdown';\n\nexport const MainStateType: UnitsMainState = {\n ONLINE: {\n id: 1000,\n intl: 'units.mainStateId.1000',\n color: '#00D57E',\n textColor: '#75BB5A',\n tooltip: 'units.mainStateId.tooltip.1000',\n shortIntl: 'units.mainStateId.1000'\n },\n OFFLINE: {\n id: 0,\n intl: 'units.mainStateId.0',\n color: '#BA0000',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.0',\n shortIntl: 'units.mainStateId.0'\n },\n OFF: {\n id: 1,\n intl: 'units.mainStateId.1',\n color: '#FFFF00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.1',\n shortIntl: 'units.mainStateId.1'\n },\n MOVING: {\n id: 2,\n intl: 'units.mainStateId.2',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.2',\n shortIntl: 'units.mainStateId.2'\n },\n ON_IDLE: {\n id: 3,\n intl: 'units.mainStateId.3',\n color: '#FF4459',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.3',\n shortIntl: 'units.mainStateId.shortIntl.3'\n },\n ON_STANDBY: {\n id: 4,\n intl: 'units.mainStateId.4',\n color: '#FF7A00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.4',\n shortIntl: 'units.mainStateId.shortIntl.4'\n },\n ON_STARTED: {\n id: 5,\n intl: 'units.mainStateId.5',\n color: '#00EAD5',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.5',\n shortIntl: 'units.mainStateId.shortIntl.5'\n },\n DOWNTIME: {\n id: 6,\n intl: 'units.mainStateId.6',\n color: '#7B7B74',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.6',\n shortIntl: 'units.mainStateId.6'\n },\n ON_STOPPED: {\n id: 7,\n intl: 'units.mainStateId.7',\n color: '#FFC737',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.7',\n shortIntl: 'units.mainStateId.shortIntl.7'\n },\n ON_MOVING: {\n id: 8,\n intl: 'units.mainStateId.8',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.8',\n shortIntl: 'units.mainStateId.shortIntl.8'\n },\n STOPPED: {\n id: 9,\n intl: 'units.mainStateId.9',\n color: '#FDAC34',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.9',\n shortIntl: 'units.mainStateId.9'\n },\n OPPORTUNITY_CHARGE: {\n id: 10,\n intl: 'units.mainStateId.10',\n color: '#7669e8',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.10',\n shortIntl: 'units.mainStateId.shortIntl.10'\n },\n DISCONNECTED: {\n id: 11,\n intl: 'units.mainStateId.11',\n color: '#DD77DD',\n textColor: '#000000',\n tooltip: 'units.mainStateId.tooltip.11',\n shortIntl: 'units.mainStateId.shortIntl.11'\n }\n};\n\n/**\n * Get Icon by state id\n * @param id id of state\n * @returns Icon as JSX element\n */\nexport const getIconByStatId = (id: number): JSX.Element => {\n switch (id) {\n case 1000:\n return ;\n case 0:\n return ;\n case 1:\n return ;\n case 2:\n return ;\n case 3:\n return ;\n case 4:\n return ;\n case 5:\n return ;\n case 6:\n return ;\n case 7:\n return ;\n case 8:\n return ;\n case 9:\n return ;\n case 10:\n return ;\n }\n return ;\n};\n\nexport const GetMainStateById = (id: number): UnitMainState => {\n //console.log('unitLiveStatus.mainStateId==>', id);\n let state = MainStateType.ONLINE;\n switch (id) {\n case 100:\n state = MainStateType.ONLINE;\n break;\n case 0:\n state = MainStateType.OFFLINE;\n break;\n case 1:\n state = MainStateType.OFF;\n break;\n case 2:\n state = MainStateType.MOVING;\n break;\n case 3:\n state = MainStateType.ON_IDLE;\n break;\n case 4:\n state = MainStateType.ON_STANDBY;\n break;\n case 5:\n state = MainStateType.ON_STARTED;\n break;\n case 6:\n state = MainStateType.DOWNTIME;\n break;\n case 7:\n state = MainStateType.ON_STOPPED;\n break;\n case 8:\n state = MainStateType.ON_MOVING;\n break;\n case 9:\n state = MainStateType.STOPPED;\n break;\n case 10:\n state = MainStateType.OPPORTUNITY_CHARGE;\n break;\n case 11:\n state = MainStateType.DISCONNECTED;\n break;\n default:\n state = MainStateType.ONLINE;\n break;\n }\n return state;\n};\n\nexport const GetMainStateStyle = (\n state: UnitMainState\n): {\n backgroundColor: string;\n color: string;\n} => ({\n backgroundColor: state.color,\n color: state.textColor\n});\n\nexport const GetMainStateName = (\n mainState: UnitMainState,\n mainStateTitle: string,\n mainStateDate: string,\n speed: string,\n downTimeReason: string,\n extraMessage: string\n): string =>\n mainStateTitle +\n ([MainStateType.MOVING.id, MainStateType.ON_MOVING.id].includes(mainState.id)\n ? ' - ' + speed\n : mainState.id === MainStateType.DOWNTIME.id\n ? ' - ' + downTimeReason\n : mainState.id === MainStateType.OFFLINE.id\n ? ''\n : mainStateDate\n ? ' - ' + extraMessage\n : '');\n\nexport const getUnitIcon = (themeId: number): string => {\n switch (themeId) {\n case 0:\n return 'Normal';\n case 1:\n return 'Car';\n case 2:\n return 'Buses';\n case 3:\n return 'Motorcycles';\n case 4:\n return 'Trucks';\n case 5:\n return 'Car';\n // return 'Funny'; //Pendiente\n case 6:\n return 'PersonalMale';\n case 7:\n return 'PersonalFemale';\n case 8:\n return 'Panel';\n case 9:\n return 'PickUp';\n case 10:\n return 'MiniMan';\n case 11:\n return 'Container';\n case 12:\n return 'Cab';\n case 13:\n return 'Platform';\n case 14:\n return 'ManHealth';\n case 15:\n return 'WomanHealth';\n case 16:\n return 'Taxis';\n case 17:\n return 'Ship';\n case 18:\n return 'CargoShip';\n case 19:\n return 'Sailboat';\n case 20:\n return 'Excavator';\n case 21:\n return 'Bulldozer';\n case 22:\n return 'LiftTruck';\n case 23:\n return 'Scooter';\n case 24:\n return 'JetSki';\n case 25:\n return 'Ambulances';\n case 26:\n return 'Planes';\n case 27:\n return 'Airplanes';\n case 28:\n return 'Helicopter';\n case 29:\n return 'DumpTruck';\n case 30:\n return 'Steamroller';\n case 31:\n return 'TankerTruck';\n case 32:\n return 'ConcreteMixerTruck';\n case 33:\n return 'CraneTruck';\n case 34:\n return 'DeliveryTruck';\n case 35:\n return 'Tank';\n case 200:\n return 'Special';\n }\n return 'Special';\n};\n\nexport const getUnitActionIcon = (deviceActionId: number): string => {\n switch (deviceActionId) {\n case 0:\n return 'RequestLocation';\n case 1:\n return 'Paralyze';\n case 2:\n return 'Enable';\n case 3:\n return 'OpenDoor';\n case 4:\n return 'OpenDoor2';\n case 5:\n return 'ScriptLoader';\n case 6:\n return 'Geofences1';\n case 8:\n return 'Measurement';\n case 9:\n return 'OpenPadlock';\n case 11:\n return 'RequestMileage';\n case 12:\n return 'ChangeTemperatureLimits';\n case 13:\n return 'ClosePadlock';\n case 20:\n return 'NormalFrequency2m_10m';\n case 21:\n return 'SlowFrequency2h';\n case 22:\n return 'FastFrequency1m_5m';\n case 23:\n return 'SlowFrequency4h_4h';\n case 30:\n return 'Band850'; //Pendiente\n case 31:\n return 'Band900'; //Pendiente\n case 32:\n return 'Band1800'; //Pendiente\n case 33:\n return 'Band1900'; //Pendiente\n case 34:\n return 'Band850_1900GuatemalaNicaragua'; //Pendiente\n case 35:\n return 'Band900_1800CostaRica'; //Pendiente\n case 36:\n return 'Band900_1900'; //Pendiente\n case 50:\n return 'Screenshot';\n case 51:\n return 'StartVideoCameraRecording';\n case 52:\n return 'StopVideoRecording';\n case 53:\n return 'CaptureImageOutdoorCamera';\n case 54:\n return 'StartOutdoorVideoCameraRecording';\n case 55:\n return 'LiveVideo';\n case 56:\n return 'LiveVideoOutdoorCamera';\n case 57:\n return 'StopLiveVideo';\n case 60:\n return 'ActivateMonitoringVoice';\n case 61:\n return 'DisableMonitoringVoice';\n case 70:\n return 'ActivateLapReport';\n case 71:\n return 'TurnOffLapReporting';\n case 80:\n return 'EnableSecurity';\n case 81:\n return 'DisableSecurity';\n case 90:\n return 'ResetUnit';\n case 91:\n return 'ResetGPS';\n case 92:\n return 'FullTank';\n case 93:\n return 'FastFrequency30seg_5m';\n case 100:\n return 'ScriptResponse';\n case 1000:\n return 'SetMaximumSpeed';\n case 1001:\n return 'SetMaximumStopTime';\n case 1002:\n return 'ManualReport';\n case 1003:\n return 'MovementTransmissionFrequency';\n case 1004:\n return 'ParkedTransmissionFrequency';\n case 1005:\n return 'InstantGPSModuleChange';\n case 1006:\n return 'Message';\n case 1007:\n return 'AssignMonitoringUser';\n case 1008:\n return 'UnassignMonitoringUser';\n case 1009:\n return 'TransmissionFrequency';\n case 1010:\n return 'ActivateLongRoutes';\n case 1011:\n return 'DisableLongRoutes';\n case 1200:\n return 'GoToNextSection';\n }\n return 'GoToNextSection';\n};\n\nexport const getUnitMainStateIconAndSize = (mainStateId: number): Array => {\n switch (mainStateId) {\n case 1:\n return ['Alert-12', 30]; //Apagado\n case 2:\n return ['Moving', 30]; //En movimiento\n case 3:\n return ['Idle', 30]; //Ocioso\n case 4:\n return ['Stopped', 30]; //Detenido\n case 5:\n return ['Alert-11', 30]; //Encendido\n default:\n return ['XCircle', 17]; //Fuera de línea\n }\n};\n\nexport const getUnitCommunicationDiagnosticsIcon = (lastCommunicationDate) => {\n if (lastCommunicationDate) {\n const date1 = new Date();\n const date2 = new Date(lastCommunicationDate);\n const hoursDiff = Math.abs(date1.getTime() - date2.getTime()) / 36e5;\n if (hoursDiff <= 1 / 3) return 'CommunicationDiagnosticsGreen';\n else if (hoursDiff <= 24) return 'CommunicationDiagnosticsYellow';\n else return 'CommunicationDiagnosticsRed';\n } else return 'CommunicationDiagnosticsRed';\n};\n\nexport const getUnitHeadingIcon = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'ArrowUp';\n //Noreste\n else if (heading < 67.5) return 'ArrowUpRight';\n //Este\n else if (heading < 112.5) return 'ArrowRight';\n //Sureste\n else if (heading < 157.5) return 'ArrowDownRight';\n //Sur\n else if (heading < 202.5) return 'ArrowDown';\n //Suroeste\n else if (heading < 247.5) return 'ArrowDownLeft';\n //Oeste\n else if (heading < 292.5) return 'ArrowLeft';\n //Noroeste\n else if (heading < 337.5) return 'ArrowUpLeft';\n};\n\nexport const getUnitHeadingFormat = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'common.north';\n //Noreste\n else if (heading < 67.5) return 'common.northeast';\n //Este\n else if (heading < 112.5) return 'common.east';\n //Sureste\n else if (heading < 157.5) return 'common.southeast';\n //Sur\n else if (heading < 202.5) return 'common.south';\n //Suroeste\n else if (heading < 247.5) return 'common.southwest';\n //Oeste\n else if (heading < 292.5) return 'common.west';\n //Noroeste\n else return 'common.norwest';\n};\n\nexport const getDatesDifferenceString = (date1, date2, intl) => {\n const [endTime, startTime] =\n new Date(date1).getTime() > new Date(date2).getTime()\n ? [new Date(date1).getTime(), new Date(date2).getTime()]\n : [new Date(date2).getTime(), new Date(date1).getTime()];\n return getTimeDifferenceString(startTime, endTime, intl);\n};\n\nexport const getTimeDifferenceString = (startTime, endTime, intl) => {\n const days = Math.floor(Math.abs(endTime - startTime) / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60)\n );\n const minutes = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * (24 * days + hours))) / (1000 * 60)\n );\n const seconds = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * (24 * 60 * days + 60 * hours + minutes))) / 1000\n );\n return (\n (days > 0 ? `${days} ${intl.formatMessage({ id: 'common.days' })} ` : '') +\n (hours > 0 ? `${hours} ${intl.formatMessage({ id: 'common.hours' })} ` : '') +\n (minutes > 0 ? `${minutes} ${intl.formatMessage({ id: 'common.minutes' })} ` : '') +\n (seconds > 0 ? `${seconds} ${intl.formatMessage({ id: 'common.seconds' })} ` : '')\n );\n};\n\nexport const getIconByDatesDifference = (date1, date2) => {\n const endDate = new Date(date1).getTime();\n const startDate = new Date(date2).getTime();\n const minutes = Math.floor(Math.abs(endDate - startDate) / (1000 * 60));\n if (minutes >= 0 && minutes <= 5) {\n return 'Parking01';\n } else if (minutes > 5 && minutes <= 15) {\n return 'Parking02';\n } else if (minutes > 15 && minutes <= 30) {\n return 'Parking03';\n } else if (minutes > 30 && minutes <= 60) {\n return 'Parking04';\n } else if (minutes > 60 && minutes <= 60 * 4) {\n return 'Parking04';\n } else if (minutes > 60 * 4 && minutes <= 60 * 8) {\n return 'Parking06';\n } else if (minutes > 60 * 8) {\n return 'Parking07';\n }\n};\n\nexport const getUnitsCompleteData = (unit, liveUnit, state, selectedOrganizationId?, showUnitInMap?) => {\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 && showUnitInMap !== undefined\n ? selectedOrganizationId === unit.organizationId && showUnitInMap\n ? true\n : false\n : true\n };\n};\n\nexport const getSpecialFunctionParams = (\n specialFunctionId,\n Controller,\n control,\n initialValues,\n membershipFilters\n) => {\n switch (specialFunctionId) {\n case 2:\n return (\n <>\n \n \n (\n \n )}\n />\n \n \n \n );\n case 6:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction6.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n );\n case 9:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction9.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 11:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction11.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 12:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction12.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 14:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction14.description' })}\n
\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleDescription' })}\n
\n \n
\n \n \n

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

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

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

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

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

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

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

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

{job.startDateFormat}

\n

{job.dueDateFormat}

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

\n \n

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

\n \n \n )}\n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n
\n ));\n if (zoomLimitSet && !isStartClusteringAtSet) {\n setMarkersComponents([]);\n setIsStartClusteringAtSet(true);\n } else if (spiderfyProps && spiderfyProps.spiderfyActivated) {\n setMarkersComponents([]);\n spiderfyProps.setSpiderfyActivated(false);\n } else {\n setMarkersComponents(newMarkers);\n }\n };\n\n useDeepCompareEffect(() => {\n if (showLocations || useIsShownLocation) {\n displayMarkers();\n }\n }, [\n showLocations,\n isEditing,\n isAdding,\n locations?.map((location) => ({\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n startClusteringAt,\n isStartClusteringAtSet\n ]);\n\n return (\n <>\n {(showLocations || useIsShownLocation) && (\n \n {markersComponents.length > 0 ? markersComponents : null}\n \n )}\n\n {\n setShowLocationInformationSlidepanel(false);\n setSelectedLocation({});\n if (\n initialLocationInformationOpenId &&\n initialShowSlidingPanelLocationInformationOpen &&\n resetMapHome\n ) {\n resetMapHome();\n }\n }}\n isSlidepanelOpen={showLocationInformationSlidepanel}\n title={selectedLocation.locationName}\n location={selectedLocation}\n editingLocationParent={editingLocationParent}\n editingLocationParentRef={editingLocationParentRef}\n setEditingLocationParent={setEditingLocationParent}\n />\n \n );\n};\n\nMapLocations.defaultProps = {\n setMapPositionToLocationBounds: false,\n useSlidingpanelLocationInformation: true,\n locations: [],\n showLocations: false,\n useRectangleBounds: true,\n clusterMarkers: false,\n hideMarkersByZoom: true,\n isMapFullScreen: false,\n initialShowSlidingPanelLocationInformationOpen: false,\n usePopovers: true,\n initialLocationInformationOpenId: undefined,\n useIsShownLocation: false\n};\n\nexport default MapLocations;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect } from 'react';\nimport { useMap } from 'react-leaflet';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { getRouteBounds } from 'views/screens/Routes/utils';\nimport wkx from 'wkx';\n\nexport interface MapObjectsBoundsOptions {\n isSelectedSomething?: any;\n setMapPositionToGeofenceBounds?: boolean;\n setMapPositionToLocationBounds?: boolean;\n setMapPositionToUnitBounds?: boolean;\n setMapPositionToUnitPositionsBounds?: boolean;\n setMapPositionToRouteBounds?: boolean;\n geofences?: any[];\n locations?: any[];\n units?: any[];\n routes?: any[];\n rerenderMapObjectBounds?: date;\n paddingBottomRight?: any[];\n paddingTopLeft?: any[];\n}\n\nconst MapObjectsBounds = (props: MapObjectsBoundsOptions) => {\n const context = useLeafletContext();\n\n const {\n isSelectedSomething,\n setMapPositionToGeofenceBounds = false,\n setMapPositionToLocationBounds = false,\n setMapPositionToUnitBounds = false,\n setMapPositionToUnitPositionsBounds = false,\n setMapPositionToRouteBounds = false,\n geofences = [],\n locations = [],\n units = [],\n routes = [],\n rerenderMapObjectBounds,\n paddingBottomRight,\n paddingTopLeft\n } = props;\n const store = useSelector((state) => state);\n const map = useMap();\n\n const zoomMapToObjects = () => {\n var bounds = [];\n if (setMapPositionToLocationBounds) {\n locations\n .filter((location) => location?.latitude != null && location?.longitude != null)\n .map((location) => {\n bounds = [...bounds, L.latLng(location.latitude, location.longitude)];\n });\n }\n if (setMapPositionToGeofenceBounds) {\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n }\n if (setMapPositionToUnitBounds) {\n units\n .filter((unit) => unit?.latitude != null && unit?.longitude != null)\n .map((unit) => {\n bounds = [...bounds, L.latLng(unit.latitude, unit.longitude)];\n });\n }\n if (setMapPositionToUnitPositionsBounds) {\n units\n .filter((unit) => unit?.historicalPositions?.polyline)\n .map((unit) => {\n unit.historicalPositions.polyline.map((position) => {\n bounds = [...bounds, L.latLng(position.latitude, position.longitude)];\n });\n });\n }\n if (setMapPositionToRouteBounds) {\n routes.map((route) => {\n bounds = [...bounds, ...getRouteBounds(route)];\n });\n }\n if (\n (setMapPositionToGeofenceBounds ||\n setMapPositionToLocationBounds ||\n setMapPositionToUnitBounds ||\n setMapPositionToUnitPositionsBounds ||\n setMapPositionToRouteBounds) &&\n bounds.length > 0\n ) {\n map.flyToBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng)),\n {\n paddingBottomRight: paddingBottomRight ?? undefined,\n paddingTopLeft: paddingTopLeft ?? undefined,\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n };\n\n const WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n };\n useDeepCompareEffect(() => {\n if (\n isSelectedSomething == null ||\n Object.values(isSelectedSomething).filter((s) => s).length === 0\n )\n zoomMapToObjects();\n }, [\n isSelectedSomething,\n geofences,\n locations,\n setMapPositionToGeofenceBounds,\n rerenderMapObjectBounds\n ]);\n return null;\n};\n\nMapObjectsBounds.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n setMapPositionToLocationBounds: false,\n geofences: [],\n locations: []\n};\n\nexport default MapObjectsBounds;\n","'use strict';\n\n/**\n * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)\n *\n * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js)\n * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/)\n *\n * @module polyline\n */\n\nvar polyline = {};\n\nfunction encode(coordinate, factor) {\n coordinate = Math.round(coordinate * factor);\n coordinate <<= 1;\n if (coordinate < 0) {\n coordinate = ~coordinate;\n }\n var output = '';\n while (coordinate >= 0x20) {\n output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63);\n coordinate >>= 5;\n }\n output += String.fromCharCode(coordinate + 63);\n return output;\n}\n\n/**\n * Decodes to a [latitude, longitude] coordinates array.\n *\n * This is adapted from the implementation in Project-OSRM.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Array}\n *\n * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js\n */\npolyline.decode = function (str, precision) {\n var index = 0,\n lat = 0,\n lng = 0,\n coordinates = [],\n shift = 0,\n result = 0,\n byte = null,\n latitude_change,\n longitude_change,\n factor = Math.pow(10, precision || 5);\n\n // Coordinates have variable length when encoded, so just keep\n // track of whether we've hit the end of the string. In each\n // loop iteration, a single coordinate is decoded.\n while (index < str.length) {\n // Reset shift, result, and byte\n byte = null;\n shift = 0;\n result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n latitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n shift = result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n longitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n lat += latitude_change;\n lng += longitude_change;\n\n coordinates.push([lat / factor, lng / factor]);\n }\n\n return coordinates;\n};\n\n/**\n * Encodes the given [latitude, longitude] coordinates array.\n *\n * @param {Array.>} coordinates\n * @param {Number} precision\n * @returns {String}\n */\npolyline.encode = function (coordinates, precision) {\n if (!coordinates.length) {\n return '';\n }\n\n var factor = Math.pow(10, precision || 5),\n output = encode(coordinates[0][0], factor) + encode(coordinates[0][1], factor);\n\n for (var i = 1; i < coordinates.length; i++) {\n var a = coordinates[i],\n b = coordinates[i - 1];\n output += encode(a[0] - b[0], factor);\n output += encode(a[1] - b[1], factor);\n }\n\n return output;\n};\n\nfunction flipped(coords) {\n var flipped = [];\n for (var i = 0; i < coords.length; i++) {\n flipped.push(coords[i].slice().reverse());\n }\n return flipped;\n}\n\n/**\n * Encodes a GeoJSON LineString feature/geometry.\n *\n * @param {Object} geojson\n * @param {Number} precision\n * @returns {String}\n */\npolyline.fromGeoJSON = function (geojson, precision) {\n if (geojson && geojson.type === 'Feature') {\n geojson = geojson.geometry;\n }\n if (!geojson || geojson.type !== 'LineString') {\n throw new Error('Input must be a GeoJSON LineString');\n }\n return polyline.encode(flipped(geojson.coordinates), precision);\n};\n\n/**\n * Decodes to a GeoJSON LineString geometry.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Object}\n */\npolyline.toGeoJSON = function (str, precision) {\n var coords = polyline.decode(str, precision);\n return {\n type: 'LineString',\n coordinates: flipped(coords)\n };\n};\n\nexport default polyline;\n","import polyline from './poliyline';\n\nL.Routing = L.Routing || {};\nL.Routing.Google = L.Class.extend({\n options: {},\n initialize: function (options) {\n this.options = L.extend(this.options, {\n travelMode: google.maps.TravelMode.DRIVING,\n unitSystem: google.maps.UnitSystem.METRIC,\n provideRouteAlternatives: true\n });\n this.directionsService = new google.maps.DirectionsService();\n L.Util.setOptions(this, options);\n },\n _flatten: function (arrs) {\n var arr = [],\n i;\n for (i = 0; i < arrs.length; i++) arr = arr.concat(arrs[i]);\n return arr;\n },\n _decodePolyline: function (geometry) {\n var coords = polyline.decode(geometry, 5),\n latlngs = new Array(coords.length),\n i;\n for (i = 0; i < coords.length; i++) {\n latlngs[i] = new L.LatLng(coords[i][0], coords[i][1]);\n }\n\n return latlngs;\n },\n _maneuverToInstructionType: function (maneuver) {\n switch (maneuver) {\n case 'turn-right':\n return 'Right';\n case 'turn-slight-right':\n case 'ramp-right':\n case 'fork-right':\n return 'SlightRight';\n case 'turn-sharp-right':\n return 'SharpRight';\n case 'turn-left':\n return 'Left';\n case 'turn-slight-left':\n case 'ramp-left':\n case 'fork-left':\n return 'SlightLeft';\n case 'turn-sharp-left':\n return 'SharpLeft';\n case 'uturn-right':\n case 'uturn-left':\n return 'TurnAround';\n case 'roundabout-left':\n case 'roundabout-right':\n return 'Roundabout';\n default:\n return 'Straight';\n }\n },\n route: function (waypoints, callback, context, options) {\n var that = this;\n var directions = L.extend({}, this.options);\n if (options.geometryOnly) {\n directions.provideRouteAlternatives = false;\n }\n directions.origin = waypoints[0].latLng.lat + ',' + waypoints[0].latLng.lng;\n directions.destination =\n waypoints[waypoints.length - 1].latLng.lat + ',' + waypoints[waypoints.length - 1].latLng.lng;\n directions.waypoints = waypoints.slice(1, waypoints.length - 1).map(function (waypoint) {\n return {\n location: waypoint.latLng.lat + ',' + waypoint.latLng.lng,\n stopover: false\n };\n });\n\n this.directionsService.route(directions, function (result, status) {\n if (status == google.maps.DirectionsStatus.OK) {\n var r = result.routes.map(function (route) {\n var iroute = {},\n i,\n j,\n step;\n iroute.name = route.summary;\n iroute.summary = {\n totalDistance: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.distance.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n }),\n totalTime: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.duration.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n })\n };\n\n iroute.coordinates = [];\n var indices = [],\n indicesSecondary = [];\n\n var waypointIndices = [0];\n var nWaypoint = 1;\n\n for (i = 0; i < route.legs.length; i++) {\n indicesSecondary = [];\n var stepsPoints = [];\n\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n var points = that._decodePolyline(step.polyline.points);\n stepsPoints[j] = points.length;\n indicesSecondary.push(iroute.coordinates.length);\n iroute.coordinates = iroute.coordinates.concat(points);\n }\n indices.push(indicesSecondary);\n\n for (var j = 0; j < route.legs[i].via_waypoints.length; j++) {\n var si = route.legs[i].via_waypoint[j].step_index;\n var sp = route.legs[i].via_waypoint[j].step_interpolation;\n\n waypointIndices[nWaypoint] = indicesSecondary[si] + Math.floor(stepsPoints[si] * sp);\n nWaypoint++;\n }\n }\n\n iroute.inputWaypoints = waypoints || [];\n iroute.waypoints = iroute.actualWaypoints = waypoints;\n\n waypointIndices[nWaypoint] = iroute.coordinates.length - 1;\n iroute.waypointIndices = waypointIndices;\n\n if (!options.geometryOnly) {\n iroute.instructions = [];\n for (i = 0; i < route.legs.length; i++)\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n iroute.instructions.push({\n type: that._maneuverToInstructionType(step.maneuver),\n text: step.instructions.replace(/<(?:.|\\n)*?>/gm, ''),\n distance: step.distance.value,\n time: step.duration.value,\n index: indices[i][j],\n exit: null //instr.exit_number\n });\n }\n }\n return iroute;\n });\n try {\n callback.call(context || callback, null, r);\n } catch {}\n } else {\n try {\n callback.call(context, {\n status: status,\n message: result\n });\n } catch {}\n }\n });\n return this;\n }\n});\n\nL.Routing.google = function (options) {\n return new L.Routing.Google(options);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n\n// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-routing-machine';\nimport { useState } from 'react';\nimport { Edit2, MapPin, MoreVertical, Plus, Trash } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, InputGroupText, ListGroupItem, Media, Row, Tooltip } from 'reactstrap';\nimport { Controller } from 'react-hook-form';\nimport Icon from 'utility/icomoon';\nimport LocationsDropdownInput from 'views/formComponents/LocationDropDown';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport '../../utils/lrm-google';\n\ninterface Props {\n control: any;\n formValues: any;\n checkpoints: any[];\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n item: any;\n index: number;\n}\n\nconst RouteItem = (props: Props) => {\n const {\n control,\n formValues,\n checkpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n item,\n index\n } = props;\n const intl = useIntl();\n const [mouseEnter, setMouseEnter] = useState(false);\n const [tooltipAddOpen, setTooltipAddOpen] = useState(false);\n const [tooltipEditOpen, setTooltipEditOpen] = useState(false);\n const [tooltipEditOpen2, setTooltipEditOpen2] = useState(false);\n const [tooltipEditSegmentOpen, setTooltipEditSegmentOpen] = useState(false);\n const [tooltipDeleteOpen, setTooltipDeleteOpen] = useState(false);\n\n const locations = useSelector((state) => {\n const dropDownLocations = [...locationSelectors.getLocationsList(state), ...createdLocations];\n return (\n item.locationId && !dropDownLocations.map((loc) => loc.locationId).includes(item.locationId)\n ? [...dropDownLocations, item]\n : dropDownLocations\n ).map((loc) =>\n loc.locationId === item.locationId ? { ...loc, locationName: item.checkpointName } : loc\n );\n });\n\n return (\n setMouseEnter(true)}\n onMouseLeave={() => setMouseEnter(false)}\n >\n \n \n item.latitude != null &&\n item.longitude != null &&\n editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n }\n >\n {index === 0 ? (\n \n ) : index === checkpoints.length - 1 ? (\n \n ) : (\n \n )}\n {item.latitude != null && item.longitude != null && (\n setTooltipEditOpen2(!tooltipEditOpen2)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n })}\n \n )}\n \n \n (\n {\n value\n ? formValues['checkpointId-' + item.checkpointId.toString()] !== value &&\n (value?.googleLocation\n ? addGoogleLocationToCheckpoint(item.checkpointId, value)\n : addLocationToCheckpoint(item.checkpointId, value))\n : formValues['checkpointId-' + item.checkpointId.toString()] &&\n deleteLocationOfCheckpoint(item.checkpointId);\n }}\n isInModal={true}\n forceinitialvalue={item.locationId}\n options={locations.map((location) => ({\n value: location.locationId,\n label: location.locationName\n }))}\n appendcomponent={\n <>\n \n item.latitude != null && item.longitude != null\n ? editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n : addNewMarkerOnMap(index)\n }\n >\n {item.latitude != null && item.longitude != null ? (\n \n ) : (\n \n )}\n setTooltipEditOpen(!tooltipEditOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n item.latitude != null && item.longitude != null\n ? index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n : 'routes.selectPointOnMap'\n })}\n \n \n {checkpoints.length > 2 && (\n deleteCheckpoint(item.checkpointId)}\n >\n \n {/* setTooltipDeleteOpen(!tooltipDeleteOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.deleteOrigin'\n : index === checkpoints.length - 1\n ? 'routes.deleteDestination'\n : 'routes.deleteCheckpoint'\n })}\n */}\n \n )}\n \n }\n placeholder={intl.formatMessage({\n id: 'locations.locationPlaceholder'\n })}\n />\n )}\n />\n \n \n \n {index !== checkpoints.length - 1 && (\n <>\n editPath(index)}\n />\n setTooltipEditSegmentOpen(!tooltipEditSegmentOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.editSegment'\n })}\n \n \n )}\n
\n {mouseEnter && (\n <>\n addCheckpoint(index)} />\n setTooltipAddOpen(!tooltipAddOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.addNewCheckPoint'\n })}\n \n \n )}\n
\n
\n \n );\n};\n\nRouteItem.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default RouteItem;\n","import { useEffect, useState } from 'react';\nimport { Minus } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Media, Row } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MapsBasic from '../..';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\n\ninterface Props {\n routeId: any;\n route: any;\n title: any;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n isGeneratingRoute: boolean;\n alternateRoutes: any;\n setAlternateRoutes: any;\n membership: any;\n}\n\nconst SlidingPaneAddAlternateRoute = (props: Props) => {\n const {\n routeId,\n route,\n title,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes,\n membership\n } = props;\n\n const intl = useIntl();\n const dispatch = useDispatch();\n const { control, handleSubmit, watch } = useForm();\n const formValues = watch();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n const [showOriginalRoute, setShowOriginalRoute] = useState(true);\n const [showAlternateRoute, setShowAlternateRoute] = useState(true);\n\n const { routes, routesOnMap } = useSelector((state) => {\n const selectedRoute = routeSelectors.getRoute(state, formValues?.alternateRoute);\n return {\n routes: routeSelectors.getRoutesListByMembership(state, membership),\n routesOnMap: [\n !isGeneratingRoute && showOriginalRoute ? route : undefined,\n selectedRoute && showAlternateRoute ? { ...selectedRoute, pathColor: 'darkRed' } : undefined\n ].filter((route) => route)\n };\n });\n useEffect(() => {\n if (formValues?.alternateRoute) {\n dispatch(routeCheckpointsActions.startFetchingRouteCheckpoints(formValues?.alternateRoute));\n }\n }, [formValues?.alternateRoute]);\n\n useDeepCompareEffect(() => {\n setRerenderMap(new Date());\n }, [routesOnMap]);\n\n return (\n closeSlidingPane()}\n >\n 0\n ? {\n showRoutes: true,\n isMapFullScreen: false,\n useSlidingPaneRouteInformation: false,\n routes: routesOnMap\n }\n : {}\n }\n mapObjectsBoundsOptions={{\n setMapPositionToRouteBounds: true,\n routes: routesOnMap,\n rerenderMapObjectBounds: rerenderMap\n }}\n >\n \n \n (\n \n routeId !== route.routeId &&\n !alternateRoutes.map((ar) => ar.routeId).includes(route.routeId) &&\n (!formValues?.membership?.organizationId ||\n formValues.membership.organizationId === route.organizationId)\n )\n .map((route) => ({\n id: route.routeId,\n value: route.routeId,\n label: route.routeName\n }))}\n label={intl.formatMessage({\n id: 'routes.alternateRoute'\n })}\n placeholder={intl.formatMessage({ id: 'routes.routePlaceholder' })}\n />\n )}\n />\n \n \n
\n \n \n \n \n {intl.formatMessage({ id: 'routes.originalRoute' })}\n setShowOriginalRoute(!showOriginalRoute)}\n id={'originalRouteEyeButton'}\n />\n \n \n \n \n \n {intl.formatMessage({ id: 'routes.alternateRoute' })}\n {formValues?.alternateRoute && (\n setShowAlternateRoute(!showAlternateRoute)}\n id={'alternateRouteEyeButton'}\n />\n )}\n \n \n \n \n \n {hasButtonSubmit && (\n {\n setAlternateRoutes([\n ...alternateRoutes,\n ...routes.filter((route) => route.routeId === values.alternateRoute)\n ]);\n closeSlidingPane();\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane()}\n >\n \n \n )}\n \n \n \n );\n};\n\nSlidingPaneAddAlternateRoute.defaultProps = {\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneAddAlternateRoute;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { ReactSortable } from 'react-sortablejs';\nimport { Button, Col, FormGroup, Label, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport AddButton from 'views/components/AddButton';\nimport DeleteButton from 'views/components/DeleteButton';\nimport Table from 'views/components/Table';\nimport TabsWrapper from 'views/components/TabsWrapper';\nimport Toolbar from 'views/components/Toolbar';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport WebtrackCustomInput from 'views/formComponents/WebtrackCustomInput';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport RouteItem from '../RouteItem';\nimport SlidingPaneAddAlternateRoute from '../SlidingPaneAddAlternateRoute';\n\ninterface Props {\n routeId: any;\n width: any;\n title: any;\n subtitle: any;\n control: any;\n handleSubmit: any;\n formValues: any;\n errors: any;\n initialTab: number;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n inputs: any[];\n isLoading: boolean;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n action: any;\n isGeneratingRoute: any;\n distanceRoute: any;\n paths: any[];\n checkpoints: any[];\n setCheckpoints: any;\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n alternateRoutes: any;\n setAlternateRoutes: any;\n}\n\nconst columns = [\n {\n fieldName: 'routeId',\n headerText: 'common.id'\n },\n {\n fieldName: 'routeName',\n headerText: 'routes.name'\n },\n {\n fieldName: 'abbreviation',\n headerText: 'routes.abbreviation'\n },\n {\n fieldName: 'distanceFormat',\n headerText: 'routes.distance',\n metric: 'distance',\n type: 'number',\n formatColumn: 'N2'\n },\n {\n fieldName: 'sourceName',\n headerText: 'routes.origin'\n },\n {\n fieldName: 'targetName',\n headerText: 'routes.destination'\n },\n {\n fieldName: 'checkPoints',\n headerText: 'routes.checkpoints'\n }\n];\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n routeId,\n width,\n title,\n subtitle,\n confirmText,\n initialTab,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n isGeneratingRoute,\n handleSubmit,\n control,\n formValues,\n errors,\n isLoading,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n alternateRoutes,\n setAlternateRoutes\n } = props;\n\n const intl = useIntl();\n const [selectedTab, setSelectedTab] = useState(initialTab);\n const [selected, changeSelected] = useState([]);\n const [isOpenSlidingPaneAddAlternateRoute, setSlidingPaneAddAlternateRoute] =\n useState(false);\n\n const { routes, authSystems } = useSelector((state) => ({\n routes: routeSelectors.getRoutesList(state),\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n useDeepCompareEffect(() => {\n const errorsKeys = Object.keys(errors);\n if (errorsKeys.length > 0) {\n if (\n selectedTab === 0 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 1 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else setSelectedTab(0);\n }\n }, [Object.keys(errors)]);\n\n const closeSlidingPane = (isSaving) => {\n closeSlidingPaneForm(isSaving);\n };\n\n return (\n <>\n closeSlidingPane(false)}\n >\n {\n setSelectedTab(tabIndex);\n }}\n useCardContent={false}\n tabs={[\n {\n tabId: 0,\n title: 'routes.generalInformation'\n },\n {\n tabId: 1,\n icon: 'Route',\n title: 'routes.routeDesign'\n },\n {\n tabId: 2,\n icon: 'Shuffle',\n title: 'routes.alternateRoutes'\n }\n ]}\n tabsContent={[\n {\n tabId: 0,\n component: (\n \n {inputs.map((input, i) => (\n \n {input.subtitle && (\n
\n {input.subtitle.split('\\n').map((i, key) => {\n return key === 0 ? (\n {i}\n ) : (\n \n
\n {i}\n
\n );\n })}\n
\n )}\n \n \n ))}\n
\n )\n },\n {\n tabId: 1,\n component: (\n \n {isLoading ? (\n \n
\n
\n \n
\n
\n \n ) : (\n \n \n
\n \n \n
\n
\n \n )}\n \n \n {checkpoints.map((item, index) => (\n \n ))}\n \n \n
\n )\n },\n {\n tabId: 2,\n component: (\n <>\n setSlidingPaneAddAlternateRoute(true)}\n />,\n {\n setAlternateRoutes(\n alternateRoutes.filter((route) => route.routeId !== selected[0].routeId)\n );\n }}\n />\n ]}\n />\n \n \n )\n }\n ]}\n />\n \n \n {hasButtonSubmit && (\n {\n action(values);\n closeSlidingPane(true);\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane(false)}\n >\n \n \n )}\n \n \n \n \n i === 0\n ? { ...chk, segmentPath: [] }\n : {\n ...chk,\n segmentPath: paths[i - 1]?.polyline?.getLatLngs()?.map((latlng) => ({\n latitude: latlng.lat,\n longitude: latlng.lng\n }))\n }\n )\n }}\n title={intl.formatMessage({ id: 'routes.alternateRoute' })}\n isGeneratingRoute={isGeneratingRoute}\n alternateRoutes={alternateRoutes}\n setAlternateRoutes={setAlternateRoutes}\n membership={formValues?.membership}\n isOpenSlidingPane={isOpenSlidingPaneAddAlternateRoute}\n closeSlidingPane={() => setSlidingPaneAddAlternateRoute(false)}\n confirmText={intl.formatMessage({ id: 'routes.addAlternateRoute' })}\n />\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport L, { polyline } from 'leaflet';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport React, { useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FormGroup, Label } from 'reactstrap';\nimport simplify from 'simplify-geometry';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n getIcon,\n getMarker,\n globalNotificationFrecs,\n routesCheckpointsIcons,\n routesEvents,\n startTimeWindow\n} from 'views/screens/Routes/utils';\nimport { geocodeByLatLng } from 'react-google-places-autocomplete';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport useGetAlternateRoutes from 'views/screens/Routes/hooks/useGetAlternateRoutes';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst getNullIfNaN = (data: unknown): null | number => {\n const converted = Number(data);\n\n return isNaN(converted) ? null : converted;\n};\n\nexport const useMapRouteEdit = (props: MapRouteEditOptions) => {\n const { route, routePaths, routeCheckpoints, setEditingRouteParent } = props;\n const { control, handleSubmit, watch, formState } = useForm();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n //States to create new locations\n const isGeneratingRouteRef = React.useRef(false);\n const useCenterRoute = React.useRef(false);\n const [isStartingEdit, setIsStartingEdit] = useState(false);\n const [distanceRoute, setDistanceRoute] = useState({ distance: 0 });\n const counterGenerateRouteRef = React.useRef(0);\n const [checkpoints, setCheckpoints] = useState([]);\n const checkpointsRef = React.useRef(checkpoints);\n const [paths, setPaths] = useState(null);\n const pathsRef = React.useRef(paths);\n const [drawingRouteCheckpoint, setDrawingRouteCheckpoint] = useState(null);\n const drawingRouteCheckpointRef = React.useRef(drawingRouteCheckpoint);\n const [createdLocations, setCreatedLocations] = useState([]);\n const createdLocationsRef = React.useRef(createdLocations);\n const [isOpenSlidingPaneEditRoute, setOpenSlidingPaneEditRoute] = useState(false);\n const [widthSlidingPaneEditRoute, setWidthSlidingPaneEditRoute] = useState('50rem');\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const [slidingPaneEditRoutesProps, setSlidingPaneEditRouteProps] = useState({ inputs: [] });\n const [slidingPaneFormProps, setSlidingPaneFormProps] = useState({ inputs: [] });\n const slidingPaneFormPropsRef = React.useRef(slidingPaneFormProps);\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = React.useRef(editingRoute);\n const [copyPolylineLatLngs, setCopyPolylineLatLngs] = useState({});\n const copyPolylineLatLngsRef = React.useRef(copyPolylineLatLngs);\n const [alternateRoutes, setAlternateRoutes] = useState([]);\n const alternateRoutesRef = React.useRef(alternateRoutes);\n\n const formValues = watch();\n const { locations, parsers, authSystems } = useSelector((state) => ({\n locations: locationSelectors.getLocationsList(state),\n authSystems: authSelectors.getAuthSystems(state),\n parsers: authSelectors.getParsers(state)\n }));\n\n const { data, isFetching } = useGetAlternateRoutes(editingRoute?.routeId);\n\n useEffect(() => {\n if (!isFetching) setAlternateRoutes(data);\n }, [isFetching]);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n if (editingRoute != undefined) {\n editRoute();\n }\n }, [editingRoute]);\n\n //Se actualiza la distancia Format\n useEffect(() => {\n setDistanceRoute({\n ...distanceRoute,\n distanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(distanceRoute.distance)\n .toFixed(2)\n });\n }, [distanceRoute?.distance]);\n\n useEffect(() => {\n deleteObjectsOnMap();\n if (routePaths.length > 0) {\n setIsStartingEdit(true);\n const newLocations = routeCheckpoints\n .filter((checkpoint) => !checkpoint.locationId)\n .map((checkpoint) => ({\n locationId: uuidv4(),\n checkpointId: checkpoint.checkpointId,\n locationName: checkpoint.checkpointName,\n longitude: checkpoint.longitude,\n latitude: checkpoint.latitude,\n radius: checkpoint.radius\n }));\n setCreatedLocations(newLocations);\n setCheckpoints(\n routeCheckpoints.map((checkpoint) => {\n return checkpoint.locationId\n ? checkpoint\n : {\n ...checkpoint,\n locationId: newLocations.filter(\n (loc) => loc.checkpointId === checkpoint.checkpointId\n )[0].locationId\n };\n })\n );\n setPaths(\n routePaths.map((path, i) => {\n const polyline = path.polyline;\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n return {\n ...path,\n secondsSegmentStopTime:\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? path?.segmentStopTime * 60\n : undefined,\n secondsSegmentTripMinTime: path?.segmentTripMinTime,\n secondsSegmentTripMaxTime: path?.segmentTripMaxTime,\n polyline\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance: route.distance });\n } else {\n setCreatedLocations([]);\n setCheckpoints(routeCheckpoints);\n setPaths(routePaths);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n setSlidingPaneEditRouteProps({ inputs: [] });\n setEditingRoute(route);\n }, [route]);\n\n useDeepCompareEffect(() => {\n if (!isGeneratingRouteRef.current) {\n const lastCheckpointsRef = checkpointsRef.current;\n let addedLocation = null;\n if (\n !(\n lastCheckpointsRef.length == checkpoints.length &&\n lastCheckpointsRef.every((element, index) => {\n //Si se agrego o cambio una referencia se guarda la informaccion del checkpoint\n if (\n !checkpoints\n .filter((chk) => chk.locationId)\n .map((chk) => chk.locationId)\n .includes(element.locationId)\n )\n addedLocation = [\n element.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n ];\n\n return (\n element.latitude === checkpoints[index].latitude &&\n element.longitude === checkpoints[index].longitude\n );\n })\n )\n ) {\n //Se eliminan los markers antiguos\n if (!isStartingEdit) deleteObjectsOnMap();\n //Se actualizan los markers\n updateMarkersOnMap();\n //Si se agrego o cambio una referencia se procede a editar el checkpoint\n if (addedLocation) editCheckpoint(...addedLocation);\n //Se actualizan los paths\n if (!isStartingEdit) updatePathsOnMap();\n else setIsStartingEdit(false);\n }\n }\n }, [checkpoints, isGeneratingRouteRef.current]);\n\n useEffect(() => {\n pathsRef.current = paths;\n //Se centra en el mapa\n if (!isOpenSlidingPaneForm) centerRoute();\n useCenterRoute.current = true;\n }, [paths]);\n\n useEffect(() => {\n slidingPaneFormPropsRef.current = slidingPaneFormProps;\n }, [slidingPaneFormProps]);\n\n useEffect(() => {\n copyPolylineLatLngsRef.current = copyPolylineLatLngs;\n }, [copyPolylineLatLngs]);\n\n useDeepCompareEffect(() => {\n createdLocationsRef.current = createdLocations;\n }, [createdLocations]);\n\n useEffect(() => {\n drawingRouteCheckpointRef.current = drawingRouteCheckpoint;\n }, [drawingRouteCheckpoint]);\n\n useEffect(() => {\n alternateRoutesRef.current = alternateRoutes;\n }, [alternateRoutes]);\n\n const refreshTooltips = (type) => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({\n id:\n type === 1\n ? 'routes.addingOrigin'\n : type === 3\n ? 'routes.addingDestination'\n : 'routes.addingCheckpoint'\n })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n };\n\n useEffect(() => {\n map.on('pm:create', (e) => {\n if (e.shape == 'Marker' && drawingRouteCheckpointRef.current) {\n setWidthSlidingPaneEditRoute('50rem');\n const { marker } = e;\n const radius = 150;\n const { lat, lng } = marker.getLatLng();\n if (lat && lng) {\n geocodeByLatLng({ lat, lng })\n .then((results) => {\n const routePlace = results.filter((r) => r.types.includes('route'))[0];\n const location = {\n locationId: uuidv4(),\n locationName: routePlace\n ? routePlace.formatted_address\n : results[0]?.formatted_address,\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n })\n .catch(() => {\n const location = {\n locationId: uuidv4(),\n locationName: intl.formatMessage({ id: 'routes.newCheckPoint' }),\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n });\n }\n }\n });\n }, []);\n\n const deleteObjectsOnMap = () => {\n checkpointsRef.current\n .filter((checkpoint) => checkpoint.marker)\n .map((checkpoint) => {\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n if (checkpoint.rectangle) map.removeLayer(checkpoint.rectangle);\n });\n if (paths?.length > 0)\n paths.map((path) => {\n if (path.polyline) map.removeLayer(path.polyline);\n });\n };\n\n const addNewMarkerOnMap = (index) => {\n setDrawingRouteCheckpoint(checkpoints[index]);\n setWidthSlidingPaneEditRoute('0rem');\n refreshTooltips(index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2);\n map.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: getIcon(\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index,\n checkpoints[index].iconId\n )\n }\n });\n };\n\n const updateMarkersOnMap = () => {\n checkpointsRef.current = checkpoints.map((checkpoint, i) => {\n if (checkpoint.latitude != null && checkpoint.longitude != null) {\n const marker = getMarker(\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i,\n checkpoint.iconId === 0 ? undefined : checkpoint.iconId,\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n );\n marker.addTo(map);\n marker.on('pm:dragend', (e) => {\n const { lat, lng } = e.target.getLatLng();\n useCenterRoute.current = false;\n setCheckpoints(\n checkpointsRef.current.map((chkpt) =>\n chkpt.checkpointId === checkpoint.checkpointId\n ? {\n ...chkpt,\n longitude: lng,\n latitude: lat\n }\n : chkpt\n )\n );\n });\n marker.on('click', (e) => {\n setTimeout(() => {\n if (!isGeneratingRouteRef.current)\n editCheckpoint(\n checkpoint.checkpointId,\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i\n );\n }, 100);\n });\n marker.pm.enable({});\n\n const rectangle = L.rectangle(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius),\n { color: primary }\n );\n rectangle.addTo(map);\n\n return {\n ...checkpoint,\n //Se actualizan los markers\n marker,\n rectangle\n };\n } else return checkpoint;\n });\n\n //Se centra en el mapa\n centerRoute();\n\n if (checkpointsRef.current.filter((checkpoint) => checkpoint.marker).length > 1)\n setCheckpoints(checkpointsRef.current);\n };\n\n const updatePathsOnMap = () => {\n const checkpointsWithLatLng = checkpointsRef.current.filter((checkpoint) => checkpoint.marker);\n\n if (checkpointsWithLatLng.length > 1) {\n //Se crea el control de las rutas\n const control = L.Routing.control({\n waypoints: checkpointsWithLatLng.map((checkpoint) =>\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n ),\n router:\n counterGenerateRouteRef.current >= 4\n ? L.Routing.google()\n : new L.Routing.OSRMv1({ serviceUrl: 'https://osrm.webtrack.online/route/v1' })\n });\n\n control.on('routingstart', () => {\n isGeneratingRouteRef.current = true;\n });\n\n control.on('routingerror', (error) => {\n if (error.error.status !== -3) {\n counterGenerateRouteRef.current = counterGenerateRouteRef.current + 1;\n updatePathsOnMap();\n }\n });\n\n control.on('routesfound', (waypoints) => {\n isGeneratingRouteRef.current = false;\n if (waypoints?.routes[0].coordinates) {\n const coordinates = waypoints?.routes[0].coordinates;\n const waypointIndices = waypoints?.routes[0].waypointIndices;\n const paths = waypointIndices\n .map((index, i) =>\n i !== waypointIndices.length - 1\n ? simplify(\n [\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].longitude\n ],\n ...coordinates\n .slice(index, waypointIndices[i + 1] + 1)\n .map((latLng) => [latLng.lat, latLng.lng]),\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].longitude\n ]\n ],\n 0.0005 //55.5m\n ).map((point) => L.latLng(point[0], point[1]))\n : undefined\n )\n .filter((path) => path);\n\n //Se actualizan los paths\n var distance = 0;\n setPaths(\n paths.map((path, i) => {\n const polyline = L.polyline(path, { color: 'blue' });\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n const segmentDistance = polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n polyline,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n counterGenerateRouteRef.current = 0;\n });\n\n //Se genera la ruta\n control.route();\n } else {\n setPaths([]);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n };\n\n const updateDistances = () => {\n if (pathsRef.current?.length > 0) {\n var distance = 0;\n setPaths(\n pathsRef.current.map((path) => {\n const segmentDistance = path.polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(path.polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n ...path,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n };\n\n const centerRoute = () => {\n if (useCenterRoute.current && checkpointsRef.current.filter((chk) => chk.marker).length > 0) {\n var latlngPolylines = [];\n if (pathsRef.current?.length > 0)\n pathsRef.current.map((path) =>\n path.polyline.getLatLngs().map((latLng) => latlngPolylines.push([latLng.lat, latLng.lng]))\n );\n\n const bounds = [\n ...checkpointsRef.current\n .filter((chk) => chk.marker)\n .map((chk) => [chk.latitude, chk.longitude]),\n ...latlngPolylines\n ];\n\n map.flyToBounds(bounds, {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n }\n };\n\n const editRoute = () => {\n setOpenSlidingPaneEditRoute(false);\n setOpenSlidingPaneForm(false);\n setSlidingPaneEditRouteProps({\n title:\n editingRouteRef.current?.routeId && editingRouteRef.current?.routeName\n ? editingRouteRef.current?.routeName\n : intl.formatMessage({ id: 'routes.new' }),\n inputs: [\n {\n type: 'text',\n name: 'routeName',\n required: true,\n initialValue: editingRouteRef.current?.routeName || undefined,\n label: intl.formatMessage({ id: 'routes.name' })\n },\n {\n type: 'customersDropdown',\n name: 'customerId',\n initialValue: editingRouteRef.current?.customerId || undefined,\n isClearable: true,\n customersFilters: {}\n },\n {\n type: 'duration',\n name: 'completionTime',\n initialValue: editingRouteRef.current?.completionTimeByUser || undefined,\n label: intl.formatMessage({ id: 'routes.completionTime' })\n },\n {\n type: 'select',\n name: 'startTimeWindow',\n required: true,\n initialValue: editingRouteRef.current?.startTimeWindow || '0',\n options: startTimeWindow.map((option) => ({\n ...option,\n label: option.label + intl.formatMessage({ id: 'routes.minutes' })\n })),\n label: intl.formatMessage({ id: 'routes.startTimeWindow' })\n },\n {\n type: 'number',\n name: 'speedLimitFormat',\n initialValue: editingRouteRef.current?.speedLimitFormat || undefined,\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'text',\n name: 'abbreviation',\n required: true,\n initialValue: editingRouteRef.current?.abbreviation || undefined,\n label: intl.formatMessage({ id: 'routes.abbreviation' })\n },\n {\n type: 'text',\n name: 'privateCode',\n initialValue: editingRouteRef.current?.privateCode || undefined,\n label: intl.formatMessage({ id: 'routes.privateCode' })\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n useUserDivision: true,\n useUserSubdivision: true,\n setUserOrganization: true,\n setUserDivision: true,\n setUserSubdivision: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: {\n organizationId: editingRouteRef.current?.organizationId || undefined,\n divisionId: editingRouteRef.current?.divisionId || undefined,\n subdivisionId: editingRouteRef.current?.subdivisionId || undefined\n }\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.globalNotificationEmails || undefined,\n name: 'globalNotificationEmails',\n label: intl.formatMessage({ id: 'routes.globalNotificationEmails' })\n },\n {\n type: 'select',\n name: 'globalNotificationFrec',\n initialValue: editingRouteRef.current?.globalNotificationFrec || undefined,\n options: [\n {\n value: '0',\n label: intl.formatMessage({ id: 'routes.inactive' }),\n label_intl: intl.formatMessage({ id: 'routes.inactive' })\n },\n ...globalNotificationFrecs.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))\n ],\n label: intl.formatMessage({ id: 'routes.globalNotificationFrec' }),\n isClearable: true\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.notificationEmails || undefined,\n name: 'notificationEmails',\n initialFetch: false,\n label: intl.formatMessage({ id: 'routes.notificationEmails' })\n },\n {\n type: 'multiSelect',\n name: 'notificationEvents',\n initialValue: editingRouteRef.current?.notificationEvents || undefined,\n options: routesEvents.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n })),\n label: intl.formatMessage({ id: 'routes.notificationEvents' })\n }\n ],\n action: (values) => {\n const action = editingRouteRef.current.routeId ? 'startEditingRoute' : 'startAddingRoute';\n var distances = [];\n var index = -1;\n var lastPointLatLngs = null;\n var distance = 0;\n dispatch(\n routeActions[action]({\n route: {\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n ...values,\n ...values.membership,\n speedLimit: parsers.convertAuthUserSpeedSystemToKilometersPerHour(\n values.speedLimitFormat\n ),\n globalNotificationFrec: values?.globalNotificationFrec || '0',\n completionTimeByUser: values?.completionTime?.totalSeconds || 0,\n path: pathsRef.current\n .map((path, i) => {\n var segmentDistance = 0;\n return path.polyline\n .getLatLngs()\n .map((point, j) => {\n const pointDistance = lastPointLatLngs\n ? map.distance(lastPointLatLngs, point)\n : 0;\n lastPointLatLngs = point;\n segmentDistance = j === 0 ? 0 : segmentDistance + pointDistance;\n distance = distance + pointDistance;\n index = index + 1;\n if (path.polyline.getLatLngs().length - 1 === j)\n distances.push(segmentDistance);\n return (\n index.toString() +\n ',' +\n (i + 1).toString() +\n ',' +\n point.lat.toString() +\n ',' +\n point.lng.toString() +\n ',' +\n distance\n );\n })\n .join(';');\n })\n .join(';'),\n distance: distances.reduce((acc, distance) => acc + distance, 0),\n alternateRoutes: alternateRoutesRef.current.map((ar) => ar.routeId).join(',')\n },\n checkpoints: checkpointsRef.current.map((checkpoint, i) => ({\n checkpointId: i,\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n locationId: Number.isInteger(checkpoint.locationId) ? checkpoint.locationId : null,\n checkpointName: checkpoint.checkpointName,\n latitude: checkpoint.latitude,\n longitude: checkpoint.longitude,\n radius: checkpoint.radius,\n correlative: i,\n distance:\n i === 0 ? 0 : distances.slice(0, i).reduce((acc, distance) => acc + distance, 0),\n iconId: checkpoint.iconId,\n stopType: checkpoint.stopType,\n stopMinTime: checkpoint.stopMinTime ?? null,\n stopMaxTime: checkpoint.stopMaxTime ?? null,\n segmentDistance: i === 0 ? 0 : getNullIfNaN(distances[i - 1]),\n segmentSpeedLimit:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.segmentSpeedLimit),\n segmentStopAuthorized:\n i === 0 ? null : pathsRef.current[i - 1]?.segmentStopAuthorized,\n secondsSegmentStopTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentStopTime),\n secondsSegmentTripMinTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMinTime),\n secondsSegmentTripMaxTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMaxTime),\n notificationEmails: checkpoint.notificationEmails\n }))\n })\n );\n }\n });\n setOpenSlidingPaneEditRoute(true);\n };\n\n const addCheckpoint = (index) => {\n setCheckpoints([\n ...checkpoints.slice(0, index + 1),\n { checkpointId: uuidv4() },\n ...checkpoints.slice(index + 1)\n ]);\n };\n\n const editCheckpoint = (checkpointId, type, index) => {\n const checkpoint = checkpointsRef.current.filter(\n (checkpoint) => checkpoint.checkpointId === checkpointId\n )[0];\n if (!(checkpoint.latitude != null && checkpoint.longitude != null && checkpoint.marker))\n return null;\n map.flyToBounds([[checkpoint.latitude, checkpoint.longitude]], {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n const inputCheckpoint =\n type === 2\n ? [\n {\n type: 'select',\n name: 'iconId',\n initialValue: checkpoint.iconId ?? 1,\n options: routesCheckpointsIcons.map((op) => ({\n ...op,\n label: intl.formatMessage({ id: op.label })\n })),\n label: intl.formatMessage({ id: 'routes.checkpointIcon' }),\n additionalonchangefunction: (value) => {\n if (!value && checkpoint.iconId)\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n else checkpoint.marker.setIcon(getIcon(type, index, value));\n }\n },\n {\n type: 'contactsDropdown',\n name: 'notificationEmails',\n initialValue: checkpoint.notificationEmails || undefined,\n label: intl.formatMessage({ id: 'routes.notify' })\n },\n {\n type: 'switch',\n name: 'stopType',\n initialValue: checkpoint.stopType || false,\n label: intl.formatMessage({ id: 'routes.stopType' }),\n additionalonchangefunction: (value) => {\n if (slidingPaneFormPropsRef?.current?.inputs)\n setSlidingPaneFormProps({\n ...slidingPaneFormPropsRef.current,\n inputs: value\n ? [\n ...slidingPaneFormPropsRef.current.inputs,\n {\n type: 'duration',\n name: 'stopMinTime',\n initialValue: checkpoint.stopMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMinTime' })\n },\n {\n type: 'duration',\n name: 'stopMaxTime',\n initialValue: checkpoint.stopMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMaxTime' })\n }\n ]\n : slidingPaneFormPropsRef.current.inputs.slice(0, 5)\n });\n }\n }\n ]\n : [];\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneFormProps({\n title:\n type === 1\n ? intl.formatMessage({ id: 'routes.editOrigin' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.editCheckPoint' })\n : intl.formatMessage({ id: 'routes.editDestination' }),\n inputs: [\n {\n type: 'text',\n name: 'checkpointName',\n required: true,\n initialValue: checkpoint.checkpointName || undefined,\n label:\n type === 1\n ? intl.formatMessage({ id: 'routes.originName' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.checkpointName' })\n : intl.formatMessage({ id: 'routes.destinationName' })\n },\n {\n type: 'number',\n name: 'radiusFormat',\n initialValue: checkpoint.radiusFormat || undefined,\n min: parsers.convertMetersToAuthUserDistance2System(10),\n max: parsers.convertMetersToAuthUserDistance2System(5000),\n metric: 'distance2',\n label: intl.formatMessage({ id: 'routes.radius' }),\n additionalonchangefunction: (value) =>\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(\n checkpoint.latitude,\n checkpoint.longitude,\n parsers.convertAuthUserDistance2SystemToMeters(value)\n )\n )\n },\n ...inputCheckpoint\n ],\n action: (values) => {\n const radius = parsers.convertAuthUserDistance2SystemToMeters(values.radiusFormat);\n checkpoint.marker.setIcon(getIcon(type, index, values.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, radius)\n );\n checkpointsRef.current = checkpointsRef.current.map((chk) =>\n chk.checkpointId === checkpoint.checkpointId\n ? {\n ...chk,\n ...values,\n radius,\n stopMinTime: values.stopType ? values.stopMinTime?.totalSeconds : undefined,\n stopMaxTime: values.stopType ? values.stopMaxTime?.totalSeconds : undefined\n }\n : chk\n );\n setCheckpoints(checkpointsRef.current);\n },\n closeSlidingPaneForm: () => {\n centerRoute();\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius)\n );\n setOpenSlidingPaneForm(false);\n }\n });\n setOpenSlidingPaneForm(true);\n };\n\n const deleteCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId) {\n deleteObjectsOnMap();\n setCheckpoints(\n checkpoints.filter((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId && checkpoint.marker)\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n return checkpoint.checkpointId !== checkpointId;\n })\n );\n }\n };\n const editPath = (index) => {\n if (pathsRef.current) {\n const path = pathsRef.current[index];\n if (path) {\n //Si se estaba editando un tramo se resetea su informacion en el mapa\n if (copyPolylineLatLngsRef.current?.index != undefined) {\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setLatLngs(\n copyPolylineLatLngsRef.current.latLngs\n );\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.pm.disable();\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setStyle({\n color: 'blue'\n });\n }\n setCopyPolylineLatLngs({\n latLngs: pathsRef.current[index].polyline.getLatLngs(),\n index: index\n });\n const type = index === pathsRef.current.length - 1 ? 2 : 1;\n path.polyline.pm.enable({ draggable: true });\n path.polyline.setStyle({ color: 'red' });\n map.flyToBounds(path.polyline.getBounds(), {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate:\n map.getBoundsZoom(path.polyline.getBounds(), undefined, [700, 70]) !== map.getZoom()\n });\n setOpenSlidingPaneForm(false);\n setEditPathInputs(\n {\n ...path,\n segmentSpeedLimitFormat: parsers\n .convertKilometersPerHourToAuthUserSpeedSystem(path.segmentSpeedLimit)\n .toFixed(0),\n segmentDistanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(path.segmentDistance)\n .toFixed(2)\n },\n index,\n type\n );\n setOpenSlidingPaneForm(true);\n }\n }\n };\n\n const setEditPathInputs = (path, index, type) => {\n setSlidingPaneFormProps({\n title: `${intl.formatMessage({ id: 'routes.editSegment' })} (${\n checkpointsRef.current[index]?.checkpointName\n } - ${checkpointsRef.current[index + 1]?.checkpointName})`,\n inputs: [\n {\n type: 'component',\n component: (\n \n
\n \n \n
\n
\n )\n },\n {\n type: 'number',\n name: 'segmentSpeedLimitFormat',\n initialValue: path?.segmentSpeedLimitFormat || undefined,\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentSpeedLimitFormat: value }, index, type);\n },\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'duration',\n name: 'segmentTripMinTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMinTime: value }, index, type);\n },\n initialValue: path?.segmentTripMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMinTime' })\n },\n {\n type: 'duration',\n name: 'segmentTripMaxTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMaxTime: value }, index, type);\n },\n initialValue: path?.segmentTripMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMaxTime' })\n },\n {\n type: 'switch',\n name: 'segmentStopAuthorized',\n initialValue:\n path?.segmentStopAuthorized != undefined ? path?.segmentStopAuthorized : true,\n label: intl.formatMessage({ id: 'routes.segmentStopAuthorized' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n {\n ...path,\n segmentStopAuthorized: value,\n segmentWithoutStopTime: undefined,\n segmentStopTime: undefined\n },\n index,\n type\n );\n }\n },\n path?.segmentStopAuthorized\n ? {\n type: 'switch',\n name: 'segmentWithoutStopTime',\n initialValue:\n path?.segmentWithoutStopTime != undefined ? path?.segmentWithoutStopTime : true,\n label: intl.formatMessage({ id: 'routes.segmentWithoutStopTime' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n { ...path, segmentWithoutStopTime: value, segmentStopTime: undefined },\n index,\n type\n );\n }\n }\n : undefined,\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? {\n type: 'number',\n name: 'segmentStopTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentStopTime: value }, index, type);\n },\n initialValue: path?.segmentStopTime || undefined,\n appendcomponent: intl.formatMessage({ id: 'common.minutes' }),\n allowDecimals: true,\n label: intl.formatMessage({ id: 'routes.segmentStopTime' })\n }\n : undefined\n ],\n action: (values) => {\n updateDistances();\n setPaths(\n pathsRef.current.map((path, i) =>\n i === index\n ? {\n ...path,\n ...values,\n secondsSegmentStopTime:\n values?.segmentStopAuthorized &&\n [false, 0].includes(values?.segmentWithoutStopTime)\n ? values?.segmentStopTime * 60\n : undefined,\n segmentWithoutStopTime:\n values?.segmentStopTime > 0 ? values?.segmentWithoutStopTime : true,\n secondsSegmentTripMinTime: values?.segmentTripMinTime?.totalSeconds || undefined,\n secondsSegmentTripMaxTime: values?.segmentTripMaxTime?.totalSeconds || undefined,\n segmentSpeedLimit: parsers\n .convertAuthUserSpeedSystemToKilometersPerHour(values.segmentSpeedLimitFormat)\n .toFixed(0)\n }\n : path\n )\n );\n },\n onClose: () => {\n pathsRef.current[index].polyline.setLatLngs(copyPolylineLatLngsRef.current.latLngs);\n },\n closeSlidingPaneForm: () => {\n pathsRef.current[index].polyline.pm.disable();\n pathsRef.current[index].polyline.setStyle({ color: 'blue' });\n updateDistances();\n centerRoute();\n setOpenSlidingPaneForm(false);\n setCopyPolylineLatLngs({});\n }\n });\n };\n\n const addLocationToCheckpoint = (checkpointId, locationId) => {\n const location = locations.filter((location) => location.locationId === locationId)[0];\n if (location)\n setCheckpoints(\n checkpoints.map((checkpoint) =>\n checkpoint.checkpointId === checkpointId && checkpoint.locationId !== locationId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n };\n\n const addCreatedLocationToCheckpoint = (marker, location) => {\n setCreatedLocations([...createdLocationsRef.current, location]);\n setCheckpoints(\n checkpointsRef.current.map((checkpoint) =>\n checkpoint.checkpointId === drawingRouteCheckpointRef.current.checkpointId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n map.removeLayer(marker);\n setDrawingRouteCheckpoint(null);\n };\n\n const addGoogleLocationToCheckpoint = (checkpointId, location) => {\n if (location) {\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n const newLocation = {\n ...checkpoint,\n googleLocation: location.googleLocation,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n };\n setCreatedLocations([\n ...createdLocations,\n { ...newLocation, locationName: location.locationName }\n ]);\n return newLocation;\n } else return checkpoint;\n })\n );\n }\n };\n\n const deleteLocationOfCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId)\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n return {\n ...checkpoint,\n googleLocation: undefined,\n locationId: undefined,\n checkpointName: undefined,\n marker: undefined,\n longitude: undefined,\n latitude: undefined,\n radius: undefined\n };\n } else return checkpoint;\n })\n );\n };\n\n return {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors: formState.errors,\n isGeneratingRoute: isGeneratingRouteRef.current,\n alternateRoutes,\n setAlternateRoutes\n };\n};\n","import '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport SlidingPaneForm from 'views/formComponents/SlidingPaneForm';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport SlidingPaneEditRoute from '../SlidingPaneEditRoute';\nimport { useMapRouteEdit } from './useMapRouteEdit';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst MapRouteEdit = (props: MapRouteEditOptions) => {\n const { setEditingRouteParent } = props;\n const {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes\n } = useMapRouteEdit(props);\n const intl = useIntl();\n const dispatch = useDispatch();\n\n return (\n <>\n \n {\n if (!isSaving && editingRouteRef.current?.routeId)\n dispatch(routeActions.showRouteInMap(editingRouteRef.current.routeId));\n deleteObjectsOnMap();\n setOpenSlidingPaneEditRoute(false);\n setEditingRoute(undefined);\n setCreatedLocations([]);\n setCheckpoints([]);\n setPaths([]);\n setSlidingPaneEditRouteProps({ inputs: [] });\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n setTimeout(() => setEditingRouteParent(undefined), 1000);\n }}\n {...slidingPaneEditRoutesProps}\n />\n {\n setOpenSlidingPaneForm(false);\n }}\n isInMap={true}\n {...slidingPaneFormProps}\n />\n \n );\n};\n\nMapRouteEdit.defaultProps = {\n route: {},\n showRoute: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapRouteEdit;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n// @ts-nocheck\nimport L from 'leaflet';\nimport { useEffect } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { FormGroup, Label, Spinner } from 'reactstrap';\nimport EditButton from 'views/components/EditButton';\nimport TitleH4 from 'views/components/TitleH4';\nimport Toolbar from 'views/components/Toolbar';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeActions from '../../actions/routes';\nimport routePermissions from '../../permissions';\n\ninterface Props {\n title: any;\n subtitle: any;\n route: any;\n isLoading: boolean;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n createRoute: any;\n}\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { title, subtitle, route, isLoading, isOpenSlidingPane, closeSlidingPane, createRoute } =\n props;\n\n const intl = useIntl();\n\n const { authSystems } = useSelector((state) => ({\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n return (\n closeSlidingPane()}\n >\n \n {isLoading ? (\n
\n \n
\n ) : (\n <>\n createRoute(route)}\n permissions={[routePermissions.editRoute]}\n />\n ]}\n />\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n \n )}\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Polyline, Popup, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getIcon, getRouteBounds } from 'views/screens/Routes/utils';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport SlidingPaneRouteInformation from '../../../../screens/Routes/views/SlidingPaneRouteInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapRoutesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToRouteBounds?: boolean;\n useSlidingPaneRouteInformation?: boolean;\n usePopovers?: boolean;\n routes?: any[];\n showRoutes?: boolean;\n isMapFullScreen?: boolean;\n useIsShownRoute?: boolean; //param only when you have a property in each route isShownInMap to show routes on map\n initialShowSlidingPanelRouteInformationOpen?: boolean;\n initialShowSlidingPanelRouteCreateOpen?: boolean;\n initialShowSlidingPanelRouteEditOpen?: boolean;\n initialRouteInformationOpenId?: any;\n editingRouteParent?: any;\n pathColor?: any;\n setEditingRouteParent?: Function;\n}\n\nconst MapRoutes = (props: MapRoutesOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showRoutes = false,\n useIsShownRoute = false,\n routes = [],\n setMapPositionToRouteBounds = false,\n useSlidingPaneRouteInformation = true,\n usePopovers,\n pathColor = null,\n initialShowSlidingPanelRouteInformationOpen = false,\n initialShowSlidingPanelRouteCreateOpen = false,\n initialShowSlidingPanelRouteEditOpen = false,\n initialRouteInformationOpenId,\n editingRouteParent,\n setEditingRouteParent,\n isMapFullScreen = true\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showRouteInformationSlidingPane, setShowRouteInformationSlidingPane] = useState(false);\n const [openEditSlidingPane, setOpenEditSlidingPane] = useState(false);\n const [initialRouteId, setInitialRouteId] = useState();\n const [routesBounds, setRoutesBounds] = useState([]);\n const [selectedRoute, setSelectedRoute] = useState({});\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n const { isEditing, isAdding, isFetchingCheckpoints } = useSelector((state) => ({\n isEditing: routeSelectors.isEditingRoute(state),\n isAdding: routeSelectors.isAddingRoute(state),\n isFetchingCheckpoints: routeSelectors.isFetchingListRouteCheckpoints(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n routes: selectedRoute?.routeId != null\n });\n }\n }, [selectedRoute]);\n\n const selectRoute = (route) => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.showRouteInMap(editingRouteParent.route.routeId));\n if (setEditingRouteParent) setEditingRouteParent(undefined);\n }\n setSelectedRoute(route);\n if (useSlidingPaneRouteInformation) {\n setShowRouteInformationSlidingPane(true);\n }\n zoomMapToRoutes([route]);\n };\n\n const createRoute = (route) => {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route,\n routeCheckpoints: route.checkpoints,\n routePaths: route.checkpoints\n .filter((chk) => chk.segmentPath.length > 0)\n .map((chk) => {\n return {\n polyline: L.polyline(\n chk.segmentPath.map((path) => [path.latitude, path.longitude]),\n { color: pathColor ?? 'blue' }\n ),\n segmentSpeedLimit: chk.segmentSpeedLimit,\n segmentTripMinTime: chk.segmentTripMinTime,\n segmentTripMaxTime: chk.segmentTripMaxTime,\n segmentStopAuthorized: chk.segmentStopAuthorized,\n segmentStopTime: chk.segmentStopTime,\n segmentDistance: chk.segmentDistance,\n segmentWithoutStopTime: chk.segmentWithoutStopTime\n };\n })\n });\n };\n\n const zoomMapToRoutes = (routes) => {\n var bounds = [];\n routes.map((route) => (bounds = [...bounds, ...getRouteBounds(route)]));\n if (bounds.length > 0)\n map.flyToBounds(bounds, {\n paddingBottomRight: isMapFullScreen ? [700, 0] : undefined,\n paddingTopLeft: isMapFullScreen ? [0, 70] : undefined,\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n };\n\n const displayMarkers = () => {\n if (routes.filter((route) => route.checkpoints.length > 0).length > 0)\n setRoutesBounds(\n routes.filter((route) =>\n map\n ? getRouteBounds(route).length > 0 && map.getBounds().intersects(getRouteBounds(route))\n : true\n )\n );\n };\n\n useEffect(() => {\n if (!isEditing && selectedRoute.routeId) {\n dispatch(routeActions.showRouteInMap(selectedRoute.routeId));\n setSelectedRoute(routeSelectors.getRoute(store, selectedRoute.routeId));\n setShowRouteInformationSlidingPane(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.hideRouteInMap(editingRouteParent.route.routeId));\n }\n }, [editingRouteParent]);\n\n useDeepCompareEffect(() => {\n if (setMapPositionToRouteBounds && map && routes.length > 0) zoomMapToRoutes();\n }, [routes, setMapPositionToRouteBounds]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteCreateOpen) {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n }\n }, [initialShowSlidingPanelRouteCreateOpen]);\n\n //Open and get route checkpoints if params are set\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId) {\n dispatch(\n routeCheckpointsActions.startFetchingRouteCheckpoints(initialRouteInformationOpenId)\n );\n }\n }\n }, [initialRouteInformationOpenId]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId && !isFetchingCheckpoints) {\n const initialRouteInformation = routeSelectors.getRoute(\n store,\n initialRouteInformationOpenId\n );\n if (\n initialRouteId !== initialRouteInformationOpenId &&\n initialRouteInformation?.checkpoints?.length > 0\n ) {\n setInitialRouteId(initialRouteInformation.routeId);\n setSelectedRoute(initialRouteInformation);\n zoomMapToRoutes([initialRouteInformation]);\n setShowRouteInformationSlidingPane(true);\n if (initialShowSlidingPanelRouteEditOpen) {\n setOpenEditSlidingPane(true);\n }\n }\n }\n }\n }, [isFetchingCheckpoints]);\n\n useEffect(() => {\n if (openEditSlidingPane) {\n setOpenEditSlidingPane(false);\n createRoute(selectedRoute);\n }\n }, [selectedRoute]);\n\n useDeepCompareEffect(() => {\n displayMarkers();\n }, [showRoutes, isEditing, isAdding, routes]);\n\n return (\n <>\n {(showRoutes || useIsShownRoute) && (\n \n {routesBounds.map(\n (route) =>\n ((showRoutes && !useIsShownRoute) || (useIsShownRoute && route.isShownInMap)) && (\n
\n {route.checkpoints.map(\n (checkpoint, index) =>\n checkpoint.latitude != null &&\n checkpoint.longitude != null && (\n
\n selectRoute(route)\n }}\n >\n {usePopovers && (\n \n \n {checkpoint?.checkpointName ?? route.routeName}\n \n \n )}\n \n {checkpoint.radius && (\n \n )}\n {checkpoint.segmentPath.length > 0 && (\n [\n path.latitude,\n path.longitude\n ])}\n eventHandlers={{\n click: () => {\n setOpenEditSlidingPane(true);\n selectRoute(route);\n }\n }}\n >\n {usePopovers && (\n \n \n {route.routeName}\n \n \n )}\n \n )}\n
\n )\n )}\n
\n )\n )}\n
\n )}\n\n {\n setShowRouteInformationSlidingPane(false);\n setSelectedRoute({});\n }}\n isOpenSlidingPane={showRouteInformationSlidingPane}\n title={selectedRoute.routeName}\n route={selectedRoute}\n createRoute={createRoute}\n />\n \n );\n};\n\nMapRoutes.defaultProps = {\n setMapPositionToRouteBounds: false,\n useSlidingPaneRouteInformation: true,\n routes: [],\n showRoutes: false,\n initialShowSlidingPanelRouteInformationOpen: false,\n usePopovers: true,\n initialRouteInformationOpenId: undefined,\n useIsShownRoute: false\n};\n\nexport default MapRoutes;\n","// @ts-nocheck\nimport { useEffect, useState } from 'react';\nimport L from 'leaflet';\nimport { useSelector } from 'react-redux';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport 'leaflet.polylinemeasure';\nimport { useIntl } from 'react-intl';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { ArrowRight, X } from 'react-feather';\n\nexport interface RulerControlOptions {\n useControl: boolean;\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\n/* -------------------------------------------------------------------------- */\n/* RulerControl to Measure in map */\n/* -------------------------------------------------------------------------- */\nconst RulerControl = (props: RulerControlOptions) => {\n const { position = 'bottomleft', listenMapControlChanges } = props;\n //https://github.com/ppete2/Leaflet.PolylineMeasure\n const context = useLeafletContext();\n const intl = useIntl();\n useEffect(() => {\n const container = context.layerContainer || context.map;\n var pmOptions = {\n position: position,\n tooltipTextDraganddelete: intl.formatMessage({\n id: 'map.ruler.tooltipTextDraganddelete'\n }),\n tooltipTextResume: intl.formatMessage({ id: 'map.ruler.tooltipTextResume' }),\n tooltipTextAdd: intl.formatMessage({ id: 'map.ruler.tooltipTextAdd' }),\n tooltipTextFinish: intl.formatMessage({ id: 'map.ruler.tooltipTextFinish' }),\n tooltipTextDelete: intl.formatMessage({ id: 'map.ruler.tooltipTextDelete' }),\n tooltipTextMove: intl.formatMessage({ id: 'map.ruler.tooltipTextMove' }),\n\n measureControlClasses: [],\n measureControlLabel: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n ),\n clearControlLabel: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n ),\n measureControlTitleOn: intl.formatMessage({ id: 'map.ruler.measureControlTitleOn' }),\n measureControlTitleOff: intl.formatMessage({ id: 'map.ruler.measureControlTitleOff' }),\n showClearControl: true, // Show a control to clear all the measurements\n clearControlTitle: intl.formatMessage({ id: 'map.ruler.clearControlTitle' }),\n showUnitControl: true, // Show a control to change the units of measurements\n unitControlTitle: {\n // Title texts to show on the Unit Control button\n text: intl.formatMessage({ id: 'map.ruler.unitControlTitle.text' }),\n metres: intl.formatMessage({ id: 'map.ruler.unitControlTitle.metres' }),\n landmiles: intl.formatMessage({ id: 'map.ruler.unitControlTitle.landmiles' }),\n nauticalmiles: intl.formatMessage({ id: 'map.ruler.unitControlTitle.nauticalmiles' })\n }\n };\n const control = L.control.polylineMeasure(pmOptions);\n\n container.addControl(control);\n\n return () => {\n container.removeControl(control);\n };\n }, [...listenMapControlChanges]);\n\n return null;\n};\n\nRulerControl.defaultProps = {\n position: 'bottomleft',\n useControl: true,\n listenMapControlChanges: []\n};\n\nexport default RulerControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport { env } from 'env';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, Plus, X, Hexagon, Square, Circle } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\n// import * as geofenceClassesSelectors from '../../../../../redux/reducers/static-catalogs/geofence-classes';\nimport * as geofenceActions from '../../../../../views/screens/Geofences/actions';\nimport geofencePermissions from '../../../../../views/screens/Geofences/permissions';\nimport SlidingPaneForm from '../../../../formComponents/SlidingPaneForm';\nimport Icon from 'utility/icomoon';\nimport wkx from 'wkx';\nimport { getExtraGeofenceSaveValues } from 'views/screens/Geofences/utils';\nimport * as geofenceSelectors from 'views/screens/Geofences/reducers';\nimport { zoomMapToGeofence } from '../MapGeofences';\n\nconst style = getComputedStyle(document.body);\nconst primary = style.getPropertyValue('--primary').trim();\n\nexport interface GeofencesToolbarOptions {\n useToolbar: boolean;\n showGeofences?: bool;\n setShowGeofences?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarGeofencesControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarGeofencesControl = (props: GeofencesToolbarOptions) => {\n const { showGeofences, setShowGeofences, position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n //States to create new geofences\n const [newGeofences, setNewGeofencesLayers] = useState([]);\n const newGeofencesLayersRef = React.useRef(newGeofences);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const isOpenSlidingPaneFormRef = React.useRef(isOpenSlidingPaneForm);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const slidingPanePropsRef = React.useRef(slidingPaneProps);\n const [editingGeofence, setEditingGeofence] = useState(undefined);\n const editingGeofenceRef = React.useRef(editingGeofence);\n const isSatMonitor = !!parseInt(env.REACT_APP_SAT_MONITOR ?? '0');\n\n const { store, mainGeofence } = useSelector((state) => ({\n store: state,\n mainGeofence: geofenceSelectors.getGeofence(state, editingGeofence?.geofence?.parentGeofenceId)\n }));\n\n useEffect(() => {\n if (mainGeofence?.geofenceId) {\n zoomMapToGeofence(map, true, mainGeofence);\n dispatch(geofenceActions.showGeofenceInMap(mainGeofence.geofenceId));\n return () => {\n dispatch(geofenceActions.hideGeofenceInMap(mainGeofence.geofenceId));\n };\n }\n }, [mainGeofence?.geofenceId]);\n\n useEffect(() => {\n editingGeofenceRef.current = editingGeofence;\n if (editingGeofence !== undefined) {\n editGeofence();\n }\n }, [editingGeofence]);\n\n useEffect(() => {\n isOpenSlidingPaneFormRef.current = isOpenSlidingPaneForm;\n }, [isOpenSlidingPaneForm]);\n\n useEffect(() => {\n slidingPanePropsRef.current = slidingPaneProps;\n }, [slidingPaneProps]);\n\n useEffect(() => {\n newGeofencesLayersRef.current = newGeofences;\n }, [newGeofences]);\n\n const editGeofence = () => {\n const layer = editingGeofenceRef.current.layer;\n const shape = layer.pm._shape ? layer.pm._shape.charAt(0).toUpperCase() : 'C';\n const initialRadius = shape == 'C' ? layer.getRadius() : undefined;\n newGeofencesLayersRef.current.forEach((m) => {\n try {\n if (layer.editing.options.geofenceId != m.editing.options.geofenceId) {\n m.pm.disable({});\n }\n } catch {}\n });\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({\n title: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceId\n ? editingGeofenceRef.current?.geofence.geofenceName\n : intl.formatMessage({ id: 'geofences.addGeofence' })\n : intl.formatMessage({ id: 'geofences.addGeofence' }),\n inputs: [\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.name' }),\n required: true,\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceName\n : undefined,\n name: 'geofenceName',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n geofenceName: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, geofenceName: value }\n });\n try {\n layer.bindPopup(value);\n layer.openPopup();\n } catch (error) {}\n },\n customValidation(values, props) {\n return values !== null && values !== undefined ? undefined : (\n \n );\n }\n },\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.geofenceAddress' }),\n required: false,\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceAddress\n : '',\n name: 'geofenceAddress',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n geofenceAddres: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, geofenceAddress: value }\n });\n }\n },\n {\n type: 'geofenceShapesDropdown',\n required: true,\n initialValue: shape ? shape : 'C',\n name: 'shape',\n customValidation(values, props) {\n return values !== null && values !== undefined ? undefined : (\n \n );\n },\n disabled: true,\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n shape: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, shape: value }\n });\n }\n },\n shape && shape == 'C'\n ? {\n type: 'number',\n allowUndefined: false,\n label: intl.formatMessage({ id: 'geofences.radius' }),\n required: true,\n min: 1,\n step: 1,\n allowDecimals: true,\n useNumberSpinner: true,\n appendcomponent: 'm',\n max: 100000,\n name: 'radius',\n initialValue:\n editingGeofenceRef.current?.geofence && editingGeofenceRef.current?.geofence.radius\n ? editingGeofenceRef.current?.geofence.radius\n : initialRadius,\n additionalonchangefunction: (value) => {\n if (value) {\n layer.editing.options = {\n ...layer.editing.options,\n radius: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, radius: value }\n });\n try {\n layer.setRadius(value);\n } catch {}\n }\n }\n }\n : {},\n {\n type: 'colorPicker',\n label: intl.formatMessage({ id: 'geofences.color' }),\n required: true,\n name: 'color',\n initialValue:\n editingGeofenceRef.current?.geofence && editingGeofenceRef.current?.geofence.color\n ? editingGeofenceRef.current?.geofence.color\n : undefined,\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n color: value.trim()\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, color: value.trim() }\n });\n\n try {\n layer.setStyle({\n color: value.trim()\n });\n } catch {}\n }\n },\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.privateCode' }),\n required: false,\n name: 'privateCode',\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.privateCode\n : '',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n privateCode: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, privateCode: value }\n });\n }\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: editingGeofenceRef.current?.geofence\n ? {\n operatorId: editingGeofenceRef.current.geofence.operatorId,\n organizationId: editingGeofenceRef.current.geofence.organizationId,\n divisionId: editingGeofenceRef.current.geofence.divisionId,\n subdivisionId: editingGeofenceRef.current.geofence.subdivisionId\n }\n : undefined,\n additionalonchangefunction: (values) => {\n layer.editing.options = {\n ...layer.editing.options,\n membership: values,\n ...values\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, membership: values, ...values }\n });\n }\n },\n isSatMonitor\n ? {\n type: 'radioButtons',\n name: 'isParentGeofence',\n label: `${intl.formatMessage({ id: 'geofences.type' })}:`,\n initialValue:\n editingGeofenceRef.current?.geofence?.isParentGeofence === true\n ? '1'\n : editingGeofenceRef.current?.geofence?.isParentGeofence === false\n ? '0'\n : undefined,\n radioButtons: [\n {\n label: intl.formatMessage({ id: 'geofences.mainGeofence' }),\n value: '1'\n },\n {\n label: intl.formatMessage({ id: 'geofences.subGeofence' }),\n value: '0'\n }\n ],\n additionalonchangefunction: (value) => {\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n isParentGeofence: value == '1'\n }\n });\n }\n }\n : undefined,\n editingGeofenceRef.current?.geofence?.isParentGeofence === false && !!isSatMonitor\n ? {\n type: 'geofenceDropdown',\n name: 'parentGeofenceId',\n initialValue: editingGeofenceRef.current?.geofence?.parentGeofenceId,\n label: intl.formatMessage({ id: 'geofences.mainGeofence' }),\n placeholder: intl.formatMessage({ id: 'workplans.selectGeofence' }),\n isClearable: false,\n parentGeofences: true,\n required: true,\n subGeofenceWktString: editingGeofenceRef.current?.geofence?.geofenceWktString,\n additionalonchangefunction: (value) => {\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n parentGeofenceId: value\n }\n });\n }\n }\n : undefined,\n editingGeofenceRef.current?.geofence?.isParentGeofence === false && !!isSatMonitor\n ? {\n type: 'switch',\n name: 'isActivationGeofence',\n initialValue: editingGeofenceRef.current?.geofence?.isActivationGeofence,\n label: intl.formatMessage({ id: 'trackingUnits.sat.isActivation/DeactivationArea' })\n }\n : undefined\n ],\n action: (values) => {\n var geometry = wkx.Geometry.parseGeoJSON(layer.toGeoJSON().geometry);\n map.removeLayer(layer);\n\n const geofence = {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt()\n };\n const { vertexCount, longitude, longitude2, latitude, latitude2, vertexCsv, geofenceWKT } =\n getExtraGeofenceSaveValues(geofence);\n\n dispatch(\n geofenceActions.startAddingGeofence({\n ...editingGeofenceRef.current?.geofence,\n ...values,\n ...values.membership,\n isParentGeofence:\n values.isParentGeofence == '1'\n ? true\n : values.isParentGeofence == '0'\n ? false\n : undefined,\n parentGeofenceId: values.isParentGeofence == '0' ? values.parentGeofenceId : undefined,\n isActivationGeofence:\n values.isParentGeofence == '0' ? values.isActivationGeofence : undefined,\n geofenceWKT,\n vertexCount,\n latitude,\n latitude2,\n longitude,\n longitude2,\n vertexCsv,\n isShownInMap: true,\n geofenceId: uuidv4()\n })\n );\n setEditingGeofence(undefined);\n }\n });\n setOpenSlidingPaneForm(true);\n\n setTimeout(() => {\n try {\n layer.pm.enable({});\n } catch {}\n }, 100);\n setTimeout(() => {\n try {\n layer.bindPopup(\n layer.editing.options.geofenceName\n ? layer.editing.options.geofenceName\n : appIntl().formatMessage({ id: 'geofences.new' })\n );\n layer.openPopup();\n } catch {}\n }, 100);\n };\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n /* -------------------------------------------------------------------------- */\n /* Geofence Creation Listener */\n /* -------------------------------------------------------------------------- */\n container.on('pm:create', function (e) {\n setEditingGeofence(undefined);\n if (\n (e.shape == 'Circle' || e.shape == 'Rectangle' || e.shape == 'Polygon') &&\n e.layer.editing?.options?.geofenceId == null\n ) {\n let layer = e.layer;\n layer.pm.enableLayerDrag();\n layer.pm.enable({ draggable: true });\n layer.on('click', (e) => {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n setEditingGeofence({\n layer: layer,\n geofence: layer.editing.options\n });\n });\n layer.on('pm:edit', (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n\n layer.editing.options = {\n ...layer.options,\n organizationId: undefined,\n divisionId: undefined,\n subdivisionId: undefined,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n };\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n }\n });\n });\n layer.on('pm:dragend', (e) => {\n layer.pm.enableLayerDrag();\n layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n\n layer.editing.options = {\n ...layer.editing.options,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n };\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n }\n });\n });\n layer.on('dblclick', () => {\n layer.pm.remove();\n });\n\n let shape = e.shape.charAt(0).toUpperCase();\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n if (!layer.editing) layer.editing = {};\n layer.editing.options = {\n ...layer.options,\n geofenceId: uuidv4(),\n geofenceName: undefined,\n geofenceAddress: '',\n shape: shape,\n radius: shape == 'C' ? e.layer.getRadius() : undefined,\n geofenceWktString: geometry.toWkt(),\n operatorId: undefined,\n organizationId: undefined,\n divisionId: undefined,\n subdivisionId: undefined,\n privateCode: '',\n isConfirmed: false\n };\n setNewGeofencesLayers((prevlayers) => [...prevlayers, layer]);\n\n // // zoomMapToGeofence(layer.getLatLng());\n setEditingGeofence({\n layer: layer,\n geofence: layer.editing.options\n });\n }\n });\n\n /* -------------------------------------------------------------------------- */\n /* Actions of Toolbar */\n /* -------------------------------------------------------------------------- */\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var viewGeofences = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showGeofences\n ? intl.formatMessage({ id: 'map.geofencesToolbar.tooltipHideGeofences' })\n : intl.formatMessage({ id: 'map.geofencesToolbar.tooltipShowGeofences' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showGeofences ? : }\n )\n }\n },\n addHooks: () => {\n if (!showGeofences) {\n dispatch(geofenceActions.showAllGeofencesInMap());\n } else {\n dispatch(geofenceActions.hideAllGeofencesInMap());\n }\n setShowGeofences(!showGeofences);\n setOpenSlidingPaneForm(false);\n newGeofencesLayersRef.current.forEach((m) => {\n try {\n m.pm.disableLayerDrag();\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }\n });\n\n var createNewCircleGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddCircle' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Circle', { pathOptions: { color: primary } });\n }\n });\n\n var createNewRectangleGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddRectangle' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Rectangle', { pathOptions: { color: primary } });\n }\n });\n\n var createNewPolygonGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddPolygon' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Polygon', {\n pathOptions: { color: primary },\n removeLayerBelowMinVertexCount: false\n });\n }\n });\n\n var cancelGeofence = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n container.pm.disableDraw('layer');\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var geofencesOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipGeofences' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [\n authSelectors.getAuthUserHasPermissionsEvery(store, [\n geofencePermissions.listGeofencesOnMap\n ])\n ? viewGeofences\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewCircleGeofence\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewRectangleGeofence\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewPolygonGeofence\n : null,\n cancelGeofence\n ].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.GeofencesToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [geofencesOptions]\n }\n });\n\n var geofencesToolbar = new L.Toolbar2.GeofencesToolbar({ position: position });\n geofencesToolbar.addTo(container);\n\n return () => {\n geofencesToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return (\n <>\n {\n setOpenSlidingPaneForm(false);\n try {\n editingGeofenceRef.current.layer.pm.disable({});\n } catch {}\n newGeofencesLayersRef.current.forEach((m, i) => {\n try {\n m.pm.disableLayerDrag();\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }}\n onClickCancelButton={() => {\n map.removeLayer(editingGeofenceRef.current.layer);\n setEditingGeofence(undefined);\n }}\n isInMap={true}\n {...slidingPaneProps}\n />\n \n );\n};\n\nToolbarGeofencesControl.defaultProps = {\n position: 'topleft',\n showGeofences: false,\n setShowGeofence: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarGeofencesControl;\n","// @ts-nocheck\nimport { useEffect, useState } from 'react';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport { useMap } from 'react-leaflet';\n\nimport * as authActions from '../../../../../redux/actions/auth';\nimport { useDispatch } from 'react-redux';\nexport interface HomeToolbarOptions {\n useToolbar: boolean;\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\nimport ReactDOMServer from 'react-dom/server';\n\nimport { Home } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n/* -------------------------------------------------------------------------- */\n/* ToolbarHomeControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarHomeControl = (props: HomeToolbarOptions) => {\n const { position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const dispatch = useDispatch(); // to handle home region function\n const intl = useIntl();\n // Be aware of changes in map layer\n const map = useMap();\n var selectedLayer = 0;\n map.on('baselayerchange', function (e) {\n const name = e.name;\n let layer_id = 0;\n if (name == 'Open Street Map') layer_id = 0;\n if (name == 'MapQuest') layer_id = 2;\n if (name == 'Google Maps') layer_id = 3;\n if (name == 'Google Maps Road & Satellite') layer_id = 4;\n if (name == 'Bing Maps') layer_id = 5;\n if (name == 'Bing Satellite') layer_id = 7;\n if (name == 'Bing Hybrid') layer_id = 8;\n if (name == 'Here Maps') layer_id = 9;\n if (name == 'Here Maps Satellite') layer_id = 10;\n if (name == 'Google Maps Satellite') layer_id = 11;\n if (name == 'Google Maps Traffic') layer_id = 12;\n if (name == 'Google Maps Terrain') layer_id = 13;\n if (name == 'MapQuest Hybrid') layer_id = 14;\n if (name == 'MapQuest Satellite') layer_id = 15;\n if (name == 'MapQuest Dark') layer_id = 16;\n if (name == 'MapQuest Light') layer_id = 17;\n if (name == 'WebTrack') layer_id = 18;\n if (name == 'WebTrack Light') layer_id = 19;\n if (name == 'WebTrack Dark') layer_id = 20;\n selectedLayer = layer_id;\n });\n\n // homeFunction to update home region\n const homeFunction = async () => {\n var centerLatLng = map.getCenter().wrap();\n var config = {\n homeLatitude: centerLatLng.lat,\n homeLongitude: centerLatLng.lng,\n homeZoom: map.getZoom(),\n homeLayer: selectedLayer\n };\n dispatch(authActions.startUpdatingMapSettingsConfiguration(config));\n };\n\n //Add Toolbar to Map Container\n useDeepCompareEffect(() => {\n const container = context.layerContainer || context.map;\n const homeActionTooltip = () => {\n return intl.formatMessage({ id: 'map.homeToolbar.tooltipSetHomeRegion' });\n };\n var setHomeAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: homeActionTooltip(),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: homeFunction\n });\n\n new L.Toolbar2.Control({\n position: position,\n actions: [setHomeAction]\n }).addTo(container);\n }, [listenMapControlChanges]);\n\n return null;\n};\n\nToolbarHomeControl.defaultProps = {\n position: 'topleft',\n useToolbar: false,\n name: 'ToolbarHomeControl',\n listenMapControlChanges: []\n};\nexport default ToolbarHomeControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, MapPin, Plus, X } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { v4 as uuidv4 } from 'uuid';\nimport SlidingPaneEditLocation from 'views/screens/Locations/views/SlidingPaneEditLocation';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationClassesSelectors from '../../../../../redux/reducers/static-catalogs/location-classes';\nimport * as locationActions from '../../../../../views/screens/Locations/actions';\nimport locationPermissions from '../../../../../views/screens/Locations/permissions';\nimport SlidingPaneForm from '../../../../formComponents/SlidingPaneForm';\n\nexport interface LocationsToolbarOptions {\n useToolbar: boolean;\n showLocations?: bool;\n setShowLocations?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarLocationsControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarLocationsControl = (props: LocationsToolbarOptions) => {\n const { showLocations, setShowLocations, position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const { store, parsers } = useSelector((state) => ({\n store: state,\n parsers: authSelectors.getParsers(state)\n }));\n const map = useMap();\n const dispatch = useDispatch();\n\n //States to create new locations\n const [newMarkers, setNewMarkers] = useState([]);\n const newMarkersRef = React.useRef(newMarkers);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const isOpenSlidingPaneFormRef = React.useRef(isOpenSlidingPaneForm);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const slidingPanePropsRef = React.useRef(slidingPaneProps);\n const [editingLocation, setEditingLocation] = useState(undefined);\n const editingLocationRef = React.useRef(editingLocation);\n\n useEffect(() => {\n editingLocationRef.current = editingLocation;\n if (editingLocation !== undefined) {\n editLocation();\n }\n }, [editingLocation]);\n\n useEffect(() => {\n if (editingLocation?.location?.locationClassIconName) {\n editingLocationRef.current.marker._icon.innerHTML = `
\n `;\n }\n }, [editingLocation?.location?.locationClassIconName]);\n\n useEffect(() => {\n if (editingLocation?.location?.latitude && editingLocation?.location?.longitude) {\n var latLng = L.latLng(\n editingLocation?.location?.latitude,\n editingLocation?.location?.longitude\n );\n editingLocationRef.current.marker.setLatLng(latLng);\n zoomMapToLocation(latLng);\n }\n }, [editingLocation?.location?.latitude, editingLocation?.location?.longitude]);\n\n useEffect(() => {\n setTimeout(() => {\n try {\n editingLocationRef.current.marker.bindPopup(\n editingLocation?.location?.locationName\n ? editingLocation?.location?.locationName\n : appIntl().formatMessage({ id: 'locations.new' })\n );\n editingLocationRef.current.marker.openPopup();\n } catch {}\n }, 100);\n }, [editingLocation?.location?.locationName]);\n\n useEffect(() => {\n isOpenSlidingPaneFormRef.current = isOpenSlidingPaneForm;\n }, [isOpenSlidingPaneForm]);\n\n useEffect(() => {\n slidingPanePropsRef.current = slidingPaneProps;\n }, [slidingPaneProps]);\n\n useEffect(() => {\n newMarkersRef.current = newMarkers;\n }, [newMarkers]);\n\n const zoomMapToLocation = (latLng) => {\n const maxZoom = Math.max(15, map.getZoom());\n setTimeout(function () {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds([ll], {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom,\n animate: 15 > map.getZoom()\n });\n }, 500);\n };\n\n useEffect(() => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({ id: 'locations.addMarker' })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n }, [intl.locale]);\n\n const initialLocationClassIconName = 'Marker1';\n const editLocation = () => {\n const marker = editingLocationRef.current.marker;\n\n newMarkersRef.current.forEach((m) => {\n m.pm.disable({});\n });\n\n setOpenSlidingPaneForm(true);\n\n setTimeout(() => {\n try {\n marker.pm.enable({});\n } catch {}\n }, 100);\n setTimeout(() => {\n try {\n marker.bindPopup(\n marker.options.locationName\n ? marker.options.locationName\n : appIntl().formatMessage({ id: 'locations.new' })\n );\n marker.openPopup();\n } catch {}\n }, 100);\n };\n\n useDeepCompareEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewLocationAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.locationsToolbar.tooltipAddLocation' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: L.divIcon({\n className: 'custom-div-icon',\n html: `
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })\n }\n });\n\n // listen to when drawing elem gets created\n\n container.on('pm:create', function (e) {\n // setEditingLocation(undefined);\n if (e.shape == 'Marker' && e.marker.options.locationId == null) {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n let marker = e.marker;\n marker.options = {\n ...marker.options,\n locationId: uuidv4(),\n locationName: undefined,\n locationAddress: '',\n latitude: marker.getLatLng().lat,\n longitude: marker.getLatLng().lng,\n radius: 50,\n operatorId: null,\n organizationId: null,\n divisionId: null,\n subdivisionId: null,\n locationClassIconName: 'Marker1',\n locationClassId: 0,\n privateCode: '',\n isConfirmed: false\n };\n\n marker.on('click', () => {\n // setEditingLocation(undefined);\n // if (\n // isOpenSlidingPaneFormRef.current &&\n // editingLocationRef.current.marker.options.locationId == marker.options.locationId\n // ) {\n // } else {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n setEditingLocation({\n marker: marker,\n location: marker.options\n });\n\n // }\n });\n\n marker.on('pm:remove', (e) => {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n });\n\n marker.on('pm:drag', (e) => {\n marker.options = {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n };\n // setEditingLocation({\n // marker: marker,\n // location: {\n // ...editingLocationRef.current.location,\n // latitude: e.target.getLatLng().lat,\n // longitude: e.target.getLatLng().lng\n // }\n // });\n // zoomMapToLocation(marker.getLatLng());\n });\n\n marker.on('pm:dragend', (e) => {\n marker.options = {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n };\n setEditingLocation({\n marker: marker,\n location: {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n }\n });\n zoomMapToLocation(marker.getLatLng());\n });\n\n setNewMarkers((prevMarkers) => [...prevMarkers, marker]);\n marker.pm.enable({});\n zoomMapToLocation(marker.getLatLng());\n setEditingLocation({\n marker: marker,\n location: marker.options\n });\n }\n });\n }\n });\n\n var viewLocations = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showLocations\n ? intl.formatMessage({ id: 'map.locationsToolbar.tooltipHideLocations' })\n : intl.formatMessage({ id: 'map.locationsToolbar.tooltipShowLocations' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showLocations ? : }\n )\n }\n },\n addHooks: () => {\n if (!showLocations) {\n dispatch(locationActions.showAllLocationsInMap());\n } else {\n dispatch(locationActions.hideAllLocationsInMap());\n }\n setShowLocations(!showLocations);\n setOpenSlidingPaneForm(false);\n newMarkersRef.current.forEach((m) => {\n try {\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }\n });\n\n var cancelLocation = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n container.pm.disableDraw('Marker');\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var locationsOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.locationsToolbar.tooltipLocations' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [\n authSelectors.getAuthUserHasPermissionsEvery(store, [\n locationPermissions.listLocationsOnMap\n ])\n ? viewLocations\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [locationPermissions.addLocation])\n ? createNewLocationAction\n : null,\n\n cancelLocation\n ].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.LocationsToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [locationsOptions]\n }\n });\n\n var locationsToolbar = new L.Toolbar2.LocationsToolbar({ position: position });\n locationsToolbar.addTo(container);\n\n return () => {\n locationsToolbar.remove();\n };\n } catch {}\n }, [listenMapControlChanges]);\n return (\n <>\n {\n setOpenSlidingPaneForm(false);\n editingLocationRef.current.marker.pm.disable({});\n newMarkersRef.current.forEach((m, i) => {\n try {\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }}\n isInMap\n title={\n editingLocationRef.current &&\n editingLocationRef.current.location &&\n Number.isInteger(editingLocationRef.current.location.locationId)\n ? editingLocationRef.current.location.locationName\n : intl.formatMessage({ id: 'locations.addLocation' })\n }\n editingLocation={editingLocationRef.current?.location}\n setEditingLocation={(location) =>\n setEditingLocation({ marker: editingLocationRef.current.marker, location })\n }\n onClose={() => {\n map.removeLayer(editingLocationRef.current.marker);\n setEditingLocation(undefined);\n }}\n action={(values) => {\n map.removeLayer(editingLocationRef.current.marker);\n dispatch(\n locationActions.startAddingLocation({\n ...values,\n ...values.membership,\n radius: parsers.convertAuthUserDistance2SystemToMeters(values.radius),\n isShownInMap: true,\n enableDispatch: 0,\n dispatchNotificationFreq: 0,\n dispatchEmails: null,\n dispatchCompletionType: 0,\n locationTypeId: 0,\n locationId: uuidv4()\n })\n );\n setEditingLocation(undefined);\n }}\n />\n \n );\n};\n\nToolbarLocationsControl.defaultProps = {\n position: 'topleft',\n showLocations: false,\n setShowLocation: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarLocationsControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Plus, X } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport routesPermissions from '../../../../../views/screens/Routes/permissions';\n\nexport interface RoutesToolbarOptions {\n useToolbar: boolean;\n showRoutes?: bool;\n setEditingRouteParent?: any;\n setShowRoutes?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarRoutesControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarRoutesControl = (props: RoutesToolbarOptions) => {\n const {\n showRoutes,\n setShowRoutes,\n setEditingRouteParent,\n position = 'topleft',\n listenMapControlChanges\n } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n\n const { store } = useSelector((state) => ({\n store: state\n }));\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewRouteAction = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.routesToolbar.tooltipAddRoute' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var cancelRoute = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var routesOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.routesToolbar.tooltipRoutes' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [createNewRouteAction, cancelRoute].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.RoutesToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [routesOptions]\n }\n });\n\n var routesToolbar = new L.Toolbar2.RoutesToolbar({ position: position });\n routesToolbar.addTo(container);\n\n return () => {\n routesToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return null;\n};\n\nToolbarRoutesControl.defaultProps = {\n position: 'topleft',\n showRoutes: false,\n setShowRoutes: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarRoutesControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, X } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport unitsPermissions from '../../../../../views/screens/Units/permissions';\nimport * as unitActions from '../../../../../views/screens/Units/actions';\n\nexport interface UnitsToolbarOptions {\n useToolbar: boolean;\n showUnits?: bool;\n setSelectedUnit?: any;\n setShowUnits?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n handleShowUnitsOnMap?: Function;\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarUnitsControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarUnitsControl = (props: UnitsToolbarOptions) => {\n const {\n showUnits,\n setShowUnits,\n setSelectedUnit,\n position = 'topleft',\n listenMapControlChanges, \n handleShowUnitsOnMap\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 handleShowUnitsOnMap(!showUnits)\n setShowUnits(!showUnits);\n }\n });\n\n var cancelUnit = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var unitsOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.unitsToolbar.tooltipUnits' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [createNewUnitAction, cancelUnit].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.UnitsToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [unitsOptions]\n }\n });\n\n var unitsToolbar = new L.Toolbar2.UnitsToolbar({ position: position });\n unitsToolbar.addTo(container);\n\n return () => {\n unitsToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return null;\n};\n\nToolbarUnitsControl.defaultProps = {\n position: 'topleft',\n showUnits: false,\n setShowUnits: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarUnitsControl;\n","import { LatLngExpression, Map } from 'leaflet';\nimport 'leaflet-draw';\nimport debounce from 'lodash.debounce';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { MapContainer } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as unitActions from '../../../views/screens/Units/actions';\nimport * as geofenceActions from '../../screens/Geofences/actions';\nimport * as geofenceSelectors from '../../screens/Geofences/reducers';\nimport * as locationSelectors from '../../screens/Locations/reducers';\nimport { LOCATION_DATA_LIMIT_FOR_CLUSTERING } from '../../screens/Locations/types';\nimport * as routeSelectors from '../../screens/Routes/reducers/routes';\nimport { UNIT_DATA_LIMIT_FOR_CLUSTERING } from '../../screens/Units/types';\nimport MapBaseLayers, { MapBaseLayersOptions } from './components/MapBaseLayers';\nimport MapGeofenceEdit, { MapGeofenceEditOptions } from './components/MapGeofenceEdit';\nimport MapGeofences, { MapGeofencesOptions } from './components/MapGeofences';\nimport MapLocationEdit, { MapLocationEditOptions } from './components/MapLocationEdit';\nimport MapLocations, { MapLocationsOptions } from './components/MapLocations';\nimport MapObjectsBounds, { MapObjectsBoundsOptions } from './components/MapObjectsBounds';\nimport MapRouteEdit from './components/MapRouteEdit';\nimport MapRoutes, { MapRoutesOptions } from './components/MapRoutes';\nimport MapUnits, { MapUnitsOptions } from './components/MapUnits';\nimport MapUnitsPublic, { MapUnitsPublicOptions } from './components/MapUnitsPublic';\nimport RulerControl, { RulerControlOptions } from './components/RulerControl';\nimport ToolbarGeofencesControl, {\n GeofencesToolbarOptions\n} from './components/ToolbarGeofencesControl';\nimport ToolbarHomeControl, { HomeToolbarOptions } from './components/ToolbarHomeControl';\nimport ToolbarLocationsControl, {\n LocationsToolbarOptions\n} from './components/ToolbarLocationsControl';\nimport ToolbarRoutesControl, { RoutesToolbarOptions } from './components/ToolbarRoutesControl';\nimport ToolbarUnitsControl, { UnitsToolbarOptions } from './components/ToolbarUnitsControl';\nimport ToolbarUnitTrajectoryControl, {\n TrajectoryToolbarOptions\n} from './components/ToolbarUnitTrajectoryControl';\nimport { MapProvider } from './context/GoogleMapsContext';\n\ninterface MapProps {\n mapBaseLayersOptions: MapBaseLayersOptions;\n mapOptions: MapOptions;\n homeToolbarOptions: HomeToolbarOptions;\n locationsToolbarOptions: LocationsToolbarOptions;\n geofencesToolbarOptions: GeofencesToolbarOptions;\n routesToolbarOptions: RoutesToolbarOptions;\n unitsToolbarOptions: UnitsToolbarOptions;\n rulerControlOptions: RulerControlOptions;\n trajectoryToolbarOptions: TrajectoryToolbarOptions;\n mapLocationsOptionsToolbar: MapLocationsOptions;\n mapLocationsOptions: MapLocationsOptions;\n mapLocationEditOptions: MapLocationEditOptions;\n mapGeofencesOptionsToolbar: MapGeofencesOptions;\n mapGeofencesOptions: MapGeofencesOptions;\n mapObjectsBoundsOptions: MapObjectsBoundsOptions;\n mapGeofenceEditOptions: MapGeofenceEditOptions;\n mapRoutesOptionsToolbar: MapRoutesOptions;\n mapRoutesOptions: MapRoutesOptions;\n mapUnitsOptionsToolbar: MapUnitsOptions;\n mapUnitsOptions: MapUnitsOptions;\n mapUnitsPublicOptions?: MapUnitsPublicOptions;\n startClusteringAt?: number;\n startRerender?: any;\n}\n\ninterface MapOptions {\n center?: LatLngExpression;\n zoom?: number;\n style?: React.CSSProperties;\n className: string;\n rerenderMap?: Date | React.Key;\n fetchMapObjects?: any;\n resetMapHome?: any;\n}\n\nconst MapsBasic = (props: MapProps) => {\n const zoomLevelToStartClustering = useSelector(\n (state) => authSelectors.getAuthUser(state).zoomLevelToStartClustering\n );\n\n const {\n mapBaseLayersOptions,\n mapOptions,\n homeToolbarOptions,\n locationsToolbarOptions,\n geofencesToolbarOptions,\n routesToolbarOptions,\n unitsToolbarOptions,\n rulerControlOptions,\n trajectoryToolbarOptions,\n mapLocationsOptionsToolbar,\n mapLocationsOptions,\n mapLocationEditOptions,\n mapGeofencesOptionsToolbar,\n mapGeofencesOptions,\n mapGeofenceEditOptions,\n mapRoutesOptionsToolbar,\n mapRoutesOptions,\n mapUnitsOptionsToolbar,\n mapUnitsOptions,\n mapObjectsBoundsOptions,\n mapUnitsPublicOptions,\n startClusteringAt = zoomLevelToStartClustering ?? 9, //Nivel de zoom determinado\n startRerender\n } = props;\n const { style, className, center, zoom, rerenderMap, fetchMapObjects, resetMapHome } = mapOptions;\n\n const history = useHistory();\n const dispatch = useDispatch();\n\n const [map, setMap] = useState();\n const intl = useIntl();\n const [isSelectedSomething, setIsSelectedSomething] = useState({});\n const [listenMapControlChanges, setMapControlChanges] = useState<\n undefined | (boolean | string)[]\n >(undefined);\n const [listenMapControlChangesLayers, setMapControlChangesLayers] = useState<\n undefined | (string | boolean)[]\n >(undefined);\n const [showLocations, setShowLocations] = useState(false);\n const [showGeofences, setShowGeofences] = useState(false);\n const [showRoutes, setShowRoutes] = useState(false);\n const [showUnits, setShowUnits] = useState(unitsToolbarOptions.showUnits === true);\n const [showTrajectory, setShowTrajectory] = useState(false);\n const [activateShowGeofences, setActivateShowGeofences] = useState(false);\n const [mapInitialized, setMapInitialized] = useState(true);\n const [zoomClusterLimit, setZoomClusterLimit] = useState(startClusteringAt);\n const [isClusterLimitSet, setIsClusterLimitSet] = useState(false);\n const [mapBounds, setMapBounds] = useState({});\n\n const { store, geofences, routes, isFetchingLocations, isFetchingGeofences } = useSelector(\n (state) => ({\n store: state,\n //locations: locationSelectors.getLocationsListByMapBounds(state, mapBounds),\n geofences: geofenceSelectors.getGeofencesList(state),\n routes: routeSelectors.getRoutesList(state),\n isFetchingLocations: locationSelectors.isFetchingListLocations(state),\n isFetchingGeofences: geofenceSelectors.isFetchingListGeofences(state)\n })\n );\n\n useDeepCompareEffect(() => {\n if (\n map &&\n mapUnitsOptionsToolbar?.units &&\n mapLocationsOptionsToolbar?.locations &&\n isClusterLimitSet === false &&\n (mapLocationsOptionsToolbar?.locations?.length >= LOCATION_DATA_LIMIT_FOR_CLUSTERING ||\n mapUnitsOptionsToolbar?.units?.length >= UNIT_DATA_LIMIT_FOR_CLUSTERING)\n ) {\n setZoomClusterLimit(map?.getZoom() + 1);\n setIsClusterLimitSet(true);\n }\n }, [\n mapLocationsOptionsToolbar?.locations?.map((location) => ({\n locationId: location.locationId,\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n mapUnitsOptionsToolbar?.units,\n map,\n isClusterLimitSet\n ]);\n\n const initialMapCenter: LatLngExpression = center ||\n authSelectors.getAuthUserMapHomeCenter(store) || [51.5074, 0.1278];\n const initialZoom = zoom || authSelectors.getAuthUserMapHomeZoom(store) || 13;\n const [mapPosition, setMapPosition] = useState(initialMapCenter);\n useEffect(() => {\n setMapControlChanges([\n // @ts-ignore MapQuest\n typeof MQ,\n showLocations,\n showGeofences,\n showRoutes,\n showUnits,\n showTrajectory,\n intl.locale\n ]);\n }, [showLocations, showGeofences, showRoutes, showUnits, showTrajectory, intl.locale]);\n\n useEffect(() => {\n // @ts-ignore MapQuest\n setMapControlChangesLayers([typeof MQ, intl.locale]);\n }, [intl.locale]);\n\n //Used For Editing Location\n const [editingLocation, setEditingLocation] = useState(undefined);\n const [mapLocationEditOptionsToolbar, setMapLocationEditOptionsToolbar] =\n useState(undefined);\n\n const editingLocationRef = useRef(editingLocation);\n\n useEffect(() => {\n editingLocationRef.current = editingLocation;\n setMapLocationEditOptionsToolbar({\n location:\n editingLocationRef?.current &&\n editingLocationRef?.current.latitude != null &&\n editingLocationRef?.current.longitude != null\n ? editingLocationRef?.current\n : {\n latitude:\n editingLocationRef?.current && editingLocationRef?.current.latitude != null\n ? editingLocationRef?.current.latitude\n : initialMapCenter[0],\n longitude:\n editingLocationRef?.current && editingLocationRef?.current.longitude != null\n ? editingLocationRef?.current.longitude\n : initialMapCenter[1],\n radius:\n editingLocationRef?.current && editingLocationRef?.current.radius\n ? editingLocationRef?.current.radius\n : 10,\n locationClassIconName:\n editingLocationRef?.current && editingLocationRef?.current.locationClassIconName\n ? editingLocationRef?.current.locationClassIconName\n : 'Marker1'\n },\n onLocationDragend: (values) => {\n if (setEditingLocation)\n setEditingLocation({\n ...editingLocationRef?.current,\n longitude: values.lng,\n latitude: values.lat\n });\n },\n showLocation: editingLocationRef && editingLocationRef.current ? true : false,\n hideMarkersByZoom: false,\n useRectangleBounds: true,\n isMapFullScreen: true,\n usePopovers: true\n });\n }, [editingLocation]);\n\n //Used For Editing Geofence\n const [editingGeofence, setEditingGeofence] = useState(undefined);\n const [mapGeofenceEditOptionsToolbar, setMapGeofenceEditOptionsToolbar] =\n useState(undefined);\n const editingGeofenceRef = useRef(editingGeofence);\n\n useEffect(() => {\n editingGeofenceRef.current = editingGeofence;\n setMapGeofenceEditOptionsToolbar({\n geofence: editingGeofenceRef?.current ? editingGeofenceRef?.current : {},\n onGeofenceEdit: (values) => {\n if (setEditingGeofence)\n setEditingGeofence({\n ...editingGeofenceRef?.current,\n ...values\n });\n },\n showGeofence: editingGeofenceRef && editingGeofenceRef.current,\n\n isMapFullScreen: true,\n usePopovers: true\n });\n }, [editingGeofence]);\n\n //Used For Editing Route\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = useRef(editingRoute);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n }, [editingRoute]);\n\n //Used For Editing Unit\n const [selectedUnit, setSelectedUnit] = useState(undefined);\n const selectedUnitRef = useRef(selectedUnit);\n\n useEffect(() => {\n //al cambiar unidad también vamos a limpiar el history para evitar que\n //se cargue la unidad que esta como parametro en el estado de history\n if (\n selectedUnit &&\n selectedUnit?.unitId &&\n selectedUnitRef?.current &&\n selectedUnitRef?.current?.unitId != selectedUnit?.unitId\n ) {\n // @ts-ignore reset history\n history.replace();\n }\n\n if (\n selectedUnit &&\n selectedUnit?.unitId &&\n !mapUnitsOptionsToolbar.initialUnitInformationOpenId\n ) {\n dispatch(unitActions.startFetchingUnit(selectedUnit?.unitId));\n dispatch(unitActions.showUnitInMap(selectedUnit?.unitId));\n } else if (mapUnitsOptionsToolbar.initialUnitInformationOpenId)\n dispatch(unitActions.showUnitInMap(selectedUnit?.unitId));\n\n selectedUnitRef.current = selectedUnit;\n }, [selectedUnit]);\n\n //Used to show Control Show All Units\n useEffect(() => {\n setShowUnits(unitsToolbarOptions.showUnits === true);\n }, [unitsToolbarOptions.showUnits]);\n\n // It sets a delay so it waits until the user stops dragging or zooming the map to do the fetch\n const fetchMapItemsWithBounds = useCallback(\n debounce((boundsFilters) => {\n fetchMapObjects(boundsFilters);\n setMapBounds(boundsFilters);\n\n if (showGeofences) {\n dispatch(\n geofenceActions.startFetchingGeofences({\n operatorId: mapGeofencesOptionsToolbar?.membership?.operatorId,\n organizationId: mapGeofencesOptionsToolbar?.membership?.organizationId,\n bounds: boundsFilters\n })\n );\n setActivateShowGeofences(true);\n }\n }, 1000),\n [\n dispatch,\n showLocations,\n mapLocationsOptionsToolbar,\n showGeofences,\n mapGeofencesOptionsToolbar,\n fetchMapObjects,\n isFetchingLocations\n ]\n );\n\n // Adds listeners to the map to save the bounds every time the map area changes\n useEffect(() => {\n if (map && (showLocations || showGeofences)) {\n const handleMapMovement = () => {\n const bounds = map.getBounds();\n const boundsFilter = {\n minLat: bounds.getSouthWest().lat,\n minLng: bounds.getSouthWest().lng,\n maxLat: bounds.getNorthEast().lat,\n maxLng: bounds.getNorthEast().lng,\n showInMapLocations: showLocations,\n showInMapGeofences: showGeofences,\n mapZoomLevel: map.getZoom()\n };\n\n fetchMapItemsWithBounds(boundsFilter);\n };\n // Attach event listeners\n map.on('moveend', handleMapMovement);\n map.on('zoomend', handleMapMovement);\n\n if (mapInitialized && (showLocations || showGeofences)) {\n handleMapMovement();\n setMapInitialized(false);\n }\n\n // Clean up listeners on unmount\n return () => {\n map.off('moveend', handleMapMovement);\n map.off('zoomend', handleMapMovement);\n };\n }\n }, [map, fetchMapItemsWithBounds]);\n\n //Show items on map after the fetch is completed\n useEffect(() => {\n if (activateShowGeofences && !isFetchingGeofences) {\n dispatch(geofenceActions.showAllGeofencesInMap());\n setActivateShowGeofences(false);\n }\n }, [activateShowGeofences, isFetchingGeofences]);\n\n useEffect(() => {\n if (showGeofences) setActivateShowGeofences(true);\n }, [mapGeofencesOptionsToolbar?.membership?.organizationId]);\n\n const [spiderfyActivated, setSpiderfyActivated] = useState(false);\n const [spiderfyState, setSpiderfyState] = useState(false);\n\n useEffect(() => {\n if (map && map?.getZoom() >= 16 && !spiderfyState) {\n setSpiderfyState(true);\n setSpiderfyActivated(true);\n } else if (map && map?.getZoom() < 16 && spiderfyState) {\n setSpiderfyActivated(true);\n setSpiderfyState(false);\n }\n }, [map?.getZoom()]);\n\n /* -------------------------------------------------------------------------- */\n /* Map Bounds and rerender */\n /* -------------------------------------------------------------------------- */\n useDeepCompareEffect(() => {\n if (\n !mapObjectsBoundsOptions.setMapPositionToGeofenceBounds &&\n !mapObjectsBoundsOptions.setMapPositionToLocationBounds\n ) {\n if (center) setMapPosition(center);\n }\n }, [center || []]);\n\n useEffect(() => {\n if (map != null) {\n setTimeout(function () {\n map.invalidateSize(true);\n }, 100);\n }\n }, [map, rerenderMap]);\n\n useEffect(() => {\n // @ts-ignore locale does return lang\n if (map) map.pm.setLang(intl.locale);\n }, [map, intl]);\n\n return (\n
\n \n {\n setMap(leafletMap);\n const bounds = leafletMap.getBounds();\n const boundsFilter = {\n minLat: bounds.getSouthWest().lat,\n minLng: bounds.getSouthWest().lng,\n maxLat: bounds.getNorthEast().lat,\n maxLng: bounds.getNorthEast().lng,\n showInMapLocations: showLocations,\n showInMapGeofences: showGeofences\n };\n if (showLocations || showGeofences) fetchMapItemsWithBounds(boundsFilter);\n }}\n >\n \n\n {/* MapLocations */}\n {(mapLocationsOptionsToolbar.initialLocationInformationOpenId !== undefined ||\n (showLocations && mapLocationsOptionsToolbar.useIsShownLocation)) && (\n \n )}\n\n {mapLocationsOptions.showLocations && }\n {mapLocationEditOptionsToolbar?.showLocation && (\n \n )}\n {mapLocationEditOptions.showLocation && }\n\n {/* Geofences */}\n {(showGeofences || mapGeofencesOptionsToolbar.useIsShownGeofence) && (\n \n )}\n {mapGeofencesOptions.showGeofences && }\n {mapGeofenceEditOptionsToolbar?.showGeofence && (\n \n )}\n {mapGeofenceEditOptions.showGeofence && }\n\n {/* MapRoutes */}\n {(showRoutes || mapRoutesOptionsToolbar.useIsShownRoute) && (\n \n )}\n\n {mapRoutesOptions.showRoutes && }\n {editingRoute?.showRoute && (\n \n )}\n\n {/* MapUnits */}\n {(mapUnitsOptionsToolbar.initialUnitInformationOpenId !== undefined ||\n showUnits ||\n mapUnitsOptionsToolbar.useIsShownUnit) && (\n \n )}\n\n {mapUnitsOptions.showUnits && (\n \n )}\n\n {mapUnitsPublicOptions && mapUnitsPublicOptions.showUnits && (\n \n )}\n\n {/* Map Object Bounds */}\n \n\n {/* Toolbars */}\n {homeToolbarOptions.useToolbar && (\n \n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['LO008', 'LO001']) &&\n locationsToolbarOptions.useToolbar && (\n setShowLocations(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['GF001', 'GF002']) &&\n geofencesToolbarOptions.useToolbar && (\n setShowGeofences(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP025']) &&\n unitsToolbarOptions.useToolbar && (\n setShowUnits(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['RL001']) &&\n routesToolbarOptions.useToolbar && (\n setShowRoutes(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP046']) &&\n trajectoryToolbarOptions.useToolbar && (\n setShowTrajectory(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n {rulerControlOptions.useControl && (\n \n )}\n \n \n
\n );\n};\n\nMapsBasic.defaultProps = {\n mapOptions: {\n center: [51.5074, 0.1278],\n zoom: 13,\n style: {},\n className: '',\n rerenderMap: null\n },\n\n homeToolbarOptions: ToolbarHomeControl.defaultProps,\n locationsToolbarOptions: ToolbarLocationsControl.defaultProps,\n geofencesToolbarOptions: ToolbarGeofencesControl.defaultProps,\n routesToolbarOptions: ToolbarRoutesControl.defaultProps,\n unitsToolbarOptions: ToolbarUnitsControl.defaultProps,\n rulerControlOptions: RulerControl.defaultProps,\n trajectoryToolbarOptions: ToolbarUnitTrajectoryControl.defaultProps,\n mapBaseLayersOptions: MapBaseLayers.defaultProps,\n mapLocationsOptionsToolbar: MapLocations.defaultProps,\n mapLocationsOptions: MapLocations.defaultProps,\n mapLocationEditOptions: MapLocationEdit.defaultProps,\n mapGeofencesOptionsToolbar: MapGeofences.defaultProps,\n mapGeofencesOptions: MapGeofences.defaultProps,\n mapGeofenceEditOptions: MapGeofenceEdit.defaultProps,\n mapRoutesOptionsToolbar: MapRoutes.defaultProps,\n mapRoutesOptions: MapRoutes.defaultProps,\n mapRouteEditOptions: MapRouteEdit.defaultProps,\n mapUnitsOptionsToolbar: MapUnits.defaultProps,\n mapUnitsOptions: MapUnits.defaultProps,\n mapObjectsBoundsOptions: MapObjectsBounds.defaultProps\n};\nexport default MapsBasic;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport configurations from '../../../../redux/reducers/configurations';\nimport * as authTypes from '../../../../redux/types/auth';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n\n const newState = {};\n order.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n isSelected: state[monitoringUserId]?.isSelected ?? false,\n ...entities[monitoringUserId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n isSelected: newState[monitoringUserId].isSelected ?? false,\n ...entities[monitoringUserId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MONITORING_USER_FETCH_COMPLETED: {\n const { monitoringUser } = action.payload;\n return {\n ...state,\n [monitoringUser.userName]: {\n ...state[monitoringUser.userName],\n ...monitoringUser,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.MONITORING_USER_ADD_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n const newState = omit(state, oldId);\n newState[monitoringUser.userName] = {\n isShownInMap: false,\n ...state[oldId],\n ...monitoringUser,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MONITORING_USER_EDIT_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n return {\n ...omit(state, [oldId]),\n [monitoringUser.userName]: {\n isShownInMap: false,\n ...omit(state[oldId], ['oldMonitoringUser']),\n ...omit(monitoringUser, ['oldMonitoringUser']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MONITORING_USER_ADD_STARTED: {\n const monitoringUser = action.payload;\n const newState = { ...state };\n newState[monitoringUser.userName] = {\n isShownInMap: false,\n isSelected: false,\n ...monitoringUser,\n isConfirmed: false\n };\n return newState;\n }\n case types.MONITORING_USER_EDIT_STARTED: {\n const monitoringUser = action.payload;\n return {\n ...state,\n [monitoringUser.oldUserName]: {\n isShownInMap: false,\n ...state[monitoringUser.oldUserName],\n oldMonitoringUser: state[monitoringUser.oldUserName],\n ...monitoringUser,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MONITORING_USER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MONITORING_USER_EDIT_FAILED: {\n const { oldMonitoringUser } = action.payload;\n return {\n ...state,\n [oldMonitoringUser.userName]: {\n isShownInMap: false,\n ...omit(state[oldMonitoringUser.userName], ['oldMonitoringUser']),\n ...oldMonitoringUser,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n const { users } = action.payload;\n return omit(state, users);\n }\n\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED: {\n const values = action.payload;\n const newState = {\n ...state,\n [values.userName]: {\n ...state[values.userName],\n roleId: values.roleId\n }\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MONITORING_USER_SELECTED: {\n const monitoringUserId = action.payload;\n const newState = {\n ...state,\n [monitoringUserId]: {\n ...state[monitoringUserId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MONITORING_USER_DESELECTED: {\n const monitoringUserId = action.payload;\n return {\n ...state,\n [monitoringUserId]: {\n ...state[monitoringUserId],\n isSelected: false\n }\n };\n }\n\n case types.MONITORING_USERS_ALL_SELECTED: {\n const monitoringUserIds = action.payload;\n const newState = { ...state };\n if (monitoringUserIds.length == 0) {\n forEach(state, (monitoringUser: any, monitoringUserId) => {\n newState[monitoringUserId] = {\n ...monitoringUser,\n isSelected: true\n };\n });\n } else {\n monitoringUserIds.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n ...state[monitoringUserId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MONITORING_USERS_ALL_DESELECTED: {\n const monitoringUserIds = action.payload;\n const newState = { ...state };\n if (monitoringUserIds.length == 0) {\n forEach(state, (monitoringUser: any, monitoringUserId) => {\n newState[monitoringUserId] = {\n ...monitoringUser,\n isSelected: false\n };\n });\n } else {\n monitoringUserIds.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n ...state[monitoringUserId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.USERS_ASSIGN_SCHEDULE_COMPLETED: {\n const userAssignSchedule = action.payload;\n const newState = { ...state };\n userAssignSchedule?.users?.forEach((userName) => {\n newState[userName] = {\n ...state[userName],\n scheduleId: userAssignSchedule.scheduleId,\n scheduleName: userAssignSchedule.scheduleName\n };\n });\n return newState;\n }\n\n case types.USERS_UNASSIGN_SCHEDULE_COMPLETED: {\n const userAssignSchedule = action.payload;\n const newState = { ...state };\n userAssignSchedule?.users?.forEach((userName) => {\n newState[userName] = {\n ...state[userName],\n scheduleId: null,\n scheduleName: null\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MONITORING_USER_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MONITORING_USER_ADD_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n return state.map((userName) => (userName === oldId ? monitoringUser.userName : userName));\n }\n\n case types.MONITORING_USER_EDIT_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n if (oldId !== monitoringUser.userName) {\n const newState = uniq([...state, monitoringUser.userName]);\n return newState.filter((userNameState) => userNameState !== oldId);\n }\n return state;\n }\n\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n const { users } = action.payload;\n return state.filter((userNameState) => users.indexOf(userNameState) < 0);\n }\n\n //CASE ADD STARTED\n case types.MONITORING_USER_ADD_STARTED: {\n const monitoringUser = action.payload;\n return [...state, monitoringUser.userName];\n }\n\n //CASE ADD FAILED\n case types.MONITORING_USER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((userNameState) => userNameState !== oldId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USERS_FETCH_STARTED: {\n return true;\n }\n case types.MONITORING_USERS_FETCH_COMPLETED:\n case types.MONITORING_USERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USER_FETCH_STARTED: {\n return true;\n }\n case types.MONITORING_USER_FETCH_COMPLETED:\n case types.MONITORING_USER_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_ADD_STARTED: {\n return true;\n }\n case types.MONITORING_USER_ADD_COMPLETED:\n case types.MONITORING_USER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED:\n case types.USERS_ASSIGN_SCHEDULE_STARTED:\n case types.USERS_UNASSIGN_SCHEDULE_STARTED:\n case types.MONITORING_USER_EDIT_STARTED: {\n return true;\n }\n case types.MONITORING_USER_EDIT_COMPLETED:\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED:\n case types.USERS_ASSIGN_SCHEDULE_COMPLETED:\n case types.USERS_UNASSIGN_SCHEDULE_COMPLETED:\n case types.MONITORING_USER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_REMOVE_STARTED: {\n return true;\n }\n case types.MONITORING_USER_REMOVE_COMPLETED:\n case types.MONITORING_USER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MONITORING_USERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USERS_FETCH_STARTED:\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.MONITORING_USER_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_FETCH_STARTED:\n case types.MONITORING_USER_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_ADD_STARTED:\n case types.MONITORING_USER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_EDIT_STARTED:\n case types.MONITORING_USER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_REMOVE_STARTED:\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMonitoringUserPassword = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USER_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.MONITORING_USER_UPDATE_PASSWORD_COMPLETED:\n case types.MONITORING_USER_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst monitoringUsers = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n isUpdatingMonitoringUserPassword,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n configurations\n});\n\nexport default monitoringUsers;\n\n//Own state\nexport const getOwnState = (state) => state.people.monitoringUsers;\n\n//Information\nexport const getMonitoringUser = (state, userName): types.MonitoringUser =>\n getOwnState(state).byId[userName];\nexport const getMonitoringUsersList = (state): types.MonitoringUser[] =>\n getOwnState(state)\n .order.map((userName) => getMonitoringUser(state, userName))\n .filter((user) => user?.userStatus > 0);\nexport const getMonitoringUsersSpecificList = (state, list) =>\n list.map((userName) => getMonitoringUser(state, userName));\nexport const getSelectedMonitoringUsers = (state) => {\n const selectedMonitoringUsers = getMonitoringUsersList(state).filter(\n (monitoringUser) => monitoringUser.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedMonitoringUsers.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedMonitoringUsers.length > 0) return selectedMonitoringUsers ?? null;\n\n return null;\n};\nexport const getMonitoringUsersFromBrand = (state, brandId) =>\n getMonitoringUsersList(state).filter((monitoringUser) => monitoringUser?.brandId === brandId);\n\nexport const getSelectedMonitoringUser = (state) => {\n const selectedMonitoringUsers = getMonitoringUsersList(state).filter(\n (monitoringUser) => monitoringUser.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedMonitoringUsers.length === 1) return selectedMonitoringUsers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingMonitoringUser = (state) => getOwnState(state).isFetching;\nexport const isFetchingListMonitoringUsers = (state) => getOwnState(state).isFetchingList;\nexport const isAddingMonitoringUser = (state) => getOwnState(state).isAdding;\nexport const isEditingMonitoringUser = (state) => getOwnState(state).isEditing;\nexport const isRemovingMonitoringUser = (state) => getOwnState(state).isRemoving;\nexport const isChangingMonitoringUserPassword = (state) =>\n getOwnState(state).isUpdatingMonitoringUserPassword;\n\n//Errors\nexport const getFetchingMonitoringUserErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListMonitoringUsersErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingMonitoringUserErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingMonitoringUserErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingMonitoringUserErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { v4 as uuidv4 } from 'uuid';\nimport filter from 'lodash/filter';\n\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as types from '../types';\nimport * as interfaces from 'utility/types';\n\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.FORMS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((formId) => {\n newState[formId] = {\n isSelected: false,\n sections: {\n byId: {},\n order: []\n },\n questions: {\n byId: {},\n order: []\n },\n responses: {\n byId: {},\n order: []\n },\n ...entities[formId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.FORMS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n sections: {\n byId: {},\n order: []\n },\n questions: {\n byId: {},\n order: []\n },\n responses: {\n byId: {},\n order: []\n },\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.FORM_FETCH_COMPLETED: {\n const { form, formOrder, sections, sectionsOrder, questions, questionOrder } = action.payload;\n const newState = { ...state };\n formOrder.forEach((formId) => {\n newState[formId] = {\n isSelected: false,\n sections: {\n byId: sections,\n order: sectionsOrder\n },\n questions: {\n byId: questions,\n order: questionOrder\n },\n responses: {\n byId: {},\n order: []\n },\n ...form[formId],\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_FETCH_COMPLETED: {\n const { formOrder } = action.payload;\n return uniq([...state, ...formOrder])\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 isFetchingFormById = (state = false, action) => {\n switch (action.type) {\n case types.FORM_FETCH_STARTED: {\n return true;\n }\n case types.FORM_FETCH_COMPLETED:\n case types.FORM_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 isFetchingFormById\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 isFetchingById = (state) => getOwnState(state).isFetchingFormById;\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 { 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 interface WorkplanOrderConfigurationRequest {\n organizationId: number;\n organizationName: string;\n orderTag: string;\n orderVolumeUnit: string;\n useWorkplanOrders: boolean;\n orderStatusIds: string; \n}\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\nexport const saveWorkplanOrderConfigurationService = (request: WorkplanOrderConfigurationRequest, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'workplans.orderConfiguration',\n action: 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/saveWorkplanOrderConfiguration`, request);\n};\n","const permissions = {\n listEmailNotification: 'NT001',\n addEmailNotification: 'NT004',\n removeEmailNotification: 'NT005',\n\n listConsoleNotification: 'NT002',\n addConsoleNotification: 'NT006',\n removeConsoleNotification: 'NT008',\n\n listWebServiceNotification: 'NT003',\n addWebServiceNotification: 'NT007',\n removeWebServiceNotification: 'NT009',\n\n listSystemNotification: 'NT010',\n addSystemNotification: 'NT011',\n removeSystemNotification: 'NT012',\n editSystemNotification: 'NT013'\n};\n\nexport default permissions;\n","import * as types from '../../types/routesAssignments';\n\nexport const startFetchingAssignments = (\n startDate,\n endDate,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_STARTED,\n payload: { startDate, endDate, organizationId, divisionId, subdivisionId }\n});\nexport const completeFetchingAssignments = (\n entitiesByDate,\n orderByDate,\n entitiesBySchedule,\n orderBySchedule\n) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED,\n payload: {\n orderByDate,\n entitiesByDate,\n orderBySchedule,\n entitiesBySchedule\n }\n});\nexport const failFetchingAssignments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditingAssignment = (assignment) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignment = (routeAssignmentId, assignment) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_COMPLETED,\n payload: { routeAssignmentId, assignment }\n});\nexport const failEditingAssignment = (routeAssignmentId, oldAssignment, error) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_FAILED,\n payload: { routeAssignmentId, oldAssignment, error }\n});\n\nexport const startRemovingAssignment = (routeAssignmentId) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_STARTED,\n payload: {\n routeAssignmentId\n }\n});\nexport const completeRemovingAssignment = (routeAssignmentId) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED,\n payload: {\n routeAssignmentId\n }\n});\nexport const failRemovingAssignment = (routeAssignmentId, error) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_FAILED,\n payload: {\n routeAssignmentId,\n error\n }\n});\n\nexport const startImportingRouteAssignments = (routeAssignments) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_STARTED,\n payload: {\n routeAssignments\n }\n});\nexport const completeImportingRouteAssignments = (entitiesByDate, orderByDate) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED,\n payload: {\n entitiesByDate,\n orderByDate\n }\n});\nexport const failImportingRouteAssignments = (error) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_FAILED,\n payload: {\n error\n }\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/group';\n\ninterface GroupFilters {\n userFetchDate?: Date;\n groupId?: number;\n userName?: string;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface GroupDeleteRequest {\n groupId?: number;\n groupName?: number;\n}\n\ninterface SaveGroupRequest {\n groupName: string;\n owners: string;\n param?: any;\n entities?: string;\n entityType?: string;\n}\n\nexport const getGroupsListService = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getAllEntitiesInGroupService = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAllEntitiesInGroup`, request);\n};\n\nexport const getAvailableUsersForGroup = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableUsers',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableUsersForGroup`, request);\n};\n\nexport const getAvailableLocationsForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableLocations',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableLocationsForGroup`, request);\n};\n\nexport const getAvailableWorkplansForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableWorkplans',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableWorkPlansForGroup`, request);\n};\n\nexport const getAvailableUnitsForGroup = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableUnitsForGroup`, request);\n};\n\nexport const getAvailableGeofencesForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableGeofencesForGroup`, request);\n};\n\nexport const getAvailableDriversForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableDrivers',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableDriversForGroup`, request);\n};\n\nexport const saveGroupService = (request: SaveGroupRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Create',\n name: request.groupName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/create`, request);\n};\n\nexport const saveGroupWithEntitiesService = (\n request: SaveGroupRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Create',\n name: request.groupName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/createWithEntities`, request);\n};\n\nexport const deleteGroupService = (request: GroupDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.groupName}`,\n object: 'groups.group',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const leaveGroupService = (request: GroupDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.groupName}`,\n object: 'groups.group',\n action: 'Leave',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/leaveGroup`, request);\n};\n\nexport const verifyUserExistsAndNotInGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/verifyUserExistsAndNotInGroup`, request);\n};\n\nexport const pinUserGroupIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/pinUserGroupId`, request);\n};\n\nexport const getGroupByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { SaveSparePartCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\n\nexport const startFetchingSpareParts = (filters = {}) => ({\n type: types.SPAREPARTS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingSpareParts = (entities, order) => ({\n type: types.SPAREPARTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingSpareParts = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SPAREPARTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSpareParts = (entityTypeId) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingSpareParts = (entities, order) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingSpareParts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSparePart = (sparePart: SaveSparePartCategoryDTO) => ({\n type: types.SPAREPART_ADD_STARTED,\n payload: sparePart\n});\n\nexport const completeAddingSparePart = (id: string, oldId: string, sparePart) => ({\n type: types.SPAREPART_ADD_COMPLETED,\n payload: { id, oldId, sparePart }\n});\n\nexport const failAddingSparePart = (oldId, error) => ({\n type: types.SPAREPART_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSparePart = (sparePart: SaveSparePartCategoryDTO) => ({\n type: types.SPAREPART_EDIT_STARTED,\n payload: sparePart\n});\n\nexport const completeEditingSparePart = (sparePart) => ({\n type: types.SPAREPART_EDIT_COMPLETED,\n payload: sparePart\n});\n\nexport const failEditingSparePart = (oldSparePart, error) => ({\n type: types.SPAREPART_EDIT_FAILED,\n payload: {\n oldSparePart,\n error\n }\n});\n\nexport const startRemovingSparePart = (request: {\n sparePartId: number;\n sparePartName: string;\n}) => ({\n type: types.SPAREPART_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingSparePart = (id) => ({\n type: types.SPAREPART_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingSparePart = (id, error) => ({\n type: types.SPAREPART_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","export const SENSOR_MEASURES_FETCH_STARTED = 'SENSOR_MEASURES_FETCH_STARTED';\nexport const SENSOR_MEASURES_FETCH_COMPLETED = 'SENSOR_MEASURES_FETCH_COMPLETED';\nexport const SENSOR_MEASURES_FETCH_FAILED = 'SENSOR_MEASURES_FETCH_FAILED';\n\nexport const SENSOR_MEASURES_CLEAR = 'SENSOR_MEASURES_CLEAR';\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRoutesListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.route',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const deleteRouteService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.routeName}`,\n object: 'routes.route',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const deleteRoutesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: '',\n object: 'routes.routes',\n action: 'Delete',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteMultiple`, request);\n};\n\nexport const saveRouteService = (request: any, configActions: ConfigActions, isNew: boolean) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.route.routeName}`,\n object: 'routes.route',\n action: isNew ? 'Create' : 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const getAlternateRoutesService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n\n return httpWebtrack.post(`${baseUrl}/getAlternateRoutes`, request);\n};\n\nexport const getRouteService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.route',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getRoute`, request);\n};\n","import { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\n\nexport const startFetchingWorkmanships = (filters = {}) => ({\n type: types.WORKMANSHIPS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingWorkmanships = (entities, order) => ({\n type: types.WORKMANSHIPS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingWorkmanships = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKMANSHIPS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingWorkmanships = (entityTypeId) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingWorkmanships = (entities, order) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingWorkmanships = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingWorkmanship = (workmanship: SaveWorkmanshipCategoryDTO) => ({\n type: types.WORKMANSHIP_ADD_STARTED,\n payload: workmanship\n});\n\nexport const completeAddingWorkmanship = (id: string, oldId: string, workmanship) => ({\n type: types.WORKMANSHIP_ADD_COMPLETED,\n payload: { id, oldId, workmanship }\n});\n\nexport const failAddingWorkmanship = (oldId, error) => ({\n type: types.WORKMANSHIP_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkmanship = (workmanship: SaveWorkmanshipCategoryDTO) => ({\n type: types.WORKMANSHIP_EDIT_STARTED,\n payload: workmanship\n});\n\nexport const completeEditingWorkmanship = (workmanship) => ({\n type: types.WORKMANSHIP_EDIT_COMPLETED,\n payload: workmanship\n});\n\nexport const failEditingWorkmanship = (oldWorkmanship, error) => ({\n type: types.WORKMANSHIP_EDIT_FAILED,\n payload: {\n oldWorkmanship,\n error\n }\n});\n\nexport const startRemovingWorkmanship = (request: {\n workmanshipId: number;\n description: string;\n}) => ({\n type: types.WORKMANSHIP_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingWorkmanship = (id) => ({\n type: types.WORKMANSHIP_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingWorkmanship = (id, error) => ({\n type: types.WORKMANSHIP_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import { SaveProviderCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\n\nexport const startFetchingProviders = (filters = {}) => ({\n type: types.PROVIDERS_FETCH_STARTED2,\n payload: filters\n});\n\nexport const completeFetchingProviders = (entities, order) => ({\n type: types.PROVIDERS_FETCH_COMPLETED2,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingProviders = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.PROVIDERS_FETCH_FAILED2,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingProviders = (entityTypeId) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_STARTED2,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingProviders = (entities, order) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_COMPLETED2,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingProviders = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_FAILED2,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingProvider = (provider: SaveProviderCategoryDTO) => ({\n type: types.PROVIDER_ADD_STARTED,\n payload: provider\n});\n\nexport const completeAddingProvider = (id: string, oldId: string, provider) => ({\n type: types.PROVIDER_ADD_COMPLETED,\n payload: { id, oldId, provider }\n});\n\nexport const failAddingProvider = (oldId, error) => ({\n type: types.PROVIDER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingProvider = (provider: SaveProviderCategoryDTO) => ({\n type: types.PROVIDER_EDIT_STARTED,\n payload: provider\n});\n\nexport const completeEditingProvider = (provider) => ({\n type: types.PROVIDER_EDIT_COMPLETED,\n payload: provider\n});\n\nexport const failEditingProvider = (oldProvider, error) => ({\n type: types.PROVIDER_EDIT_FAILED,\n payload: {\n oldProvider,\n error\n }\n});\n\nexport const startRemovingProvider = (request: { providerId: number; providerName: string }) => ({\n type: types.PROVIDER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingProvider = (id) => ({\n type: types.PROVIDER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingProvider = (id, error) => ({\n type: types.PROVIDER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import React, { useState } from 'react';\nimport { Button, Tooltip } from 'reactstrap';\nimport { useSelector } from 'react-redux';\nimport { Edit2 } from 'react-feather';\nimport { FormattedMessage } from 'react-intl';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n isDisabled?: boolean;\n id?: any;\n permissions?: any[];\n handleClick: () => any;\n tooltipMessage?: string;\n visible?: boolean;\n}\n\nconst EditButton = (props: Props) => {\n const store = useSelector((state) => state);\n const { id = '', isDisabled, handleClick, tooltipMessage, permissions, visible = true } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n handleClick()}\n >\n \n {tooltipMessage && (\n \n \n \n )}\n \n ) : null;\n};\n\nEditButton.defaultProps = {\n isDisabled: false\n};\n\nexport default EditButton;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { Button, Row, Col } from 'reactstrap';\nimport SlidingPane from 'react-sliding-pane';\nimport Table from '../../components/Table';\nimport { useForm } from 'react-hook-form';\nimport { FormattedMessage } from 'react-intl';\nimport { Fragment, useEffect, useRef, useState } from 'react';\nimport WebtrackCustomInput from '../WebtrackCustomInput';\n\ninterface Props {\n title: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n onClickCancelButton?: any;\n idTable?: string;\n subtitle?: any;\n confirmText?: any;\n useTable?: boolean;\n heightTable?: number;\n columnsTable?: any[];\n selected?: any;\n isInMap?: boolean;\n changeSelected?: Function;\n dataTable?: any[];\n onSelectTable?: any;\n onDeselectTable?: any;\n width?: string;\n inputs?: any[];\n hasButtonSubmit?: boolean;\n hasButtonCancel?: boolean;\n action?: any;\n control?: any;\n handleSubmit?: Function;\n change?: any;\n onClose?: any;\n timeout?: number;\n}\n\nconst SlidingPaneForm = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n idTable,\n title,\n subtitle,\n confirmText,\n useTable,\n heightTable,\n columnsTable,\n selected,\n changeSelected,\n dataTable,\n onSelectTable,\n onDeselectTable,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n width,\n control,\n handleSubmit,\n change,\n onClose,\n isInMap = false,\n onClickCancelButton,\n timeout\n } = props;\n\n const { control: innerControl, handleSubmit: innerHandleSubmit, watch } = useForm();\n const [isInnerForm, setIsInnerForm] = useState();\n\n const formValues = useRef();\n\n useEffect(() => {\n formValues.current = watch();\n }, [watch()]);\n\n useEffect(() => {\n setIsInnerForm(!(control && handleSubmit));\n }, []);\n\n const closeSlidingPane = (saving) => {\n closeSlidingPaneForm();\n if (onClose != null && !saving) onClose(); //Close without saving\n };\n\n const save = (values) => {\n closeSlidingPane(true);\n action(values);\n };\n\n return (\n closeSlidingPane(false)}\n >\n {useTable && columnsTable && dataTable && (\n <>\n {\n if (changeSelected) changeSelected(event);\n }}\n onSelect={(event: any) => {\n if (onSelectTable) onSelectTable(event);\n }}\n onDeselect={(event: any) => {\n if (onDeselectTable) onDeselectTable(event);\n }}\n />\n
\n
\n
\n \n )}\n \n {inputs &&\n inputs\n .filter((input) => input)\n .map((input, i) => {\n let WrapperInput = Fragment;\n var wrapperInputProps = {\n key: i.toString()\n };\n if (input.type !== 'membership') {\n WrapperInput = Col;\n wrapperInputProps['sm'] = input.sm ? input.sm : '12';\n wrapperInputProps['className'] = input.type === 'membership' ? 'pl-0 pr-0' : '';\n }\n\n return (\n \n {input.subtitle && (\n
\n {input.subtitle}\n
\n )}\n \n
\n );\n })}\n \n \n {hasButtonSubmit && (\n {\n if (timeout) setTimeout(() => save(formValues.current), timeout);\n else save(values);\n })\n : handleSubmit &&\n handleSubmit((values) => {\n if (timeout) setTimeout(() => save(formValues.current), timeout);\n else save(values);\n })\n }\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n {\n closeSlidingPane(false);\n if (onClickCancelButton) onClickCancelButton();\n }}\n >\n \n \n )}\n \n \n
\n \n );\n};\n\nSlidingPaneForm.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneForm;\n","import { 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: 'SimCard',\n navLink: simPaths.listSim,\n screenId: screens.SIMS\n },\n {\n id: 'sensors',\n title: 'sensors.sensors',\n icon: ,\n permissions: [sensorPermissions.listSensor],\n iconName: 'noun_proximity-sensor_614178',\n navLink: sensorPaths.listSensor,\n screenId: screens.SENSORS\n },\n {\n id: 'assets',\n title: 'assets.assets',\n icon: ,\n permissions: [assetPermissions.assetCatalog],\n iconName: 'noun_Check_3687547',\n navLink: assetPaths.listAsset,\n screenId: screens.ASSETS\n },\n {\n id: 'vehicles',\n title: 'vehicles.vehicles',\n icon: ,\n permissions: [vehiclePermissions.listVehicle],\n iconName: 'noun_Wheel_4039720',\n navLink: vehiclePaths.listVehicle,\n screenId: screens.VEHICLES\n }\n ]\n }\n];\n","import { Calendar } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from 'views/screens/Schedules/permissions';\nimport paths from 'views/screens/Schedules/paths';\n\nexport default [\n {\n id: 'schedules',\n title: 'schedules.scheduling',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'noun_schedule_2522607',\n children: [\n {\n id: 'shiftListScreen',\n title: 'schedules.shift',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'turno',\n navLink: paths.listShift,\n screenId: screens.SHIFT\n },\n {\n id: 'triggerListScreen',\n title: 'schedules.trigger',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'disparador',\n navLink: paths.listTrigger,\n screenId: screens.TRIGGER\n }\n ]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Groups/paths';\nimport permissions from 'views/screens/Groups/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'groups',\n title: 'groups.groups',\n icon: ,\n permissions: [permissions.listGroup],\n iconName: 'Groups',\n navLink: paths.listGroup,\n screenId: screens.GROUPS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Drivers/paths';\nimport permissions from 'views/screens/Drivers/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'drivers',\n title: 'drivers.drivers',\n icon: ,\n permissions: [permissions.listDrivers],\n iconName: 'noun_steering_790455',\n navLink: paths.listDrivers,\n screenId: screens.DRIVERS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/People/paths';\nimport permissions from 'views/screens/People/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'people',\n title: 'people.people',\n icon: ,\n permissions: [permissions.listPerson],\n iconName: 'noun_people_1850291',\n navLink: paths.listPeople,\n screenId: screens.PEOPLE\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Users/paths';\nimport permissions from 'views/screens/Users/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'users',\n title: 'users.users',\n icon: ,\n permissions: [permissions.listUsers],\n iconName: 'noun_User_2905483',\n navLink: paths.listUsers,\n screenId: screens.USERS\n }\n];\n","import paths from 'views/screens/Customers/paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from 'views/screens/Customers/permissions';\nimport Icon from '../../utility/icomoon';\n\nexport default [\n {\n id: 'customers',\n title: 'customers.customers',\n icon: ,\n permissions: [permissions.listCustomers],\n iconName: 'Customers',\n navLink: paths.listCustomer,\n screenId: screens.CUSTOMERS\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'contacts',\n title: 'contacts.contacts2',\n permissions: ['CO001'],\n iconName: 'Contacts',\n navLink: paths.listContact,\n screenId: screens.CONTACTS\n }\n];\n","import { List, MapPin } from 'react-feather';\nimport paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'offices',\n title: 'offices.offices',\n iconName: 'Branch',\n permissions: [permissions.listOffices],\n navLink: paths.listOffice,\n screenId: screens.LOCATIONS_CATALOG\n }\n];\n","import drivers from './drivers';\nimport people from './people';\nimport users from './users';\nimport customers from './customers';\nimport contacts from 'views/screens/Contacts/sidebarLayout';\nimport offices from 'views/screens/Offices/sidebarLayout';\n\nexport default [\n {\n id: 'catalogs',\n title: 'sidebar.catalogs',\n icon: 'Users',\n permissions: [],\n iconName: 'Users',\n children: [...users, ...drivers, ...people, ...contacts, ...customers, ...offices]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Notifications/paths';\nimport permissions from 'views/screens/Notifications/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'notifications',\n title: 'notifications.notifications',\n icon: ,\n permissions: [\n permissions.listEmailNotification,\n permissions.listConsoleNotifications,\n permissions.listWebServiceNotification,\n permissions.listSystemNotification\n ],\n iconName: 'Bell',\n children: [\n {\n id: 'emailNotificationScreen',\n title: 'notifications.email',\n icon: ,\n permissions: [permissions.listEmailNotification],\n iconName: 'noun_Mail_1707176',\n navLink: paths.listEmailNotifications,\n screenId: screens.EMAIL_NOTIFICATIONS\n },\n {\n id: 'consoleNotificationScreen',\n title: 'notifications.console',\n icon: ,\n permissions: [permissions.listConsoleNotification],\n iconName: 'Consola',\n navLink: paths.listConsoleNotifications,\n screenId: screens.CONSOLE_NOTIFICATIONS\n },\n {\n id: 'webNotificationScreen',\n title: 'notifications.webService',\n icon: ,\n permissions: [permissions.listWebServiceNotification],\n iconName: 'WebService',\n navLink: paths.listWebServiceNotifications,\n screenId: screens.WEB_SERVICE_NOTIFICATIONS\n },\n {\n id: 'systemNotificationScreen',\n title: 'notifications.system',\n icon: ,\n permissions: [permissions.listSystemNotification],\n iconName: 'Diagnostico-de-comu',\n navLink: paths.listSystemNotifications,\n screenId: screens.SYSTEM_NOTIFICATIONS\n }\n ]\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'forms',\n title: 'forms.forms',\n permissions: [permissions.listForms, permissions.answersFormReport],\n iconName: 'Formularios',\n children: [\n {\n id: 'listFormScreen',\n title: 'forms.catalog',\n permissions: [permissions.listForms],\n iconName: 'Catalog',\n navLink: paths.listForms,\n screenId: screens.FORMS_CATALOG\n },\n {\n id: 'monitorFormScreen',\n title: 'forms.monitoring',\n permissions: [permissions.answersFormReport],\n iconName: 'Catalog',\n navLink: paths.answersReportForms,\n screenId: screens.ANSWERS_FORMS\n }\n ]\n }\n];\n","import affiliations from './affiliations';\nimport inventories from './inventories';\nimport schedules from './schedules';\nimport groups from './groups';\nimport catalogs from './catalogs';\nimport notifications from './notifications';\nimport forms from 'views/screens/Forms/sidebarLayout';\n\nexport default [\n {\n header: 'sidebar.administration',\n iconName: 'Sliders',\n children: [\n ...affiliations,\n ...groups,\n ...schedules,\n ...catalogs,\n ...forms,\n ...inventories,\n ...notifications\n ] //Only to check permission in children inside\n },\n ...affiliations,\n ...groups,\n ...schedules,\n ...catalogs,\n ...forms,\n ...inventories,\n ...notifications\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'workplans',\n title: 'workplans.workplan',\n permissions: [\n permissions.viewWorkplanCatalog,\n permissions.viewWorkplanMonitor,\n permissions.viewWorkplanReport,\n permissions.assignWorkplan\n ],\n iconName: 'Workplan',\n children: [\n {\n id: 'workplansListScreen',\n title: 'sidebar.catalog',\n permissions: [permissions.viewWorkplanCatalog],\n iconName: 'WorkplanCatalog',\n navLink: paths.workplanList,\n screenId: screens.WORK_PLAN_CATALOG\n },\n {\n id: 'workplansMonitorScreen',\n title: 'sidebar.monitor',\n permissions: [permissions.viewWorkplanMonitor],\n iconName: 'WorkplanMonitor',\n navLink: paths.workplanMonitor,\n screenId: screens.WORK_PLAN_MONITOR\n },\n {\n id: 'workplansReportScreen',\n title: 'sidebar.report',\n permissions: [permissions.viewWorkplanReport],\n iconName: 'WorkplanReport',\n navLink: paths.workplanReport,\n screenId: screens.WORK_PLAN_REPORT\n },\n {\n id: 'scheduledWorkplanCatalogScreen',\n title: 'workplans.scheduledPlans',\n permissions: [permissions.scheduledWorkplanList],\n iconName: 'WorkplanReport',\n navLink: paths.scheduledWorkplan,\n screenId: screens.SCHEDULED_WORKPLANS\n },\n {\n id: 'workplansAssignUnitScreen',\n title: 'sidebar.assignWorkplan',\n permissions: [permissions.viewWorkplanModule, permissions.assignWorkplan],\n iconName: 'PlusSquare',\n navLink: paths.workplanAssignUnit,\n screenId: screens.ASSIGN_WORK_PLAN\n }\n /* {\n id: 'WorkplanImport',\n title: 'common.import',\n permissions: [],\n iconName: 'UploadCloud',\n navLink: paths.workplanImport,\n screenId: screens.WORKPLAN_IMPORT\n } */\n ]\n }\n];\n","import * as screens from '@core/layouts/components/menu/screens';\nimport paths from './paths';\nimport permissions from './permissions';\n\nexport default [\n {\n id: 'routes',\n title: 'routes.logisticRoute',\n permissions: [\n permissions.viewRouteCatalog,\n permissions.viewRouteMonitor,\n permissions.viewRouteReport,\n permissions.assignRoute\n ],\n iconName: 'Route',\n children: [\n {\n id: 'routesListScreen',\n title: 'sidebar.catalog',\n permissions: [permissions.viewRouteCatalog],\n iconName: 'RouteCatalog',\n navLink: paths.routeList,\n screenId: screens.LOGISTIC_ROUTE_CATALOG\n },\n {\n id: 'routesMonitorScreen',\n title: 'sidebar.monitor',\n permissions: [permissions.viewRouteMonitor],\n iconName: 'RouteMonitor',\n navLink: paths.routeMonitor,\n screenId: screens.LOGISTIC_ROUTE_MONITOR\n },\n {\n id: 'routesReportScreen',\n title: 'sidebar.report',\n permissions: [permissions.viewRouteReport],\n iconName: 'RouteReport',\n navLink: paths.routeReport,\n screenId: screens.LOGISTIC_ROUTE_REPORT\n },\n {\n id: 'routesAssignUnitScreen',\n title: 'sidebar.assignRoute',\n permissions: [permissions.assignRoute],\n iconName: 'PlusSquare',\n navLink: paths.routeAssignUnit,\n screenId: screens.ASSIGN_LOGISTIC_ROUTE\n },\n {\n id: 'importRouteAssignmentsScreen',\n title: 'sidebar.importRouteAssignments',\n permissions: [permissions.importRouteAssignments],\n iconName: 'UploadCloud',\n navLink: paths.importRouteAssignments,\n screenId: screens.IMPORT_ROUTE_ASSIGNMENTS\n },\n {\n id: 'routesETAMonitorScreen',\n title: 'sidebar.ETAmonitor',\n permissions: [permissions.routeETAMonitor],\n iconName: 'RouteMonitor', //CAMBIAR\n navLink: paths.routeETAMonitor,\n screenId: screens.LOGISTIC_ROUTE_ETA_MONITOR\n }\n ]\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'optimizations',\n title: 'optimizations.optimizations',\n iconName: 'Zap',\n permissions: [permissions.viewOptimizations],\n children: [\n {\n id: 'optimizationsCatalog',\n title: 'sidebar.catalog',\n iconName: 'Catalog',\n permissions: [permissions.viewOptimizations],\n navLink: paths.listOptimization,\n screenId: screens.OPTIMIZATIONS\n }\n ]\n }\n];\n","import { Plus, PlusCircle, UploadCloud, List, Shield, FilePlus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport paths from 'views/screens/VehicleFuel/paths';\nimport permissions from 'views/screens/VehicleFuel/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'vehicleFuel',\n title: 'vehicleFuel.fuel',\n icon: ,\n iconName: 'Fuel',\n permissions: [],\n children: [\n {\n id: 'vehicleFuelTickets',\n title: 'vehicleFuel.tickets',\n icon: ,\n iconName: 'Boleta',\n permissions: [permissions.addTicket, permissions.importTicket],\n children: [\n {\n id: 'vehicleFueNewTicket',\n title: 'vehicleFuel.newTicket',\n icon: ,\n iconName: 'FilePlus',\n permissions: [permissions.addTicket],\n navLink: paths.addTicket,\n screenId: screens.NEW_TICKET\n },\n {\n id: 'vehicleFuelRecordMultipleTickets',\n title: 'vehicleFuel.recordMultipleTickets',\n icon: ,\n iconName: 'FileVersion',\n permissions: [permissions.recordMultiple],\n navLink: paths.recordMultiple,\n screenId: screens.RECORD_MULTIPLE_TICKETS\n },\n {\n id: 'vehicleFuelImportTicket',\n title: 'vehicleFuel.importTicket',\n iconName: 'UploadCloud',\n icon: ,\n permissions: [permissions.importTicket],\n navLink: paths.importTicket,\n screenId: screens.IMPORT_FUEL_TICKETS\n }\n ]\n },\n {\n id: 'vehicleFuelReports',\n title: 'vehicleFuel.reports',\n icon: ,\n permissions: [permissions.consolidatedReport, permissions.byUnitReport],\n iconName: 'PlusCircle',\n children: [\n {\n id: 'vehicleConsolidatedReport',\n title: 'vehicleFuel.consolidatedReport',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.consolidatedReport],\n navLink: paths.consolidatedReport,\n screenId: screens.FUEL_TICKETS_CONSOLIDATED_REPORT\n },\n {\n id: 'vehicleByUnitReport',\n title: 'vehicleFuel.byUnitReport',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.byUnitReport],\n navLink: paths.byUnitReport,\n screenId: screens.FUEL_TICKETS_REPORT_BY_UNIT\n }\n ]\n }\n ]\n }\n];\n","import { Plus, PlusCircle, UploadCloud, List, Shield } from 'react-feather';\nimport paths from 'views/screens/vehicleMaintenance/paths';\nimport permissions from 'views/screens/vehicleMaintenance/permissions';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'vehicleMaintenance',\n title: 'sidebar.vehicleMaintenance',\n icon: ,\n iconName: 'Maintainance',\n permissions: [\n permissions.preventiveNotices,\n permissions.sparepartsCatalog,\n permissions.workshopCatalog,\n permissions.categoriesCatalog,\n permissions.providersCatalog,\n permissions.importTicket,\n permissions.generalReport,\n permissions.byCategoryReport,\n permissions.byUnitReport,\n permissions.byWorkShopReport\n ],\n children: [\n {\n id: 'vehicleMaintenancePreventiveNotices',\n title: 'vehicleMaintenance.preventiveNotices',\n icon: ,\n iconName: 'PreventiveNotice',\n permissions: [permissions.preventiveNotices],\n navLink: paths.preventiveNotices,\n screenId: screens.PREVENTIVE_NOTICES\n },\n {\n id: 'addWorkshopOrders',\n title: 'vehicleMaintenance.addWorkshopOrders',\n icon: ,\n iconName: 'Users',\n permissions: [permissions.addTickets],\n navLink: paths.addWorkshopOrders,\n screenId: screens.WORKSHOP_ADD_ORDER\n },\n {\n id: 'vehicleMaintenanceCatalogs',\n title: 'vehicleMaintenance.catalogs',\n icon: ,\n iconName: 'Shield',\n permissions: [\n permissions.sparepartsCatalog,\n permissions.workshopCatalog,\n permissions.categoriesCatalog,\n permissions.providersCatalog\n ],\n children: [\n {\n id: 'vehicleMaintenanceSpareParts',\n title: 'vehicleMaintenance.sparepart',\n icon: ,\n iconName: 'Spareparts',\n permissions: [permissions.sparepartsCatalog],\n navLink: paths.sparepartsCatalog,\n screenId: screens.SPAREPARTS_CATALOG\n },\n {\n id: 'vehicleMaintenanceWorkForce',\n title: 'vehicleMaintenance.workmanships',\n icon: ,\n iconName: 'Workmanship',\n permissions: [permissions.workshopCatalog],\n navLink: paths.workshopCatalog,\n screenId: screens.WORKMANSHIPS_CATALOG\n },\n {\n id: 'vehicleMaintenanceCategories',\n title: 'vehicleMaintenance.categories',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.categoriesCatalog],\n navLink: paths.categoriesCatalog,\n screenId: screens.SPAREPARTS_CATEGORIES_CATALOG\n },\n {\n id: 'vehicleMaintenanceProviders',\n title: 'vehicleMaintenance.providers',\n icon: ,\n iconName: 'SparepartProvider',\n permissions: [permissions.providersCatalog],\n navLink: paths.providersCatalog,\n screenId: screens.SPAREPARTS_PROVIDERS_CATALOG\n },\n {\n id: 'vehicleMaintenanceRanges',\n title: 'maintenanceLines.maintenanceLines',\n icon: ,\n iconName: 'Activity',\n permissions: [permissions.maintenanceLines],\n navLink: paths.maintenanceLineList,\n screenId: screens.MAINTENANCE_RANGES\n }\n ]\n },\n {\n id: 'vehicleMaintenanceReports',\n title: 'vehicleMaintenance.reports',\n icon: ,\n iconName: 'Shield',\n permissions: [\n permissions.generalReport,\n permissions.byCategoryReport,\n permissions.byUnitReport,\n permissions.byWorkShopReport\n ],\n children: [\n {\n id: 'vehicleMaintenanceGeneralReport',\n title: 'vehicleMaintenance.generalReport',\n icon: ,\n iconName: 'Plus',\n permissions: [permissions.generalReport],\n navLink: paths.generalReport,\n screenId: screens.GENERAL_MAINTENANCE_REPORT\n },\n {\n id: 'vehicleMaintenanceByCategoryReport',\n title: 'vehicleMaintenance.byCategory',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byCategoryReport],\n navLink: paths.byCategoryReport,\n screenId: screens.BY_CATEGORY_REPORT\n },\n {\n id: 'vehicleMaintenanceByUnitReport',\n title: 'vehicleMaintenance.byUnit',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byUnitReport],\n navLink: paths.byUnitReport,\n screenId: screens.BY_UNIT_REPORT\n },\n {\n id: 'vehicleMaintenanceByWorkShopReport',\n title: 'vehicleMaintenance.byWorkShop',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byWorkShopReport],\n navLink: paths.byWorkShopReport,\n screenId: screens.BY_WORKSHOP_REPORT\n }\n ]\n },\n {\n id: 'vehicleMaintenanceImportTicket',\n title: 'vehicleFuel.importTicket',\n iconName: 'UploadCloud',\n icon: ,\n permissions: [permissions.importTicket],\n navLink: paths.importTicket,\n screenId: screens.IMPORT_MAINTENANCE_TICKETS\n }\n ]\n }\n];\n","import workplans from '../../views/screens/Workplans/sidebarLayout';\nimport routes from '../../views/screens/Routes/sidebarLayout';\nimport optimizations from '../../views/screens/Optimizations/sidebarLayout';\nimport vehicleFuel from './vehicleFuel';\n\nimport vehicleMaintenance from './vehicleMaintenance';\n\nexport default [\n {\n header: 'sidebar.logistics',\n iconName: 'Share2',\n badgeText: 'common.premium',\n children: [...routes, ...workplans, ...vehicleFuel, ...vehicleMaintenance, ...optimizations] //Only to check permission in children inside\n },\n ...routes,\n ...workplans,\n ...vehicleMaintenance,\n ...vehicleFuel,\n ...optimizations\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport Icon from 'utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'telemetryUnits',\n title: 'units.units',\n icon: ,\n iconName: 'Unidades',\n permissions: [permissions.telemtryUnits],\n navLink: paths.telemetryUnits,\n screenId: screens.TELEMETRY_UNITS\n },\n {\n id: 'temperatureTelemetry',\n title: 'telemetry.temperature',\n iconName: 'Thermometer',\n permissions: [permissions.temperatureCatalog],\n navLink: paths.telemetryTemperature,\n screenId: screens.TEMPERATURE_TELEMETRY\n },\n {\n id: 'fuelTelemetry',\n title: 'telemetry.fuel',\n iconName: 'Fuel',\n permissions: [permissions.fuelCatalog, permissions.fuelReport],\n children: [\n {\n id: 'fuelTelemetryMonitor',\n title: 'telemetry.fuelMonitor',\n iconName: 'Fuel',\n permissions: [permissions.fuelCatalog],\n navLink: paths.telemetryFuelMonitor,\n screenId: screens.FUEL_TELEMETRY_MONITOR\n },\n {\n id: 'fuelTelemetryReport',\n title: 'telemetry.fuelReport',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n children: [\n {\n id: 'fuelTelemetryReport',\n title: 'assets.assets',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n navLink: paths.telemetryFuelReport,\n screenId: screens.FUEL_TELEMETRY_REPORT\n },\n {\n id: 'fuelTelemetryReportByVehicles',\n title: 'vehicles.vehicles',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n navLink: paths.telemetryFuelReportByVehicles,\n screenId: screens.FUEL_TELEMETRY_REPORT_BY_VEHICLES\n }\n ]\n },\n ]\n },\n {\n id: 'telemetryOBD2',\n title: 'telemetry.obd2',\n icon: ,\n iconName: 'Cpu',\n permissions: [permissions.obd2Monitor],\n navLink: paths.telemetryOBD2,\n screenId: screens.TELEMETRY_OBD2\n }\n];\n","import telemetry from 'views/screens/Telemetry/sidebarLayout';\n\nexport default [\n {\n header: 'telemetry.telemetry',\n iconName: 'Target',\n children: [...telemetry]\n },\n ...telemetry\n];\n","import { Map } from 'react-feather';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'map',\n title: 'sidebar.map',\n icon: ,\n permissions: ['BA001'],\n iconName: 'Map',\n navLink: '/home',\n screenId: screens.MAP\n }\n];\n","import paths from './paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from './permissions';\n\nexport default [\n {\n id: 'dashboard',\n title: 'dashboard.dashboard',\n iconName: 'Grid',\n badge: 'primary',\n badgeText: 'common.comingSoon',\n permissions: [permissions.dashboard],\n navLink: paths.dashboard,\n screenId: screens.DASHBOARD\n }\n];\n","import { List, MapPin } from 'react-feather';\nimport paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'locations',\n title: 'locations.locations',\n icon: ,\n iconName: 'MapPin',\n permissions: [permissions.listLocations, permissions.importLocation],\n children: [\n {\n id: 'locationsListScreen',\n title: 'locations.catalog',\n iconName: 'Catalog',\n permissions: [permissions.listLocations],\n // accessLevels: [9, 13, 15],\n navLink: paths.locationsList,\n screenId: screens.LOCATIONS_CATALOG\n },\n {\n id: 'importLocationsScreen',\n title: 'locations.importLocations',\n iconName: 'UploadCloud',\n permissions: [permissions.importLocation],\n // accessLevels: [9, 13, 15],\n navLink: paths.importLocations,\n screenId: screens.IMPORT_LOCATIONS\n }\n ]\n }\n];\n","import { List } from 'react-feather';\nimport paths from 'views/screens/Geofences/paths';\nimport permissions from 'views/screens/Geofences/permissions';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'geofences',\n title: 'geofences.geofences',\n icon: ,\n iconName: 'Geofences',\n permissions: [permissions.listGeofences, permissions.listAsignedGeofences],\n children: [\n {\n id: 'geofencesListScreen',\n title: 'geofences.catalog',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.listGeofences],\n // accessLevels: [9, 13, 15],\n navLink: paths.geofencesList,\n screenId: screens.GEOFENCES_CATALOG\n },\n {\n id: 'geofencesAssignedListScreen',\n title: 'geofences.assignedGeofences',\n icon: ,\n iconName: 'Link',\n permissions: [permissions.listAsignedGeofences],\n // accessLevels: [9, 13, 15],\n navLink: paths.geofencesAssignedList,\n screenId: screens.ASSIGNED_GEOFENCES\n }\n ]\n }\n];\n","import { MapPin } from 'react-feather';\nimport locations from '../../views/screens/Locations/sidebarLayout';\nimport geofences from './geofences';\n\nexport default [\n {\n id: 'pointsOfInterest',\n title: 'sidebar.pointsOfInterest',\n icon: ,\n iconName: 'MapPin',\n permissions: [],\n children: [...geofences, ...locations]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Reports/paths';\nimport permissions from 'views/screens/Reports/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'reports',\n title: 'reports.reports',\n icon: ,\n iconName: 'noun_report_556224',\n permissions: [\n permissions.systemCommunicationsDiagReport,\n permissions.systemNotificationsReport,\n permissions.accommodationChargesReport,\n permissions.mileageReport,\n permissions.hourMetersReport,\n permissions.consolidatedUnitActivityReport,\n permissions.consolidatedEventActivityReport,\n permissions.fuelSensorReport,\n permissions.consolidatedUnitMainStateReport,\n permissions.parkedGeofenceReport,\n permissions.administrativeReports,\n permissions.byUnitReports,\n permissions.consolidatedReports,\n permissions.listReports,\n permissions.runningTimeReport,\n permissions.unitActivity,\n permissions.byUnitReport,\n permissions.consumptionAPIReport,\n permissions.readWebEvents,\n permissions.scheduledReports\n ],\n navLink: paths.reportList,\n screenId: screens.REPORTS\n //children: [...scheduledReports, ...consolidated, ...byUnit, ...system]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/TrackingUnits/paths';\nimport permissions from 'views/screens/TrackingUnits/permissions';\nimport unitPermissions from 'views/screens/Units/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'trackingUnits',\n title: 'units.units',\n icon: ,\n permissions: [permissions.trackingUnitsList, unitPermissions.listFleet],\n iconName: 'Unidades',\n navLink: paths.listTrackingUnits,\n screenId: screens.TRACKING_UNITS,\n children: [\n {\n id: 'trackingUnitsCatalog',\n title: 'sidebar.catalog',\n icon: ,\n permissions: [permissions.trackingUnitsList],\n iconName: 'Unidades',\n navLink: paths.listTrackingUnits,\n screenId: screens.TRACKING_UNITS\n },\n {\n id: 'trackingUnitsMonitor',\n title: 'sidebar.monitor',\n icon: ,\n permissions: [unitPermissions.listFleet],\n iconName: 'Unidades',\n navLink: paths.listFleet,\n screenId: screens.FLEET\n }\n ]\n }\n];\n","import maps from './maps';\nimport dashboard from 'views/screens/Dashboard/sidebarLayout';\nimport pointsOfInterest from './pointsOfInterest';\nimport reports from './reports';\nimport trackingUnits from './trackingUnits';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...dashboard, ...maps, ...reports, ...trackingUnits, ...pointsOfInterest] //Only to check permission in children inside\n },\n ...dashboard,\n ...maps,\n ...reports,\n ...trackingUnits,\n ...pointsOfInterest\n];\n","import Icon from '../../utility/icomoon';\nimport organizationContractPaths from 'views/screens/Contracts/paths';\nimport contractTemplatesPaths from 'views/screens/ContractTemplates/paths';\nimport serviceClassPaths from 'views/screens/ServiceClasses/paths';\nimport quotationPaths from 'views/screens/Quotations/paths';\nimport organizationContractPermissions from 'views/screens/Contracts/permissions';\nimport contractTemplatesPermissions from 'views/screens/ContractTemplates/permissions';\nimport serviceClassPermissions from 'views/screens/ServiceClasses/permissions';\nimport quotationPermissions from 'views/screens/Quotations/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'service-class-orm',\n title: 'serviceClasses.serviceClasses',\n icon: ,\n permissions: [serviceClassPermissions.listServiceClass],\n accessLevels: [9, 13, 15],\n iconName: 'DollarSign',\n navLink: serviceClassPaths.listServiceClass,\n screenId: screens.SERVICE_CLASSES\n },\n {\n id: 'contracts-templates',\n title: 'contractTemplates.templates',\n icon: ,\n permissions: [contractTemplatesPermissions.listTemplate],\n iconName: 'PenTool',\n navLink: contractTemplatesPaths.listTemplate,\n screenId: screens.CONTRACT_TEMPLATES\n },\n {\n id: 'contracts',\n title: 'contracts.contracts',\n icon: ,\n iconName: 'FileText',\n permissions: [organizationContractPermissions.listContract],\n navLink: organizationContractPaths.listContract,\n screenId: screens.CONTRACTS\n },\n {\n id: 'quotations',\n title: 'quotations.quotations',\n icon: ,\n iconName: 'Edit',\n permissions: [quotationPermissions.listQuotation],\n navLink: quotationPaths.listQuotations,\n screenId: screens.QUOTATIONS\n }\n];\n","import contracts from './contracts';\nimport trackingUnits from './trackingUnits';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...contracts, ...trackingUnits] //Only to check permission in children inside\n },\n ...contracts,\n ...trackingUnits\n];\n","import paths from 'views/screens/Jobs/paths';\nimport permissions from 'views/screens/Jobs/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'jobs',\n title: 'jobs.jobs',\n iconName: 'Jobs',\n permissions: [permissions.jobs],\n children: [\n {\n id: 'jobsBacklog',\n title: 'jobs.backlog',\n iconName: 'Server',\n permissions: [permissions.listJobsBacklog],\n navLink: paths.backlog,\n screenId: screens.BACKLOG_JOBS\n },\n {\n id: 'ImportJobs',\n title: 'jobs.importJobs',\n iconName: 'UploadCloud',\n permissions: [permissions.jobsImport],\n navLink: paths.import,\n screenId: screens.IMPORT_JOBS\n },\n {\n id: 'jobsBoard',\n title: 'jobs.board',\n iconName: 'Trello',\n permissions: [permissions.jobsBoard],\n navLink: paths.board,\n screenId: screens.JOBS_BOARD\n },\n {\n id: 'jobsReport',\n title: 'jobs.report',\n iconName: 'Clock',\n permissions: [permissions.jobsReport],\n navLink: paths.report,\n screenId: screens.JOBS_REPORT\n },\n {\n id: 'workingActivityReport',\n title: 'jobs.reports.workingActivity',\n iconName: 'Calendar',\n permissions: [permissions.jobsWorkingActivity],\n navLink: paths.workingActivityReport,\n screenId: screens.JOBS_WORK_ACTIVITY\n }\n ]\n }\n];\n","import paths from 'views/screens/SafeDriver/paths';\nimport permissions from 'views/screens/SafeDriver/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'safeDriver',\n title: 'safeDriver.safeDriver',\n iconName: 'SafeDriver',\n badge: 'primary',\n badgeText: 'common.comingSoon',\n permissions: [permissions.safedriver],\n navLink: paths.list,\n screenId: screens.SAFE_DRIVER\n }\n];\n","import jobs from 'views/screens/Jobs/sidebarLayout';\nimport safeDriver from 'views/screens/SafeDriver/sidebarLayout';\n\nexport default [\n {\n header: 'sidebar.apps',\n iconName: 'BarChart2',\n children: [...jobs, ...safeDriver] //Only to check permission in children inside\n },\n ...jobs,\n ...safeDriver\n];\n","import businessPartnersPaths from 'views/screens/BusinessPartners/paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport Icon from '../../utility/icomoon';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport default [\n {\n id: 'businessPartner',\n title: 'partners.businessPartner',\n icon: ,\n iconName: 'Customers',\n permissions: [],\n navLink: businessPartnersPaths.editPartner,\n screenId: screens.BUSINESS_PARTNERS\n },\n {\n id: 'webServiceRates',\n title: 'partners.webServiceRates',\n icon: ,\n iconName: 'WebService',\n permissions: [],\n navLink: businessPartnersPaths.webServiceRates,\n screenId: screens.WEB_SERVICE_RATES\n }\n];\n","import businessPartners from './businessPartners';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...businessPartners] //Only to check permission in children inside\n },\n ...businessPartners\n];\n","import Icon from '../../utility/icomoon';\nimport paths from '../../views/screens/Console/paths';\nimport permissions from '../../views/screens/Console/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'console',\n title: 'console.console',\n icon: ,\n permissions: [permissions.console],\n iconName: 'Monitor',\n navLink: paths.console,\n screenId: screens.CONSOLE_NOTIFICATIONS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from '../../views/screens/Protocols/paths';\nimport permissions from '../../views/screens/Protocols/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'protocol',\n title: 'protocol.protocol',\n icon: ,\n permissions: [\n permissions.listProtocol,\n permissions.createProtocol,\n permissions.editProtocol,\n permissions.deleteProtocol\n ],\n iconName: 'List',\n navLink: paths.protocolsList,\n screenId: screens.PROTOCOL_CATALOG\n }\n];\n","import console from './console';\nimport protocol from './protocol';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'Target',\n children: [...console, ...protocol]\n },\n ...console,\n ...protocol\n];\n","import administrations from './administrations';\r\nimport operations from './operations';\r\nimport telemetry from './telemetry';\r\nimport general from './general';\r\nimport generalCRM from './generalCRM';\r\nimport apps from './apps';\r\nimport generalAdmin from './generalAdmin';\r\nimport generalMonitoringCenter from './generalMonitoringCenter';\r\n\r\nconst sidebarOptions = [...general, ...apps, ...operations, ...telemetry, ...administrations];\r\nexport const sidebarOptionsCRM = [...generalCRM];\r\nexport const sidebarOptionsMonitoring = [...generalMonitoringCenter];\r\nexport const sidebarOptionsAdmin = [...generalAdmin];\r\n\r\nexport function getOptions(sidebarOptions) {\r\n let options = [];\r\n\r\n sidebarOptions.forEach((option) => {\r\n if (option['navLink'] != null) {\r\n const optionNav = {\r\n ...option,\r\n isBookmarked: false,\r\n link: option['navLink'],\r\n\r\n target: option['id'],\r\n icon: option['iconName']\r\n };\r\n options.push(optionNav);\r\n }\r\n if (option['children'] != null && option['header'] == null) {\r\n let childrenOptions = getOptions(option['children']);\r\n options = [...options, ...childrenOptions];\r\n }\r\n });\r\n\r\n return options;\r\n}\r\n\r\nexport default sidebarOptions;\r\n","export const LOCATION_CLASSES_FETCH_STARTED = 'LOCATION_CLASSES_FETCH_STARTED';\nexport const LOCATION_CLASSES_FETCH_COMPLETED = 'LOCATION_CLASSES_FETCH_COMPLETED';\nexport const LOCATION_CLASSES_FETCH_FAILED = 'LOCATION_CLASSES_FETCH_FAILED';\n","export const TIME_ZONES_FETCH_STARTED = \"TIME_ZONES_FETCH_STARTED\";\nexport const TIME_ZONES_FETCH_COMPLETED = \"TIME_ZONES_FETCH_COMPLETED\";\nexport const TIME_ZONES_FETCH_FAILED = \"TIME_ZONES_FETCH_FAILED\";\n","export const CURRENCIES_FETCH_STARTED = 'CURRENCIES_FETCH_STARTED';\nexport const CURRENCIES_FETCH_COMPLETED = 'CURRENCIES_FETCH_COMPLETED';\nexport const CURRENCIES_FETCH_FAILED = 'CURRENCIES_FETCH_FAILED';\n\nexport interface Currency {\n isSelected: boolean;\n currencyId: number;\n currencyName: string;\n codeAlpha: string;\n symbol: string;\n countryCode: string;\n isConfirmed: boolean;\n}\n","export const SENSOR_BRANDS_FETCH_STARTED = 'SENSOR_BRANDS_FETCH_STARTED';\nexport const SENSOR_BRANDS_FETCH_COMPLETED = 'SENSOR_BRANDS_FETCH_COMPLETED';\nexport const SENSOR_BRANDS_FETCH_FAILED = 'SENSOR_BRANDS_FETCH_FAILED';\n","export const SENSOR_MODELS_FETCH_STARTED = 'SENSOR_MODELS_FETCH_STARTED';\nexport const SENSOR_MODELS_FETCH_COMPLETED = 'SENSOR_MODELS_FETCH_COMPLETED';\nexport const SENSOR_MODELS_FETCH_FAILED = 'SENSOR_MODELS_FETCH_FAILED';\n","export const PAYMENT_METHODS_FETCH_STARTED = 'PAYMENT_METHODS_FETCH_STARTED';\nexport const PAYMENT_METHODS_FETCH_COMPLETED = 'PAYMENT_METHODS_FETCH_COMPLETED';\nexport const PAYMENT_METHODS_FETCH_FAILED = 'PAYMENT_METHODS_FETCH_FAILED';\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansAssignments';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst bySchedule = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assignmentId) => {\n newState[assignmentId] = {\n isSelected: false,\n ...state[assignmentId],\n ...entities[assignmentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return omit(state, assignmentId);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.assignmentId]: {\n ...state[assignment.assignmentId],\n ...assignment\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byDateTime = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assignmentId) => {\n newState[assignmentId] = {\n isSelected: false,\n ...state[assignmentId],\n ...entities[assignmentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return omit(state, assignmentId);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.assignmentId]: {\n ...state[assignment.assignmentId],\n ...assignment\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byScheduleOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return state.filter((assignmentIdState) => assignmentIdState !== assignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byDateTimeOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return state.filter((assignmentIdState) => assignmentIdState !== assignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAssignments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_STARTED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansAssignments = combineReducers({\n bySchedule,\n byDateTime,\n byScheduleOrder,\n byDateTimeOrder,\n isFetchingAssignments,\n //isAdding,\n isEditing,\n isRemoving,\n errorFetchingAssignments,\n //errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default workplansAssignments;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansAssignments;\n\n//Information\nexport const getWorkplansAssignment = (state, assignmentId, assignmentType) => {\n if (assignmentType === 'bySchedule') {\n return getOwnState(state).bySchedule[assignmentId];\n } else if (assignmentType === 'byDateTime') {\n return getOwnState(state).byDateTime[assignmentId];\n }\n};\nexport const getWorkplansAssignmentsByScheduleList = (state) =>\n getOwnState(state).byScheduleOrder?.map((id) => getWorkplansAssignment(state, id, 'bySchedule'));\n\nexport const getWorkplansAssignmentsByScheduleListByMembership = (\n state,\n membership: DefaultFilters\n) => {\n return getWorkplansAssignmentsByScheduleList(state)\n .filter((assignment) => {\n return !!assignment?.operatorId && !!membership?.operatorId\n ? assignment?.operatorId === membership?.operatorId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.organizationId && !!membership?.organizationId\n ? assignment?.organizationId === membership?.organizationId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.divisionId && !!membership?.divisionId\n ? assignment?.divisionId === membership?.divisionId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.subdivisionId && !!membership?.subdivisionId\n ? assignment?.subdivisionId === membership?.subdivisionId\n : !!assignment;\n });\n};\n\nexport const getWorkplansAssignmentsByDateTimeList = (state) =>\n getOwnState(state).byDateTimeOrder?.map((id) => getWorkplansAssignment(state, id, 'byDateTime'));\n\nexport const getWorkplansAssignmentsByDateTimeListByMembership = (\n state,\n membership: DefaultFilters\n) => {\n return getWorkplansAssignmentsByDateTimeList(state)\n .filter((assignment) => {\n return !!assignment?.operatorId && !!membership?.operatorId\n ? assignment?.operatorId === membership?.operatorId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.organizationId && !!membership?.organizationId\n ? assignment?.organizationId === membership?.organizationId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.divisionId && !!membership?.divisionId\n ? assignment?.divisionId === membership?.divisionId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.subdivisionId && !!membership?.subdivisionId\n ? assignment?.subdivisionId === membership?.subdivisionId\n : !!assignment;\n });\n};\n\n//Status of sagas\nexport const isFetchingWorkplansAssignments = (state) => getOwnState(state).isFetchingAssignments;\n//export const isAddingWorkplansComments = (state) => getOwnState(state).isAdding;\nexport const isEditingWorplansAssignments = (state) => getOwnState(state).isEditing;\nexport const isRemovingWorkplansAssignments = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingWorkplansAssignmentsErrors = (state) =>\n getOwnState(state).errorFetchingAssignments;\n//export const getAddingWorkplansCommentsErrors = (state) => getOwnState(state).errorAdding;\nexport const getAddingWorkplansAssignmentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingWorkplansAssignmentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/location';\n\ninterface LocationSaveRequest {\n locationId?: number;\n dispatchCompletionType: number;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: number;\n latitude: number;\n longitude: number;\n radius: number;\n locationName: string;\n locationTypeId: number;\n locationClassId: number;\n locationAddress?: string;\n privateCode?: string;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n}\n\ninterface LocationDeleteRequest {\n locationId: number;\n locationName: string;\n}\ninterface LocationFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n locationIds?: string;\n}\n\nexport const getLocationsListService = (request: LocationFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveLocationService = (request: LocationSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: request.locationId ? 'Edit' : 'Create',\n name: request.locationName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteLocationService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'locations.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importLocationsService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocations`, request);\n};\n\nexport const importLocationsServiceOptimization = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocationsOptimizations`, request);\n};\n\nexport const getLocationByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport { store } from 'redux/storeConfig/store';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/sensor';\n\nexport const getSensorsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sensors.sensor',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveSensorService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sensors.sensor',\n action: request.sensorId ? 'Edit' : 'Create',\n name: request.uniqueIdentifier,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteSensorService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const fuelCalibrationStartService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/startFuelCalibration`, { sensorId: request.sensorId });\n};\n\nexport const fuelCalibrationFinalizeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/finalizeFuelCalibration`, { sensorId: request.sensorId });\n};\n\nexport const getFuelCalibrationPubSubUrl = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.get(`${baseUrl}/getPubSubFuelCalibrationToken`);\n};\n\nexport const sendPubSubFuelCalibrationCommand = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/sendPubSubFuelCalibrationCommand`, request);\n};\n","import React, { useEffect, useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport MultiSelectInput from '../MultiSelectInput';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\n\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as ContactSelectors from 'views/screens/Contacts/reducers';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport SlidingPaneAddEditContact from 'views/formComponents/SlidingPaneAddEditContact';\nimport { useGetOperatorContacts } from 'views/screens/Operators/hooks/useGetOperatorContacts';\nimport { useGetContacts } from 'views/screens/Organizations/hooks/useGetContacts';\n\ninterface Props {\n id: any;\n name: any;\n control: any;\n shouldUnregister?: any;\n defaultContacts?: any;\n extraContacts?: any;\n label?: any;\n isInModal?: boolean;\n initialFetch?: boolean;\n required?: boolean;\n contactTypeId?: number;\n isMultiple?: boolean;\n isClearable?: boolean;\n canCreate?: boolean;\n setContactsIn?: any;\n contactsIn?: any;\n setNewContact?: (value) => void;\n closeSlidingPaneAddEditContact?: () => void;\n prependcomponentFun?: () => void;\n appendcomponentFun?: () => void;\n operatorId?: number;\n organizationId?: number;\n defaultJobTitle?: string;\n watch?: any;\n reset?: any;\n}\n\nconst ContactsDropdown = (props: Props) => {\n const store = useSelector((state) => state);\n const userInSession = authSelectors.getUser(store);\n\n const {\n id,\n name,\n shouldUnregister,\n defaultContacts,\n extraContacts = [],\n label,\n isInModal,\n isMultiple = true,\n isClearable = false,\n initialFetch = true,\n canCreate = true,\n required,\n control,\n contactTypeId = 1,\n setContactsIn,\n contactsIn,\n setNewContact = null,\n closeSlidingPaneAddEditContact = undefined,\n prependcomponentFun = undefined,\n appendcomponentFun = undefined,\n operatorId = authSelectors.getAuthUserOperatorId(store),\n organizationId = authSelectors.getAuthUserOrganizationId(store),\n defaultJobTitle = '',\n watch = undefined,\n reset = undefined\n } = props;\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const [selectedContacts, changeSelectedContacts] = useState(\n Array.isArray(defaultContacts) ? defaultContacts : []\n );\n\n const [addEditContactSlideOpen, openAddEditContactSlide] = useState(false);\n const [newContact, changeNewContact] = useState(null);\n\n const selectAndEditContact = (contactId) => {\n dispatch(contactActions.selectContact(contactId));\n openAddEditContactSlide(true);\n };\n\n const selectedContactOnCreate = useSelector(ContactSelectors.getSelectedContact);\n const contacts = useSelector(ContactSelectors.getContactsList);\n const userContactsEmails = contacts.map((c) => c.email);\n\n const { operatorPublicContacts, areFetchingOperatorContacts } = (() => {\n const { operatorContacts, isFetchingOperatorContacts } = useGetOperatorContacts(operatorId);\n return {\n areFetchingOperatorContacts: isFetchingOperatorContacts,\n operatorPublicContacts: operatorContacts.map((c) => ({ ...c, contactTypeId: 2 }))\n };\n })();\n\n const { organizationPublicContacts, areFetchingOrganizationContacts } = (() => {\n const { contacts, isFetching } = useGetContacts(organizationId);\n return {\n organizationPublicContacts: contacts.map((c) => ({ ...c, contactTypeId: 3 })),\n areFetchingOrganizationContacts: isFetching\n };\n })();\n\n const formatContactsForDropdown = (contact) => {\n if (contact)\n return {\n ...contact,\n id: contact.contactId,\n value: contactTypeId === 1 ? contact.email : contact.contactId,\n label:\n contact.contactName !== contact.email\n ? `${contact.contactName} <${contact.email}>`\n : contact.contactName,\n edit: selectAndEditContact,\n identifierIcon: (\n <>\n \n {intl.formatMessage({\n id:\n contact.contactTypeId === 2\n ? 'contacts.operatorContact'\n : contact.contactTypeId === 3\n ? 'contacts.organizationContact'\n : 'contacts.userContact'\n })}\n \n \n \n )\n };\n return {};\n };\n\n const filterContactByAcces = (\n userContacts: Array,\n operatorContacts: Array,\n OrganizationContacts: Array\n ): Array => {\n const usedEmails: Array = userContacts.map((c) => c.email);\n const filteredContacts: Array = [...userContacts];\n\n const addNotIncludedContacts = (contact: any) => {\n if (usedEmails.includes(contact.email)) return;\n usedEmails.push(contact.email);\n filteredContacts.push(contact);\n };\n\n if (['9', '11', '13'].indexOf(userInSession?.accessLevelId) >= 0) {\n operatorContacts?.forEach(addNotIncludedContacts);\n }\n\n if (['7', '9', '11', '13'].indexOf(userInSession?.accessLevelId)) {\n OrganizationContacts?.forEach(addNotIncludedContacts);\n }\n\n return filteredContacts?.map(formatContactsForDropdown);\n };\n\n const contactsToShow: Array = filterContactByAcces(\n contacts,\n operatorPublicContacts,\n organizationPublicContacts\n );\n\n const contactsToAdd =\n contactTypeId === 1\n ? defaultContacts !== undefined && defaultContacts !== null && defaultContacts !== ''\n ? defaultContacts\n .split(',')\n .filter((c) => !userContactsEmails.includes(c))\n .filter(\n (defaultContact) =>\n contactsToShow\n .concat(extraContacts)\n .filter((contact) => contact.id === defaultContact).length === 0\n )\n .map((contactToAdd) => ({\n ...(contactTypeId === 1 ? {} : contactToAdd),\n id: contactTypeId === 1 ? contactToAdd : contactToAdd.contactId,\n value: contactTypeId === 1 ? contactToAdd : contactToAdd.contactId,\n label:\n contactTypeId === 1\n ? contactToAdd\n : contactToAdd.contactName !== contactToAdd.email\n ? `${contactToAdd.contactName} <${contactToAdd.email}>`\n : contactToAdd.contactName\n }))\n : []\n : [];\n\n const [resetValue, setResetValue] = useState(Date.now());\n const [selectedContact, setSelectedContact] = useState(\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts !== '' &&\n !isMultiple\n ? contactsToShow\n .concat(extraContacts)\n .concat(contactsToAdd)\n .filter((contact) => `${contact.contactId}` === selectedContacts)[0]\n : null\n );\n\n useEffect(() => {\n changeSelectedContacts(defaultContacts);\n setResetValue(Date.now());\n }, [defaultContacts]);\n\n // Realizar el fetch inicial de contactos\n useEffect(() => {\n if (selectedContacts || initialFetch) {\n dispatch(contactActions.startFetchingContacts(null));\n }\n }, [selectedContacts, initialFetch, dispatch]);\n\n // Efecto para seleccionar el nuevo contacto inmediatamente al crearse\n useEffect(() => {\n if (newContact) {\n changeSelectedContacts((prevContacts) => [\n ...(Array.isArray(prevContacts) ? prevContacts : []),\n newContact\n ]);\n }\n }, [newContact]);\n\n // Función para manejar la creación de un nuevo contacto\n const onCreate = (event) => {\n const newContactData = {\n contactName: event[event.length - 1].value,\n email: event[event.length - 1].value,\n contactId: uuidv4()\n };\n\n // Guardar el nuevo contacto en el estado local\n changeNewContact(newContactData);\n\n // Llamar a la acción para agregar el contacto\n dispatch(contactActions.startAddingContact(newContactData));\n\n // Luego realizar un nuevo fetch de contactos para actualizar la lista completa\n setTimeout(() => {\n dispatch(contactActions.startFetchingContacts(null));\n }, 500); // Un pequeño retraso para asegurar que el contacto se haya agregado en el backend\n };\n\n // Función para manejar la edición de un contacto existente\n const onEdit = (editedContactData) => {\n // Actualizar el contacto temporalmente en el estado local\n changeSelectedContacts((prevContacts) =>\n prevContacts.map((contact) =>\n contact.contactId === editedContactData.contactId ? editedContactData : contact\n )\n );\n\n // Llamar a la acción para editar el contacto\n dispatch(contactActions.startEditingContact(editedContactData));\n\n // Luego realizar un nuevo fetch de contactos para actualizar la lista completa\n setTimeout(() => {\n dispatch(contactActions.startFetchingContacts(null));\n }, 500); // Un pequeño retraso para asegurar que el contacto se haya actualizado en el backend\n };\n\n return (\n <>\n (\n \n \n {intl.formatMessage({ id: 'contacts.editContact' })}\n \n {\n if (\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts.trim() !== ''\n ) {\n openAddEditContactSlide(true);\n if (prependcomponentFun) prependcomponentFun();\n setSelectedContact(\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts !== '' &&\n !isMultiple\n ? contactsToShow\n .concat(extraContacts)\n .concat(contactsToAdd)\n .filter((contact) => `${contact.contactId}` === selectedContacts)[0]\n : null\n );\n }\n }}\n >\n \n \n \n )\n }\n appendcomponent={\n isMultiple ? undefined : (\n <>\n \n {intl.formatMessage({ id: 'contacts.addContact' })}\n \n {\n if (appendcomponentFun) appendcomponentFun();\n openAddEditContactSlide(true);\n setSelectedContact(null);\n }}\n >\n \n \n \n )\n }\n onCreate={onCreate} // Llamar a la función onCreate al crear un nuevo contacto\n onSelect={(event) => {\n var string = '';\n isMultiple\n ? event.map((email) => (string = string + email.id + ','))\n : (string = `${string}${event !== undefined && event !== null ? event.id : ''},`);\n changeSelectedContacts(string.slice(0, -1));\n }}\n selectedValues={selectedContacts}\n type={'select'}\n options={contactsToShow.concat(extraContacts).concat(contactsToAdd)}\n label={\n label ||\n intl.formatMessage({\n id: 'contacts.contacts'\n })\n }\n placeholder={intl.formatMessage({ id: 'contacts.placeholder' })}\n canCreate={isMultiple && canCreate}\n />\n )}\n />\n {\n openAddEditContactSlide(false);\n if (closeSlidingPaneAddEditContact) closeSlidingPaneAddEditContact();\n }}\n setNewContact={changeNewContact}\n defaultJobTitle={defaultJobTitle}\n canCreate={\n (!isMultiple && canCreate && contactTypeId !== 1) || (contactTypeId === 1 && canCreate)\n }\n operatorId={operatorId}\n organizationId={organizationId}\n isSelectedOnCreate\n isEditingFromMulti={isMultiple && contactTypeId === 1}\n onSave={onEdit} // Llamar a la función onEdit al editar un contacto\n />\n \n );\n};\n\nContactsDropdown.defaultProps = {\n isInModal: false\n};\n\nexport default ContactsDropdown;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ASSETS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((assetId) => {\n newState[assetId] = {\n isSelected: false,\n ...state[assetId],\n ...entities[assetId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assetId) => {\n newState[assetId] = {\n isSelected: false,\n ...state[assetId],\n ...entities[assetId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ASSET_ADD_COMPLETED: {\n const { oldId, asset } = action.payload;\n const newState = omit(state, oldId);\n newState[asset.assetId] = {\n ...state[oldId],\n ...asset,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ASSET_EDIT_COMPLETED: {\n const asset = action.payload;\n return {\n ...state,\n [asset.assetId]: {\n ...omit(state[asset.assetId], ['oldAsset']),\n ...omit(asset, ['oldAsset']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ASSET_ADD_STARTED: {\n const asset = action.payload;\n const newState = { ...state };\n newState[asset.assetId] = {\n isSelected: false,\n ...asset,\n isConfirmed: false\n };\n return newState;\n }\n case types.ASSET_EDIT_STARTED: {\n const asset = action.payload;\n return {\n ...state,\n [asset.assetId]: {\n ...state[asset.assetId],\n oldAsset: state[asset.assetId],\n ...asset,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ASSET_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ASSET_EDIT_FAILED: {\n const { oldAsset } = action.payload;\n return {\n ...state,\n [oldAsset.assetId]: {\n ...omit(state[oldAsset.assetId], ['oldAsset']),\n ...oldAsset,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ASSET_REMOVE_COMPLETED: {\n const { assetId } = action.payload;\n return omit(state, assetId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ASSET_SELECTED: {\n const assetId = action.payload;\n const newState = {\n ...state,\n [assetId]: {\n ...state[assetId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ASSET_DESELECTED: {\n const assetId = action.payload;\n return {\n ...state,\n [assetId]: {\n ...state[assetId],\n isSelected: false\n }\n };\n }\n\n case types.ASSETS_ALL_SELECTED: {\n const assetIds = action.payload;\n const newState = { ...state };\n if (assetIds.length == 0) {\n forEach(state, (asset: any, assetId) => {\n newState[assetId] = {\n ...asset,\n isSelected: true\n };\n });\n } else {\n assetIds.forEach((assetId) => {\n newState[assetId] = {\n ...state[assetId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ASSETS_ALL_DESELECTED: {\n const assetIds = action.payload;\n const newState = { ...state };\n if (assetIds.length == 0) {\n forEach(state, (asset: any, assetId) => {\n newState[assetId] = {\n ...asset,\n isSelected: false\n };\n });\n } else {\n assetIds.forEach((assetId) => {\n newState[assetId] = {\n ...state[assetId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ASSETS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ASSET_ADD_COMPLETED: {\n const { oldId, asset } = action.payload;\n return state.map((assetId) => (assetId === oldId ? asset.assetId : assetId));\n }\n\n case types.ASSET_REMOVE_COMPLETED: {\n const { assetId } = action.payload;\n return state.filter((assetIdState) => assetIdState !== assetId);\n }\n\n //CASE ADD STARTED\n case types.ASSET_ADD_STARTED: {\n const asset = action.payload;\n return [...state, asset.assetId];\n }\n\n //CASE ADD FAILED\n case types.ASSET_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((assetIdState) => assetIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ASSETS_FETCH_STARTED: {\n return true;\n }\n case types.ASSETS_FETCH_COMPLETED:\n case types.ASSETS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ASSETS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ASSETS_PARTIAL_FETCH_COMPLETED:\n case types.ASSETS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_ADD_STARTED: {\n return true;\n }\n case types.ASSET_ADD_COMPLETED:\n case types.ASSET_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_EDIT_STARTED: {\n return true;\n }\n case types.ASSET_EDIT_COMPLETED:\n case types.ASSET_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_REMOVE_STARTED: {\n return true;\n }\n case types.ASSET_REMOVE_COMPLETED:\n case types.ASSET_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ASSETS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSETS_FETCH_STARTED:\n case types.ASSETS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ASSETS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSETS_PARTIAL_FETCH_STARTED:\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_ADD_STARTED:\n case types.ASSET_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_EDIT_STARTED:\n case types.ASSET_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_REMOVE_STARTED:\n case types.ASSET_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validIdentifier = (state = true, action) => {\n switch (action.type) {\n case types.ASSET_IDENTIFIER_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ASSET_IDENTIFIER_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validSecuritySealCode = (state = true, action) => {\n switch (action.type) {\n case types.ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ASSET_SECURITY_SEAL_CODE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst assets = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n validIdentifier,\n validSecuritySealCode\n});\n\nexport default assets;\n\n//Own state\nexport const getOwnState = (state) => state.assets;\n\n//Information\nexport const getAsset = (state, assetId) => getOwnState(state).byId[assetId];\nexport const getAssetsList = (state) =>\n getOwnState(state)\n .order.map((id) => getAsset(state, id))\n .filter((asset) => asset.assetStatus > 0);\n\nexport const getAssetListByMembership = (state, membership) =>\n getAssetsList(state).filter(\n (asset) =>\n membership &&\n (!membership.operatorId || membership.operatorId === asset.operatorId) &&\n (!membership.organizationId || membership.organizationId === asset.organizationId) &&\n (!membership.divisionId || membership.divisionId === asset.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === asset.subdivisionId)\n );\n\nexport const getSelectedAssets = (state) => {\n const selectedAssets = getAssetsList(state).filter((asset) => asset.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedAssets.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedAssets.length > 0) return selectedAssets;\n};\n\nexport const getSelectedAsset = (state) => {\n const selectedAssets = getAssetsList(state).filter((asset) => asset.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedAssets.length === 1) return selectedAssets[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isValidIdentifier = (state) => getOwnState(state).validIdentifier;\nexport const isValidSecuritySealCode = (state) => getOwnState(state).validSecuritySealCode;\n\n//Status of sagas\nexport const isPartialFetchingListAssets = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListAssets = (state) => getOwnState(state).isFetchingList;\nexport const isAddingAsset = (state) => getOwnState(state).isAdding;\nexport const isEditingAsset = (state) => getOwnState(state).isEditing;\nexport const isRemovingAsset = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListAssetsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListAssetsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingAssetErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingAssetErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingAssetErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../../types/routeCheckpoints';\n\nexport const startFetchingRouteCheckpoints = (routeId) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_STARTED,\n payload: routeId\n});\nexport const completeFetchingRouteCheckpoints = (entities, order) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingRouteCheckpoints = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\nexport const clearRouteCheckpoints = () => ({\n type: types.ROUTE_CHECKPOINTS_CLEAR,\n payload: {}\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SIMS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((simId) => {\n newState[simId] = {\n isSelected: false,\n ...state[simId],\n ...entities[simId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((simId) => {\n newState[simId] = {\n isSelected: false,\n ...state[simId],\n ...entities[simId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SIM_FETCH_COMPLETED: {\n const { sim } = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...state[sim.simCardId],\n ...sim,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.SIM_ADD_COMPLETED: {\n const { oldId, sim } = action.payload;\n const newState = omit(state, oldId);\n newState[sim.simCardId] = {\n ...state[oldId],\n ...sim,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SIM_EDIT_COMPLETED: {\n const sim = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...omit(state[sim.simCardId], ['oldSim']),\n ...omit(sim, ['oldSim']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SIM_ADD_STARTED: {\n const sim = action.payload;\n const newState = { ...state };\n newState[sim.simId] = {\n isSelected: false,\n ...sim,\n isConfirmed: false\n };\n return newState;\n }\n case types.SIM_EDIT_STARTED: {\n const sim = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...state[sim.simCardId],\n oldSim: state[sim.simCardId],\n ...sim,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SIM_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SIM_EDIT_FAILED: {\n const { oldSim } = action.payload;\n return {\n ...state,\n [oldSim.simCardId]: {\n ...omit(state[oldSim.simCardId], ['oldSim']),\n ...oldSim,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SIM_REMOVE_COMPLETED: {\n const { simId } = action.payload;\n return omit(state, simId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SIM_SELECTED: {\n const simId = action.payload;\n const newState = {\n ...state,\n [simId]: {\n ...state[simId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SIM_DESELECTED: {\n const simId = action.payload;\n return {\n ...state,\n [simId]: {\n ...state[simId],\n isSelected: false\n }\n };\n }\n\n case types.SIMS_ALL_SELECTED: {\n const simIds = action.payload;\n const newState = { ...state };\n if (simIds.length == 0) {\n forEach(state, (sim: any, simId) => {\n newState[simId] = {\n ...sim,\n isSelected: true\n };\n });\n } else {\n simIds.forEach((simId) => {\n newState[simId] = {\n ...state[simId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SIMS_ALL_DESELECTED: {\n const simIds = action.payload;\n const newState = { ...state };\n if (simIds.length == 0) {\n forEach(state, (sim: any, simId) => {\n newState[simId] = {\n ...sim,\n isSelected: false\n };\n });\n } else {\n simIds.forEach((simId) => {\n newState[simId] = {\n ...state[simId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SIMS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SIM_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SIM_ADD_COMPLETED: {\n const { oldId, sim } = action.payload;\n return state.map((simId) => (simId === oldId ? sim.simCardId : simId));\n }\n\n case types.SIM_REMOVE_COMPLETED: {\n const { simId } = action.payload;\n return state.filter((simIdState) => simIdState !== simId);\n }\n\n //CASE ADD STARTED\n case types.SIM_ADD_STARTED: {\n const sim = action.payload;\n return [...state, sim.simId];\n }\n\n //CASE ADD FAILED\n case types.SIM_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((simIdState) => simIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SIMS_FETCH_STARTED: {\n return true;\n }\n case types.SIMS_FETCH_COMPLETED:\n case types.SIMS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingSim = (state = false, action) => {\n switch (action.type) {\n case types.SIM_FETCH_STARTED: {\n return true;\n }\n case types.SIM_FETCH_COMPLETED:\n case types.SIM_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SIMS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SIMS_PARTIAL_FETCH_COMPLETED:\n case types.SIMS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SIM_ADD_STARTED: {\n return true;\n }\n case types.SIM_ADD_COMPLETED:\n case types.SIM_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SIM_EDIT_STARTED: {\n return true;\n }\n case types.SIM_EDIT_COMPLETED:\n case types.SIM_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SIM_REMOVE_STARTED: {\n return true;\n }\n case types.SIM_REMOVE_COMPLETED:\n case types.SIM_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SIMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIMS_FETCH_STARTED:\n case types.SIMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SIMS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIMS_PARTIAL_FETCH_STARTED:\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SIM_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_ADD_STARTED:\n case types.SIM_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SIM_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_EDIT_STARTED:\n case types.SIM_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SIM_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_REMOVE_STARTED:\n case types.SIM_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sims = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n isFetchingSim\n});\n\nexport default sims;\n\n//Own state\nexport const getOwnState = (state) => state.sims;\n\n//Information\nexport const getSim = (state, simId) => getOwnState(state).byId[simId];\nexport const getSimsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSim(state, id))\n .filter((sim) => sim.simCardStatus > 0);\nexport const getSimsListAll = (state) => getOwnState(state).order.map((id) => getSim(state, id));\nexport const getSimsListByUnit = (state, unitId) => {\n if (unitId || unitId === 0) {\n return getSimsList(state).filter((sim) => sim.unitId === unitId);\n }\n return getSimsList(state);\n};\nexport const getSimsListByCountry = (state, countryId, providerId, unitId) => {\n if (countryId || countryId === 0) {\n if (providerId || providerId === 0) {\n return getSimsListByUnit(state, unitId).filter(\n (sim) => sim.countryId === countryId && sim.mobileOperatorId === providerId\n );\n }\n return getSimsListByUnit(state, unitId).filter((sim) => sim.countryId === countryId);\n }\n return getSimsListByUnit(state, unitId);\n};\n\nexport const getSimsListByMembership = (state, membership) =>\n getSimsList(state).filter(\n (sim) =>\n membership &&\n (!membership.operatorId || membership.operatorId === sim.operatorId) &&\n (!membership.organizationId || membership.organizationId === sim.organizationId) &&\n (!membership.divisionId || membership.divisionId === sim.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === sim.subdivisionId)\n );\nexport const getSelectedSims = (state) => {\n const selectedSims = getSimsList(state).filter((sim) => sim.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSims.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSims.length > 0) return selectedSims;\n};\n\nexport const getSelectedSim = (state) => {\n const selectedSims = getSimsList(state).filter((sim) => sim.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSims.length === 1) return selectedSims[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSims = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSims = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSim = (state) => getOwnState(state).isAdding;\nexport const isEditingSim = (state) => getOwnState(state).isEditing;\nexport const isRemovingSim = (state) => getOwnState(state).isRemoving;\nexport const isFetchingSimById = (state) => getOwnState(state).isFetchingSim;\n\n//Errors\nexport const getPartialFetchingListSimsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSimsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSimErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSimErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSimErrors = (state) => getOwnState(state).errorRemoving;\n","const paths = {\n routeList: '/route/list',\n routeEdit: '/route/edit',\n routeMonitor: '/route/monitor',\n routeReport: '/route/report',\n routeAssignUnit: '/route/assignUnit',\n importRouteAssignments: '/route/importRouteAssignments',\n routeETAMonitor: '/route/etaMonitor'\n};\n\nexport default paths;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport { store } from 'redux/storeConfig/store';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/geofence';\n\ninterface GeofenceSaveRequest {\n geofenceId?: number;\n shape: string;\n color: string;\n geofenceName: string;\n geofenceAddress?: string;\n privateCode?: string;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n latitude?: number;\n longitude?: number;\n latitude2?: number;\n longitude2?: number;\n radius?: number;\n vertexCount?: number;\n geofenceWKT?: string;\n vertexCsv?: string;\n}\n\ninterface GeofenceDeleteRequest {\n geofenceId: number;\n geofenceName: string;\n}\n\ninterface GeofenceFilters {\n startDate?: string;\n endDate?: string;\n unitId?: number;\n geofenceId?: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n userFetchDate?: Date;\n email?: string;\n consoleName?: string;\n deepSearch?: boolean;\n byUnit?: number;\n tab?: number;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n groupId?: number;\n}\n\ninterface GetGeofencesFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n}\n\nexport const getGeofencesListService = (\n request: GetGeofencesFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getGeofenceDropdownByOrganization = (\n request: GeofenceFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/organization/dropdown`, request);\n};\n\nexport const getCpGeofence = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/cpgeofence`, request);\n};\n\nexport const saveGeofenceService = (request: GeofenceSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: request.geofenceId ? 'Edit' : 'Create',\n name: request.geofenceName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteGeofenceService = (\n request: GeofenceDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.geofenceName}`,\n object: 'geofences.geofence',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const getUnitGeofences = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/unitGeofences`, request);\n};\n\nexport const getUnitGeofenceInfo = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/UnitGeofenceInfo`, request);\n};\n\nexport const getAssignments = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignedUnits`, request);\n};\n\nexport const getUnassignedEntities = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/unassignedEntities`, request);\n};\n\nexport const getGeofenceByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente CustomersDropdown */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput que permite elegir un cliente y abrir un slide para crear nuevos clientes\n\nimport { useState } from 'react';\nimport { Edit2, Plus } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport SlidingPaneAddEditCustomer from 'views/formComponents/SlidingPaneAddEditCustomer';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as customerSelectors from '../../screens/Customers/reducers';\nimport DropdownInput from '../DropdownInput';\n\nconst CustomersDropdown = (props) => {\n const {\n appendAddCustomer = true,\n enableSelectLocation = false,\n isClearable = false,\n customersFilters,\n notAssigned = false,\n locationId,\n field,\n ...dropdownProps\n } = props;\n const intl = useIntl();\n const { customers } = useSelector((state) => ({\n customers: notAssigned\n ? customerSelectors.getNotAssignedCustomersList(state, locationId)\n : customerSelectors.getCustomersList(state)\n }));\n const [isOpenShiftPane, setOpenShiftPane] = useState(false);\n const [selectedCustomer, setSelectedCustomer] = useState(undefined);\n const closeShiftPane = () => setOpenShiftPane(false);\n const id_dropdwon = appendAddCustomer ? 'In_SP' : 'Out_SP'\n return (\n <>\n \n ({\n value: customer.customerId,\n label: customer.customerName\n })) || []\n }\n id = {'customerDropdown' + id_dropdwon}\n label={intl.formatMessage({ id: 'customers.customer' })}\n placeholder={intl.formatMessage({ id: 'customers.selectCustomer' })}\n appendcomponent={\n appendAddCustomer ? (\n <>\n {field.value && (\n {\n setSelectedCustomer({ customerId: field.value });\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n )}\n {\n setSelectedCustomer(undefined);\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n \n ) : (\n <>\n )\n }\n />\n {\n setSelectedCustomer(undefined);\n closeShiftPane();\n }}\n />\n \n );\n};\n\nexport default CustomersDropdown;\n","import { combineReducers } from 'redux';\n\nimport forEach from 'lodash/forEach';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\n\nimport brands from '../../../../redux/reducers/static-catalogs/brands';\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SENSORS_FETCH_COMPLETED:\n case types.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((sensorId) => {\n newState[sensorId] = {\n isSelected: false,\n ...entities[sensorId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SENSOR_FETCH_COMPLETED: {\n const sensor = action.payload;\n const newState = { ...state };\n newState[sensor.deviceId] = {\n isSelected: false,\n ...state[sensor.deviceId],\n ...sensor,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SENSOR_ADD_COMPLETED: {\n const { oldId, sensor } = action.payload;\n const newState = omit(state, oldId);\n newState[sensor.sensorId] = {\n ...state[oldId],\n ...sensor,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SENSOR_EDIT_COMPLETED: {\n const sensor = action.payload;\n return {\n ...state,\n [sensor.sensorId]: {\n ...omit(state[sensor.sensorId], ['oldSensor']),\n ...omit(sensor, ['oldSensor']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SENSOR_ADD_STARTED: {\n const sensor = action.payload;\n const newState = { ...state };\n newState[sensor.sensorId] = {\n isSelected: false,\n ...sensor,\n isConfirmed: false\n };\n return newState;\n }\n case types.SENSOR_EDIT_STARTED: {\n const sensor = action.payload;\n return {\n ...state,\n [sensor.sensorId]: {\n ...state[sensor.sensorId],\n oldSensor: state[sensor.sensorId],\n ...sensor,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SENSOR_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SENSOR_EDIT_FAILED: {\n const oldSensor = action.payload;\n return {\n ...state,\n [oldSensor.sensorId]: {\n ...omit(state[oldSensor.sensorId], ['oldSensor']),\n ...oldSensor,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SENSOR_REMOVE_COMPLETED: {\n const { sensorId } = action.payload;\n return omit(state, sensorId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SENSOR_SELECTED: {\n const sensorId = action.payload;\n const newState = {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SENSOR_DESELECTED: {\n const sensorId = action.payload;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n isSelected: false\n }\n };\n }\n\n case types.SENSORS_ALL_SELECTED: {\n const sensorIds = action.payload;\n const newState = { ...state };\n if (sensorIds.length == 0) {\n forEach(state, (sensor: any, sensorId) => {\n newState[sensorId] = {\n ...sensor,\n isSelected: true\n };\n });\n } else {\n sensorIds.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SENSORS_ALL_DESELECTED: {\n const sensorIds = action.payload;\n const newState = { ...state };\n if (sensorIds.length == 0) {\n forEach(state, (sensor: any, sensorId) => {\n newState[sensorId] = {\n ...sensor,\n isSelected: false\n };\n });\n } else {\n sensorIds.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.START_SENSOR_CALIBRATION_COMPLETED: {\n const sensorId = action.payload?.sensorId;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n calibrationState: 1\n }\n };\n }\n\n case types.FINALIZE_SENSOR_CALIBRATION_COMPLETED: {\n const sensorId = action.payload?.sensorId;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n calibrationState: 0\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SENSORS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SENSOR_FETCH_COMPLETED: {\n const sensor = action.payload;\n return uniq([...state, sensor.deviceId]);\n }\n\n case types.SENSOR_ADD_COMPLETED: {\n const { oldId, sensor } = action.payload;\n return state.map((sensorId) => (sensorId === oldId ? sensor.sensorId : sensorId));\n }\n\n case types.SENSOR_REMOVE_COMPLETED: {\n const { sensorId } = action.payload;\n return state.filter((sensorIdState) => sensorIdState !== sensorId);\n }\n\n //CASE ADD STARTED\n case types.SENSOR_ADD_STARTED: {\n const sensor = action.payload;\n return [...state, sensor.sensorId];\n }\n\n //CASE ADD FAILED\n case types.SENSOR_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((sensorIdState) => sensorIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SENSORS_FETCH_STARTED: {\n return true;\n }\n case types.SENSORS_FETCH_COMPLETED:\n case types.SENSORS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_FETCH_STARTED: {\n return true;\n }\n case types.SENSOR_FETCH_COMPLETED:\n case types.SENSOR_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_ADD_STARTED: {\n return true;\n }\n case types.SENSOR_ADD_COMPLETED:\n case types.SENSOR_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_EDIT_STARTED: {\n return true;\n }\n case types.SENSOR_EDIT_COMPLETED:\n case types.SENSOR_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_REMOVE_STARTED: {\n return true;\n }\n case types.SENSOR_REMOVE_COMPLETED:\n case types.SENSOR_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SENSORS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSORS_FETCH_STARTED:\n case types.SENSORS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_FETCH_STARTED:\n case types.SENSOR_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_ADD_STARTED:\n case types.SENSOR_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_EDIT_STARTED:\n case types.SENSOR_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_REMOVE_STARTED:\n case types.SENSOR_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.IDENTIFIER_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.IDENTIFIER_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n brands,\n validCode\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => getOwnState(state).byId[sensorId];\nexport const getSensorsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSensor(state, id))\n .filter((sensor) => sensor.sensorStatus > 0);\n\nexport const getSensorsListByMembership = (state, membership) =>\n getSensorsList(state).filter(\n (sensor) =>\n membership &&\n (!membership.operatorId || membership.operatorId === sensor.operatorId) &&\n (!membership.organizationId || membership.organizationId === sensor.organizationId) &&\n (!membership.divisionId || membership.divisionId === sensor.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === sensor.subdivisionId)\n );\nexport const getSelectedSensors = (state) => {\n const selectedSensors = getSensorsList(state).filter((sensor) => sensor.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSensors.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSensors.length > 0) return selectedSensors;\n};\n\nexport const getSelectedSensor = (state) => {\n const selectedSensors = getSensorsList(state).filter((sensor) => {\n return sensor.isSelected;\n });\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSensors.length === 1) return selectedSensors[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isValidCode = (state) => getOwnState(state).validCode;\n\n//Status of sagas\nexport const isFetchingSensor = (state) => getOwnState(state).isFetching;\nexport const isFetchingListSensors = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSensor = (state) => getOwnState(state).isAdding;\nexport const isEditingSensor = (state) => getOwnState(state).isEditing;\nexport const isRemovingSensor = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingSensorErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListSensorsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSensorErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSensorErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSensorErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n listJobsBacklog: 'JB002',\n addJobBacklog: 'JB015',\n editJobBacklog: 'JB016',\n removeJobBacklog: 'JB017',\n jobs: 'JB001',\n jobsBoard: 'JB003',\n jobsReport: 'JB004',\n jobsImport: 'JB013',\n jobsWorkingActivity: 'JB014',\n listAsignedJobsBacklog: 'GF006',\n asignJobBacklogToUnit: 'GF007',\n listOwnLocations: 'JB008',\n addLocations: 'JB005',\n editLocations: 'JB006',\n assignLocations: 'JB007',\n listLocationImages: 'JB010',\n addLocationImages: 'JB011',\n removeLocationImages: 'JB012'\n};\n\nexport default permissions;\n","const paths = {\n telemetryTemperature: '/telemetry/temperature',\n telemetryFuelMonitor: '/telemetry/fuel/monitor',\n telemetryFuelReport: '/telemetry/fuel/report',\n telemetryFuelReportByVehicles: '/telemetry/fuel/vehicles/report',\n telemetryUnits: '/telemetry/units',\n telemetryOBD2: '/telemetry/obd2'\n};\n\nexport default paths;\n","import * as types from '../../types/board';\n\nexport const startFetchingJobsBoard = (filters = {}) => ({\n type: types.JOBS_BOARD_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsBoard = (entities, order) => ({\n type: types.JOBS_BOARD_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingJobsBoard = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_BOARD_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeStatusJobsBoard = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_STARTED,\n payload: { jobs, jobStatus, comment }\n});\nexport const completeChangeStatusJobsBoard = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobStatus, comment }\n});\nexport const failChangeStatusJobsBoard = (oldJobs, error) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n","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 = (commentId, visitId, locationId) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_STARTED,\n payload: {\n commentId, \n visitId,\n locationId\n }\n});\nexport const completeRemovingComment = (commentId) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_COMPLETED,\n payload: {\n commentId\n }\n});\nexport const failRemovingComment = (commentId, error) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_FAILED,\n payload: {\n commentId,\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 { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport * as unitSelectors from '../../screens/Units/reducers';\nimport { FC, useEffect, useState } from 'react';\nimport FetchEntities, { DefaultFilters } from '../../screens/Entities/views/FetchEntities';\nimport DropdownInput, { DropdownProps, Options } from '../DropdownInput';\nimport { ReduxUnit } from 'views/screens/Units/types';\n\ninterface Props extends DropdownProps {\n usePartialMembership?: boolean;\n membership?: DefaultFilters;\n unitsFilters?: any;\n placeholder?: string;\n isClearable?: boolean;\n forceinitialvalue?: string | number;\n options?: Options;\n label?: string | JSX.Element;\n useLabel?: true;\n}\n\nconst UnitsDropdown: FC = (props) => {\n const {\n usePartialMembership,\n membership,\n unitsFilters,\n useLabel = true,\n placeholder,\n isClearable = false,\n forceinitialvalue\n } = props;\n const { units, isFetching } = useSelector((state: any) => {\n let units: ReduxUnit[] = [];\n\n if (!!membership && usePartialMembership) {\n units = unitSelectors.getActiveUnitsListByPartialMembership(state, membership);\n } else if (!!membership) {\n units = unitSelectors.getActiveUnitsListByMembership(state, membership);\n } else {\n units = unitSelectors.getUnitsList(state);\n }\n\n return {\n units,\n isFetching:\n unitSelectors.isFetchingListUnits(state) || unitSelectors.isPartialFetchingListUnits(state)\n };\n });\n\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n //Update reactselect values of units when fetched is finished\n useEffect(() => {\n if (!isFetching) {\n resetDropdown();\n }\n }, [\n isFetching,\n props?.options?.length,\n membership?.operatorId,\n membership?.organizationId,\n membership?.divisionId,\n membership?.subdivisionId\n ]);\n\n return (\n <>\n {!props.options && }\n : null\n }\n options={\n props.options ||\n (unitsFilters?.unitTypeId\n ? units.filter((unit) => (typeof unitsFilters?.unitTypeId === 'string' || typeof unitsFilters?.unitTypeId === 'number') ? \n unit.unitTypeId === unitsFilters?.unitTypeId\n : unitsFilters?.unitTypeId.includes(unit.unitTypeId)\n )\n : units\n ).map((unit) => {\n return {\n ...unit,\n id: unit.unitId,\n value: unit.unitId,\n label: unit.unitName,\n label_intl: unit.unitName\n };\n })\n }\n placeholder={\n placeholder ??\n useIntl().formatMessage({\n id: 'common.all'\n })\n }\n forceinitialvalue={forceinitialvalue ?? null}\n isClearable={isClearable}\n />\n \n );\n};\n\nUnitsDropdown.defaultProps = {};\n\nexport default UnitsDropdown;\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport _ from 'lodash';\nimport { useEffect } from 'react';\nimport Select, { components } from 'react-select';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport { FormGroup, InputGroup, InputGroupAddon, Label } from 'reactstrap';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst { Option, SingleValue, NoOptionsMessage } = components;\n//Filter option needed to work with formatted messages\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label &&\n _.deburr(candidate.data.label.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n _.deburr(candidate.data.label_intl.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\n\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {props.data.iconSVG && (\n \n )}\n {props.data.label}\n
\n
\n );\n};\n\nconst cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n});\n\nconst MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n};\n\nconst DropdownInput = (props) => {\n //const [touched, setTouched] = useState(false);\n const {\n input,\n meta: { error, touched, initial },\n hasPlaceholder = true,\n options = [],\n intl,\n isInModal = false,\n required,\n forceinitialvalue,\n additionalonchangefunction = (value) => null,\n isDisabled = false,\n menuIsOpen,\n onInputChange,\n ...inputProps\n } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n useEffect(() => {\n onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n input.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n \n {inputProps.label && (\n \n )}\n \n {props.prependcomponent}\n ({ ...styles, zIndex: 91000 }),\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused\n ? `1px solid ${primary} !important`\n : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n }}\n id={inputProps.id}\n components={{ Option: IconOption, SingleValue: IconSingleValue, MenuList }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={error && touched ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'}\n onChange={(event) => {\n onChangeFinal(event ? event.value : null);\n if (inputProps.onSelect) inputProps.onSelect(event);\n }}\n onBlur={() => {\n input.onBlur(input.value === '' ? null : input.value);\n }}\n options={options}\n filterOption={filterOption}\n isClearable={inputProps.isClearable}\n isDisabled={isDisabled}\n value={\n options.filter((option) => {\n const selectedValue = /^\\d+$/.test(input.value) ? parseInt(input.value) : input.value;\n const optionValue = /^\\d+$/.test(option.value)\n ? parseInt(option.value)\n : option.value;\n return optionValue === selectedValue;\n })[0] || null\n }\n menuIsOpen={menuIsOpen}\n defaultValue={\n inputProps.defaultValue ?? options.filter((opt) => opt.value == initial).length > 0\n ? options.filter((opt) => opt.value == initial)[0]\n : null\n }\n noOptionsMessage={() => appIntl().formatMessage({ id: 'common.noOptions' })}\n maxMenuHeight={250}\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n />\n {props.appendcomponent}\n \n {error && touched && (\n
\n {error}\n
\n )}\n
\n );\n};\n\nexport default DropdownInput;\n","// You can customize the template with the help of this file\r\nimport { env } from 'env';\r\n//Template config options\r\nconst themeConfig = {\r\n app: {\r\n appName: 'Webtrack',\r\n appLogoImage: require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logoName.png`).default,\r\n appLogo: require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logo.png`).default\r\n },\r\n layout: {\r\n isRTL: false,\r\n skin: 'bordered', // light, dark, bordered, semi-dark\r\n routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\r\n type: 'vertical', // vertical, horizontal\r\n contentWidth: 'full', // full, boxed\r\n menu: {\r\n isHidden: false,\r\n isCollapsed: false,\r\n isPinner: false\r\n },\r\n navbar: {\r\n // ? For horizontal menu, navbar type will work for navMenu type\r\n type: 'sticky', // static , sticky , floating, hidden\r\n backgroundColor: 'white' // BS color options [primary, success, etc]\r\n },\r\n footer: {\r\n type: 'static' // static, sticky, hidden\r\n },\r\n customizer: env.REACT_APP_CUSTOMIZER === 'true' ? true : false,\r\n scrollTop: true // Enable scroll to top button\r\n }\r\n};\r\n\r\nexport default themeConfig;\r\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/user';\n\ninterface RolesPermissionsUserRequest {\n userId?: number;\n userName?: string;\n rolId?: number;\n permissionId?: string;\n permissions?: string[];\n}\n\ninterface ScreensRequest {\n userId?: number;\n roleId: number;\n}\n\ninterface UserDeleteRequest {\n userName: string;\n}\n\ninterface UserNameValidate {\n userName: string;\n userNameEdit: string;\n}\n\ninterface UserFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\n\ninterface UserFiltersStatus {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n userStatus?: number;\n}\n\ninterface UserRequest {\n userName: string;\n password: string;\n completeName: string;\n email: string;\n imageName: string;\n accessLevelId: number;\n utcZoneId: number;\n currencyId: number;\n metricSystemId: number;\n userStatus: number;\n operatorId: number;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n enableLocationClustering: number;\n locationMapLabelAlwaysOn: number;\n activateUnitTrackMode: number;\n unitMapLabelAlwaysOn: number;\n useGoogleMaps: number;\n useBingMaps: number;\n useHereMaps: number;\n}\n\nexport const getUsersListService = (request: UserFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveUserService = (request: UserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteUserService = (request: UserDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const availabilityUserNameService = (request: UserNameValidate) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n return httpWebtrack.post(`${baseUrl}/availabilityUserName`, request);\n};\n\nexport const getRoles = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/roles`, request);\n};\n\nexport const getPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permissions',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/permissions`, request);\n};\n\nexport const getRolesAndPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rolesAndPermissions`, request);\n};\n\nexport const getPermissionGroups = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/permissionGroups`, request);\n};\n\nexport const getRolePermissionGroups = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rolePermissionGroups`, request);\n};\n\nexport const addRole = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.role',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addRole`, request);\n};\n\nexport const removeRole = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.role',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removeRole`, request);\n};\n\nexport const addPermission = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addPermission`, request);\n};\n\nexport const addPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addPermissions`, request);\n};\n\nexport const removePermission = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removePermission`, request);\n};\n\nexport const removePermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removePermissions`, request);\n};\n\nexport const getScreens = (request: ScreensRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.screen',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/screens`, request);\n};\n\nexport const getSuspendedUsersListService = (\n request: UserFiltersStatus,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDisabled`, request);\n};\n\nexport const updateUserStatus = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Edit',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateStatus`, request);\n};\n\nexport const getUsersListByFiltersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const getUserByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n\nexport const getUserByAutoComplete = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUsersByAutoComplete`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.VEHICLES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((vehicleId) => {\n newState[vehicleId] = {\n isSelected: false,\n ...state[vehicleId],\n ...entities[vehicleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((vehicleId) => {\n newState[vehicleId] = {\n isSelected: false,\n ...state[vehicleId],\n ...entities[vehicleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.VEHICLE_ADD_COMPLETED: {\n const { oldId, vehicle } = action.payload;\n const newState = omit(state, oldId);\n newState[vehicle.vehicleId] = {\n ...state[oldId],\n ...vehicle,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.VEHICLE_EDIT_COMPLETED: {\n const vehicle = action.payload;\n return {\n ...state,\n [vehicle.vehicleId]: {\n ...omit(state[vehicle.vehicleId], ['oldVehicle']),\n ...omit(vehicle, ['oldVehicle']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.VEHICLE_ADD_STARTED: {\n const vehicle = action.payload;\n const newState = { ...state };\n newState[vehicle.vehicleId] = {\n isSelected: false,\n ...vehicle,\n isConfirmed: false\n };\n return newState;\n }\n case types.VEHICLE_EDIT_STARTED: {\n const vehicle = action.payload;\n return {\n ...state,\n [vehicle.vehicleId]: {\n ...state[vehicle.vehicleId],\n oldVehicle: state[vehicle.vehicleId],\n ...vehicle,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.VEHICLE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.VEHICLE_EDIT_FAILED: {\n const { oldVehicle } = action.payload;\n return {\n ...state,\n [oldVehicle.vehicleId]: {\n ...omit(state[oldVehicle.vehicleId], ['oldVehicle']),\n ...oldVehicle,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.VEHICLE_REMOVE_COMPLETED: {\n const { vehicleId } = action.payload;\n return omit(state, vehicleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.VEHICLE_SELECTED: {\n const vehicleId = action.payload;\n const newState = {\n ...state,\n [vehicleId]: {\n ...state[vehicleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.VEHICLE_DESELECTED: {\n const vehicleId = action.payload;\n return {\n ...state,\n [vehicleId]: {\n ...state[vehicleId],\n isSelected: false\n }\n };\n }\n\n case types.VEHICLES_ALL_SELECTED: {\n const vehicleIds = action.payload;\n const newState = { ...state };\n if (vehicleIds.length == 0) {\n forEach(state, (vehicle: any, vehicleId) => {\n newState[vehicleId] = {\n ...vehicle,\n isSelected: true\n };\n });\n } else {\n vehicleIds.forEach((vehicleId) => {\n newState[vehicleId] = {\n ...state[vehicleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.VEHICLES_ALL_DESELECTED: {\n const vehicleIds = action.payload;\n const newState = { ...state };\n if (vehicleIds.length == 0) {\n forEach(state, (vehicle: any, vehicleId) => {\n newState[vehicleId] = {\n ...vehicle,\n isSelected: false\n };\n });\n } else {\n vehicleIds.forEach((vehicleId) => {\n newState[vehicleId] = {\n ...state[vehicleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.VEHICLES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.VEHICLE_ADD_COMPLETED: {\n const { oldId, vehicle } = action.payload;\n return state.map((vehicleId) => (vehicleId === oldId ? vehicle.vehicleId : vehicleId));\n }\n\n case types.VEHICLE_REMOVE_COMPLETED: {\n const { vehicleId } = action.payload;\n return state.filter((vehicleIdState) => vehicleIdState !== vehicleId);\n }\n\n //CASE ADD STARTED\n case types.VEHICLE_ADD_STARTED: {\n const vehicle = action.payload;\n return [...state, vehicle.vehicleId];\n }\n\n //CASE ADD FAILED\n case types.VEHICLE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((vehicleIdState) => vehicleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLES_FETCH_STARTED: {\n return true;\n }\n case types.VEHICLES_FETCH_COMPLETED:\n case types.VEHICLES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED:\n case types.VEHICLES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_ADD_STARTED: {\n return true;\n }\n case types.VEHICLE_ADD_COMPLETED:\n case types.VEHICLE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_EDIT_STARTED: {\n return true;\n }\n case types.VEHICLE_EDIT_COMPLETED:\n case types.VEHICLE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_REMOVE_STARTED: {\n return true;\n }\n case types.VEHICLE_REMOVE_COMPLETED:\n case types.VEHICLE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLES_FETCH_STARTED:\n case types.VEHICLES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLES_PARTIAL_FETCH_STARTED:\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_ADD_STARTED:\n case types.VEHICLE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_EDIT_STARTED:\n case types.VEHICLE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_REMOVE_STARTED:\n case types.VEHICLE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.VEHICLE_LICENSE_PLATE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.VEHICLE_LICENSE_PLATE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst vehicles = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n validCode\n});\n\nexport default vehicles;\n\n//Own state\nexport const getOwnState = (state) => state.vehicles;\n\n//Information\nexport const getVehicle = (state, vehicleId) => getOwnState(state).byId[vehicleId];\nexport const getVehiclesList = (state) =>\n getOwnState(state)\n .order.map((id) => getVehicle(state, id))\n .filter((vehicle) => vehicle.vehicleStatus > 0);\nexport const getVehiclesListAll = (state) =>\n getOwnState(state).order.map((id) => getVehicle(state, id));\nexport const getVehiclesListByMembership = (state, membership) =>\n getVehiclesList(state).filter(\n (vehicle) =>\n membership &&\n (!membership.operatorId || membership.operatorId === vehicle.operatorId) &&\n (!membership.organizationId || membership.organizationId === vehicle.organizationId) &&\n (!membership.divisionId || membership.divisionId === vehicle.divisionId || isNullOrUndefined(vehicle.divisionId)) &&\n (!membership.subdivisionId || membership.subdivisionId === vehicle.subdivisionId || isNullOrUndefined(vehicle.subdivisionId))\n );\nexport const isLicenseValid = (state) => getOwnState(state).validCode;\n\nexport const getSelectedVehicles = (state) => {\n const selectedVehicles = getVehiclesList(state).filter((vehicle) => vehicle.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedVehicles.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedVehicles.length > 0) return selectedVehicles;\n};\n\nexport const getSelectedVehicle = (state) => {\n const selectedVehicles = getVehiclesList(state).filter((vehicle) => vehicle.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedVehicles.length === 1) return selectedVehicles[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListVehicles = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListVehicles = (state) => getOwnState(state).isFetchingList;\nexport const isAddingVehicle = (state) => getOwnState(state).isAdding;\nexport const isEditingVehicle = (state) => getOwnState(state).isEditing;\nexport const isRemovingVehicle = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListVehiclesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListVehiclesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingVehicleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingVehicleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingVehicleErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((quotationId) => {\n newState[quotationId] = {\n isSelected: false,\n ...state[quotationId],\n ...entities[quotationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.QUOTATIONS_ADD_COMPLETED: {\n const { oldId, quotation } = action.payload;\n const newState = omit(state, oldId);\n newState[quotation.quotationId] = {\n ...state[oldId],\n ...quotation,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.QUOTATIONS_EDIT_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...omit(state[quotation.quotationId], ['oldQuotation']),\n ...omit(quotation, ['oldQuotation']),\n isConfirmed: true\n }\n };\n }\n\n case types.QUOTATION_COPY_COMPLETED: {\n const { quotation } = action.payload;\n const newState = state;\n newState[quotation.quotationId] = {\n isSelected: false,\n ...quotation,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationStatus: quotation.approve == 1 ? 2 : 5,\n denyRequisitionReason: quotation.denyRequisitionReason\n }\n };\n }\n\n case types.QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationStatus: quotation.accept == 1 ? 6 : 7,\n deniedCustomerReason: quotation.deniedCustomerReason\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.QUOTATIONS_ADD_STARTED: {\n const { quotation, isSelected } = action.payload;\n const newState = { ...state };\n newState[quotation.quotationId] = {\n isSelected: isSelected,\n ...quotation,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.QUOTATIONS_EDIT_STARTED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n oldQuotation: state[quotation.quotationId],\n ...quotation,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.QUOTATIONS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.QUOTATIONS_EDIT_FAILED: {\n const { oldQuotation } = action.payload;\n return {\n ...state,\n [oldQuotation.quotationId]: {\n ...omit(state[oldQuotation.quotationId], ['oldQuotation']),\n ...oldQuotation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n const { quotationId } = action.payload;\n return omit(state, quotationId);\n }\n\n //TYPES SCHEDULE AND CHECK SCHEDULE\n case types.QUOTATIONS_SCHEDULE_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n isScheduled: true\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_SET_TIMESUP_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n isTimesup: quotation.timesup\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationId: quotation.quotationIdDB,\n isScheduled: quotation.isScheduled,\n quotationStatus: quotation.quotationStatus,\n isTimesup: quotation.isTimesup,\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.QUOTATION_CHANGE_ORGANIZATION: {\n const { quotation, organization } = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n ...organization\n },\n ...(quotation.baseQuotationId\n ? {\n [quotation.baseQuotationId]: {\n ...state[quotation.baseQuotationId],\n ...organization\n }\n }\n : {})\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.QUOTATIONS_SELECTED: {\n const quotationId = action.payload;\n const newState = {\n ...state,\n [quotationId]: {\n ...state[quotationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_DESELECTED: {\n const quotationId = action.payload;\n return {\n ...state,\n [quotationId]: {\n ...state[quotationId],\n isSelected: false\n }\n };\n }\n\n case types.QUOTATIONS_ALL_SELECTED: {\n const quotationIds = action.payload;\n const newState = { ...state };\n if (quotationIds.length == 0) {\n forEach(state, (quotation: any, quotationIds) => {\n newState[quotationIds] = {\n ...quotation,\n isSelected: true\n };\n });\n } else {\n quotationIds.forEach((quotationId) => {\n newState[quotationId] = {\n ...state[quotationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.QUOTATIONS_ALL_DESELECTED: {\n const quotationIds = action.payload;\n const newState = { ...state };\n if (quotationIds.length == 0) {\n forEach(state, (quotation: any, quotationId) => {\n newState[quotationId] = {\n ...quotation,\n isSelected: false\n };\n });\n } else {\n quotationIds.forEach((quotationId) => {\n newState[quotationId] = {\n ...state[quotationId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.QUOTATIONS_ADD_COMPLETED: {\n const { oldId, quotation } = action.payload;\n return state.map((quotationId) =>\n quotationId === oldId ? quotation.quotationId : quotationId\n );\n }\n\n case types.QUOTATION_COPY_COMPLETED: {\n const { quotation } = action.payload;\n return [...state, quotation.quotationId];\n }\n\n case types.QUOTATIONS_CHECK_SCHEDULING_STARTED: {\n const { quotationId } = action.payload;\n return [\n ...state.filter((quotationIdState) => quotationIdState !== Number(quotationId)),\n Number(quotationId)\n ];\n }\n\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n const { quotationId } = action.payload;\n return state.filter((quotationIdState) => quotationIdState !== quotationId);\n }\n\n //CASE ADD STARTED\n case types.QUOTATIONS_ADD_STARTED: {\n const { quotation } = action.payload;\n return [...state, quotation.quotationId];\n }\n\n //CASE ADD FAILED\n case types.QUOTATIONS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((quotationIdState) => quotationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_FETCH_STARTED: {\n return true;\n }\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_ADD_STARTED: {\n return true;\n }\n case types.QUOTATIONS_ADD_COMPLETED:\n case types.QUOTATIONS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATION_COPY_STARTED: {\n return true;\n }\n case types.QUOTATION_COPY_COMPLETED:\n case types.QUOTATION_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_EDIT_STARTED: {\n return true;\n }\n case types.QUOTATIONS_EDIT_COMPLETED:\n case types.QUOTATIONS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isScheduling = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_SCHEDULE_STARTED: {\n return true;\n }\n case types.QUOTATIONS_SCHEDULE_COMPLETED:\n case types.QUOTATIONS_SCHEDULE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCheckingSchedule = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_CHECK_SCHEDULING_STARTED: {\n return true;\n }\n case types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED:\n case types.QUOTATIONS_CHECK_SCHEDULING_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isSettingTimesup = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_SET_TIMESUP_STARTED: {\n return true;\n }\n case types.QUOTATIONS_SET_TIMESUP_COMPLETED:\n case types.QUOTATIONS_SET_TIMESUP_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_REMOVE_STARTED: {\n return true;\n }\n case types.QUOTATIONS_REMOVE_COMPLETED:\n case types.QUOTATIONS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isApprovingDenyingManagement = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED: {\n return true;\n }\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED:\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_FETCH_STARTED:\n case types.QUOTATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_PARTIAL_FETCH_STARTED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_ADD_STARTED:\n case types.QUOTATIONS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATION_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATION_COPY_STARTED:\n case types.QUOTATION_COPY_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_EDIT_STARTED:\n case types.QUOTATIONS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_REMOVE_STARTED:\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst quotations = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isCopying,\n isEditing,\n isScheduling,\n isCheckingSchedule,\n isSettingTimesup,\n isApprovingDenyingManagement,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorCopying,\n errorEditing,\n errorRemoving\n});\n\nexport default quotations;\n\n//Own state\nexport const getOwnState = (state) => state.quotations;\n\n//Information\nexport const getQuotation = (state, quotationId) => {\n return getOwnState(state).byId[quotationId];\n};\n\nexport const getQuotationsSpecificList = (state, list) =>\n list.map((quotationId) => getQuotation(state, quotationId));\n\nexport const getQuotationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getQuotation(state, id))\n .filter((quotation) => quotation?.quotationStatus > 0);\n\nexport const getSelectedQuotations = (state) => {\n const selectedQuotations = getQuotationsList(state).filter((quotation) => quotation?.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedQuotations.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedQuotations.length > 0) return selectedQuotations;\n};\n\nexport const getSelectedQuotation = (state) => {\n const selectedQuotations = getQuotationsList(state).filter((quotation) => quotation?.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedQuotations.length === 1) return selectedQuotations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListQuotations = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListQuotations = (state) => getOwnState(state).isFetchingList;\nexport const isAddingQuotation = (state) => getOwnState(state).isAdding;\nexport const isCopyingQuotation = (state) => getOwnState(state).isCopying;\nexport const isEditingQuotation = (state) => getOwnState(state).isEditing;\nexport const isSchedulingQuotation = (state) => getOwnState(state).isScheduling;\nexport const isSettingTimesupQuotation = (state) => getOwnState(state).isSettingTimesup;\nexport const isCheckingScheduleQuotation = (state) => getOwnState(state).isCheckingSchedule;\nexport const isRemovingQuotation = (state) => getOwnState(state).isRemoving;\nexport const isApprovingDenyingQuotationManagement = (state) =>\n getOwnState(state).isApprovingDenyingManagement;\n\n//Errors\nexport const getPartialFetchingListQuotationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListQuotationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingQuotationErrors = (state) => getOwnState(state).errorAdding;\nexport const getCopyingQuotationErrors = (state) => getOwnState(state).errorCopying;\nexport const getEditingQuotationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingQuotationErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n isSelected: false,\n ...entities[serviceClassId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SERVICECLASS_FETCH_COMPLETED: {\n const serviceClass = action.payload;\n const newState = { ...state };\n newState[serviceClass.serviceClassId] = {\n isSelected: false,\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SERVICECLASS_ADD_COMPLETED: {\n const { oldId, serviceClass } = action.payload;\n const newState = omit(state, oldId);\n newState[serviceClass.serviceClassId] = {\n ...state[oldId],\n ...serviceClass,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SERVICECLASS_EDIT_COMPLETED: {\n const serviceClass = action.payload;\n return {\n ...state,\n [serviceClass.serviceClassId]: {\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SERVICECLASS_ADD_STARTED: {\n const serviceClass = action.payload;\n state[serviceClass.serviceClassId] = {\n isSelected: false,\n ...serviceClass,\n isConfirmed: false\n };\n return state;\n }\n case types.SERVICECLASS_EDIT_STARTED: {\n const serviceClass = action.payload;\n return {\n ...state,\n [serviceClass.serviceClassId]: {\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SERVICECLASS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SERVICECLASS_EDIT_FAILED: {\n const { oldServiceClass } = action.payload;\n return {\n ...state,\n [oldServiceClass.serviceClassId]: {\n ...state[oldServiceClass.serviceClassId],\n ...oldServiceClass,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n const serviceClassId = action.payload;\n return omit(state, serviceClassId.serviceClassId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SERVICECLASS_SELECTED: {\n const serviceClassId = action.payload;\n return {\n ...state,\n [serviceClassId]: {\n ...state[serviceClassId],\n isSelected: true\n }\n };\n }\n\n case types.SERVICECLASS_DESELECTED: {\n const serviceClassId = action.payload;\n return {\n ...state,\n [serviceClassId]: {\n ...state[serviceClassId],\n isSelected: false\n }\n };\n }\n\n case types.SERVICECLASSES_ALL_SELECTED: {\n const serviceClassIds = action.payload;\n const newState = { ...state };\n if (serviceClassIds.length == 0) {\n forEach(state, (serviceClass: any, serviceClassId) => {\n newState[serviceClassId] = {\n ...serviceClass,\n isSelected: true\n };\n });\n } else {\n serviceClassIds.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n ...state[serviceClassId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SERVICECLASSES_ALL_DESELECTED: {\n const serviceClassIds = action.payload;\n const newState = { ...state };\n if (serviceClassIds.length == 0) {\n forEach(state, (serviceClass: any, serviceClassId) => {\n newState[serviceClassId] = {\n ...serviceClass,\n isSelected: false\n };\n });\n } else {\n serviceClassIds.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n ...state[serviceClassId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SERVICECLASS_FETCH_COMPLETED: {\n const serviceClass = action.payload;\n return uniq([...state, serviceClass.serviceClassId]);\n }\n\n case types.SERVICECLASS_ADD_COMPLETED: {\n const { oldId, serviceClass } = action.payload;\n return state.map((serviceClassId) =>\n serviceClassId === oldId ? serviceClass.serviceClassId : serviceClassId\n );\n }\n\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n const serviceClassId = action.payload;\n return state.filter(\n (serviceClassIdState) => serviceClassIdState !== serviceClassId.serviceClassId\n );\n }\n\n //CASE ADD STARTED\n case types.SERVICECLASS_ADD_STARTED: {\n const serviceClass = action.payload;\n return [...state, serviceClass.serviceClassId];\n }\n\n //CASE ADD FAILED\n case types.SERVICECLASS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((serviceClassIdState) => serviceClassIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASSES_FETCH_STARTED: {\n return true;\n }\n case types.SERVICECLASSES_FETCH_COMPLETED:\n case types.SERVICECLASSES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_FETCH_STARTED: {\n return true;\n }\n case types.SERVICECLASS_FETCH_COMPLETED:\n case types.SERVICECLASS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_ADD_STARTED: {\n return true;\n }\n case types.SERVICECLASS_ADD_COMPLETED:\n case types.SERVICECLASS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_EDIT_STARTED: {\n return true;\n }\n case types.SERVICECLASS_EDIT_COMPLETED:\n case types.SERVICECLASS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_REMOVE_STARTED: {\n return true;\n }\n case types.SERVICECLASS_REMOVE_COMPLETED:\n case types.SERVICECLASS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASSES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASSES_FETCH_STARTED:\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_FETCH_STARTED:\n case types.SERVICECLASS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_ADD_STARTED:\n case types.SERVICECLASS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_EDIT_STARTED:\n case types.SERVICECLASS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_REMOVE_STARTED:\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst serviceClasses = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default serviceClasses;\n\nexport const getOwnState = (state) => state.serviceClasses;\n\nexport const getServiceClass = (state, serviceClassId) => {\n return getOwnState(state).byId[serviceClassId];\n};\nexport const getServiceClassList = (state) =>\n getOwnState(state).order.map((id) => getOwnState(state).byId[id]);\n\nexport const getSelectedServiceClass = (state) => {\n const selectedServiceClasses = getServiceClassList(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 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.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((contractId) => {\n newState[contractId] = {\n isSelected: false,\n ...state[contractId],\n ...entities[contractId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n const { oldId, organizationContract } = action.payload;\n const newState = omit(state, oldId);\n newState[organizationContract.contractId] = {\n ...state[oldId],\n ...organizationContract,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED: {\n const organizationContract = action.payload;\n return {\n ...state,\n [organizationContract.contractId]: {\n ...omit(state[organizationContract.contractId], ['oldOrganizationContract']),\n ...omit(organizationContract, ['oldOrganizationContract']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n const organizationContract = action.payload;\n const newState = { ...state };\n newState[organizationContract.contractId] = {\n isSelected: false,\n ...organizationContract,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED: {\n const organizationContract = action.payload;\n return {\n ...state,\n [organizationContract.contractId]: {\n ...state[organizationContract.contractId],\n oldOrganizationContract: state[organizationContract.contractId],\n ...organizationContract,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n const { oldOrganizationContract } = action.payload;\n return {\n ...state,\n [oldOrganizationContract.contractId]: {\n ...omit(state[oldOrganizationContract.contractId], ['oldOrganizationContract']),\n ...oldOrganizationContract,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n const { contractId } = action.payload;\n return omit(state, contractId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ORGANIZATION_CONTRACT_SELECTED: {\n const contractId = action.payload;\n const newState = {\n ...state,\n [contractId]: {\n ...state[contractId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_DESELECTED: {\n const contractId = action.payload;\n return {\n ...state,\n [contractId]: {\n ...state[contractId],\n isSelected: false\n }\n };\n }\n\n case types.ORGANIZATION_CONTRACTS_ALL_SELECTED: {\n const contractIds = action.payload;\n const newState = { ...state };\n if (contractIds.length == 0) {\n forEach(state, (organizationContract: any, contractIds) => {\n newState[contractIds] = {\n ...organizationContract,\n isSelected: true\n };\n });\n } else {\n contractIds.forEach((contractId) => {\n newState[contractId] = {\n ...state[contractId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACTS_ALL_DESELECTED: {\n const contractIds = action.payload;\n const newState = { ...state };\n if (contractIds.length == 0) {\n forEach(state, (organizationContract: any, contractId) => {\n newState[contractId] = {\n ...organizationContract,\n isSelected: false\n };\n });\n } else {\n contractIds.forEach((contractId) => {\n newState[contractId] = {\n ...state[contractId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n const { oldId, organizationContract } = action.payload;\n return state.map((contractId) =>\n contractId === oldId ? organizationContract.contractId : contractId\n );\n }\n\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n const { contractId } = action.payload;\n return state.filter((contractIdState) => contractIdState !== contractId);\n }\n\n //CASE ADD STARTED\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n const organizationContract = action.payload;\n return [...state, organizationContract.contractId];\n }\n\n //CASE ADD FAILED\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((contractIdState) => contractIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED:\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED:\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED:\n case types.ORGANIZATION_CONTRACT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACTS_FETCH_STARTED:\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_ADD_STARTED:\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED:\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_REMOVE_STARTED:\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizationContracts = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default organizationContracts;\n\n//Own state\nexport const getOwnState = (state) => state.organizationContracts;\n\n//Information\nexport const getOrganizationContract = (state, contractId) => {\n return getOwnState(state).byId[contractId];\n};\n\nexport const getOrganizationContractsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOrganizationContract(state, id))\n .filter((organizationContract) => organizationContract?.status > 0);\n\nexport const getSelectedOrganizationContracts = (state) => {\n const selectedOrganizationContracts = getOrganizationContractsList(state).filter(\n (organizationContract) => organizationContract?.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedOrganizationContracts.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedOrganizationContracts.length > 0) return selectedOrganizationContracts;\n};\n\nexport const getSelectedOrganizationContract = (state) => {\n const selectedOrganizationContracts = getOrganizationContractsList(state).filter(\n (organizationContract) => organizationContract?.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOrganizationContracts.length === 1) return selectedOrganizationContracts[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOrganizationContracts = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOrganizationContracts = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOrganizationContract = (state) => getOwnState(state).isAdding;\nexport const isEditingOrganizationContract = (state) => getOwnState(state).isEditing;\nexport const isRemovingOrganizationContract = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOrganizationContractsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOrganizationContractsErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingOrganizationContractErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOrganizationContractErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOrganizationContractErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((templateId) => {\n newState[templateId] = {\n isSelected: false,\n ...state[templateId],\n ...entities[templateId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n const { oldId, contractTemplate } = action.payload;\n const newState = omit(state, oldId);\n newState[contractTemplate.templateId] = {\n ...state[oldId],\n ...contractTemplate,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED: {\n const contractTemplate = action.payload;\n return {\n ...state,\n [contractTemplate.templateId]: {\n ...omit(state[contractTemplate.templateId], ['oldContractTemplate']),\n ...omit(contractTemplate, ['oldContractTemplate']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n const contractTemplate = action.payload;\n const newState = { ...state };\n newState[contractTemplate.templateId] = {\n isSelected: false,\n ...contractTemplate,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_STARTED: {\n const contractTemplate = action.payload;\n return {\n ...state,\n [contractTemplate.templateId]: {\n ...state[contractTemplate.templateId],\n oldDivision: state[contractTemplate.templateId],\n ...contractTemplate,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n const { oldContractTemplate } = action.payload;\n return {\n ...state,\n [oldContractTemplate.templateId]: {\n ...omit(state[oldContractTemplate.templateId], ['oldContractTemplate']),\n ...oldContractTemplate,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n const { templateId } = action.payload;\n return omit(state, templateId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CONTRACT_TEMPLATE_SELECTED: {\n const templateId = action.payload;\n const newState = {\n ...state,\n [templateId]: {\n ...state[templateId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_DESELECTED: {\n const templateId = action.payload;\n return {\n ...state,\n [templateId]: {\n ...state[templateId],\n isSelected: false\n }\n };\n }\n\n case types.CONTRACT_TEMPLATES_ALL_SELECTED: {\n const templateIds = action.payload;\n const newState = { ...state };\n if (templateIds.length == 0) {\n forEach(state, (contractTemplate: any, templateId) => {\n newState[templateId] = {\n ...contractTemplate,\n isSelected: true\n };\n });\n } else {\n templateIds.forEach((templateId) => {\n newState[templateId] = {\n ...state[templateId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CONTRACT_TEMPLATES_ALL_DESELECTED: {\n const templateIds = action.payload;\n const newState = { ...state };\n if (templateIds.length == 0) {\n forEach(state, (contractTemplate: any, templateId) => {\n newState[templateId] = {\n ...contractTemplate,\n isSelected: false\n };\n });\n } else {\n templateIds.forEach((templateId) => {\n newState[templateId] = {\n ...state[templateId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n const { oldId, contractTemplate } = action.payload;\n return state.map((templateId) =>\n templateId === oldId ? contractTemplate.templateId : templateId\n );\n }\n\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n const { templateId } = action.payload;\n return state.filter((templateIdState) => templateIdState !== templateId);\n }\n\n //CASE ADD STARTED\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n const contractTemplate = action.payload;\n return [...state, contractTemplate.templateId];\n }\n\n //CASE ADD FAILED\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((templateIdState) => templateIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_FETCH_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED:\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_EDIT_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED:\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_REMOVE_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED:\n case types.CONTRACT_TEMPLATE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATES_FETCH_STARTED:\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_ADD_STARTED:\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_EDIT_STARTED:\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_REMOVE_STARTED:\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst contractTemplates = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default contractTemplates;\n\n//Own state\nexport const getOwnState = (state) => state.contractTemplates;\n\n//Information\nexport const getContractTemplate = (state, templateId) => {\n return getOwnState(state).byId[templateId];\n};\n\nexport const getContractTemplatesList = (state) =>\n getOwnState(state)\n .order.map((id) => getContractTemplate(state, id))\n .filter((contractTemplate) => contractTemplate?.status > 0);\n\nexport const getSelectedContractTemplates = (state) => {\n const selectedContractTemplates = getContractTemplatesList(state).filter(\n (contractTemplate) => contractTemplate?.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedContractTemplates.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedContractTemplates.length > 0) return selectedContractTemplates;\n};\n\nexport const getSelectedContractTemplate = (state) => {\n const selectedContractTemplates = getContractTemplatesList(state).filter(\n (contractTemplate) => contractTemplate?.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedContractTemplates.length === 1) return selectedContractTemplates[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListContractTemplates = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListContractTemplates = (state) => getOwnState(state).isFetchingList;\nexport const isAddingContractTemplate = (state) => getOwnState(state).isAdding;\nexport const isEditingContractTemplate = (state) => getOwnState(state).isEditing;\nexport const isRemovingContractTemplate = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListContractTemplatesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListContractTemplatesErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingContractTemplateErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingContractTemplateErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingContractTemplateErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n schedule: 'SC001',\n addSchedule: 'SC002',\n editSchedule: 'SC003',\n deleteSchedule: 'SC004'\n};\n\nexport default permissions;\n","/* -------------------------------------------------------------------------- */\n/* Componente OfficesDropdown */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput que permite elegir un cliente y abrir un slide para crear nuevos clientes\n\nimport { useState } from 'react';\nimport { Edit2, Plus } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport SlidingPaneEditOffice from 'views/screens/Offices/views/SlidingPaneEditOffice';\nimport * as officeSelectors from '../../screens/Offices/reducers';\nimport DropdownInput from '../DropdownInput';\n\nconst OfficesDropdown = (props) => {\n const {\n appendAddOffice = true,\n enableSelectLocation = false,\n isClearable = false,\n officesFilters,\n notAssigned = false,\n locationId,\n customerId,\n isMainOffice,\n field,\n ...dropdownProps\n } = props;\n const intl = useIntl();\n const { offices } = useSelector((state) => ({\n offices: notAssigned\n ? officeSelectors.getNotAssignedOfficesListByCustomer(state, locationId, customerId)\n : officeSelectors.getOfficesList(state)\n }));\n const [isOpenShiftPane, setOpenShiftPane] = useState(false);\n const [selectedOffice, setSelectedOffice] = useState(undefined);\n const closeShiftPane = () => setOpenShiftPane(false);\n\n return (\n <>\n \n isMainOffice == undefined || office.isMainOffice === isMainOffice)\n .map((office) => ({\n value: office.officeId,\n label: office.officeName\n })) || []\n }\n label={intl.formatMessage({ id: 'offices.office' })}\n placeholder={intl.formatMessage({ id: 'offices.selectOffice' })}\n appendcomponent={\n appendAddOffice ? (\n <>\n {field.value && (\n {\n setSelectedOffice({ officeId: field.value });\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n )}\n {\n setSelectedOffice(undefined);\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n \n ) : (\n <>\n )\n }\n />\n {\n setSelectedOffice(undefined);\n closeShiftPane();\n }}\n />\n \n );\n};\n\nexport default OfficesDropdown;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneEditLocation */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneEditLocation genérico que se utiliza en muchas pantallas de la aplicación.\nimport { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Row } from 'reactstrap';\nimport MapsBasic from 'views/components/Map';\nimport CustomersDropdown from 'views/formComponents/CustomersDropdown';\nimport LocationClassesDropdownInput from 'views/formComponents/LocationClassesDropdownInput';\nimport Membership from 'views/formComponents/Membership';\nimport NumericalInput from 'views/formComponents/NumericalInput';\nimport OfficesDropdown from 'views/formComponents/OfficesDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport * as customerSelectors from 'views/screens/Customers/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationClassesSelectors from '../../../../../redux/reducers/static-catalogs/location-classes';\n\ninterface Props {\n title: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n subtitle?: any;\n editingLocation: any;\n setEditingLocation?: Function;\n confirmText?: any;\n isInMap?: boolean;\n width?: string;\n hasButtonSubmit?: boolean;\n hasButtonCancel?: boolean;\n action?: any;\n onClose?: any;\n}\n\nconst SlidingPaneEditLocation = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n title,\n subtitle,\n editingLocation,\n setEditingLocation,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n width,\n onClose,\n isInMap = false\n } = props;\n\n const { control, handleSubmit, watch } = useForm();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n\n const formValues = watch();\n\n const { store, mapHomeCenter, parsers, customer } = useSelector((state) => ({\n store: state,\n mapHomeCenter: authSelectors.getAuthUserMapHomeCenter(state),\n parsers: authSelectors.getParsers(state),\n customer: customerSelectors.getCustomer(state, formValues?.customerId1)\n }));\n const initialLatitude = parseFloat(mapHomeCenter[0]);\n const initialLongitude = parseFloat(mapHomeCenter[1]);\n const initialRadius = 50;\n const initialLocationClassIconName = 'Marker1';\n const intl = useIntl();\n const [latitude, setLatitude] = useState(initialLatitude);\n const [longitude, setLongitude] = useState(initialLongitude);\n\n useEffect(() => {\n if (isOpenSlidingPane) {\n if (editingLocation) {\n setLatitude(editingLocation.latitude);\n setLongitude(editingLocation.longitude);\n } else {\n setLatitude(initialLatitude);\n setLongitude(initialLongitude);\n }\n }\n }, [isOpenSlidingPane, editingLocation]);\n\n useEffect(() => {\n if (\n formValues.latitude != null &&\n formValues.longitude != null &&\n formValues.radius != null &&\n formValues.locationClassId != null\n )\n updateEditingLocation();\n }, [\n formValues.locationName,\n formValues.latitude,\n formValues.longitude,\n formValues.radius,\n formValues.locationClassId\n ]);\n\n const updateEditingLocation = () => {\n if (setEditingLocation)\n setEditingLocation({\n ...editingLocation,\n ...formValues,\n ...formValues.membership,\n locationClassIconName:\n formValues && formValues.locationClassId\n ? locationClassesSelectors.getLocationClassIconName(store, formValues.locationClassId)\n : initialLocationClassIconName\n });\n };\n\n const closeSlidingPaneFunction = (saving) => {\n closeSlidingPane();\n if (onClose != null && !saving) onClose(formValues); //Close without saving\n };\n\n return (\n closeSlidingPaneFunction(false)}\n >\n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n required={true}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n allowUndefined={false}\n useNumberSpinner={true}\n allowDecimals={true}\n decimalsPrecision={100}\n step={1}\n min={-90}\n max={90}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n allowUndefined={false}\n useNumberSpinner={true}\n allowDecimals={true}\n decimalsPrecision={100}\n step={1}\n min={-180}\n max={180}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n step={1}\n metric={'distance2'}\n min={parsers.convertMetersToAuthUserDistance2System(10)}\n max={parsers.convertMetersToAuthUserDistance2System(100000)}\n />\n )}\n />\n \n {!isInMap && (\n \n {\n setLatitude(values.lat);\n setLongitude(values.lng);\n },\n showLocation: true,\n useRectangleBounds: true,\n isMapFullScreen: false,\n usePopovers: false\n }}\n rulerControlOptions={{ position: 'bottomleft', useControl: false }}\n >\n
\n \n )}\n \n (\n \n )}\n />\n \n \n {formValues?.locationClassId === 30 && (\n \n (\n \n )}\n />\n \n )}\n {formValues?.locationClassId === 34 && (\n <>\n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n )}\n \n \n {hasButtonSubmit && (\n {\n closeSlidingPaneFunction(true);\n action({\n ...values,\n customerId:\n values.locationClassId === 30\n ? values.customerId1\n : values.locationClassId === 34\n ? values.customerId2\n : undefined,\n officeId:\n values.locationClassId === 30\n ? customer?.officeId\n : values.locationClassId === 34\n ? values.officeId\n : undefined,\n radius: parsers.convertAuthUserDistance2SystemToMeters(values.radius)\n });\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPaneFunction(false)}\n >\n \n \n )}\n \n \n
\n \n );\n};\n\nSlidingPaneEditLocation.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneEditLocation;\n","const paths = {\n addTicket: '/vehicleFuel/ticket/add',\n importTicket: '/vehicleFuel/ticket/import',\n recordMultiple:'/vehicleFuel/ticket/multiple',\n consolidatedReport: '/vehicleFuel/reports/consolidated',\n byUnitReport: '/vehicleFuel/reports/byUnit'\n};\n\nexport default paths;\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsEntities, deviceActionsOrder } = action.payload;\n const newState = { ...state };\n deviceActionsOrder.forEach((deviceActionId) => {\n newState[deviceActionId] = {\n ...state[deviceActionId],\n ...deviceActionsEntities[deviceActionId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsOrder } = action.payload;\n return uniq([...state, ...deviceActionsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceActions = combineReducers({\n byId,\n order\n});\n\nexport default deviceActions;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceActions;\n\n//Information\nexport const getDeviceAction = (state, deviceActionId) => {\n const deviceAction = getOwnState(state).byId[deviceActionId];\n if (deviceAction) {\n return {\n ...deviceAction\n };\n } else return undefined;\n};\nexport const getDeviceActionsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceAction(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsEntities, deviceMetricsOrder } = action.payload;\n const newState = { ...state };\n deviceMetricsOrder.forEach((deviceMetricId) => {\n newState[deviceMetricId] = {\n ...state[deviceMetricId],\n ...deviceMetricsEntities[deviceMetricId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsOrder } = action.payload;\n return uniq([...state, ...deviceMetricsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceMetrics = combineReducers({\n byId,\n order\n});\n\nexport default deviceMetrics;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceMetrics;\n\n//Information\nexport const getDeviceMetric = (state, deviceMetricId) => {\n const deviceMetric = getOwnState(state).byId[deviceMetricId];\n if (deviceMetric) {\n return {\n ...deviceMetric\n };\n } else return undefined;\n};\nexport const getDeviceMetricsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceMetric(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsEntities, groupsOrder } = action.payload;\n const newState = { ...state };\n groupsOrder.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n ...groupsEntities[groupId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsOrder } = action.payload;\n return uniq([...state, ...groupsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst groups = combineReducers({\n byId,\n order\n});\n\nexport default groups;\n\n//Own state\nexport const getOwnState = (state) => state.units.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getGroupsList = (state) => getOwnState(state).order.map((id) => getGroup(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesEntities, imagesOrder } = action.payload;\n const newState = { ...state };\n imagesOrder.forEach((imageId) => {\n newState[imageId] = {\n ...state[imageId],\n ...imagesEntities[imageId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesOrder } = action.payload;\n return uniq([...state, ...imagesOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst images = combineReducers({\n byId,\n order\n});\n\nexport default images;\n\n//Own state\nexport const getOwnState = (state) => state.units.images;\n\n//Information\nexport const getImage = (state, imageId) => {\n const image = getOwnState(state).byId[imageId];\n if (image) {\n return {\n ...image\n };\n } else return undefined;\n};\nexport const getImagesList = (state) => getOwnState(state).order.map((id) => getImage(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsEntities, reportsOrder } = action.payload;\n const newState = { ...state };\n reportsOrder.forEach((reportId) => {\n newState[reportId] = {\n ...state[reportId],\n ...reportsEntities[reportId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsOrder } = action.payload;\n return uniq([...state, ...reportsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst reports = combineReducers({\n byId,\n order\n});\n\nexport default reports;\n\n//Own state\nexport const getOwnState = (state) => state.units.reports;\n\n//Information\nexport const getReport = (state, reportId) => {\n const report = getOwnState(state).byId[reportId];\n if (report) {\n return {\n ...report\n };\n } else return undefined;\n};\nexport const getReportsList = (state) => getOwnState(state).order.map((id) => getReport(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsEntities, sensorsOrder } = action.payload;\n const newState = { ...state };\n sensorsOrder.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n ...sensorsEntities[sensorId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsOrder } = action.payload;\n return uniq([...state, ...sensorsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.units.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => {\n const sensor = getOwnState(state).byId[sensorId];\n if (sensor) {\n return {\n ...sensor\n };\n } else return undefined;\n};\nexport const getSensorsList = (state) => getOwnState(state).order.map((id) => getSensor(state, id));\n","import * as types from '../../../types/static-catalogs/location-classes';\n\nexport const startFetchingLocationClasses = (filters = {}) => ({\n type: types.LOCATION_CLASSES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocationClasses = (entities, order) => ({\n type: types.LOCATION_CLASSES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingLocationClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.LOCATION_CLASSES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import L from 'leaflet';\nimport { createPathComponent } from '@react-leaflet/core';\nimport { renderToString } from 'react-dom/server';\nimport 'leaflet.markercluster';\nimport { PathOptions } from 'leaflet';\nimport { Children, ReactNode, useEffect } from 'react';\nimport React from 'react';\n\ntype EventHandler = (...args: any[]) => void;\n\ninterface ClusterProps {\n spiderLegPolylineOptions?: PathOptions;\n removeOutsideVisibleBounds?: boolean;\n chunkedLoading?: boolean;\n iconCreateFunction?: (cluster: any) => any; // Replace 'any' with the actual types if known\n}\n\ninterface Props extends ClusterProps {\n children?: ReactNode;\n icon?: ReactNode; //any; // Replace 'any' with the actual type if known\n disableClusteringAtZoom?: number | string;\n spiderfyOnMaxZoom?: boolean;\n}\n\nconst MarkerClusterGroup = createPathComponent(\n (\n {\n children: _c,\n icon = null,\n disableClusteringAtZoom,\n spiderfyOnMaxZoom = false,\n ...props\n }: Props,\n ctx\n ) => {\n const clusterProps = {\n spiderLegPolylineOptions: { pmIgnore: true, weight: 1.5, color: '#0d6efd', opacity: 0.5 },\n removeOutsideVisibleBounds: true,\n chunkedLoading: true,\n iconCreateFunction: function (cluster) {\n var childCount = cluster.getChildCount();\n\n var c = ' marker-cluster-';\n if (childCount < 10) {\n c += 'small';\n } else if (childCount < 100) {\n c += 'medium';\n } else {\n c += 'large';\n }\n\n return new L.DivIcon({\n html: icon\n ? renderToString(\n \n {childCount}\n {icon}\n \n )\n : renderToString(\n
\n {childCount}\n
\n ),\n className: 'marker-cluster' + c,\n iconSize: new L.Point(40, 40)\n });\n }\n };\n const clusterEvents = {};\n\n if (disableClusteringAtZoom) {\n clusterProps['disableClusteringAtZoom'] = disableClusteringAtZoom;\n }\n\n clusterProps['spiderfyOnMaxZoom'] = spiderfyOnMaxZoom;\n\n // Splitting props and events to different objects\n Object.entries(props).forEach(([propName, prop]) =>\n propName.startsWith('on') ? (clusterEvents[propName] = prop) : (clusterProps[propName] = prop)\n );\n\n // Creating markerClusterGroup Leaflet element\n let markerClusterGroup = new L.markerClusterGroup(clusterProps);\n\n useEffect(() => {\n // Cleanup the old markerClusterGroup instance before creating a new one\n markerClusterGroup.clearLayers();\n\n markerClusterGroup = new L.markerClusterGroup({\n ...clusterProps,\n disableClusteringAtZoom,\n spiderfyOnMaxZoom // Ensure it's updated on prop change\n });\n\n // Re-add event listeners\n Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n markerClusterGroup.on(clusterEvent, callback);\n });\n\n // Re-add the children markers to the cluster group\n Children.forEach(_c, (child) => {\n // Ensure that the child is a valid React element and has a leaflet layer\n if (React.isValidElement(child) && child.props.leaflet && child.props.leaflet.mapLayer) {\n markerClusterGroup.addLayer(child.props.leaflet.mapLayer);\n }\n });\n\n // Attach to the map context\n if (ctx.map) {\n ctx.map.addLayer(markerClusterGroup);\n }\n\n return () => {\n if (ctx.map) {\n ctx.map.removeLayer(markerClusterGroup); // Clean up when component unmounts\n }\n };\n }, [disableClusteringAtZoom, spiderfyOnMaxZoom]);\n\n // markerClusterGroup._getExpandedVisibleBounds = function () {\n // return markerClusterGroup._map.getBounds();\n // };\n\n // // Initializing event listeners\n // Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n // const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n // markerClusterGroup.on(clusterEvent, callback);\n // });\n\n return {\n instance: markerClusterGroup,\n context: { ...ctx, layerContainer: markerClusterGroup }\n };\n }\n);\n\nexport default MarkerClusterGroup;\n","const paths = {\n workplanList: '/workplan/list',\n workplanEdit: '/workplan/edit',\n workplanMonitor: '/workplan/monitor',\n workplanReport: '/workplan/report',\n workplanAssignUnit: '/workplan/assignUnit',\n scheduledWorkplan: '/workplan/scheduled'\n // workplanImport: '/workplan/import'\n};\n\nexport default paths;\n","const paths = {\n backlog: '/jobs/backlog',\n import: '/jobs/import',\n board: '/jobs/board',\n report: '/jobs/report',\n workingActivityReport: '/jobs/workingActivityReport'\n};\n\nexport default paths;\n","import * as types from '../types';\n\nexport * from './backlog';\nexport * from './board';\nexport * from './report';\n\nexport const startFetchingJob = (jobId) => ({\n type: types.JOB_FETCH_STARTED,\n payload: { jobId }\n});\nexport const completeFetchingJob = (job) => ({\n type: types.JOB_FETCH_COMPLETED,\n payload: { job }\n});\nexport const failFetchingJob = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOB_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* GeofenceShapeDropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente utiliza DropdownInput para generar un GeofenceShapeDropdownInput\n\nimport { omit } from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Icon from '../../../utility/icomoon';\nimport DropdownInput from '../DropdownInput';\n\nconst GeofenceShapeDropdownInput = (props) => {\n const {\n forceinitialvalue = 'C',\n field,\n additionalonchangefunction = (value) => null,\n disabled\n } = props;\n const intl = useIntl();\n const geofenceShapes = [\n { id: 'C', value: 'C', label: 'geofences.shape.C', iconName: 'Circle' },\n { id: 'R', value: 'R', label: 'geofences.shape.R', iconName: 'Square' },\n { id: 'P', value: 'P', label: 'geofences.shape.P', iconName: 'Hexagon' },\n { id: 'U', value: 'U', label: 'geofences.shape.U', iconName: 'TrendingUp' }\n ];\n\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n useEffect(() => {\n if (field.value == null || field.value == undefined || field.value.length == 0) {\n field.onChange(forceinitialvalue);\n }\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue) {\n onChangeFinal(forceinitialvalue);\n }\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n return (\n }\n options={geofenceShapes.map((gs) => {\n return {\n ...gs,\n icon: ,\n label: ,\n label_intl: intl.formatMessage({ id: 'geofences.shape.' + gs.value })\n };\n })}\n />\n );\n};\n\nexport default GeofenceShapeDropdownInput;\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { Controller } from 'react-hook-form';\nimport DropdownInput from '../DropdownInput';\nimport TextInput from '../TextInput';\nimport NumericalInput from '../NumericalInput';\nimport TimeInput from '../TimeInput';\nimport SwitchInput from '../SwitchInput';\nimport Membership from '../Membership';\nimport ContactsDropdown from '../ContactsDropdown';\nimport CustomersDropdown from '../CustomersDropdown';\nimport DropdownCategoriesIcons from '../../screens/vehicleMaintenance/components/dropDownIcons';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport CheckboxInput from '../CheckBoxInput';\nimport LocationClassesDropdownInput from '../LocationClassesDropdownInput';\nimport ColorPicker from '../ColorPicker';\nimport GeofenceShapeDropdownInput from '../GeofenceShapeDropdownInput';\nimport UnitsDropdown from '../UnitsDropdown';\nimport NoticeTypeDropdownInput from 'views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput';\nimport DurationInput from '../DurationInput';\nimport MultiSelectInput from '../MultiSelectInput';\nimport DateInput from '../DateInput';\nimport moment from 'moment';\nimport JobTypeDropdownInput from 'views/screens/Jobs/components/JobTypeDropdownInput';\nimport JobPriorityDropdownInput from '../../screens/Jobs/components/JobPriorityDropdownInput';\nimport JobStatusDropdownInput from 'views/screens/Jobs/components/JobStatusDropdownInput';\nimport UsersDropdown from '../UsersDropdown';\nimport LocationsDropdownInput from '../LocationDropDown';\nimport GeofencesDropdownInput from '../GeofenceDropDown';\nimport TextEditorInput from '../TextEditorInput';\nimport CategoriesDropdownInput from 'views/screens/vehicleMaintenance/components/CategoriesDropdownInput';\nimport FormsDropdown from '../FormsDropdown';\nimport DriversDropdownInput from '../DriverDropDown';\nimport ScheduleDropdown from '../ScheduleDropdown';\nimport RadioButtonsInput from '../RadioButtonInput';\nimport ThemeDropdown from '../ThemeDropdown';\nimport { FormattedMessage } from 'react-intl';\n\ninterface Props {\n input: any;\n control: any;\n change?: any;\n}\n\nconst validateText = (value) =>\n value && value.trim() ? undefined : appIntl().formatMessage({ id: 'common.requiredField' });\n\nconst validate = (value) =>\n value ? undefined : appIntl().formatMessage({ id: 'common.requiredField' });\n\nconst WebtrackCustomInput = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { input, change, control } = props;\n\n return input.type === 'select' ? (\n (\n \n )}\n />\n ) : input.type === 'multiSelect' ? (\n (\n \n )}\n />\n ) : input.type == 'date' ? (\n (\n \n )}\n />\n ) : input.type === 'text' ? (\n (\n \n )}\n />\n ) : input.type === 'textEditor' ? (\n (\n \n )}\n />\n ) : input.type === 'duration' ? (\n (\n \n )}\n />\n ) : input.type === 'number' ? (\n (\n \n )}\n />\n ) : input.type === 'time' ? (\n (\n \n )}\n />\n ) : input.type === 'colorPicker' ? (\n (\n \n )}\n />\n ) : input.type === 'jobTypeDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'jobPriorityDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'jobStatusDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'locationClassesDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'geofenceShapesDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'locationDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'driverDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'geofenceDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'organizationFormsDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'usersDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'contactsDropdown' ? (\n \n ) : input.type === 'customersDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'unitsDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'scheduleDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'noticeTypeDropdown' ? (\n \n ) : input.type === 'categoriesDropdown' ? (\n \n ) : input.type === 'dropDownCategoriesIcons' ? (\n \n ) : input.type === 'switch' ? (\n (\n \n )}\n />\n ) : input.type === 'radioButtons' ? (\n (\n \n )}\n />\n ) : input.type === 'checkbox' ? (\n (\n \n )}\n />\n ) : input.type === 'checkbox' ? (\n (\n \n )}\n />\n ) : input.type === 'membership' ? (\n \n ) : input.type === 'unitThemeDropdown' ? (\n (\n }\n placeholder={\n input.placeholder ? (\n input.placeholder\n ) : (\n \n )\n }\n forceinitialvalue={input.initialValue}\n required\n />\n )}\n />\n ) : input.type === 'custom' ? (\n (\n {\n change('validationHack', Date.now());\n }}\n label={input.label ? appIntl().formatMessage({ id: input.label }) : null}\n {...input}\n />\n )}\n />\n ) : input.type === 'component' ? (\n
{input.component}
\n ) : null;\n};\n\nWebtrackCustomInput.defaultProps = {\n input: {}\n};\n\nexport default WebtrackCustomInput;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/customer';\n\nexport const getCustomersListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: request.customerId ? 'Edit' : 'Create',\n name: request.customerName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.customerName}`,\n object: 'customers.customer',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importCustomersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.importCustomer',\n action: 'Get',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importCustomers`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nexport interface MaintenancePlansFormatted\n extends Omit<\n types.MaintenancePlans,\n 'maintenanceRangesByOdometer' | 'maintenanceRangesByHourMeter'\n > {\n maintenanceRangesByOdometer: {\n odometer: number;\n title: string;\n description: string;\n maintenanceRangeId: number;\n maintenanceLineId: number;\n }[];\n maintenanceRangesByHourMeter: {\n odometer: number;\n title: string;\n description: string;\n maintenanceRangeId: number;\n maintenanceLineId: number;\n }[];\n}\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n isSelected: false,\n ...state[maintenanceLineId],\n ...entities[maintenanceLineId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n const { oldId, maintenanceLine } = action.payload;\n const newState = omit(state, oldId);\n newState[maintenanceLine.maintenanceLineId] = {\n ...state[oldId],\n ...maintenanceLine,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MAINTENANCE_LINE_EDIT_COMPLETED: {\n const maintenanceLine = action.payload;\n return {\n ...state,\n [maintenanceLine.maintenanceLineId]: {\n ...omit(state[maintenanceLine.maintenanceLineId], ['oldMaintenanceLine']),\n ...omit(maintenanceLine, ['oldMaintenanceLine']),\n isConfirmed: true\n }\n };\n }\n\n case types.MAINTENANCE_LINE_COPY_COMPLETED: {\n const maintenanceLine = action.payload;\n const newState = { ...state };\n newState[maintenanceLine.maintenanceLineId] = {\n isSelected: false,\n ...maintenanceLine,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n const maintenanceLine = action.payload;\n const newState = { ...state };\n newState[maintenanceLine.maintenanceLineId] = {\n isSelected: false,\n ...maintenanceLine,\n isConfirmed: false\n };\n return newState;\n }\n case types.MAINTENANCE_LINE_EDIT_STARTED: {\n const maintenanceLine = action.payload;\n return {\n ...state,\n [maintenanceLine.maintenanceLineId]: {\n ...state[maintenanceLine.maintenanceLineId],\n oldMaintenanceLine: state[maintenanceLine.maintenanceLineId],\n ...maintenanceLine,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n const { oldMaintenanceLine } = action.payload;\n return {\n ...state,\n [oldMaintenanceLine.maintenanceLineId]: {\n ...omit(state[oldMaintenanceLine.maintenanceLineId], ['oldMaintenanceLine']),\n ...oldMaintenanceLine,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n const { maintenanceLineId } = action.payload;\n return omit(state, maintenanceLineId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MAINTENANCE_LINE_SELECTED: {\n const maintenanceLineId = action.payload;\n const newState = {\n ...state,\n [maintenanceLineId]: {\n ...state[maintenanceLineId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MAINTENANCE_LINE_DESELECTED: {\n const maintenanceLineId = action.payload;\n return {\n ...state,\n [maintenanceLineId]: {\n ...state[maintenanceLineId],\n isSelected: false\n }\n };\n }\n\n case types.MAINTENANCE_LINES_ALL_SELECTED: {\n const maintenanceLineIds = action.payload;\n const newState = { ...state };\n if (maintenanceLineIds.length == 0) {\n forEach(state, (maintenanceLine: any, maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...maintenanceLine,\n isSelected: true\n };\n });\n } else {\n maintenanceLineIds.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...state[maintenanceLineId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MAINTENANCE_LINES_ALL_DESELECTED: {\n const maintenanceLineIds = action.payload;\n const newState = { ...state };\n if (maintenanceLineIds.length == 0) {\n forEach(state, (maintenanceLine: any, maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...maintenanceLine,\n isSelected: false\n };\n });\n } else {\n maintenanceLineIds.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...state[maintenanceLineId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n const { oldId, maintenanceLine } = action.payload;\n return state.map((maintenanceLineId) =>\n maintenanceLineId === oldId ? maintenanceLine.maintenanceLineId : maintenanceLineId\n );\n }\n\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n const { maintenanceLineId } = action.payload;\n return state.filter((maintenanceLineIdState) => maintenanceLineIdState !== maintenanceLineId);\n }\n\n //CASE ADD STARTED\n case types.MAINTENANCE_LINE_COPY_COMPLETED:\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n const maintenanceLine = action.payload;\n return [...state, maintenanceLine.maintenanceLineId];\n }\n\n //CASE ADD FAILED\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((maintenanceLineIdState) => maintenanceLineIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_FETCH_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_ADD_COMPLETED:\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_EDIT_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_EDIT_COMPLETED:\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_REMOVE_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED:\n case types.MAINTENANCE_LINE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINES_FETCH_STARTED:\n case types.MAINTENANCE_LINES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_ADD_STARTED:\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_EDIT_STARTED:\n case types.MAINTENANCE_LINE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_REMOVE_STARTED:\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst maintenanceLines = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default maintenanceLines;\n\n//Own state\nexport const getOwnState = (state) => state.maintenanceLines;\n\n//Information\nexport const getMaintenanceLine = (\n state,\n maintenanceLineId\n): MaintenancePlansFormatted | undefined => {\n const maintenanceLine = getOwnState(state).byId[maintenanceLineId];\n if (maintenanceLine) return maintenanceLine;\n else return undefined;\n};\nexport const getMaintenanceLinesList = (state): MaintenancePlansFormatted[] =>\n getOwnState(state)\n .order.map((id) => getMaintenanceLine(state, id))\n .filter((maintenanceLine) => maintenanceLine.maintenanceLineStatus > 0);\n\nexport const getMaintenanceLinesListByMembership = (\n state: any,\n membership: DefaultFilters | undefined,\n typeId: types.MaintenanceNoticeTypes = types.MaintenanceNoticeTypes.MaintenanceLinesByOdometer\n) => {\n //Se filtra por membership\n return getMaintenanceLinesList(state).filter(\n (maintenanceLine) =>\n membership &&\n (!membership.operatorId || membership.operatorId === maintenanceLine.operatorId) &&\n (!membership.organizationId ||\n membership.organizationId === maintenanceLine.organizationId) &&\n (!membership.divisionId || membership.divisionId === maintenanceLine.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === maintenanceLine.subdivisionId) &&\n (isNullOrUndefined(maintenanceLine?.maintenanceNoticeTypeId)\n ? true\n : maintenanceLine.maintenanceNoticeTypeId === typeId)\n );\n};\n\nexport const getMaintenanceLinesListBySelectedDivision = (state, membership) => {\n //Se filtra por divisionId\n if (membership.divisionId) {\n return getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.divisionId === membership.divisionId\n );\n }\n //Si no se ha seleccionado una división se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedMaintenanceLines = (state) => {\n const selectedMaintenanceLines = getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedMaintenanceLines.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedMaintenanceLines.length > 0) return selectedMaintenanceLines;\n};\n\nexport const getSelectedMaintenanceLine = (state) => {\n const selectedMaintenanceLines = getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedMaintenanceLines.length === 1) return selectedMaintenanceLines[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListMaintenanceLines = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListMaintenanceLines = (state) => getOwnState(state).isFetchingList;\nexport const isAddingMaintenanceLine = (state) => getOwnState(state).isAdding;\nexport const isEditingMaintenanceLine = (state) => getOwnState(state).isEditing;\nexport const isRemovingMaintenanceLine = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListMaintenanceLinesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListMaintenanceLinesErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingMaintenanceLineErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingMaintenanceLineErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingMaintenanceLineErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Componente RadioButtons */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Radio Buttons Input genérico que se utiliza en muchas pantallas de la aplicación.\nimport { useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { FormGroup, Col, CustomInput, Label } from 'reactstrap';\n\ninterface Props {\n field: any;\n fieldstate: any;\n required?: any;\n errorMessage?: any;\n errorinvalidmessage?: any;\n errorvalidatemessage?: any;\n radioButtons: any[];\n label?: any;\n isInModal?: boolean;\n additionalonchangefunction?: Function;\n}\n\nconst RadioButtonsInput = (props: Props) => {\n const {\n field,\n fieldstate,\n required,\n errorMessage,\n errorinvalidmessage,\n errorvalidatemessage,\n radioButtons,\n label,\n isInModal,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (field.value && additionalonchangefunction) additionalonchangefunction(field.value);\n }, [field.value]);\n\n return (\n \n {label && (\n \n )}\n {radioButtons?.map((radioButton, i) => (\n \n {\n field.onChange(event.target.id);\n }}\n />\n \n ))}\n {fieldstate.error && fieldstate.error.type === 'required' ? (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'pattern' ? (\n
\n {fieldstate.error?.message || errorinvalidmessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'validate' ? (\n
\n {fieldstate.error?.message || errorvalidatemessage || (\n \n )}\n
\n ) : (\n ''\n )}\n
\n );\n};\n\nRadioButtonsInput.defaultProps = {\n radioButtons: [],\n boolean: false\n};\n\nexport default RadioButtonsInput;\n","import forEach from 'lodash/forEach';\nimport { isNaNOrNullable, parseToNumber } from 'utility/Utils';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { timeInSeconds } from 'utility/timeUtils/timeInSeconds';\n// Adds description to one schedule\n// returns schedule object\nexport const addScheduleDescription = (schedule, intl) => {\n const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\n const relativeIntervalDay = {\n 1: () => intl.formatMessage({ id: 'schedules.sunday' }),\n 2: () => intl.formatMessage({ id: 'schedules.monday' }),\n 3: () => intl.formatMessage({ id: 'schedules.tuesday' }),\n 4: () => intl.formatMessage({ id: 'schedules.wednesday' }),\n 5: () => intl.formatMessage({ id: 'schedules.thursday' }),\n 6: () => intl.formatMessage({ id: 'schedules.friday' }),\n 7: () => intl.formatMessage({ id: 'schedules.saturday' })\n };\n const frequencyType = {\n 1: () => intl.formatMessage({ id: 'schedules.oneTime' }),\n 4: () =>\n schedule.frequencyInterval > 1\n ? intl.formatMessage({ id: 'schedules.every' }) +\n schedule.frequencyInterval +\n intl.formatMessage({ id: 'schedules.days' })\n : intl.formatMessage({ id: 'schedules.everyDay' }),\n 8: () => {\n var count = 0;\n var sDays = '';\n forEach([...Array(7).keys()], (value) => {\n if (isBitSet(schedule.frequencyInterval, value)) {\n if (sDays != '') sDays += ', ';\n sDays += relativeIntervalDay[value + 1]();\n count++;\n }\n });\n return (\n (count > 1\n ? intl.formatMessage({ id: 'schedules.theDays' })\n : intl.formatMessage({ id: 'schedules.the' })) +\n (count === 2 ? sDays.replace(',', ' y ') : sDays) +\n intl.formatMessage({ id: 'schedules.everySmall' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.weeks' })\n : intl.formatMessage({ id: 'schedules.week' }))\n );\n },\n 16: () =>\n intl.formatMessage({ id: 'schedules.theDay' }) +\n schedule.frequencyInterval +\n intl.formatMessage({ id: 'schedules.ofEach' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.months' })\n : intl.formatMessage({ id: 'schedules.month' })),\n 32: () =>\n ({\n 1: () => intl.formatMessage({ id: 'schedules.relativeMonth0' }),\n 2: () => intl.formatMessage({ id: 'schedules.relativeMonth1' }),\n 4: () => intl.formatMessage({ id: 'schedules.relativeMonth2' }),\n 8: () => intl.formatMessage({ id: 'schedules.relativeMonth3' }),\n 16: () => intl.formatMessage({ id: 'schedules.relativeMonth4' })\n }[schedule.frequencyRelativeInterval]() +\n ' ' +\n relativeIntervalDay[schedule.frequencyInterval]() +\n intl.formatMessage({ id: 'schedules.ofEach' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.months' })\n : intl.formatMessage({ id: 'schedules.month' })))\n };\n const frequencyDescription = frequencyType[schedule.frequencyType]();\n return {\n ...schedule,\n frequencyDescription\n };\n};\n\n// Adds appropiate descriptions to a list of schedules\n// returns array of schedule objects\nexport const addSchedulesDescription = (schedulesData, intl) =>\n schedulesData.map((schedules) => addScheduleDescription(schedules, intl));\n\n//Lista de día de la semana\n//Útil para .map en diferentes contextos\nexport const daysList = [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n 'sunday'\n];\n\nexport const msToTime = (duration: unknown): string => {\n const parsed = parseToNumber(duration);\n\n if (!parsed) return '';\n\n const milliseconds = Math.floor((parsed % 1000) / 100),\n seconds = Math.floor((parsed / 1000) % 60),\n minutes = Math.floor((parsed / (1000 * 60)) % 60),\n hours = Math.floor((parsed / (1000 * 60 * 60)) % 24);\n\n const hoursT = hours < 10 ? '0' + hours : hours;\n const minutesT = minutes < 10 ? '0' + minutes : minutes;\n const secondsT = seconds < 10 ? '0' + seconds : seconds;\n\n return hoursT + ':' + minutesT + ':' + secondsT + '.' + milliseconds;\n};\n\nexport const minutesToMilliseconds = (min: unknown) => {\n const minutes = parseToNumber(min);\n\n if (!minutes) return null;\n\n const timeAsMilliseconds = minutes * timeInSeconds.minute * 1000;\n\n return timeAsMilliseconds;\n};\n\nexport const minutesToTime = (min: unknown): string => {\n const timeAsMilliseconds = minutesToMilliseconds(min);\n\n return msToTime(timeAsMilliseconds);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MODULES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((moduleId) => {\n newState[moduleId] = {\n isSelected: false,\n ...entities[moduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((moduleId) => {\n newState[moduleId] = {\n isSelected: false,\n ...entities[moduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MODULE_FETCH_COMPLETED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...state[module.deviceId],\n ...module,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.MODULE_ADD_COMPLETED: {\n const { oldId, module } = action.payload;\n const newState = omit(state, oldId);\n newState[module.deviceId] = {\n ...state[oldId],\n ...module,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MODULE_EDIT_COMPLETED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...omit(state[module.deviceId], ['oldModule']),\n ...omit(module, ['oldModule']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MODULE_ADD_STARTED: {\n const module = action.payload;\n const newState = { ...state };\n newState[module.deviceId] = {\n isSelected: false,\n ...module,\n isConfirmed: false\n };\n return newState;\n }\n case types.MODULE_EDIT_STARTED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...state[module.deviceId],\n oldModule: state[module.deviceId],\n ...module,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MODULE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MODULE_EDIT_FAILED: {\n const oldModule = action.payload;\n return {\n ...state,\n [oldModule.deviceId]: {\n ...omit(state[oldModule.deviceId], ['oldModule']),\n ...oldModule,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MODULE_REMOVE_COMPLETED: {\n const { moduleId } = action.payload;\n return omit(state, moduleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MODULE_SELECTED: {\n const moduleId = action.payload;\n const newState = {\n ...state,\n [moduleId]: {\n ...state[moduleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MODULE_DESELECTED: {\n const moduleId = action.payload;\n return {\n ...state,\n [moduleId]: {\n ...state[moduleId],\n isSelected: false\n }\n };\n }\n\n case types.MODULES_ALL_SELECTED: {\n const moduleIds = action.payload;\n const newState = { ...state };\n if (moduleIds.length == 0) {\n forEach(state, (module: any, moduleId) => {\n newState[moduleId] = {\n ...module,\n isSelected: true\n };\n });\n } else {\n moduleIds.forEach((moduleId) => {\n newState[moduleId] = {\n ...state[moduleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MODULES_ALL_DESELECTED: {\n const moduleIds = action.payload;\n const newState = { ...state };\n if (moduleIds.length == 0) {\n forEach(state, (module: any, moduleId) => {\n newState[moduleId] = {\n ...module,\n isSelected: false\n };\n });\n } else {\n moduleIds.forEach((moduleId) => {\n newState[moduleId] = {\n ...state[moduleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MODULES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MODULE_FETCH_COMPLETED: {\n const module = action.payload;\n return uniq([...state, module.deviceId]);\n }\n\n case types.MODULE_ADD_COMPLETED: {\n const { oldId, module } = action.payload;\n return state.map((deviceId) => (deviceId === oldId ? module.deviceId : deviceId));\n }\n\n case types.MODULE_REMOVE_COMPLETED: {\n const { moduleId } = action.payload;\n return state.filter((moduleIdState) => moduleIdState !== moduleId);\n }\n\n //CASE ADD STARTED\n case types.MODULE_ADD_STARTED: {\n const module = action.payload;\n return [...state, module.deviceId];\n }\n\n //CASE ADD FAILED\n case types.MODULE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((moduleIdState) => moduleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MODULES_FETCH_STARTED: {\n return true;\n }\n case types.MODULES_FETCH_COMPLETED:\n case types.MODULES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MODULES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.MODULES_PARTIAL_FETCH_COMPLETED:\n case types.MODULES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_FETCH_STARTED: {\n return true;\n }\n case types.MODULE_FETCH_COMPLETED:\n case types.MODULE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_ADD_STARTED: {\n return true;\n }\n case types.MODULE_ADD_COMPLETED:\n case types.MODULE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_EDIT_STARTED: {\n return true;\n }\n case types.MODULE_EDIT_COMPLETED:\n case types.MODULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_REMOVE_STARTED: {\n return true;\n }\n case types.MODULE_REMOVE_COMPLETED:\n case types.MODULE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MODULES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULES_FETCH_STARTED:\n case types.MODULES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_FETCH_STARTED:\n case types.MODULE_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_ADD_STARTED:\n case types.MODULE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_EDIT_STARTED:\n case types.MODULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_REMOVE_STARTED:\n case types.MODULE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst dirty = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_DIRTY: {\n return action.payload;\n }\n default: {\n return state;\n }\n }\n};\n\nconst modules = combineReducers({\n byId,\n order,\n isFetching,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n dirty\n});\n\nexport default modules;\n\n//Own state\nexport const getOwnState = (state) => state.modules;\n\n//Information\nexport const getModule = (state, moduleId) => getOwnState(state).byId[moduleId];\nexport const getModulesList = (state) =>\n getOwnState(state)\n .order.map((id) => getModule(state, id))\n .filter((device) => device.deviceStatus > 0);\nexport const getModulesListByMembership = (state, membership) =>\n getModulesList(state).filter(\n (module) =>\n membership &&\n (!membership.operatorId || membership.operatorId === module.operatorId) &&\n (!membership.organizationId || membership.organizationId === module.organizationId) &&\n (!membership.divisionId || membership.divisionId === module.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === module.subdivisionId)\n );\nexport const getSelectedModules = (state) => {\n const selectedModules = getModulesList(state).filter((module) => module.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedModules.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedModules.length > 0) return selectedModules;\n};\n\nexport const getSelectedModule = (state) => {\n const selectedModules = getModulesList(state).filter((module) => {\n return module.isSelected;\n });\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedModules.length === 1) return selectedModules[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isDirty = (state) => getOwnState(state).dirty;\n\n//Status of sagas\nexport const isFetchingModule = (state) => getOwnState(state).isFetching;\nexport const isPartialFetchingListModules = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListModules = (state) => getOwnState(state).isFetchingList;\nexport const isAddingModule = (state) => getOwnState(state).isAdding;\nexport const isEditingModule = (state) => getOwnState(state).isEditing;\nexport const isRemovingModule = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingModuleErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListModulesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingModuleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingModuleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingModuleErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/sim';\n\ninterface SimFilters {\n operatorId?: number;\n organizationId?: number;\n unitId?: number;\n userFetchDate?: Date;\n}\n\ninterface ImportSIMsFilters {\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n sims?: String;\n}\n\ninterface SimCardFilters {\n comparationOperator: string;\n limit?: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivision?: number;\n unitId?: number;\n countryId?: number;\n mobileOperatorId?: number;\n iccid?: string;\n locationStatus?: number;\n cellularNumber?: string;\n simCardId?: number;\n simCardStatus?: number;\n reportExportActive: boolean\n}\n\nexport const getSimsListService = (\n request: SimFilters | DefaultFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getSimsListDropdownService = (request: SimFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/dropdown`, request);\n};\n\nexport const importSIMsService = async (\n request: ImportSIMsFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importSIMs`, request);\n};\n\nexport const getInactiveSimsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getInactive`, request);\n};\n\nexport const getSimsListByFiltersService = (\n request: SimCardFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const updateSimStatusService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateStatus`, request);\n};\n\nexport const getSimByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { FC, Fragment } from 'react';\nimport { ArrowLeft, ArrowRight } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\nimport { Button, Col, Form, Row } from 'reactstrap';\nimport ContactsDropdown from 'views/formComponents/ContactsDropdown';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MultiSelectInput from 'views/formComponents/MultiSelectInput';\nimport SwitchInput from 'views/formComponents/SwitchInput';\nimport RadioButtonInput from '../../../../formComponents/RadioButtonInput';\nimport { globalNotificationFrecs, routesEvents } from '../../utils';\nimport { useAssignmentContext } from './RoutesAssignUnitContext';\n\nexport enum AssignmentTypes {\n ByDate = 1,\n BySchedule = 2\n}\n\nexport enum AlreadyLeftTheOrigin {\n Yes = 3,\n No = 4\n}\n\nexport type AssignmentTypeFormValues = {\n assignmentType: AssignmentTypes;\n alreadyLeftTheOrigin: AlreadyLeftTheOrigin | undefined;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n notificationEvents: string;\n globalNotificationEmails: string;\n notificationEmails: string;\n};\n\nconst SelectAssignmentTypeTab: FC = () => {\n const { stepper, updateAssignmentType } = useAssignmentContext();\n const { control, handleSubmit, watch } = useForm();\n const intl: IntlShape = useIntl();\n\n const assignmentType = Number(watch('assignmentType') ?? '1');\n const globalNotificationEmails = watch('globalNotificationEmails');\n const notificationEmails = watch('notificationEmails');\n\n return (\n \n
\n \n \n (\n ,\n value: 1\n },\n { label: , value: 2 }\n ]}\n />\n )}\n />\n \n \n
\n {assignmentType == 1 && (\n <>\n \n \n (\n }\n radioButtons={[\n {\n label: `${intl.formatMessage({ id: 'common.yes' })} (${intl.formatMessage(\n {\n id: 'routes.monitoredInfo'\n }\n )})`,\n value: 3\n },\n {\n label: ,\n value: 4\n }\n ]}\n />\n )}\n />\n \n \n
\n \n )}\n \n \n

\n \n

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

\n \n

\n \n \n \n \n \n {notificationEmails?.length > 0 && (\n (\n ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))}\n label={}\n />\n )}\n />\n )}\n \n
\n
\n \n \n \n \n \n \n {\n updateAssignmentType({\n assignmentType: Number(values.assignmentType),\n // @ts-ignore parse string to number\n alreadyLeftTheOrigin: Number(values.alreadyLeftTheOrigin),\n globalNotificationFrec: values.globalNotificationFrec,\n useSharedLink: values.useSharedLink,\n notificationEvents: values.notificationEvents,\n globalNotificationEmails: values.globalNotificationEmails,\n notificationEmails: values.notificationEmails\n });\n stepper?.next();\n })}\n >\n \n \n \n \n \n
\n
\n
\n );\n};\n\nexport default SelectAssignmentTypeTab;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesAssignments';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED: {\n const { orderByDate, entitiesByDate, orderBySchedule, entitiesBySchedule } = action.payload;\n const newState = { ...state };\n orderByDate.forEach((id) => {\n newState[id] = {\n isSelected: false,\n ...state[id],\n ...entitiesByDate[id],\n isConfirmed: true\n };\n });\n orderBySchedule.forEach((id) => {\n newState[id] = {\n isSelected: false,\n ...state[id],\n ...entitiesBySchedule[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTES_ASSIGNMENT_EDIT_COMPLETED: {\n const { routeAssignmentId, assignment } = action.payload;\n return {\n ...state,\n [routeAssignmentId]: {\n ...omit(state[routeAssignmentId], ['oldAssignment']),\n ...omit(assignment, ['oldAssignment']),\n isConfirmed: true\n }\n };\n }\n\n case types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED: {\n const { orderByDate, entitiesByDate } = action.payload;\n const newState = {};\n orderByDate.forEach((id) => {\n newState[id] = {\n isSelected: false,\n ...state[id],\n ...entitiesByDate[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES STARTED EDIT\n case types.ROUTES_ASSIGNMENT_EDIT_STARTED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.routeAssignmentId]: {\n ...state[assignment.routeAssignmentId],\n oldAssignment: state[assignment.routeAssignmentId],\n ...omit(assignment, ['routeAssignmentId']),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED EDIT\n case types.ROUTES_ASSIGNMENT_EDIT_FAILED: {\n const { routeAssignmentId, oldAssignment } = action.payload;\n return {\n ...state,\n [routeAssignmentId]: {\n ...omit(state[routeAssignmentId], ['oldAssignment']),\n ...oldAssignment,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED: {\n const { routeAssignmentId } = action.payload;\n return omit(state, routeAssignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH AND REMOVE\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED: {\n const { orderByDate, orderBySchedule } = action.payload;\n return union(orderByDate, orderBySchedule);\n }\n\n case types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED: {\n const { orderByDate, orderBySchedule } = action.payload;\n return union(orderByDate);\n }\n\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED: {\n const { routeAssignmentId } = action.payload;\n return state.filter((routeAssignmentIdState) => routeAssignmentIdState !== routeAssignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED:\n case types.ROUTES_ASSIGNMENTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_COMPLETED:\n case types.ROUTES_ASSIGNMENT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED:\n case types.ROUTES_ASSIGNMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isImportingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENTS_IMPORT_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED:\n case types.ROUTES_ASSIGNMENTS_IMPORT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAssignments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_STARTED:\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_STARTED:\n case types.ROUTES_ASSIGNMENT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_STARTED:\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesAssignments = combineReducers({\n byId,\n order,\n isFetchingAssignments,\n isEditing,\n isRemoving,\n isImportingAssignments,\n errorFetchingAssignments,\n errorEditing,\n errorRemoving\n});\n\nexport default routesAssignments;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesAssignments;\n\n//Information\nexport const getRoutesAssignment = (state, visitId) => {\n return getOwnState(state).byId[visitId];\n};\nexport const getRoutesAssignmentsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesAssignment(state, id));\nexport const getRoutesAssignmentsListByType = (state, typeId) =>\n getRoutesAssignmentsList(state).filter((assignment) => assignment.typeId === typeId);\n\n//Status of sagas\nexport const isFetchingRoutesAssignments = (state) => getOwnState(state).isFetchingAssignments;\nexport const isEditingRoutesAssignments = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoutesAssignments = (state) => getOwnState(state).isRemoving;\nexport const isImportingRouteAssignments = (state) => getOwnState(state).isImportingAssignments;\n\n//Errors\nexport const getFetchingRoutesAssignmentsErrors = (state) =>\n getOwnState(state).errorFetchingAssignments;\nexport const getEditingRoutesAssignmentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRoutesAssignmentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { type } from 'os';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.PROTOCOLS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((protocolId) => {\n newState[protocolId] = {\n isSelected: false,\n ...state[protocolId],\n ...entities[protocolId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((protocolId) => {\n newState[protocolId] = {\n isSelected: false,\n ...state[protocolId],\n ...entities[protocolId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.PROTOCOLS_ADD_COMPLETED: {\n const { oldId, protocol } = action.payload;\n const newState = omit(state, oldId);\n newState[protocol.protocolId] = {\n ...state[oldId],\n ...protocol,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.PROTOCOLS_EDIT_COMPLETED: {\n const protocol = action.payload;\n return {\n ...state,\n [protocol.protocolId]: {\n ...omit(state[protocol.protocolId], ['oldPROTOCOLS']),\n ...omit(protocol, ['oldPROTOCOLS']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.PROTOCOLS_ADD_STARTED: {\n const protocol = action.payload;\n const newState = { ...state };\n newState[protocol.protocolId] = {\n isSelected: false,\n isConfirmed: false\n };\n return newState;\n }\n case types.PROTOCOLS_EDIT_STARTED: {\n const protocol = action.payload;\n return {\n ...state,\n [protocol.protocolId]: {\n ...state[protocol.protocolId],\n oldProtocol: state[protocol.protocolId],\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.PROTOCOLS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.PROTOCOLS_EDIT_FAILED: {\n const { oldProtocol } = action.payload;\n return {\n ...state,\n [oldProtocol.protocolId]: {\n ...omit(state[oldProtocol.protocolId], ['oldPROTOCOLS']),\n ...oldProtocol,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.PROTOCOLS_REMOVE_COMPLETED: {\n const { protocolId } = action.payload;\n return omit(state, protocolId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.PROTOCOLS_SELECTED: {\n const protocolId = action.payload;\n const newState = {\n ...state,\n [protocolId]: {\n ...state[protocolId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.PROTOCOLS_DESELECTED: {\n const protocolId = action.payload;\n return {\n ...state,\n [protocolId]: {\n ...state[protocolId],\n isSelected: false\n }\n };\n }\n\n case types.PROTOCOLS_ALL_SELECTED: {\n const protocolIds = action.payload;\n const newState = { ...state };\n if (protocolIds.length == 0) {\n forEach(state, (protocol: any, protocolId) => {\n newState[protocolId] = {\n ...protocol,\n isSelected: true\n };\n });\n } else {\n protocolIds.forEach((protocolId) => {\n newState[protocolId] = {\n ...state[protocolId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.PROTOCOLS_ALL_DESELECTED: {\n const protocolIds = action.payload;\n const newState = { ...state };\n if (protocolIds.length == 0) {\n forEach(state, (protocol: any, protocolId) => {\n newState[protocolId] = {\n ...protocol,\n isSelected: false\n };\n });\n } else {\n protocolIds.forEach((protocolId) => {\n newState[protocolId] = {\n ...state[protocolId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.PROTOCOLS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.PROTOCOLS_ADD_COMPLETED: {\n const { oldId, protocol } = action.payload;\n return state.map((protocolId) => (protocolId === oldId ? protocol.protocolId : protocolId));\n }\n\n case types.PROTOCOLS_REMOVE_COMPLETED: {\n const { protocolId } = action.payload;\n return state.filter((protocolIdState) => protocolIdState !== protocolId);\n }\n\n //CASE ADD STARTED\n case types.PROTOCOLS_ADD_STARTED: {\n const protocol = action.payload;\n return [...state, protocol.protocolId];\n }\n\n //CASE ADD FAILED\n case types.PROTOCOLS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((protocolIdState) => protocolIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_FETCH_STARTED: {\n return true;\n }\n case types.PROTOCOLS_FETCH_COMPLETED:\n case types.PROTOCOLS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED:\n case types.PROTOCOLS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_ADD_STARTED: {\n return true;\n }\n case types.PROTOCOLS_ADD_COMPLETED:\n case types.PROTOCOLS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_EDIT_STARTED: {\n return true;\n }\n case types.PROTOCOLS_EDIT_COMPLETED:\n case types.PROTOCOLS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_REMOVE_STARTED: {\n return true;\n }\n case types.PROTOCOLS_REMOVE_COMPLETED:\n case types.PROTOCOLS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_FETCH_STARTED:\n case types.PROTOCOLS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_STARTED:\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_ADD_STARTED:\n case types.PROTOCOLS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_EDIT_STARTED:\n case types.PROTOCOLS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_REMOVE_STARTED:\n case types.PROTOCOLS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst protocols: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched\n});\n\nconst protocolsPersistedConfig = {\n key: 'protocols',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n // blackList: [],\n};\n\nexport default persistReducer(protocolsPersistedConfig, protocols);\n// export default drivers;\n\nexport const getOwnState = (state) => state.protocols;\n\nexport const getProtocol = (state, protocolId): types.Protocol | null =>\n getOwnState(state).byId[protocolId] ?? null;\n\nexport const getProtocolsList = (state): types.Protocol[] =>\n getOwnState(state).order.map((id) => getProtocol(state, id));\n\nexport const getProtocolsListByMembership = (state, membership) => {\n return getProtocolsList(state).filter(\n (protocol) =>\n membership &&\n (!membership.operatorId || membership.operatorId === protocol.operatorId) &&\n (!membership.organizationId ||\n membership.organizationId === protocol.organizationId ||\n !protocol.organizationId) &&\n (!membership.divisionId ||\n membership.divisionId === protocol.divisionId ||\n !protocol.divisionId) &&\n (!membership.subdivisionId ||\n membership.subdivisionId === protocol.subdivisionId ||\n !protocol.subdivisionId)\n );\n};\n\n//Status of sagas\nexport const isPartialFetchingListProtocols = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListProtocols = (state) => getOwnState(state).isFetchingList;\nexport const haveProtocolsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingProtocol = (state) => getOwnState(state).isAdding;\nexport const isEditingProtocol = (state) => getOwnState(state).isEditing;\nexport const isRemovingProtocol = (state) => getOwnState(state).isRemoving;\nexport const isCopyingProtocol = (state) => getOwnState(state).isCopying;\n\n//Errors\nexport const getPartialFetchingListProtocolsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListProtocolsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingProtocolErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingProtocolErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingProtocolErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n listServiceClass: 'UP017',\n addServiceClass: 'UP018',\n editServiceClass: 'UP019',\n deleteServiceClass: 'UP020'\n};\n\nexport default permissions;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRouteAssignmentsListService = async (\n request: any,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssignments`, request);\n};\n\nexport const getAssignedUnitsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssignedUnits`, request);\n};\n\nexport const saveAssignmentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.unitName}`,\n object: 'routes.assignmentOfUnit',\n action: request.routeAssignmentId ? 'Edit' : 'Create',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveAssignment`, request);\n};\n\nexport const deleteAssignmentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.unitName}`,\n object: 'routes.assignmentOfUnit',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteAssignment`, request);\n};\n\nexport type RouteAssignmentsRequest = {\n routeAssignments: string | null;\n completionType: number | null;\n alreadyLeftTheOrigin: boolean | null;\n automaticMonitoringWhenArrivingAtOrigin?: boolean | null;\n assignmentDate?: string | null;\n useUnitPrivateCode?: boolean;\n useRoutePrivateCode?: boolean;\n useCustomerPrivateCode?: boolean;\n};\n\nexport const importRouteAssignmentsService = async (\n request: RouteAssignmentsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importAssignments`, request);\n};\n","const paths = {\n listEmailNotifications: '/notifications/email',\n listConsoleNotifications: '/notifications/console',\n listWebServiceNotifications: '/notifications/webService',\n listSystemNotifications: '/notifications/system',\n listNotifications: '/notifications/:screenType'\n};\n\nexport default paths;\n","import * as types from '../../types/report';\n\nexport const startFetchingJobsReport = (filters = {}) => ({\n type: types.JOBS_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsReport = (\n indicators,\n entities,\n order,\n entitiesByUser,\n orderByUser\n) => ({\n type: types.JOBS_REPORT_FETCH_COMPLETED,\n payload: {\n indicators,\n entities,\n order,\n entitiesByUser,\n orderByUser\n }\n});\nexport const failFetchingJobsReport = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRouteCommentsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getComments`, request);\n};\n\nexport const saveCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.comment',\n action: request.routeCommentId ? 'Edit' : 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveComment`, request);\n};\n\nexport const deleteCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.comment',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteComment`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesComments';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED: {\n const { oldId, comment } = action.payload;\n const newState = omit(state, oldId);\n newState[comment.routeCommentId] = {\n ...state[oldId],\n ...comment,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED: {\n const comment = action.payload;\n return {\n ...state,\n [comment.routeCommentId]: {\n ...omit(state[comment.routeCommentId], ['oldComment']),\n ...omit(comment, ['oldComment']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED: {\n const comment = action.payload;\n const newState = { ...state };\n newState[comment.routeCommentId] = {\n isSelected: false,\n ...comment,\n isConfirmed: false\n };\n return newState;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED: {\n const comment = action.payload;\n return {\n ...state,\n [comment.routeCommentId]: {\n ...state[comment.routeCommentId],\n oldComment: state[comment.routeCommentId],\n ...comment,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED: {\n const { oldComment } = action.payload;\n return {\n ...state,\n [oldComment.routeCommentId]: {\n ...omit(state[oldComment.routeCommentId], ['oldComment']),\n ...oldComment,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED: {\n const { routeCommentId } = action.payload;\n return omit(state, routeCommentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED: {\n const { oldId, comment } = action.payload;\n return state.map((routeCommentId) =>\n routeCommentId === oldId ? comment.routeCommentId : routeCommentId\n );\n }\n\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED: {\n const { routeCommentId } = action.payload;\n return state.filter((routeCommentIdState) => routeCommentIdState !== routeCommentId);\n }\n\n //CASE ADD STARTED\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED: {\n const comment = action.payload;\n return [...state, comment.routeCommentId];\n }\n\n //CASE ADD FAILED\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((routeCommentIdState) => routeCommentIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingComments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingComments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED:\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED:\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED:\n case types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED:\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesComments = combineReducers({\n byId,\n order,\n isFetchingComments,\n isAdding,\n isEditing,\n isRemoving,\n errorFetchingComments,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default routesComments;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesExecutions.routesComments;\n\n//Information\nexport const getRoutesComment = (state, visitId) => {\n return getOwnState(state).byId[visitId];\n};\nexport const getRoutesCommentsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesComment(state, id));\nexport const getRoutesCommentsListByRouteAssignmentId = (state, routeAssignmentId) =>\n getRoutesCommentsList(state).filter((comment) => comment.routeAssignmentId === routeAssignmentId);\n\n//Status of sagas\nexport const isFetchingRoutesComments = (state) => getOwnState(state).isFetchingComments;\nexport const isAddingRoutesComments = (state) => getOwnState(state).isAdding;\nexport const isEditingRoutesComments = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoutesComments = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingRoutesCommentsErrors = (state) => getOwnState(state).errorFetchingComments;\nexport const getAddingRoutesCommentsErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingRoutesCommentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRoutesCommentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routeCheckpoints';\nimport * as typesRoutes from '../../types/routes';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED:\n case types.ROUTE_CHECKPOINTS_CLEAR: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((routeCheckpointId) => {\n newState[routeCheckpointId] = {\n isSelected: false,\n ...state[routeCheckpointId],\n ...entities[routeCheckpointId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //ROUTE ADD AND EDIT COMPLETED\n case typesRoutes.ROUTE_ADD_COMPLETED: {\n const {\n routeInformation: {\n checkpoints: { entities, order }\n }\n } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case typesRoutes.ROUTE_EDIT_COMPLETED: {\n const {\n checkpoints: { entities, order }\n } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED:\n case types.ROUTE_CHECKPOINTS_CLEAR: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(state, order);\n }\n\n //ROUTE ADD AND EDIT COMPLETED\n case typesRoutes.ROUTE_ADD_COMPLETED: {\n const {\n routeInformation: {\n checkpoints: { order }\n }\n } = action.payload;\n return union(state, order);\n }\n\n case typesRoutes.ROUTE_EDIT_COMPLETED: {\n const {\n checkpoints: { order }\n } = action.payload;\n return union(state, order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED:\n case types.ROUTE_CHECKPOINTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_STARTED:\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routeCheckpoints = combineReducers({\n byId,\n order,\n isFetchingList,\n errorFetchingList\n});\n\nexport default routeCheckpoints;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routeCheckpoints;\n\n//Information\nexport const getRouteCheckpoint = (state, routeCheckpointId) => {\n const routeCheckpoint = getOwnState(state).byId[routeCheckpointId];\n if (routeCheckpoint) {\n return {\n ...routeCheckpoint,\n segmentStopTime: routeCheckpoint.segmentStopTime / 60,\n radiusFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistance2System(routeCheckpoint.radius)\n };\n } else undefined;\n};\n\nexport const getRouteCheckpointsList = (state) =>\n getOwnState(state).order.map((id) => getRouteCheckpoint(state, id));\nexport const getRouteCheckpointsListByRoute = (state, routeId) =>\n getRouteCheckpointsList(state).filter((routeCheckpoint) => routeCheckpoint.routeId === routeId);\n\n//Status of sagas\nexport const isFetchingListRouteCheckpoints = (state) => getOwnState(state).isFetchingList;\n\n//Errors\nexport const getFetchingListRouteCheckpointsErrors = (state) =>\n getOwnState(state).errorFetchingList;\n","const permissions = {\n listForms: 'OF001',\n addForm: 'OF002',\n editForm: 'OF003',\n removeForm: 'OF004',\n fillForm: 'OF006',\n answersFormReport: 'OF005',\n listAllUserAnswersForm: 'OF007'\n};\n\nexport default permissions;\n","const permissions = {\n listProtocol: 'PT001',\n createProtocol: 'PT002',\n editProtocol: 'PT003',\n deleteProtocol: 'PT004'\n};\n\nexport default permissions;\n","import * 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 DateInput from 'views/formComponents/DateInput';\nimport TextInput from 'views/formComponents/TextInput';\nimport Icon from '../../../../../utility/icomoon';\nimport * as unitSelectors from '../../../Units/reducers';\nimport * as unitActions from '../../../Units/actions';\nimport moment from 'moment'\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 const [showDateInput, setShowDateInput] = 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 if (showDateInput && formValues?.linkExpirationDate) {\n dispatch(\n unitActions.startCreatingShareLink(\n unit?.unitId,\n unit?.unitName,\n formValues?.receivers,\n moment(formValues?.linkExpirationDate[1], 'YYYY-MM-DD HH:mm').diff(moment(), 'seconds')\n )\n )\n } else {\n dispatch(\n unitActions.startCreatingShareLink(\n unit?.unitId,\n unit?.unitName,\n formValues?.receivers,\n formValues?.durationId * 3600\n )\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 {showDateInput ? (\n (\n \n )}\n />\n ) : (\n (\n \n )}\n />)}\n \n \n setShowDateInput(prev => !prev)}\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 setShowDateInput(false)\n reset({ durationId: 1, linkExpirationDate: moment().add(1, 'hour').format('YYYY-MM-DD HH:mm')});\n dispatch(unitActions.clearSharedLink());\n }}\n >\n \n \n \n \n \n \n
\n )\n );\n};\n\nSlidingPaneShareUnitLocation.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n unit: {}\n};\n\nexport default SlidingPaneShareUnitLocation;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneUnitHistoricalPositionsReport */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Sidebar para subir una imagen.\n\nimport { orderBy } from 'lodash';\nimport moment from 'moment';\nimport { useEffect, useRef, useState } from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { MapPin } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Marker, Polyline, Tooltip, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Label, Media, Row, Spinner } from 'reactstrap';\nimport * as authSelectors from 'redux/reducers/auth';\nimport Icon from 'utility/icomoon';\nimport { numberWithCommas } from 'utility/Utils';\nimport RotatedMarker from 'views/components/Map/components/RotatedMarker';\nimport ReportViewerButton from 'views/components/ReportViewerButton';\nimport Table from 'views/components/Table';\nimport Toolbar from 'views/components/Toolbar';\nimport DateInput from 'views/formComponents/DateInput';\nimport SwitchInput from 'views/formComponents/SwitchInput';\nimport UnitsDropdown from 'views/formComponents/UnitsDropdown';\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';\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 const getBaseUrl = () => {\n if (process.env.NODE_ENV === 'production') {\n // Si hay una URL pública configurada, úsala\n if (process.env.PUBLIC_URL) {\n return process.env.PUBLIC_URL;\n }\n // Si no, construye la URL base incluyendo el pathname base\n const pathname = window.location.pathname.split('/')[1]; // obtiene el primer segmento del path\n return `${window.location.origin}/${pathname}`;\n }\n return window.location.origin;\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: `${getBaseUrl()}/assets/${getArrowImage(position.heading)}.png`,\n speed: position.speed === null ? '' : position.speed,\n metric: position.metric === null ? '' : parseFloat(position.metric).toFixed(2),\n ignition: position.isIgnitionOn === 1 ? 'Encendido' : 'Apagado'\n })),\n 'gpsDate',\n 'asc'\n ),\n name: 'HistoricalPositionUnits'\n },\n {\n value: [\n {\n defaultMetricUnit: unit.defaultMetricUnit,\n defaultMetricName: unit.defaultMetricName\n }\n ],\n name: 'Metrics'\n },\n {\n value: [\n {\n distanceSystem: user.distanceSystem\n }\n ],\n name: 'User'\n },\n {\n value: [\n {\n distanceAllPositions: unit?.historicalPositions?.distance\n }\n ],\n name: 'DistancePositionsUnit'\n }\n ]\n };\n\n return (\n <>\n {historicalPositionsOnMapBounds?.positions?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n (showHistoricalPositions?.show\n ? showHistoricalPositions?.showUnitHistoryMarkers\n : formValues?.showUnitHistoryMarkers) &&\n historicalPositionsOnMapBounds.positions.map((position, index) =>\n position.eventId === 0 ? (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={750}\n riseOnHover={true}\n rotationAngle={position.heading}\n rotationOrigin=\"center\"\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: `\n `,\n iconSize: [22, 22],\n iconAnchor: [11, 11]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n
\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n {position.eventName}\n
\n\n {position?.locationName?.split(',').map((e) => {\n return (\n

{e}

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

{e}

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

\n \n

\n

\n \n

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

\n \n

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