{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/backend/auth-header.js","webpack:///./src/helpers/backend/user.service.js","webpack:///./src/state/modules/auth.js","webpack:///./src/helpers/backend/rafc.service.js","webpack:///./src/state/modules/rafc.js","webpack:///./src/state/modules/notification.js","webpack:///./src/helpers/backend/mtcevents.service.js","webpack:///./src/state/modules/mtcevents.js","webpack:///./src/helpers/backend/marques.service.js","webpack:///./src/state/modules/marques.js","webpack:///./src/helpers/backend/home.service.js","webpack:///./src/state/modules/home.js","webpack:///./src/helpers/backend/states.service.js","webpack:///./src/state/modules/states.js","webpack:///./src/helpers/backend/regions.service.js","webpack:///./src/state/modules/regions.js","webpack:///./src/helpers/backend/alerts.service.js","webpack:///./src/state/modules/alerts.js","webpack:///./src/helpers/backend/centres.service.js","webpack:///./src/state/modules/centres.js","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/helpers/backend/stationshcplus.service.js","webpack:///./src/state/modules/stationshcplus.js","webpack:///./src/state/helpers.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?03b3","webpack:///./src/App.vue?315a","webpack:///./src/main.js","webpack:///./src/state/modules/language.js","webpack:///./src/helpers/backend/consolidated.service.js","webpack:///./src/state/modules/consolidated.js","webpack:///./src/helpers/backend/axios.js","webpack:///./src/state/modules/index.js","webpack:///./src/state/store.js","webpack:///./src/i18n.js","webpack:///./src/helpers/backend/logs.service.js","webpack:///./src/state/modules/logs.js","webpack:///./src/helpers/backend/causes.service.js","webpack:///./src/state/modules/causes.js","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/helpers/backend/planifications.service.js","webpack:///./src/state/modules/planifications.js","webpack:///./src/helpers/backend/offlinealerts.service.js","webpack:///./src/state/modules/offlinealerts.js","webpack:///./src/helpers/backend/users.service.js","webpack:///./src/state/modules/users.js","webpack:///./src/helpers/backend/vaccintypes.service.js","webpack:///./src/state/modules/vaccintypes.js","webpack:///./src/helpers/backend/interventions.service.js","webpack:///./src/state/modules/interventions.js","webpack:///./src/state/modules/layout.js","webpack:///./src/helpers/backend/provinces.service.js","webpack:///./src/state/modules/provinces.js","webpack:///./src/helpers/backend/actions.service.js","webpack:///./src/state/modules/actions.js","webpack:///index|\\.unit\\.).)*\\.js$","webpack:///./src/helpers/backend/intervmobile.service.js","webpack:///./src/state/modules/intervmobile.js","webpack:///./src/helpers/backend/operations.service.js","webpack:///./src/state/modules/operations.js","webpack:///./src/helpers/backend/devices.service.js","webpack:///./src/state/modules/devices.js","webpack:///./src/utils/env.js","webpack:///./src/helpers/backend/configsalerts.service.js","webpack:///./src/state/modules/configsalerts.js","webpack:///./src/helpers/backend/interventionoperations.service.js","webpack:///./src/state/modules/interventionoperations.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","authHeader","user","JSON","parse","localStorage","getItem","token","accessToken","userService","login","logout","resetPassword","changePassword","register","getAll","async","email","password","res","axios","post","env","base_url","usr","tokens","access","refreshToken","refresh","setItem","stringify","response","status","resetToken","requestOptions","method","headers","fetch","handleResponse","text","ok","location","reload","statusText","state","currentUser","getters","loggedIn","actions","changeTokens","commit","dispatch","userId","id","root","router","catch","log","registeruser","mutations","SET_NEW_TOKENS","SET_CURRENT_USER","newValue","loginRequest","loggingIn","loginSuccess","loggeduser","loginFailure","registerRequest","registering","registerSuccess","registerFailure","rafcService","getRafc","manageRafc","params","API","loaderDashboard","errors","messages","rafc","rafcNouaceur","manageStatus","getRafcNouaceur","getRafcBy","province","manageRAFC","clearRafc","RAFC_SUCCESS","RAFC_NOUACEUR_SUCCESS","CLEAR_RAFC_SUCCESS","MANAGE_SUCCESS","success","clear","mtcEventsService","addMtcEvent","updateMtcEvent","getMtcEvents","delMtcEvent","getCountByMonthRegion","getCountByMonths","getCountByCurrentMonth","patch","mtcEventId","region","nbPrev","nbCorr","nbRegl","delete","mtcEvents","countByMonths","countByMonthRegion","countByCurrentMonth","mtcEvent","getMtcEventsBy","getCountByMonthRegionBy","count","getCountByMonthsBy","getCountByCurrentMonthBy","clearMtcEvents","GET_MTCEVENTS_SUCCESS","ADD_MTCEVENT_SUCCESS","results","UPDATE_MTCEVENT_SUCCESS","map","obj","DEL_MTCEVENT_SUCCESS","filter","GET_COUNTREGIONMONTH_SUCCESS","GET_COUNTMONTHS_SUCCESS","GET_COUNTCURRENTMONTH_SUCCESS","CLEAR_MTCEVENTS","marquesService","addMarque","updateMarque","getMarques","delMarque","marqueId","marques","marque","getMarquesBy","clearMarques","GET_MARQUES_SUCCESS","ADD_MARQUE_SUCCESS","UPDATE_MARQUE_SUCCESS","DEL_MARQUE_SUCCESS","CLEAR_MARQUES","homeService","postInfos","getData","dataSuccess","events","statesService","addState","updateState","getStates","delState","stateId","isClosed","states","getStatesBy","clearStates","GET_STATES_SUCCESS","ADD_STATE_SUCCESS","UPDATE_STATE_SUCCESS","DEL_STATE_SUCCESS","CLEAR_STATES","regionsService","getRegions","addRegion","updateRegion","delRegion","regionId","regions","getRegionsBy","clearRegions","REGIONS_SUCCESS","ADD_REGION_SUCCESS","UPDATE_REGION_SUCCESS","DEL_REGION_SUCCESS","CLEAR_REGIONS_SUCCESS","alertsService","getAlerts","aquitAlert","aquitAlerts","exportXLS","countByMarqueRegion","countByMarque","from","to","serial","action","operation","cause","savedDoses","hours","dateAquit","createdAt","note","devices","responseType","alerts","causes","export","getCountByMarqueRegion","getStatsByMarque","getAlertsBy","device","closed","aquitPartOfAlerts","serials","exportXLSAlerts","url","URL","createObjectURL","Blob","link","body","click","clearAlerts","getCountByMarqueRegionBy","getStatsByMarqueBy","ALERTS_SUCCESS","EXPORT_SUCCESS","CLEAR_ALERTS_SUCCESS","AQUIT_ALERT_SUCCESS","newResults","includes","AQUIT_ALERTS_SUCCESS","AQUIT_PART_OF_ALERTS_SUCCESS","GET_COUNTMARQUEREGION_SUCCESS","GET_COUNTMARQUE_SUCCESS","centresService","addCentre","updateCentre","getCentres","delCentre","centreId","centres","centre","getCentresBy","clearCentres","GET_CENTRES_SUCCESS","ADD_CENTRE_SUCCESS","UPDATE_CENTRE_SUCCESS","DEL_CENTRE_SUCCESS","CLEAR_CENTRES","webpackContext","req","webpackContextResolve","keys","stationsService","addStation","updateStation","getStations","delStation","stationId","stations","station","getStationsBy","clearStations","GET_STATIONS_SUCCESS","ADD_STATION_SUCCESS","UPDATE_STATION_SUCCESS","DEL_STATION_SUCCESS","CLEAR_STATIONS","authComputed","mapState","mapGetters","languageComputed","devicesComputed","alertsComputed","configsAlertsComputed","offlineAlertsComputed","logsComputed","rafcComputed","consolidatedComputed","regionsComputed","provincesComputed","statesComputed","vaccintypesComputed","causesComputed","marquesComputed","actionsComputed","operationsComputed","mtcEventsComputed","interventionsComputed","interventionsMobileComputed","planificationsComputed","centresComputed","interventionOperationsComputed","usersComputed","stationsComputed","layoutComputed","layoutType","leftSidebarType","layoutWidth","topbar","loader","layoutMethods","mapActions","notificationMethods","authMethods","languageMethods","devicesMethods","alertsMethods","configAlertsMethods","offlineAlertsMethods","logsMethods","rafcMethods","consolidatedMethods","regionsMethods","statesMethods","vaccintypesMethods","causesMethods","marquesMethods","actionsMethods","operationsMethods","mtcEventsMethods","interventionsMethods","interventionsMobileMethods","planificationsMethods","centresMethods","interventionOperationsMethods","usersMethods","provincesMethods","stationsMethods","render","_vm","this","_c","_self","attrs","staticRenderFns","page","titleTemplate","title","$store","appConfig","created","retrieveAvatar","computed","methods","startWebSocket","store","getAvatarControl","watch","component","Vue","config","productionTip","use","VueYoutube","BootstrapVue","Vuetify","vco","Vuelidate","VueFullscreen","VueSweetalert2","VueMask","require","VueGoogleMaps","load","libraries","installComponents","VueApexCharts","HighchartsVue","stockInit","Highcharts","stockExporting","stockDataExporting","stockNoData","i18n","vuetify","h","App","$mount","lang","language","getLanguage","changeLang","CHANGE_LANGUAGE","consolidatedService","getConsolidated","consolidated","getConsolidatedBy","CONSOLIDATED_SUCCESS","CLEAR_CONSOLIDATED_SUCCESS","baseURL","interceptors","userParse","originalRequest","_retry","removeItem","modulesCache","storeData","getNamespace","subtree","path","namespace","namespaced","requireModule","forEach","fileName","moduleDefinition","modulePath","replace","split","camelCase","pop","Vuex","Store","strict","process","loadLocaleMessages","locales","matched","match","locale","VueI18n","fallbackLocale","logsService","getLogs","updateLog","filtredParams","logId","logs","getLogsBy","more","clearLogs","LOGS_SUCCESS","UPDATE_LOG_SUCCESS","LOGS_MORE_SUCCESS","concat","CLEAR_LOGS_SUCCESS","causesService","addCause","updateCause","getCauses","delCause","causeId","getCausesBy","clearCauses","GET_CAUSES_SUCCESS","ADD_CAUSE_SUCCESS","UPDATE_CAUSE_SUCCESS","DEL_CAUSE_SUCCESS","CLEAR_CAUSES","meta","beforeResolve","routeTo","routeFrom","next","authRequired","permissions","permission","role","VueRouter","VueMeta","keyName","routes","scrollBehavior","savedPosition","x","y","beforeEach","VUE_APP_DEFAULT_AUTH","some","route","validUser","redirectToLogin","query","redirectFrom","fullPath","publicPages","authpage","args","planificationsService","addPlanification","updatePlanification","getPlanifications","delPlanification","planificationId","date","planifications","planification","getPlanificationsBy","clearPlanifications","GET_PLANIFICATIONS_SUCCESS","ADD_PLANIFICATION_SUCCESS","UPDATE_PLANIFICATION_SUCCESS","DEL_PLANIFICATION_SUCCESS","CLEAR_PLANIFICATIONS","usersService","addUser","updateUser","delUser","getUsers","getUser","updateAvatar","getAvatar","fullName","oldPassword","newPassword","avatar","urlCreator","webkitURL","users","userPassword","userAvatar","getUsersBy","getUserInfos","clearUsers","USERS_SUCCESS","USER_SUCCESS","ADD_USER_SUCCESS","UPDATE_USER_SUCCESS","DEL_USER_SUCCESS","CHANGE_PASSWORD_SUCCESS","AVATAR_SUCCESS","AVATAR_FAILED","CLEAR_USERS_SUCCESS","vaccintypesService","addVaccintype","updateVaccintype","getVaccintypes","delVaccintype","vaccintypeId","vaccintypes","vaccintype","getVaccintypesBy","clearVaccintypes","GET_VACCINTYPES_SUCCESS","ADD_VACCINTYPE_SUCCESS","UPDATE_VACCINTYPE_SUCCESS","DEL_VACCINTYPE_SUCCESS","CLEAR_VACCINTYPES","interventionsService","addIntervention","updateIntervention","getInterventions","delIntervention","getCountByAction","getCountByTypeequip","getCountByMarque","getCountByRegion","interventionId","interventions","countByAction","countByTypeequip","countByRegion","intervention","updateInterventions","getInterventionsBy","getCountByActionBy","getCountByTypeequipBy","getCountByMarqueBy","getCountByRegionBy","clearInterventions","GET_INTERVENTIONS_SUCCESS","ADD_INTERVENTION_SUCCESS","UPDATE_INTERVENTION_SUCCESS","DEL_INTERVENTION_SUCCESS","GET_COUNTACTION_SUCCESS","GET_COUNTTYPE_SUCCESS","GET_COUNTREGION_SUCCESS","CLEAR_INTERVENTIONS","CHANGE_LAYOUT","CHANGE_LAYOUT_WIDTH","CHANGE_LEFT_SIDEBAR_TYPE","CHANGE_TOPBAR","LOADER","changeLayoutType","changeLayoutWidth","changeLeftSidebarType","changeTopbar","changeLoaderValue","provincesService","getProvinces","addProvince","updateProvince","delProvince","provinceId","provinces","getProvincesBy","clearProvinces","PROVINCES_SUCCESS","ADD_PROVINCE_SUCCESS","UPDATE_PROVINCE_SUCCESS","DEL_PROVINCE_SUCCESS","CLEAR_PROVINCES_SUCCESS","actionsService","addAction","updateAction","getActions","delAction","actionId","getActionsBy","clearActions","GET_ACTIONS_SUCCESS","ADD_ACTION_SUCCESS","UPDATE_ACTION_SUCCESS","DEL_ACTION_SUCCESS","CLEAR_ACTIONS","interventionsMobileService","getInterventionImg","img","getInterventionImgData","GET_INTERVENTION_IMG_SUCCESS","operationsService","addOperation","updateOperation","getOperations","delOperation","operationId","operations","getOperationsBy","clearOperations","GET_OPERATIONS_SUCCESS","ADD_OPERATION_SUCCESS","UPDATE_OPERATION_SUCCESS","DEL_OPERATION_SUCCESS","CLEAR_OPERATIONS","devicesService","getAllDevices","getDevices","exportDevicesXLS","exportAllDevicesXLS","getDevicesTransport","getDeviceInfos","getDeviceInfosBySerial","getEvents","addDevice","updateDevice","delDevice","interventionOffline","limit","sortBy","ref","thermostat","stockType","lat","lng","vaccinTypes","phones","deviceId","savedDosesSino","savedDosesFizer","alertId","allDevices","devicesTransport","interventionDevice","getDevice","getInterventionDevice","getAllDevicesBy","getDevicesBy","getDevicesTransportBy","getEventsBy","clearDevices","GET_ALL_DEVICES_SUCCESS","GET_DEVICES_SUCCESS","GET_DEVICES_TRANSPORT_SUCCESS","GET_DEVICE_INFOS_SUCCESS","GET_EVENTS_SUCCESS","ADD_DEVICE_SUCCESS","UPDATE_DEVICE_SUCCESS","DEL_DEVICE_SUCCESS","INTERVENTION_OFFLINE_SUCCESS","CLEAR_DEVICES","ws_url","configalertsService","addConfigAlert","updateConfigAlert","getConfigAlerts","delConfigAlert","configAlertId","condition","minutesFirstAlert","minutesBetweenAlerts","configAlerts","configAlert","getConfigAlertsBy","clearConfigAlerts","GET_CONFIGALERTS_SUCCESS","ADD_CONFIGALERT_SUCCESS","UPDATE_CONFIGALERT_SUCCESS","DEL_CONFIGALERT_SUCCESS","CLEAR_CONFIGALERTS","interventionOperationsService","addInterventionOperation","updateInterventionOperation","getInterventionOperations","delInterventionOperation","interventionOperationId","interventionOperations","interventionOperation","updateInterventionOperations","getInterventionOperationsBy","clearInterventionOperations","GET_INTERVENTIONACTIONS_SUCCESS","ADD_INTERVENTIONACTION_SUCCESS","UPDATE_INTERVENTIONACTION_SUCCESS","DEL_INTERVENTIONACTION_SUCCESS","CLEAR_INTERVENTIONACTIONS"],"mappings":"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","file":"js/app.3c769237.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-052f2cf9\":\"ab83b00d\",\"chunk-5c7e8362\":\"97d0980f\",\"chunk-1a664b68\":\"86a2dd8a\",\"chunk-2adae556\":\"7a02bb31\",\"chunk-47ab019c\":\"557d0683\",\"chunk-4d8e8e5c\":\"ce74f2c0\",\"chunk-4d8f1df4\":\"80b34bc7\",\"chunk-4d9110a8\":\"5774a19a\",\"chunk-4d91f9a0\":\"c031c85b\",\"chunk-4dbe5988\":\"db413b8d\",\"chunk-742b9690\":\"0b770e25\",\"chunk-45650847\":\"735d5c11\",\"chunk-5941b60e\":\"d3939ada\",\"chunk-229a48d8\":\"24320602\",\"chunk-2e36daa8\":\"7a64ecbe\",\"chunk-6aefcfbc\":\"f122dba9\",\"chunk-99975324\":\"a8d4a973\",\"chunk-79d99662\":\"f7a0494a\",\"chunk-7c072f99\":\"59b6b589\",\"chunk-8602994c\":\"d26da383\",\"chunk-89057f38\":\"44aa7948\",\"chunk-9353be1c\":\"bd86cee1\",\"chunk-9c112b70\":\"486e2698\",\"chunk-da335a76\":\"75b1fb85\",\"chunk-da4217a2\":\"2490e138\",\"chunk-05ff1fb6\":\"9feff993\",\"chunk-0981e897\":\"795af770\",\"chunk-3a14647c\":\"8daf68db\",\"chunk-5c00b24e\":\"705d52c1\",\"chunk-5fa541b6\":\"25e6ecdc\",\"chunk-60e425d9\":\"8ee973c6\",\"chunk-657165c6\":\"e8a018f1\",\"chunk-66359e22\":\"c0da206c\",\"chunk-48096298\":\"24bff9de\",\"chunk-4913f2e6\":\"f2293702\",\"chunk-42f32ca8\":\"0ace3286\",\"chunk-53e45769\":\"bd8a886c\",\"chunk-c32385e8\":\"9e5f97b0\",\"chunk-a16b339a\":\"78011bc3\",\"chunk-cf6cf0a8\":\"4106ec2f\",\"chunk-e2a13d72\":\"3893e32b\",\"chunk-fecc902c\":\"1818a6b1\",\"chunk-717c397e\":\"da57a818\",\"chunk-b357adb0\":\"bd67cb4f\",\"chunk-edd40058\":\"7f676bfa\",\"chunk-ef372700\":\"82d2e256\",\"chunk-f6a67c64\":\"b96e49ad\",\"chunk-71259e49\":\"660feb69\",\"chunk-45763624\":\"c9190d1f\",\"chunk-7ab46049\":\"1522aa6f\",\"chunk-8ce1c922\":\"7499894a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-5c7e8362\":1,\"chunk-1a664b68\":1,\"chunk-2adae556\":1,\"chunk-47ab019c\":1,\"chunk-45650847\":1,\"chunk-5941b60e\":1,\"chunk-229a48d8\":1,\"chunk-2e36daa8\":1,\"chunk-6aefcfbc\":1,\"chunk-99975324\":1,\"chunk-79d99662\":1,\"chunk-7c072f99\":1,\"chunk-8602994c\":1,\"chunk-89057f38\":1,\"chunk-9353be1c\":1,\"chunk-9c112b70\":1,\"chunk-da335a76\":1,\"chunk-05ff1fb6\":1,\"chunk-0981e897\":1,\"chunk-3a14647c\":1,\"chunk-5c00b24e\":1,\"chunk-5fa541b6\":1,\"chunk-60e425d9\":1,\"chunk-657165c6\":1,\"chunk-66359e22\":1,\"chunk-48096298\":1,\"chunk-4913f2e6\":1,\"chunk-42f32ca8\":1,\"chunk-53e45769\":1,\"chunk-c32385e8\":1,\"chunk-a16b339a\":1,\"chunk-cf6cf0a8\":1,\"chunk-e2a13d72\":1,\"chunk-fecc902c\":1,\"chunk-717c397e\":1,\"chunk-b357adb0\":1,\"chunk-edd40058\":1,\"chunk-ef372700\":1,\"chunk-f6a67c64\":1,\"chunk-45763624\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-052f2cf9\":\"31d6cfe0\",\"chunk-5c7e8362\":\"94b5d54f\",\"chunk-1a664b68\":\"628cf5f3\",\"chunk-2adae556\":\"628cf5f3\",\"chunk-47ab019c\":\"628cf5f3\",\"chunk-4d8e8e5c\":\"31d6cfe0\",\"chunk-4d8f1df4\":\"31d6cfe0\",\"chunk-4d9110a8\":\"31d6cfe0\",\"chunk-4d91f9a0\":\"31d6cfe0\",\"chunk-4dbe5988\":\"31d6cfe0\",\"chunk-742b9690\":\"31d6cfe0\",\"chunk-45650847\":\"43952329\",\"chunk-5941b60e\":\"31d7e26a\",\"chunk-229a48d8\":\"990f8f63\",\"chunk-2e36daa8\":\"aaa29014\",\"chunk-6aefcfbc\":\"a0b534c4\",\"chunk-99975324\":\"d317f793\",\"chunk-79d99662\":\"628cf5f3\",\"chunk-7c072f99\":\"628cf5f3\",\"chunk-8602994c\":\"628cf5f3\",\"chunk-89057f38\":\"628cf5f3\",\"chunk-9353be1c\":\"628cf5f3\",\"chunk-9c112b70\":\"628cf5f3\",\"chunk-da335a76\":\"628cf5f3\",\"chunk-da4217a2\":\"31d6cfe0\",\"chunk-05ff1fb6\":\"c7c35add\",\"chunk-0981e897\":\"3d2a6c4e\",\"chunk-3a14647c\":\"fd273593\",\"chunk-5c00b24e\":\"f1d87af7\",\"chunk-5fa541b6\":\"628cf5f3\",\"chunk-60e425d9\":\"18a1166b\",\"chunk-657165c6\":\"f1d87af7\",\"chunk-66359e22\":\"f1d87af7\",\"chunk-48096298\":\"fc663149\",\"chunk-4913f2e6\":\"31d7e26a\",\"chunk-42f32ca8\":\"f9bd3de9\",\"chunk-53e45769\":\"e2d7af14\",\"chunk-c32385e8\":\"5ca04c06\",\"chunk-a16b339a\":\"628cf5f3\",\"chunk-cf6cf0a8\":\"628cf5f3\",\"chunk-e2a13d72\":\"628cf5f3\",\"chunk-fecc902c\":\"b565caee\",\"chunk-717c397e\":\"e6d8eab8\",\"chunk-b357adb0\":\"e6d8eab8\",\"chunk-edd40058\":\"4090a66c\",\"chunk-ef372700\":\"628cf5f3\",\"chunk-f6a67c64\":\"628cf5f3\",\"chunk-71259e49\":\"31d6cfe0\",\"chunk-45763624\":\"0473dc7e\",\"chunk-7ab46049\":\"31d6cfe0\",\"chunk-8ce1c922\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export function authHeader() {\n // return authorization header with jwt token\n let user = JSON.parse(localStorage.getItem('user'));\n if (user) {\n return { 'Authorization': 'Bearer ' + user.token.accessToken };\n } else {\n return {};\n }\n}","import { authHeader } from \"./auth-header\";\nimport axios from \"axios\";\nimport env from \"../../utils/env\"\n\nexport const userService = {\n login,\n logout,\n resetPassword,\n changePassword,\n register,\n getAll,\n};\nasync function login(email, password) {\n\n try {\n const res = await axios.post(env.base_url + `/auth/login`, { email, password });\n const usr = res.data;\n usr.tokens = { accessToken: usr.tokens.access.token, refreshToken: usr.tokens.refresh.token }\n if (usr.tokens) {\n localStorage.setItem(\"user\", JSON.stringify(usr));\n }\n return Promise.resolve(usr);\n } catch (err) {\n if (err.response) {\n if (err.response.status == '401') {\n return Promise.reject(\"Incorrect Email or Password!\");\n } else if (err.response.status == '400') {\n return Promise.reject(\"Erreur validation !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n } else {\n return Promise.reject(\"Veillez ressayer plus tard !\");\n }\n }\n}\n\nasync function resetPassword(email) {\n try {\n const res = await axios.post(env.base_url + `/auth/send-password-reset`, { email });\n return res.data;\n } catch (err) {\n if (err.response.status == '401') {\n return Promise.reject(\"Email not found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function changePassword(email, password, resetToken) {\n try {\n const res = await axios.post(env.base_url + `/auth/reset-password`, { email, password, resetToken });\n return res.data;\n } catch (err) {\n if (err.response.status == '401') {\n return Promise.reject(\"Email not found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function logout(email, refreshToken) {\n // remove user from local storage to log user out\n try {\n const res = await axios.post(env.base_url + `/auth/logout`, { email, refreshToken });\n return Promise.resolve(res);\n } catch (err) {\n if (err.response.status == '401') {\n return Promise.reject(\"Incorrect Email or Password!\");\n } else if (err.response.status == '404') {\n return Promise.reject(err);\n }\n else if (err.response.status == '400') {\n return Promise.reject(\"Erreur validation !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function register(user) {\n try {\n const res = await axios.post(env.base_url + `/auth/register`, user);\n const usr = res.data;\n usr.tokens = { accessToken: usr.token.access.token, refreshToken: usr.token.refresh.token }\n if (usr.tokens) {\n localStorage.setItem(\"user\", JSON.stringify(usr));\n }\n return usr;\n } catch (err) {\n if (err.response.status == '409') {\n return Promise.reject(\"Erreur Email or Organisation Exists !\");\n } else if (err.response.status == '400') {\n return Promise.reject(\"Erreur validation !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nfunction getAll() {\n const requestOptions = {\n method: \"GET\",\n headers: authHeader(),\n };\n return fetch(`/users`, requestOptions).then(handleResponse);\n}\n\nfunction handleResponse(response) {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n logout();\n location.reload(true);\n }\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n}\n","import { userService } from '../../helpers/backend/user.service';\nimport router from '../../router/index';\n\nconst user = JSON.parse(localStorage.getItem('user'));\n\nexport const state = {\n currentUser: user ? user : null,\n}\n\nexport const getters = {\n // Whether the user is currently logged in.\n loggedIn(state) {\n return state.currentUser;\n }\n}\n \n\nexport const actions = {\n // Logs in the user.\n \n changeTokens({ commit }, {accessToken, refreshToken}){\n let token = {\n accessToken: accessToken,\n refreshToken: refreshToken\n }\n commit('SET_NEW_TOKENS', token);\n },\n login({ dispatch, commit }, { email, password }) {\n //commit('loginRequest', { email });\n\n userService.login(email, password)\n .then(\n user => {\n commit('SET_CURRENT_USER', user);\n dispatch('users/getAvatarControl', {userId: user.user.id}, {root: true})\n router.push('/');\n },\n error => {\n commit('loginFailure', error);\n dispatch('notification/error', error, { root: true });\n }\n );\n },\n // Logout the user\n logout({ dispatch, commit }, { email, refreshToken }) {\n return new Promise((resolve, reject) => {\n userService.logout(email, refreshToken)\n .then(user=>{\n commit('logout');\n resolve(user)\n })\n .catch(err=>{\n dispatch('notification/error', err, { root: true });\n reject(err)\n })\n })\n },\n // reset password\n resetPassword({ dispatch }, { email }) {\n return new Promise((resolve, reject) => {\n userService.resetPassword(email)\n .then(\n response => {\n let message = response.data;\n resolve(message);\n },\n error => {\n dispatch('notification/error', error, { root: true });\n reject(error);\n }\n );\n });\n },\n // change password\n changePassword({ dispatch }, { email, password, resetToken }) {\n\n userService.changePassword(email, password, resetToken)\n .then(\n response => {\n console.log(response);\n dispatch('notification/success', 'Password changed successfully', { root: true });\n router.push('/login');\n },\n error => {\n dispatch('notification/error', error, { root: true });\n }\n );\n },\n\n // register the user\n registeruser({ dispatch, commit }, user) {\n return new Promise((resolve, reject) => {\n commit('registerRequest', user);\n userService.register(user)\n .then(\n user => {\n commit('registerSuccess', user);\n dispatch('notification/success', 'Registration successful', { root: true });\n commit('SET_CURRENT_USER', user);\n router.push('/');\n resolve(user);\n },\n error => {\n commit('registerFailure', error);\n dispatch('notification/error', error, { root: true });\n reject(error);\n }\n );\n });\n }\n};\n\nexport const mutations = {\n SET_NEW_TOKENS(state, token){\n state.currentUser.tokens = token\n },\n SET_CURRENT_USER(state, newValue) {\n state.currentUser = newValue;\n },\n logout(state) {\n state.currentUser = null;\n },\n loginRequest(state, user) {\n state.status = { loggingIn: true };\n state.user = user;\n },\n loginSuccess(state, user) {\n state.status = { loggeduser: true };\n state.user = user;\n },\n loginFailure(state) {\n state.status = {};\n state.user = null;\n },\n registerRequest(state) {\n state.status = { registering: true };\n },\n registerSuccess(state) {\n state.status = {};\n },\n registerFailure(state) {\n state.status = {};\n }\n};\n\n","import { API } from \"./axios\";\n\nexport const rafcService = {\n getRafc,\n manageRafc\n};\n\n// Get Rafc\n\nasync function getRafc(params) {\n try {\n const res = await API.get(`/events/rafc`, { params: params });\n return {\n ...res.data,\n loaderDashboard: false,\n }\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// Manage Rafc\n\nasync function manageRafc(params) {\n try {\n const res = await API.post(`/devices/rafc`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n }\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { rafcService } from '../../helpers/backend/rafc.service';\n\nexport const state = {\n rafc: {},\n rafcNouaceur: {},\n manageStatus: null,\n}\n\nexport const getters = {\n getRafc(state) {\n return state.rafc;\n },\n getRafcNouaceur(state) {\n return state.rafcNouaceur;\n },\n}\n\nexport const actions = {\n getRafcBy({ commit }, params) {\n return rafcService.getRafc(params)\n .then(\n rafc => {\n params.province == \"RAFC\" ? commit(\"RAFC_SUCCESS\", rafc) : commit(\"RAFC_NOUACEUR_SUCCESS\", rafc)\n return Promise.resolve(rafc);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n manageRAFC({commit}, params) {\n return rafcService.manageRafc(params)\n .then(\n res => {\n commit(\"MANAGE_SUCCESS\", res)\n return Promise.resolve(res);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearRafc({ commit }) {\n commit(\"CLEAR_RAFC_SUCCESS\")\n },\n}\n\nexport const mutations = {\n RAFC_SUCCESS(state, rafc) {\n state.rafc = rafc;\n },\n RAFC_NOUACEUR_SUCCESS(state, rafc) {\n state.rafcNouaceur = rafc;\n },\n CLEAR_RAFC_SUCCESS(state) {\n state.rafc = {};\n },\n MANAGE_SUCCESS(state, status){\n state.manageStatus = status;\n }\n}","export const state = {\n type: null,\n message: null\n};\n\nexport const mutations = {\n success(state, message) {\n state.type = 'success';\n state.message = message;\n },\n error(state, message) {\n state.type = 'danger';\n state.message = message;\n },\n clear(state) {\n state.type = null;\n state.message = null;\n }\n};\n\nexport const actions = {\n success({ commit }, message) {\n commit('success', message);\n },\n error({ commit }, message) {\n commit('error', message);\n },\n clear({ commit }) {\n commit('clear');\n }\n};\n","import {API} from \"./axios\";\n\nexport const mtcEventsService = {\n addMtcEvent,\n updateMtcEvent,\n getMtcEvents,\n delMtcEvent,\n getCountByMonthRegion,\n getCountByMonths,\n getCountByCurrentMonth\n};\n\n// ####################################################################### ADD MtcEvent\n\nasync function addMtcEvent(params) {\n try{\n const res = await API.post(`/mtc-events/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE MtcEvent\n\nasync function updateMtcEvent(params) {\n try{\n const res = await API.patch(`/mtc-events/${params.mtcEventId}`, {\n region: params.region,\n province: params.province,\n nbPrev: params.nbPrev,\n nbCorr: params.nbCorr,\n nbRegl: params.nbRegl\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE MtcEvent\n\nasync function delMtcEvent(id) {\n\n try{\n const res = await API.delete(`/mtc-events/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"mtc event Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET MtcEventS\n\nasync function getMtcEvents(params){\n try{\n const res = await API.get(`/mtc-events`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY Month Region\n\nasync function getCountByMonthRegion(params){\n try{\n const res = await API.get(`/mtc-events/countByMonthRegion`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY Months\n\nasync function getCountByMonths(params){\n try{\n const res = await API.get(`/mtc-events/countByMonths`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET CURRENT BY Month\n\nasync function getCountByCurrentMonth(params){\n try{\n const res = await API.get(`/mtc-events/countByCurrentMonth`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { mtcEventsService } from '../../helpers/backend/mtcevents.service';\n\nexport const state = {\n mtcEvents: {},\n countByMonths: [],\n countByMonthRegion: [],\n countByCurrentMonth: []\n}\n\nexport const getters = {\n getMtcEvents(state) {\n return state.mtcEvents\n },\n getCountByMonths(state) {\n return state.countByMonths\n },\n getCountByMonthRegion(state) {\n return state.countByMonthRegion\n },\n getCountByCurrentMonth(state) {\n return state.countByCurrentMonth\n }\n}\n\nexport const actions = {\n\n addMtcEvent({ commit }, params) {\n return mtcEventsService.addMtcEvent(params)\n .then(\n mtcEvent => {\n commit(\"ADD_MTCEVENT_SUCCESS\", mtcEvent)\n return Promise.resolve(mtcEvent);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateMtcEvent({ commit }, params) {\n return mtcEventsService.updateMtcEvent(params)\n .then(\n mtcEvent => {\n commit(\"UPDATE_MTCEVENT_SUCCESS\", mtcEvent)\n return Promise.resolve(mtcEvent);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delMtcEvent({ commit }, id) {\n return mtcEventsService.delMtcEvent(id)\n .then(\n mtcEvent => {\n commit(\"DEL_MTCEVENT_SUCCESS\", id)\n return Promise.resolve(mtcEvent);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getMtcEventsBy({ commit }, params) {\n return mtcEventsService.getMtcEvents(params)\n .then(\n mtcEvents => {\n commit(\"GET_MTCEVENTS_SUCCESS\", mtcEvents);\n return Promise.resolve(mtcEvents)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByMonthRegionBy({commit}, params) {\n return mtcEventsService.getCountByMonthRegion(params)\n .then(\n count => {\n commit(\"GET_COUNTREGIONMONTH_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByMonthsBy({commit}, params) {\n return mtcEventsService.getCountByMonths(params)\n .then(\n count => {\n commit(\"GET_COUNTMONTHS_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByCurrentMonthBy({commit}, params) {\n return mtcEventsService.getCountByCurrentMonth(params)\n .then(\n count => {\n commit(\"GET_COUNTCURRENTMONTH_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n clearMtcEvents({ commit }) {\n commit(\"CLEAR_MTCEVENTS\")\n }\n};\n\nexport const mutations = {\n GET_MTCEVENTS_SUCCESS(state, mtcEvents) {\n state.mtcEvents = mtcEvents;\n },\n ADD_MTCEVENT_SUCCESS(state, mtcEvent) {\n if(mtcEvent.type == \"CORRECTIVE\"){\n let results = [...state.mtcEvents.results, mtcEvent]\n state.mtcEvents = {...state.mtcEvents, results: results}\n }\n },\n UPDATE_MTCEVENT_SUCCESS(state, mtcEvent) {\n let results = state.mtcEvents.results.map(obj => obj.id == mtcEvent.id ? mtcEvent : obj)\n state.mtcEvents = {...state.mtcEvents, results: results}\n },\n DEL_MTCEVENT_SUCCESS(state, id) {\n let results = state.mtcEvents.results.filter(obj => obj.id != id)\n state.mtcEvents = {...state.mtcEvents, results: results}\n },\n GET_COUNTREGIONMONTH_SUCCESS(state, count) {\n state.countByMonthRegion = count;\n },\n GET_COUNTMONTHS_SUCCESS(state, count) {\n state.countByMonths = count;\n },\n GET_COUNTCURRENTMONTH_SUCCESS(state, count) {\n state.countByCurrentMonth = count;\n },\n CLEAR_MTCEVENTS(state) {\n state.mtcEvents = {}\n },\n};","import {API} from \"./axios\";\n\nexport const marquesService = {\n addMarque,\n updateMarque,\n getMarques,\n delMarque\n};\n\n// ####################################################################### ADD MARQUE\n\nasync function addMarque(params) {\n try{\n const res = await API.post(`/marques/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE MARQUE\n\nasync function updateMarque(params) {\n try{\n const res = await API.patch(`/marques/${params.marqueId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE MARQUE\n\nasync function delMarque(id) {\n\n try{\n const res = await API.delete(`/marques/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"marque Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET MARQUES\n\nasync function getMarques(params){\n try{\n const res = await API.get(`/marques`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { marquesService } from '../../helpers/backend/marques.service';\n\nexport const state = {\n marques: {},\n}\n\nexport const getters = {\n getMarques(state){\n return state.marques\n },\n}\n\nexport const actions = {\n\n addMarque({ commit }, params) {\n return marquesService.addMarque(params)\n .then(\n marque => {\n commit(\"ADD_MARQUE_SUCCESS\", marque)\n return Promise.resolve(marque);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateMarque({ commit }, params) {\n return marquesService.updateMarque(params)\n .then(\n marque => {\n commit(\"UPDATE_MARQUE_SUCCESS\", marque)\n return Promise.resolve(marque);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delMarque({ commit }, id) {\n return marquesService.delMarque(id)\n .then(\n marque => {\n commit(\"DEL_MARQUE_SUCCESS\", id)\n return Promise.resolve(marque);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getMarquesBy({ commit }, params) {\n return marquesService.getMarques(params)\n .then(\n marques => {\n commit(\"GET_MARQUES_SUCCESS\", marques);\n return Promise.resolve(marques)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearMarques({ commit }) {\n commit(\"CLEAR_MARQUES\")\n }\n};\n\nexport const mutations = {\n GET_MARQUES_SUCCESS(state, marques) {\n state.marques = marques;\n },\n ADD_MARQUE_SUCCESS(state, marque) {\n let results = [...state.marques.results, marque]\n state.marques = {...state.marques, results: results}\n },\n UPDATE_MARQUE_SUCCESS(state, marque) {\n let results = state.marques.results.map(obj => obj.id == marque.id ? marque : obj)\n state.marques = {...state.marques, results: results}\n },\n DEL_MARQUE_SUCCESS(state, id){\n let results = state.marques.results.filter(obj => obj.id != id)\n state.marques = {...state.marques, results: results}\n },\n CLEAR_MARQUES(state){\n state.marques = {}\n },\n};","import {API} from \"./axios\";\n\nexport const homeService = {\n postInfos,\n};\n\n// Post Infos\n\nasync function postInfos(params){\n try{\n const res = await API.post(`/infos/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { homeService } from '../../helpers/backend/home.service';\n\nexport const state = {\n data:{},\n error: \"\"\n}\n\nexport const getters = {\n getData(state){\n return state.data\n },\n}\n\nexport const actions = {\n\n postInfos({ commit }, params) {\n return homeService.postInfos(params)\n .then(\n data => {\n commit(\"dataSuccess\", data)\n return Promise.resolve(data);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n};\n\nexport const mutations = {\n dataSuccess(state, events) {\n state.data = events;\n },\n};","import {API} from \"./axios\";\n\nexport const statesService = {\n addState,\n updateState,\n getStates,\n delState\n};\n\n// ####################################################################### ADD State\n\nasync function addState(params) {\n try{\n const res = await API.post(`/states/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE State\n\nasync function updateState(params) {\n try{\n const res = await API.patch(`/states/${params.stateId}`, {\n name: params.name,\n isClosed: params.isClosed,\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE State\n\nasync function delState(id) {\n\n try{\n const res = await API.delete(`/states/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"state Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET States\n\nasync function getStates(params){\n try{\n const res = await API.get(`/states`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { statesService } from '../../helpers/backend/states.service';\n\nexport const state = {\n states: {},\n}\n\nexport const getters = {\n getStates(state){\n return state.states\n },\n}\n\nexport const actions = {\n\n addState({ commit }, params) {\n return statesService.addState(params)\n .then(\n status => {\n commit(\"ADD_STATE_SUCCESS\", status)\n return Promise.resolve(status);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateState({ commit }, params) {\n return statesService.updateState(params)\n .then(\n status => {\n commit(\"UPDATE_STATE_SUCCESS\", status)\n return Promise.resolve(status);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delState({ commit }, id) {\n return statesService.delState(id)\n .then(\n state => {\n commit(\"DEL_STATE_SUCCESS\", id)\n return Promise.resolve(state);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getStatesBy({ commit }, params) {\n return statesService.getStates(params)\n .then(\n states => {\n commit(\"GET_STATES_SUCCESS\", states);\n return Promise.resolve(states)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearStates({ commit }) {\n commit(\"CLEAR_STATES\")\n }\n};\n\nexport const mutations = {\n GET_STATES_SUCCESS(state, states) {\n state.states = states;\n },\n ADD_STATE_SUCCESS(state, status) {\n let results = [...state.states.results, status]\n state.states = {...state.states, results: results}\n },\n UPDATE_STATE_SUCCESS(state, status) {\n let results = state.states.results.map(obj => obj.id == status.id ? status : obj)\n state.states = {...state.states, results: results}\n },\n DEL_STATE_SUCCESS(state, id){\n let results = state.states.results.filter(obj => obj.id != id)\n state.states = {...state.states, results: results}\n },\n CLEAR_STATES(state){\n state.states = {}\n },\n};","import {API} from \"./axios\";\n\nexport const regionsService = {\n getRegions,\n addRegion,\n updateRegion,\n delRegion\n};\n\n// Get Regions\n\nasync function getRegions(params){\n try{\n const res = await API.get(`/regions`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(\"Erreur Validations !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### ADD Region\n\nasync function addRegion(params) {\n try{\n const res = await API.post(`/regions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Region\n\nasync function updateRegion(params) {\n try{\n const res = await API.patch(`/regions/${params.regionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Region\n\nasync function delRegion(id) {\n\n try{\n const res = await API.delete(`/regions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"region Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { regionsService } from '../../helpers/backend/regions.service';\n\nexport const state = {\n regions: {},\n}\n\nexport const getters = {\n getRegions(state) {\n return state.regions;\n },\n}\n\nexport const actions = {\n getRegionsBy({ commit }, params) {\n return regionsService.getRegions(params)\n .then(\n regions => {\n commit(\"REGIONS_SUCCESS\", regions)\n return Promise.resolve(regions);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n addRegion({ commit }, params) {\n return regionsService.addRegion(params)\n .then(\n region => {\n commit(\"ADD_REGION_SUCCESS\", region)\n return Promise.resolve(region);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateRegion({ commit }, params) {\n return regionsService.updateRegion(params)\n .then(\n region => {\n commit(\"UPDATE_REGION_SUCCESS\", region)\n return Promise.resolve(region);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delRegion({ commit }, id) {\n return regionsService.delRegion(id)\n .then(\n region => {\n commit(\"DEL_REGION_SUCCESS\", id)\n return Promise.resolve(region);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearRegions({ commit }) {\n commit(\"CLEAR_REGIONS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n REGIONS_SUCCESS(state, regions) {\n state.regions = regions;\n },\n ADD_REGION_SUCCESS(state, region) {\n let results = [...state.regions.results, region]\n state.regions = { ...state.regions, results: results }\n },\n UPDATE_REGION_SUCCESS(state, region) {\n let results = state.regions.results.map(obj => obj.id == region.id ? region : obj)\n state.regions = { ...state.regions, results: results }\n },\n DEL_REGION_SUCCESS(state, id) {\n let results = state.regions.results.filter(obj => obj.id != id)\n state.regions = { ...state.regions, results: results }\n },\n\n CLEAR_REGIONS_SUCCESS(state) {\n state.regions = {};\n },\n}","import { API } from \"./axios\";\n\nexport const alertsService = {\n getAlerts,\n aquitAlert,\n aquitAlerts,\n exportXLS,\n countByMarqueRegion,\n countByMarque\n};\n\n// Get Alerts\n\nasync function getAlerts(params) {\n try {\n const res = await API.post(`/alerts`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlert(params) {\n try {\n const res = await API.patch(`/alerts/${params.serial}`, {\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n dateAquit: params.createdAt,\n note: params.note,\n });\n return res.data\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlerts(params) {\n try {\n const res = await API.post(`/alerts/all`, {\n devices: params.devices,\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n note: params.note,\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export Alerts XLS\n\nasync function exportXLS(params) {\n try {\n const res = await API.get(`/alerts/export`, {\n params: params,\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### COUNT BY MARQUE REGION\n\nasync function countByMarqueRegion() {\n try {\n const res = await API.get(`/alerts/statsByMarqueRegion`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### COUNT BY MARQUE\n\nasync function countByMarque() {\n try {\n const res = await API.get(`/alerts/statsByMarque`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { alertsService } from '../../helpers/backend/alerts.service';\n\nexport const state = {\n alerts: {},\n states: {},\n causes: {},\n actions: {},\n export: {},\n countByMarqueRegion: [],\n countByMarque: [],\n}\n\nexport const getters = {\n getAlerts(state) {\n return state.alerts;\n },\n getCountByMarqueRegion(state){\n return state.countByMarqueRegion;\n },\n getStatsByMarque(state){\n return state.countByMarque;\n }\n}\n\nexport const actions = {\n getAlertsBy({ commit }, params) {\n return alertsService.getAlerts(params)\n .then(\n alerts => {\n commit(\"ALERTS_SUCCESS\", alerts)\n return Promise.resolve(alerts);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n aquitAlert({ commit }, params) {\n return alertsService.aquitAlert(params)\n .then(\n device => {\n commit(\"AQUIT_ALERT_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n return Promise.resolve({ closed: true });\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitPartOfAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n commit(\"AQUIT_PART_OF_ALERTS_SUCCESS\", response)\n return Promise.resolve(params.serials);\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n exportXLSAlerts({commit}, params) {\n return alertsService.exportXLS(params)\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n if(params.serial) link.setAttribute('download', `alerts--${params.from}-${params.to} ${params.serial}.xlsx`);\n else link.setAttribute('download', `alerts--${params.from}-${params.to}.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearAlerts({ commit }) {\n commit(\"CLEAR_ALERTS_SUCCESS\")\n },\n getCountByMarqueRegionBy({commit}) {\n return alertsService.countByMarqueRegion()\n .then(\n count => {\n commit(\"GET_COUNTMARQUEREGION_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getStatsByMarqueBy({commit}) {\n return alertsService.countByMarque()\n .then(\n count => {\n commit(\"GET_COUNTMARQUE_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n}\n\nexport const mutations = {\n ALERTS_SUCCESS(state, alerts) {\n state.alerts = alerts;\n },\n EXPORT_SUCCESS(state, res) {\n state.export = res;\n },\n CLEAR_ALERTS_SUCCESS(state) {\n state.alerts = {};\n },\n\n AQUIT_ALERT_SUCCESS(state, device) {\n let newResults = []\n let alerts = device.alerts.map((obj) => {\n return obj.id;\n })\n if (device.closed) {\n newResults = state.alerts.results.filter(obj => !alerts.includes(obj.id))\n } else {\n newResults = state.alerts.results.map(obj => (alerts.includes(obj.id)) ? { ...obj, state: device.state } : obj)\n }\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_ALERTS_SUCCESS(state, data) {\n let alerts = data.alerts.map((obj) => {\n return obj.id;\n })\n let newResults = state.alerts.results.map(obj => {\n if (data.alerts) {\n if (alerts.includes(obj.id)) {\n return { ...obj, state: data.state };\n }\n else return obj;\n } else {\n return { ...obj, state: data.state };\n }\n\n })\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_PART_OF_ALERTS_SUCCESS(state, response) {\n let newResults = []\n let alerts = response.alerts.map((obj) => {\n return obj.id;\n })\n state.alerts.results.map(obj => {\n if (!alerts.includes(obj.id)) {\n newResults.push(obj)\n }\n })\n state.alerts = { ...state.alerts, results: newResults }\n },\n GET_COUNTMARQUEREGION_SUCCESS(state, response){\n state.countByMarqueRegion = response;\n },\n GET_COUNTMARQUE_SUCCESS(state, response){\n state.countByMarque = response;\n }\n}","import {API} from \"./axios\";\n\nexport const centresService = {\n addCentre,\n updateCentre,\n getCentres,\n delCentre\n};\n\n// ####################################################################### ADD CENTRE\n\nasync function addCentre(params) {\n try{\n const res = await API.post(`/centresante/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE CENTRE\n\nasync function updateCentre(params) {\n try{\n const res = await API.patch(`/centresante/${params.centreId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE CENTRE\n\nasync function delCentre(id) {\n\n try{\n const res = await API.delete(`/centresante/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"centre Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET CENTRES\n\nasync function getCentres(params){\n try{\n const res = await API.get(`/centresante`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { centresService } from '../../helpers/backend/centres.service';\n\nexport const state = {\n centres: {},\n}\n\nexport const getters = {\n getCentres(state) {\n return state.centres\n },\n}\n\nexport const actions = {\n\n addCentre({ commit }, params) {\n return centresService.addCentre(params)\n .then(\n centre => {\n commit(\"ADD_CENTRE_SUCCESS\", centre)\n return Promise.resolve(centre);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateCentre({ commit }, params) {\n return centresService.updateCentre(params)\n .then(\n centre => {\n commit(\"UPDATE_CENTRE_SUCCESS\", centre)\n return Promise.resolve(centre);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delCentre({ commit }, id) {\n return centresService.delCentre(id)\n .then(\n centre => {\n commit(\"DEL_CENTRE_SUCCESS\", id)\n return Promise.resolve(centre);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getCentresBy({ commit }, params) {\n return centresService.getCentres(params)\n .then(\n centres => {\n commit(\"GET_CENTRES_SUCCESS\", centres);\n return Promise.resolve(centres)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearCentres({ commit }) {\n commit(\"CLEAR_CENTRES\")\n }\n};\n\nexport const mutations = {\n GET_CENTRES_SUCCESS(state, centres) {\n state.centres = centres;\n },\n ADD_CENTRE_SUCCESS(state, centre) {\n let results = [...state.centres.results, centre]\n state.centres = {...state.centres, results: results}\n },\n UPDATE_CENTRE_SUCCESS(state, centre) {\n let results = state.centres.results.map(obj => obj.id == centre.id ? centre : obj)\n state.centres = {...state.centres, results: results}\n },\n DEL_CENTRE_SUCCESS(state, id) {\n let results = state.centres.results.filter(obj => obj.id != id)\n state.centres = {...state.centres, results: results}\n },\n CLEAR_CENTRES(state) {\n state.centres = {}\n },\n};","var map = {\n\t\"./ar.json\": \"af08\",\n\t\"./en.json\": \"edd4\",\n\t\"./es.json\": \"a306\",\n\t\"./fr.json\": \"f693\",\n\t\"./zh.json\": \"3504\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","import {API} from \"./axios\";\n\nexport const stationsService = {\n addStation,\n updateStation,\n getStations,\n delStation\n};\n\n// ####################################################################### ADD STATION\n\nasync function addStation(params) {\n try{\n const res = await API.post(`/stationhcpluss/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE STATION\n\nasync function updateStation(params) {\n try{\n const res = await API.patch(`/stationhcpluss/${params.stationId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE STATION\n\nasync function delStation(id) {\n\n try{\n const res = await API.delete(`/stationhcpluss/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"station Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET STATIONS\n\nasync function getStations(params){\n try{\n const res = await API.get(`/stationhcpluss`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { stationsService } from '../../helpers/backend/stationshcplus.service';\n\nexport const state = {\n stations: {},\n}\n\nexport const getters = {\n getStations(state){\n return state.stations\n },\n}\n\nexport const actions = {\n\n addStation({ commit }, params) {\n return stationsService.addStation(params)\n .then(\n station => {\n commit(\"ADD_STATION_SUCCESS\", station)\n return Promise.resolve(station);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateStation({ commit }, params) {\n return stationsService.updateStation(params)\n .then(\n station => {\n commit(\"UPDATE_STATION_SUCCESS\", station)\n return Promise.resolve(station);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delStation({ commit }, id) {\n return stationsService.delStation(id)\n .then(\n station => {\n commit(\"DEL_STATION_SUCCESS\", id)\n return Promise.resolve(station);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getStationsBy({ commit }, params) {\n return stationsService.getStations(params)\n .then(\n stations => {\n commit(\"GET_STATIONS_SUCCESS\", stations);\n return Promise.resolve(stations)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearStations({ commit }) {\n commit(\"CLEAR_STATIONS\")\n }\n};\n\nexport const mutations = {\n GET_STATIONS_SUCCESS(state, stations) {\n state.stations = stations;\n },\n ADD_STATION_SUCCESS(state, station) {\n let results = [...state.stations.results, station]\n state.stations = {...state.stations, results: results}\n },\n UPDATE_STATION_SUCCESS(state, station) {\n let results = state.stations.results.map(obj => obj.id == station.id ? station : obj)\n state.stations = {...state.stations, results: results}\n },\n DEL_STATION_SUCCESS(state, id){\n let results = state.stations.results.filter(obj => obj.id != id)\n state.stations = {...state.stations, results: results}\n },\n CLEAR_STATIONS(state){\n state.stations = {}\n },\n};","import { mapState, mapGetters, mapActions } from 'vuex'\n\nexport const authComputed = {\n ...mapState('auth', {\n currentUser: (state) => state.currentUser,\n }),\n ...mapGetters('auth', ['loggedIn', 'getOrgs', 'getWs', 'getWsMessage']),\n}\n\nexport const languageComputed = {\n ...mapGetters('language', ['getLanguage']),\n}\n\nexport const devicesComputed = {\n ...mapGetters('devices', ['getAllDevices', 'getDevices', 'getDevicesTransport', 'getDevice', 'getEvents', 'getInterventionDevice']),\n}\n\nexport const alertsComputed = {\n ...mapGetters('alerts', ['getAlerts', 'getCountByMarqueRegion', 'getStatsByMarque']),\n}\n\nexport const configsAlertsComputed = {\n ...mapGetters('configsalerts', ['getConfigAlerts']),\n}\n\nexport const offlineAlertsComputed = {\n ...mapGetters('offlinealerts', ['getAlerts']),\n}\n\nexport const logsComputed = {\n ...mapGetters('logs', ['getLogs']),\n}\n\nexport const rafcComputed = {\n ...mapGetters('rafc', ['getRafc', 'getRafcNouaceur']),\n}\n\nexport const consolidatedComputed = {\n ...mapGetters('consolidated', ['getConsolidated']),\n}\n\nexport const regionsComputed = {\n ...mapGetters('regions', ['getRegions']),\n}\n\nexport const provincesComputed = {\n ...mapGetters('provinces', ['getProvinces']),\n}\n\nexport const statesComputed = {\n ...mapGetters('states', ['getStates']),\n}\n\nexport const vaccintypesComputed = {\n ...mapGetters('vaccintypes', ['getVaccintypes']),\n}\n\nexport const causesComputed = {\n ...mapGetters('causes', ['getCauses']),\n}\n\nexport const marquesComputed = {\n ...mapGetters('marques', ['getMarques']),\n}\n\nexport const actionsComputed = {\n ...mapGetters('actions', ['getActions']),\n}\n\nexport const operationsComputed = {\n ...mapGetters('operations', ['getOperations']),\n}\n\nexport const mtcEventsComputed = {\n ...mapGetters('mtcevents', ['getMtcEvents', 'getCountByMonths', 'getCountByMonthRegion', 'getCountByCurrentMonth']),\n}\n\nexport const interventionsComputed = {\n ...mapGetters('interventions', ['getInterventions', 'getCountByAction', 'getCountByTypeequip', 'getCountByMarque', 'getCountByRegion']),\n}\n\nexport const interventionsMobileComputed = {\n ...mapGetters('intervmobile', ['getInterventions', 'getInterventionImgData']),\n}\n\nexport const planificationsComputed = {\n ...mapGetters('planifications', ['getPlanifications']),\n}\n\nexport const centresComputed = {\n ...mapGetters('centres', ['getCentres']),\n}\n\nexport const interventionOperationsComputed = {\n ...mapGetters('interventionoperations', ['getInterventionOperations']),\n}\n\nexport const usersComputed = {\n ...mapGetters('users', ['getUsers', 'getUser', 'getAvatar']),\n}\n\nexport const stationsComputed = {\n ...mapGetters('stationshcplus', ['getStations']),\n}\n\nexport const homeComputed = {\n ...mapGetters('home', ['getData'])\n}\n\nexport const layoutComputed = {\n ...mapState('layout', {\n layoutType: (state) => state.layoutType,\n leftSidebarType: (state) => state.leftSidebarType,\n layoutWidth: (state) => state.layoutWidth,\n topbar: (state) => state.topbar,\n loader: (state) => state.loader\n })\n}\n\nexport const layoutMethods = mapActions('layout', ['changeLayoutType', 'changeLayoutWidth', 'changeLeftSidebarType', 'changeTopbar', 'changeLoaderValue'])\n\nexport const notificationMethods = mapActions('notification', ['success', 'error', 'clear'])\n\nexport const authMethods = mapActions('auth', ['login', 'registeruser', 'logout', 'resetPassword', 'changePassword', 'changeCurrentOrg', 'changeTokens'])\n\nexport const languageMethods = mapActions('language', ['changeLang'])\n\nexport const devicesMethods = mapActions('devices', ['getAllDevicesBy', 'getDevicesBy', 'exportAllDevicesXLS', 'exportDevicesXLS', 'getDevicesTransportBy', 'getDeviceInfos', 'getDeviceInfosBySerial', 'getEventsBy', 'addDevice', 'updateDevice', 'delDevice', 'interventionOffline', 'clearDevices'])\n\nexport const alertsMethods = mapActions('alerts', ['getAlertsBy', 'aquitAlert', 'aquitAlerts', 'aquitPartOfAlerts', 'exportXLSAlerts', 'getCountByMarqueRegionBy', 'getStatsByMarqueBy', 'clearAlerts'])\n\nexport const configAlertsMethods = mapActions('configsalerts', ['getConfigAlertsBy', 'addConfigAlert', 'updateConfigAlert', 'delConfigAlert', 'clearConfigAlerts'])\n\nexport const offlineAlertsMethods = mapActions('offlinealerts', ['getAlertsBy', 'aquitAlert', 'aquitAlerts', 'aquitPartOfAlerts', 'clearAlerts'])\n\nexport const logsMethods = mapActions('logs', ['getLogsBy', 'exportXLS', 'updateLog', 'clearLogs'])\n\nexport const rafcMethods = mapActions('rafc', ['getRafcBy', 'manageRAFC', 'clearRafc'])\n\nexport const consolidatedMethods = mapActions('consolidated', ['getConsolidatedBy', 'clearConsolidated'])\n\nexport const regionsMethods = mapActions('regions', ['getRegionsBy', 'addRegion', 'updateRegion', 'delRegion', 'clearRegions'])\n\nexport const statesMethods = mapActions('states', ['getStatesBy', 'addState', 'updateState', 'delState', 'clearStates'])\n\nexport const vaccintypesMethods = mapActions('vaccintypes', ['getVaccintypesBy', 'addVaccintype', 'updateVaccintype', 'delVaccintype', 'clearVaccintypes'])\n\nexport const causesMethods = mapActions('causes', ['getCausesBy', 'addCause', 'updateCause', 'delCause', 'clearCauses'])\n\nexport const marquesMethods = mapActions('marques', ['getMarquesBy', 'addMarque', 'updateMarque', 'delMarque', 'clearMarques'])\n\nexport const actionsMethods = mapActions('actions', ['getActionsBy', 'addAction', 'updateAction', 'delAction', 'clearActions'])\n\nexport const operationsMethods = mapActions('operations', ['getOperationsBy', 'addOperation', 'updateOperation', 'delOperation', 'clearOperations'])\n\nexport const mtcEventsMethods = mapActions('mtcevents', ['getMtcEventsBy', 'addMtcEvent', 'updateMtcEvent', 'delMtcEvent', 'getCountByMonthRegionBy', 'getCountByMonthsBy', 'getCountByCurrentMonthBy', 'clearMtcEvents'])\n\nexport const interventionsMethods = mapActions('interventions', ['getInterventionsBy', 'addIntervention', 'updateIntervention', 'delIntervention', 'getCountByActionBy', 'getCountByTypeequipBy','getCountByMarqueBy','getCountByRegionBy','clearInterventions'])\n\nexport const interventionsMobileMethods = mapActions('intervmobile', ['getInterventionsBy', 'addIntervention', 'updateIntervention', 'delIntervention', 'getInterventionImg', 'clearInterventions'])\n\nexport const planificationsMethods = mapActions('planifications', ['getPlanificationsBy', 'addPlanification', 'updatePlanification', 'delPlanification', 'clearPlanifications'])\n\nexport const centresMethods = mapActions('centres', ['getCentresBy', 'addCentre', 'updateCentre', 'delCentre', 'clearCentres'])\n\nexport const interventionOperationsMethods = mapActions('interventionoperations', ['getInterventionOperationsBy', 'addInterventionOperation', 'updateInterventionOperation', 'delInterventionOperation', 'clearInterventionOperations'])\n\nexport const usersMethods = mapActions('users', ['getUsersBy', 'getUserInfos', 'addUser', 'updateUser', 'delUser', 'changePassword', 'updateAvatar', 'getAvatarControl', 'clearUsers'])\n\nexport const provincesMethods = mapActions('provinces', ['getProvincesBy', 'addProvince', 'updateProvince', 'delProvince', 'clearProvinces'])\n\nexport const stationsMethods = mapActions('stationshcplus', ['getStationsBy', 'addStation', 'updateStation', 'delStation', 'clearStations'])\n\nexport const homeMethods = mapActions('home', ['postInfos'])","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n
\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=66b637a1\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\nimport BootstrapVue from 'bootstrap-vue'\nimport Vuetify from 'vuetify'\nimport 'vuetify/dist/vuetify.min.css'\nimport VueApexCharts from 'vue-apexcharts'\nimport 'remixicon/fonts/remixicon.css'\nimport Highcharts from 'highcharts'\nimport HighchartsVue from 'highcharts-vue'\nimport stockInit from 'highcharts/modules/stock'\nimport stockExporting from 'highcharts/modules/exporting'\nimport stockDataExporting from 'highcharts/modules/export-data'\nimport stockNoData from 'highcharts/modules/no-data-to-display'\nimport Vuelidate from 'vuelidate'\nimport VueFullscreen from 'vue-fullscreen'\nimport VueSweetalert2 from 'vue-sweetalert2';\nimport VueMask from 'v-mask'\nimport * as VueGoogleMaps from 'vue2-google-maps'\nimport VueYoutube from 'vue-youtube'\n\nimport vco from \"v-click-outside\"\n\nimport router from './router'\nimport store from '@/state/store'\nimport i18n from './i18n'\nimport \"@/assets/scss/app.scss\";\n//import { Icon } from 'leaflet';\n\nimport \"leaflet.markercluster/dist/MarkerCluster.css\";\nimport \"leaflet.markercluster/dist/MarkerCluster.Default.css\";\n\nVue.config.productionTip = false\nVue.use(VueYoutube)\nVue.use(BootstrapVue)\nVue.use(Vuetify)\nVue.use(vco)\nVue.use(Vuelidate)\nVue.use(VueFullscreen)\nVue.use(VueSweetalert2);\nVue.use(VueMask)\nVue.use(require('vue-chartist'))\nVue.use(VueGoogleMaps, {\n load: {\n key: 'AIzaSyAbvyBxmMbFhrzP9Z8moyYr6dCr-pzjhBE',\n libraries: 'places',\n },\n installComponents: true\n})\nVue.component('apexchart', VueApexCharts)\n\nVue.use(HighchartsVue)\nstockInit(Highcharts)\nstockExporting(Highcharts)\nstockDataExporting(Highcharts)\nstockNoData(Highcharts)\n\n/* delete Icon.Default.prototype._getIconUrl;\nIcon.Default.mergeOptions({\n iconRetinaUrl: require('@/assets/images/position.png'),\n //iconUrl: require('leaflet/dist/images/marker-icon.png'),\n iconUrl: require(\"@/assets/images/position.png\"),\n iconSize: [31, 41],\n shadowSize: [41, 41],\n shadowUrl: require('leaflet/dist/images/marker-shadow.png'),\n}); */\n\n\nnew Vue({\n router,\n store,\n i18n,\n vuetify: new Vuetify(),\n render: h => h(App)\n}).$mount('#app')\n","const lang = localStorage.getItem('lang');\n\nexport const state = {\n language: lang ? lang : \"fr\",\n}\n\nexport const getters = {\n getLanguage(state){\n return state.language\n },\n}\n\nexport const actions = {\n\n changeLang({ commit }, lang) {\n commit(\"CHANGE_LANGUAGE\", lang)\n },\n};\n\nexport const mutations = {\n CHANGE_LANGUAGE(state, language){\n state.language = language;\n }\n};","import { API } from \"./axios\";\n\nexport const consolidatedService = {\n getConsolidated,\n};\n\n// Get Consolidated\n\nasync function getConsolidated() {\n try {\n const res = await API.get(`/events/devices`);\n return {\n ...res.data,\n loaderDashboard: false,\n }\n /* const res = {\n \"4546446487998efe87\": {\n region: {\n name: \"Tanger-Tetouan-Al Hoceima\"\n },\n event: {\n temp: 10,\n createdAt: \"2022-03-30T11:20:51.483+00:00\",\n }\n },\n \"4546446487998efe97\": {\n region: {\n name: \"Tanger-Tetouan-Al Hoceima\"\n },\n event: {\n temp: 8,\n createdAt: \"2022-05-04T11:25:51.483+00:00\",\n }\n },\n \"4546446487998efe07\": {\n region: {\n name: \"Oriental\"\n },\n event: {\n temp: 1,\n createdAt: \"2022-05-04T11:25:51.483+00:00\",\n }\n },\n \"4546446487998eff07\": {\n region: {\n name: \"Eddakhla-Oued Eddahab\"\n },\n event: {\n temp: 1,\n createdAt: \"2022-05-04T11:40:51.483+00:00\",\n }\n },\n \"4546446487998eff27\": {\n region: {\n name: \"Eddakhla-Oued Eddahab\"\n },\n event: {\n temp: 5,\n createdAt: \"2022-05-04T13:15:51.483+00:00\",\n }\n }\n }; \n return res;*/\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { consolidatedService } from '../../helpers/backend/consolidated.service';\n\nexport const state = {\n consolidated: {},\n}\n\nexport const getters = {\n getConsolidated(state) {\n return state.consolidated;\n },\n}\n\nexport const actions = {\n getConsolidatedBy({ commit }) {\n return consolidatedService.getConsolidated()\n .then(\n consolidated => {\n /* let keys = Object.keys(consolidated)\n keys.map(obj=>{\n if(consolidated[obj].event) console.log(consolidated[obj]);\n }) */\n commit(\"CONSOLIDATED_SUCCESS\", consolidated)\n return Promise.resolve(consolidated);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n clearRafc({ commit }) {\n commit(\"CLEAR_CONSOLIDATED_SUCCESS\")\n },\n}\n\nexport const mutations = {\n CONSOLIDATED_SUCCESS(state, consolidated) {\n state.consolidated = consolidated;\n },\n CLEAR_CONSOLIDATED_SUCCESS(state) {\n state.consolidated = {};\n },\n}","import axios from \"axios\";\nimport store from '@/state/store'\n//import router from '../../router/index'\nimport env from \"../../utils/env\"\n\nexport const API = axios.create({\n baseURL: env.base_url,\n headers: {\n 'Content-Type': 'application/json',\n },\n});\n\n// Add a request interceptor\n\nAPI.interceptors.request.use(\n config => {\n /* const user = store.getters['auth/loggedIn'] */\n const user = localStorage.getItem('user');\n const userParse = JSON.parse(user);\n const token = userParse.tokens.accessToken;\n if (token) {\n config.headers['Authorization'] = \"Bearer \" + token;\n }\n return config;\n },\n error => {\n return error\n });\n\n\n\n//Add a response interceptor\n\nAPI.interceptors.response.use((response) => {\n return response\n}, async function (error) {\n const user = localStorage.getItem('user');\n const userParse = JSON.parse(user);\n const originalRequest = error.config;\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n const refreshToken = userParse.tokens.refreshToken;\n try{\n const res = await axios.post(env.base_url + '/auth/refresh-tokens',\n {\n \"refreshToken\": refreshToken\n })\n if (res.status === 200) {\n store.dispatch('auth/changeTokens', {\n accessToken: res.data.access.token,\n refreshToken: res.data.refresh.token\n })\n localStorage.setItem('user', JSON.stringify({\n ...userParse,\n tokens: {\n accessToken: res.data.access.token,\n refreshToken: res.data.refresh.token\n }\n }));\n //API.defaults.headers.common['Authorization'] = 'Bearer ' + res.data.access.token;\n return API(originalRequest);\n }\n\n }catch(err){\n if (error.response.status === 401) {\n localStorage.removeItem(\"user\");\n location.href = \"/logout\"\n }\n }\n }\n return Promise.reject(error);\n}); \n\n","// Register each file as a corresponding Vuex module. Module nesting\n// will mirror [sub-]directory hierarchy and modules are namespaced\n// as the camelCase equivalent of their file name.\n\nimport camelCase from 'lodash/camelCase'\n\nconst modulesCache = {}\nconst storeData = { modules: {} }\n\n;(function updateModules() {\n // Allow us to dynamically require all Vuex module files.\n // https://webpack.js.org/guides/dependency-management/#require-context\n const requireModule = require.context(\n // Search for files in the current directory.\n '.',\n // Search for files in subdirectories.\n true,\n // Include any .js files that are not this file or a unit test.\n /^((?!index|\\.unit\\.).)*\\.js$/\n )\n\n // For every Vuex module...\n requireModule.keys().forEach((fileName) => {\n const moduleDefinition = requireModule(fileName)\n\n // Skip the module during hot reload if it refers to the\n // same module definition as the one we have cached.\n if (modulesCache[fileName] === moduleDefinition) return\n\n // Update the module cache, for efficient hot reloading.\n modulesCache[fileName] = moduleDefinition\n\n // Get the module path as an array.\n const modulePath = fileName\n // Remove the \"./\" from the beginning.\n .replace(/^\\.\\//, '')\n // Remove the file extension from the end.\n .replace(/\\.\\w+$/, '')\n // Split nested modules into an array path.\n .split(/\\//)\n // camelCase all module namespaces and names.\n .map(camelCase)\n\n // Get the modules object for the current path.\n const { modules } = getNamespace(storeData, modulePath)\n\n // Add the module to our modules object.\n modules[modulePath.pop()] = {\n // Modules are namespaced by default.\n namespaced: true,\n ...moduleDefinition,\n }\n })\n\n // If the environment supports hot reloading...\n if (module.hot) {\n // Whenever any Vuex module is updated...\n module.hot.accept(requireModule.id, () => {\n // Update `storeData.modules` with the latest definitions.\n updateModules()\n // Trigger a hot update in the store.\n require('../store').default.hotUpdate({ modules: storeData.modules })\n })\n }\n})()\n\n// Recursively get the namespace of a Vuex module, even if nested.\nfunction getNamespace(subtree, path) {\n if (path.length === 1) return subtree\n\n const namespace = path.shift()\n subtree.modules[namespace] = {\n modules: {},\n namespaced: true,\n ...subtree.modules[namespace],\n }\n return getNamespace(subtree.modules[namespace], path)\n}\n\nexport default storeData.modules\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport modules from './modules'\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n modules,\n // Enable strict mode in development to get a warning\n // when mutating state outside of a mutation.\n // https://vuex.vuejs.org/guide/strict.html\n strict: process.env.NODE_ENV !== 'production',\n})\n\nexport default store\n\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nimport store from '@/state/store';\nlet language = store.getters['language/getLanguage']\n\nVue.use(VueI18n)\n\nfunction loadLocaleMessages () {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\n const messages = {}\n locales.keys().forEach(key => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key)\n }\n })\n return messages\n}\n\nexport default new VueI18n({\n locale: language || process.env.VUE_APP_I18N_LOCALE || 'fr',\n fallbackLocale: language || process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'fr',\n messages: loadLocaleMessages()\n})\n","import { API } from \"./axios\";\n\nexport const logsService = {\n getLogs,\n exportXLS,\n updateLog,\n};\n\n// ####################################################################### Get Logs\n\nasync function getLogs(params) {\n try {\n const res = await API.get(`/logs?populate=region,province,user,action,operation,cause,state`, { params: params });\n return {\n ...res.data,\n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export Logs XLS\n\nasync function exportXLS(params) {\n try {\n const res = await API.get(`/logs/export`, {\n params: params,\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE LOG\n\nasync function updateLog(params) {\n try {\n let filtredParams = {\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n note: params.note,\n };\n const res = await API.patch(`/logs/${params.logId}`, filtredParams);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { logsService } from '../../helpers/backend/logs.service';\n\nexport const state = {\n logs: {},\n export: {},\n}\n\nexport const getters = {\n getLogs(state) {\n return state.logs;\n },\n}\n\nexport const actions = {\n getLogsBy({ commit }, params) {\n let more = params.more;\n delete params.more;\n return logsService.getLogs(params)\n .then(\n logs => {\n if (more == true && params.page != 1) {\n commit(\"LOGS_MORE_SUCCESS\", logs)\n } else {\n commit(\"LOGS_SUCCESS\", logs)\n }\n return Promise.resolve(logs);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n exportXLS({commit}, params) {\n return logsService.exportXLS(params)\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n if(params.serial) link.setAttribute('download', `logs--${params.from}-${params.to} ${params.serial}.xlsx`);\n else link.setAttribute('download', `logs--${params.from}-${params.to}.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n updateLog({ commit }, params) {\n return logsService.updateLog(params)\n .then(\n log => {\n commit(\"UPDATE_LOG_SUCCESS\", log)\n return Promise.resolve(log);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearLogs({ commit }) {\n commit(\"CLEAR_LOGS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n LOGS_SUCCESS(state, logs) {\n state.logs = logs;\n },\n EXPORT_SUCCESS(state, res) {\n state.export = res;\n },\n UPDATE_LOG_SUCCESS(state, log) {\n if (state.logs.results) {\n let results = state.logs.results.map(obj => obj.id == log.id ? log : obj)\n state.logs = { ...state.logs, results: results }\n }\n },\n LOGS_MORE_SUCCESS(state, logs) {\n if (state.logs.results) {\n let results = state.logs.results.concat(logs.results)\n state.logs = { ...state.logs, results: results }\n } else {\n state.logs = logs;\n }\n },\n CLEAR_LOGS_SUCCESS(state) {\n state.logs = {};\n },\n}","import {API} from \"./axios\";\n\nexport const causesService = {\n addCause,\n updateCause,\n getCauses,\n delCause\n};\n\n// ####################################################################### ADD CAUSE\n\nasync function addCause(params) {\n try{\n const res = await API.post(`/causes/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE CAUSE\n\nasync function updateCause(params) {\n try{\n const res = await API.patch(`/causes/${params.causeId}`, {name: params.name, type: params.type});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE CAUSE\n\nasync function delCause(id) {\n\n try{\n const res = await API.delete(`/causes/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"cause Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET CAUSES\n\nasync function getCauses(params){\n try{\n const res = await API.get(`/causes`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { causesService } from '../../helpers/backend/causes.service';\n\nexport const state = {\n causes: {},\n}\n\nexport const getters = {\n getCauses(state){\n return state.causes\n },\n}\n\nexport const actions = {\n\n addCause({ commit }, params) {\n return causesService.addCause(params)\n .then(\n cause => {\n commit(\"ADD_CAUSE_SUCCESS\", cause)\n return Promise.resolve(cause);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateCause({ commit }, params) {\n return causesService.updateCause(params)\n .then(\n cause => {\n commit(\"UPDATE_CAUSE_SUCCESS\", cause)\n return Promise.resolve(cause);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delCause({ commit }, id) {\n return causesService.delCause(id)\n .then(\n cause => {\n commit(\"DEL_CAUSE_SUCCESS\", id)\n return Promise.resolve(cause);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getCausesBy({ commit }, params) {\n return causesService.getCauses(params)\n .then(\n causes => {\n commit(\"GET_CAUSES_SUCCESS\", causes);\n return Promise.resolve(causes)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearCauses({ commit }) {\n commit(\"CLEAR_CAUSES\")\n }\n};\n\nexport const mutations = {\n GET_CAUSES_SUCCESS(state, causes) {\n state.causes = causes;\n },\n ADD_CAUSE_SUCCESS(state, cause) {\n let results = [...state.causes.results, cause]\n state.causes = {...state.causes, results: results}\n },\n UPDATE_CAUSE_SUCCESS(state, cause) {\n let results = state.causes.results.map(obj => obj.id == cause.id ? cause : obj)\n state.causes = {...state.causes, results: results}\n },\n DEL_CAUSE_SUCCESS(state, id){\n let results = state.causes.results.filter(obj => obj.id != id)\n state.causes = {...state.causes, results: results}\n },\n CLEAR_CAUSES(state){\n state.causes = {}\n },\n};","import store from '@/state/store'\nexport default [\n { path: \"*\", component: () => import('../views/pages/utility/error-404') },\n {\n path: '/login',\n name: 'login',\n component: () => import('../views/pages/account/login'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the login page\n next()\n }\n },\n },\n },\n {\n path: '/register',\n name: 'register',\n component: () => import('../views/pages/account/register'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the register page\n next()\n }\n },\n },\n },\n {\n path: '/forgot-password',\n name: 'Forgot-password',\n component: () => import('../views/pages/account/forgot-password'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the forgot-password page\n next()\n }\n },\n },\n },\n {\n path: '/reset-password',\n name: 'Reset-password',\n component: () => import('../views/pages/account/new-password'),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n // Continue to the reset page\n next()\n }\n },\n },\n },\n {\n path: '/logout',\n name: 'logout',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n\n const user = JSON.parse(localStorage.getItem('user'));\n let refreshToken = user.tokens.refreshToken;\n /* localStorage.removeItem(\"user\");\n next({ name: 'login' }) */\n store.dispatch('auth/logout', {\n refreshToken: refreshToken\n }).then(() => {\n localStorage.removeItem(\"user\");\n next({ name: 'login' })\n })\n .catch((error)=>{\n localStorage.removeItem(\"user\");\n if(error.response.status == '404'){\n location.href = \"/login\"\n }\n })\n },\n },\n },\n {\n path: '/',\n name: 'home',\n meta: {\n authRequired: true,\n },\n component: () => import('../views/pages/storage/index')\n },\n {\n path: '/transport',\n name: 'transport',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/transport/index')\n },\n {\n path: '/consolidated',\n name: 'consolidated',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/consolidated/index')\n },\n {\n path: '/consolidated-region/:region/:state',\n name: 'consolidated-region',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/consolidated-region/index')\n },\n {\n path: '/consolidated-province/:province/:state',\n name: 'consolidated-province',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/consolidated-province/index')\n },\n {\n path: '/rafc',\n name: 'rafc',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/rafc/index')\n },\n {\n path: '/rafc-negative',\n name: 'rafc-negative',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/rafc-negatif/index')\n },\n {\n path: '/health-centers',\n name: 'health-centers',\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters['auth/loggedIn']) {\n // Redirect to the home page instead\n next()\n } else {\n // Continue to the reset page\n next()\n }\n },\n },\n component: () => import('../views/pages/health-centers/index')\n },\n {\n path: '/vaccinTypes',\n name: 'vaccin-types',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/vaccinTypes/index')\n },\n {\n path: '/agences-bank',\n name: 'agences-bank',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/agences-banques/index')\n },\n {\n path: '/equipments',\n name: 'equipments',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/equipments/index')\n },\n {\n path: '/devices',\n name: 'devices',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/devices/index')\n },\n {\n path: '/devices/:serial',\n name: 'device',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/device/index')\n },\n {\n path: '/contact',\n name: 'contact',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/contact/index')\n },\n {\n path: '/alerts',\n name: 'alerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts/index')\n },\n {\n path: '/nonc-alerts',\n name: 'alerts non conformes',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-nonc/index')\n },\n {\n path: '/defec-alerts',\n name: 'alerts défectueux',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-defectueux/index')\n },\n {\n path: '/last-alerts',\n name: 'derniers alerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-last/index')\n },\n {\n path: '/multiple-devices',\n name: 'multiple-devices',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/multiple-devices-events/index')\n },\n {\n path: '/offline-alerts',\n name: 'Offline alerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/offlinealerts/index')\n },\n {\n path: '/logs',\n name: 'logs',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/logs/index')\n },\n {\n path: '/offline',\n name: 'offline',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/offline/index')\n },\n {\n path: '/offline-e',\n name: 'offline-e',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/offline-e/index')\n },\n {\n path: '/regions',\n name: 'regions',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/regions/index')\n },\n {\n path: '/provinces',\n name: 'provinces',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/provinces/index')\n },\n {\n path: '/states',\n name: 'states',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/states/index')\n },\n {\n path: '/stock-type',\n name: 'stock-type',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/stock-type/index')\n },\n {\n path: '/causes',\n name: 'causes',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/causes/index')\n },\n {\n path: '/marques',\n name: 'marques',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/marques/index')\n },\n {\n path: '/actions',\n name: 'actions',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/actions/index')\n },\n {\n path: '/configsalerts',\n name: 'configsalerts',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/alerts-configs/index')\n },\n {\n path: '/vaccins',\n name: 'vaccins',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/vaccins/index')\n },\n {\n path: '/users',\n name: 'users',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/users/index')\n },\n {\n path: '/profile',\n name: 'profile',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/profile/index')\n },\n {\n path: '/maintenance',\n name: 'maintenance',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/maintenance/index')\n },\n {\n path: '/interventions',\n name: 'interventions',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/interventions/index')\n },\n {\n path: '/interventions-mobile',\n name: 'interventions-mobile',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/interventions-mobile/index')\n },\n {\n path: '/planifications',\n name: 'planifications',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/planifications/index')\n },\n {\n path: '/stationshcplus',\n name: 'stationshcplus',\n meta: {\n authRequired: true,\n beforeResolve(routeTo, routeFrom, next) {\n const permissions = ['SYSADMIN', 'ADMIN', 'MANAGER', 'OPERATOR', 'USER']\n const user = store.getters['auth/loggedIn']\n const permission = user.user.role;\n if (!permissions.includes(permission)) {\n // Redirect to the home page instead\n next({ name: 'home' })\n } else {\n next()\n }\n },\n },\n component: () => import('../views/pages/stations-hcplus/index')\n },\n {\n path: '/poste-maroc',\n name: 'poste-maroc',\n meta: {\n authRequired: false,\n },\n component: () => import('../views/pages/poste-maroc/index')\n },\n]\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport VueMeta from 'vue-meta'\n\nimport store from '@/state/store'\nimport routes from './routes'\n\nVue.use(VueRouter)\nVue.use(VueMeta, {\n // The component option name that vue-meta looks for meta info on.\n keyName: 'page',\n})\n\nconst router = new VueRouter({\n routes,\n // Use the HTML5 history API (i.e. normal-looking routes)\n // instead of routes with hashes (e.g. example.com/#/about).\n // This may require some server configuration in production:\n // https://router.vuejs.org/en/essentials/history-mode.html#example-server-configurations\n mode: 'history',\n // Simulate native-like scroll behavior when navigating to a new\n // route and using back/forward buttons.\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) {\n return savedPosition\n } else {\n return { x: 0, y: 0 }\n }\n },\n})\n\n// Before each route evaluates...\nrouter.beforeEach((routeTo, routeFrom, next) => {\n if (process.env.VUE_APP_DEFAULT_AUTH === \"firebase\") {\n // Check if auth is required on this route\n // (including nested routes).\n const authRequired = routeTo.matched.some((route) => route.meta.authRequired)\n\n // If auth isn't required for the route, just continue.\n if (!authRequired) return next()\n\n // If auth is required and the user is logged in...\n if (store.getters['auth/loggedIn']) {\n // Validate the local user token...\n return store.dispatch('auth/validate').then((validUser) => {\n // Then continue if the token still represents a valid user,\n // otherwise redirect to login.\n validUser ? next() : redirectToLogin()\n })\n }\n\n // If auth is required and the user is NOT currently logged in,\n // redirect to login.\n redirectToLogin()\n\n // eslint-disable-next-line no-unused-vars\n // eslint-disable-next-line no-inner-declarations\n function redirectToLogin() {\n // Pass the original route to the login component\n next({ name: 'login', query: { redirectFrom: routeTo.fullPath } })\n }\n } else {\n const publicPages = ['/login', '/register', '/forgot-password', '/reset-password', '/health-centers', '/poste-maroc'];\n const authpage = !publicPages.includes(routeTo.path);\n const loggeduser = localStorage.getItem('user');\n\n if (authpage && !loggeduser) {\n return next('/login');\n }\n\n next();\n }\n})\n\nrouter.beforeResolve(async (routeTo, routeFrom, next) => {\n // Create a `beforeResolve` hook, which fires whenever\n // `beforeRouteEnter` and `beforeRouteUpdate` would. This\n // allows us to ensure data is fetched even when params change,\n // but the resolved route does not. We put it in `meta` to\n // indicate that it's a hook we created, rather than part of\n // Vue Router (yet?).\n try {\n // For each matched route...\n for (const route of routeTo.matched) {\n await new Promise((resolve, reject) => {\n // If a `beforeResolve` hook is defined, call it with\n // the same arguments as the `beforeEnter` hook.\n if (route.meta && route.meta.beforeResolve) {\n route.meta.beforeResolve(routeTo, routeFrom, (...args) => {\n // If the user chose to redirect...\n if (args.length) {\n // If redirecting to the same route we're coming from...\n // Complete the redirect.\n next(...args)\n reject(new Error('Redirected'))\n } else {\n resolve()\n }\n })\n } else {\n // Otherwise, continue resolving the route.\n resolve()\n }\n })\n }\n // If a `beforeResolve` hook chose to redirect, just return.\n } catch (error) {\n return\n }\n\n // If we reach this point, continue resolving the route.\n next()\n})\n\nexport default router\n","import {API} from \"./axios\";\n\nexport const planificationsService = {\n addPlanification,\n updatePlanification,\n getPlanifications,\n delPlanification\n};\n\n// ####################################################################### ADD PLANIFICATION\n\nasync function addPlanification(params) {\n try{\n const res = await API.post(`/planifications/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE PLANIFICATION\n\nasync function updatePlanification(params) {\n try{\n const res = await API.patch(`/planifications/${params.planificationId}`, {date: params.date});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE PLANIFICATION\n\nasync function delPlanification(id) {\n\n try{\n const res = await API.delete(`/planifications/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"planification Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET PLANIFICATIONS\n\nasync function getPlanifications(params){\n try{\n const res = await API.get(`/planifications`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { planificationsService } from '../../helpers/backend/planifications.service';\n\nexport const state = {\n planifications: {},\n}\n\nexport const getters = {\n getPlanifications(state) {\n return state.planifications\n },\n}\n\nexport const actions = {\n\n addPlanification({ commit }, params) {\n return planificationsService.addPlanification(params)\n .then(\n planification => {\n commit(\"ADD_PLANIFICATION_SUCCESS\", planification)\n return Promise.resolve(planification);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updatePlanification({ commit }, params) {\n return planificationsService.updatePlanification(params)\n .then(\n planification => {\n commit(\"UPDATE_PLANIFICATION_SUCCESS\", planification)\n return Promise.resolve(planification);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delPlanification({ commit }, id) {\n return planificationsService.delPlanification(id)\n .then(\n planification => {\n commit(\"DEL_PLANIFICATION_SUCCESS\", id)\n return Promise.resolve(planification);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getPlanificationsBy({ commit }, params) {\n return planificationsService.getPlanifications(params)\n .then(\n planifications => {\n commit(\"GET_PLANIFICATIONS_SUCCESS\", planifications);\n return Promise.resolve(planifications)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearPlanifications({ commit }) {\n commit(\"CLEAR_PLANIFICATIONS\")\n }\n};\n\nexport const mutations = {\n GET_PLANIFICATIONS_SUCCESS(state, planifications) {\n state.planifications = planifications;\n },\n ADD_PLANIFICATION_SUCCESS(state, planification) {\n let results = [...state.planifications.results, planification]\n state.planifications = {...state.planifications, results: results}\n },\n UPDATE_PLANIFICATION_SUCCESS(state, planification) {\n let results = state.planifications.results.map(obj => obj.id == planification.id ? planification : obj)\n state.planifications = {...state.planifications, results: results}\n },\n DEL_PLANIFICATION_SUCCESS(state, id) {\n let results = state.planifications.results.filter(obj => obj.id != id)\n state.planifications = {...state.planifications, results: results}\n },\n CLEAR_PLANIFICATIONS(state) {\n state.planifications = {}\n },\n};","import { API } from \"./axios\";\n\nexport const alertsService = {\n getAlerts,\n aquitAlert,\n aquitAlerts,\n};\n\n// Get Alerts\n\nasync function getAlerts(params) {\n try {\n const res = await API.post(`/offline-alerts`, params);\n return {\n ...res.data,\n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlert(params) {\n try {\n const res = await API.patch(`/offline-alerts/${params.serial}`, {\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n dateAquit: params.createdAt,\n note: params.note,\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\nasync function aquitAlerts(params) {\n try {\n const res = await API.post(`/offline-alerts/all`, {\n devices: params.devices,\n state: params.state,\n action: params.action,\n operation: params.operation,\n cause: params.cause,\n savedDoses: params.savedDoses,\n hours: params.hours,\n note: params.note,\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { alertsService } from '../../helpers/backend/offlinealerts.service';\n\nexport const state = {\n alerts: {},\n states: {},\n causes: {},\n actions: {},\n}\n\nexport const getters = {\n getAlerts(state) {\n return state.alerts;\n },\n}\n\nexport const actions = {\n getAlertsBy({ commit }, params) {\n return alertsService.getAlerts(params)\n .then(\n alerts => {\n commit(\"ALERTS_SUCCESS\", alerts)\n return Promise.resolve(alerts);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n aquitAlert({ commit }, params) {\n return alertsService.aquitAlert(params)\n .then(\n device => {\n commit(\"AQUIT_ALERT_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n return Promise.resolve({ closed: true });\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n aquitPartOfAlerts({ commit }, params) {\n return alertsService.aquitAlerts(params)\n .then(\n response => {\n if (response.closed) {\n commit(\"AQUIT_PART_OF_ALERTS_SUCCESS\", response)\n return Promise.resolve(params.serials);\n } else {\n commit(\"AQUIT_ALERTS_SUCCESS\", response)\n return Promise.resolve(response);\n }\n\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearAlerts({ commit }) {\n commit(\"CLEAR_ALERTS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n ALERTS_SUCCESS(state, alerts) {\n state.alerts = alerts;\n },\n\n CLEAR_ALERTS_SUCCESS(state) {\n state.alerts = {};\n },\n\n AQUIT_ALERT_SUCCESS(state, device) {\n let newResults = []\n let alerts = device.alerts.map((obj) => {\n return obj.id;\n })\n if (device.closed) {\n newResults = state.alerts.results.filter(obj => !alerts.includes(obj.id))\n } else {\n newResults = state.alerts.results.map(obj => (alerts.includes(obj.id)) ? { ...obj, state: device.state } : obj)\n }\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_ALERTS_SUCCESS(state, data) {\n let alerts = data.alerts.map((obj) => {\n return obj.id;\n })\n let newResults = state.alerts.results.map(obj => {\n if (data.alerts) {\n if (alerts.includes(obj.id)) {\n return { ...obj, state: data.state };\n }\n else return obj;\n } else {\n return { ...obj, state: data.state };\n }\n\n })\n state.alerts = { ...state.alerts, results: newResults }\n },\n AQUIT_PART_OF_ALERTS_SUCCESS(state, response) {\n let newResults = []\n let alerts = response.alerts.map((obj) => {\n return obj.id;\n })\n state.alerts.results.map(obj => {\n if (!alerts.includes(obj.id)) {\n newResults.push(obj)\n }\n })\n state.alerts = { ...state.alerts, results: newResults }\n }\n}","import { API } from \"./axios\";\n\nexport const usersService = {\n addUser,\n updateUser,\n delUser,\n getUsers,\n getUser,\n changePassword,\n updateAvatar,\n getAvatar,\n};\n\n// ####################################################################### ADD USER\n\nasync function addUser(params) {\n try {\n let filtredParams = {\n fullName: params.name,\n email: params.email,\n role: params.role,\n password: params.password,\n };\n const res = await API.post(`/users/`, filtredParams);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"User already exists !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE USER\n\nasync function updateUser(params) {\n try {\n let filtredParams = {\n fullName: params.name,\n email: params.email,\n role: params.role,\n };\n const res = await API.patch(`/users/${params.userId}`, filtredParams);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Delete User\n\nasync function delUser(id) {\n\n try {\n const res = await API.delete(`/users/${id}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '404') {\n return Promise.reject(\"User Not Found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n// ####################################################################### GET USERS\n\nasync function getUsers(params) {\n try {\n const res = await API.get(`/users`, { params: params });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n// ####################################################################### GET USER\n\nasync function getUser(params) {\n try {\n const res = await API.get(`/users/${params.userId}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### CHANGE PASSWORD\n\nasync function changePassword(params) {\n try {\n const res = await API.patch(`/users/changePassword/${params.userId}`,\n {\n oldPassword: params.oldPassword,\n newPassword: params.newPassword\n });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"Incorrect password !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE AVATAR\n\nasync function updateAvatar(params) {\n try {\n const res = await API.patch(`/pictures/${params.userId}`,\n params.avatar,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n responseType: 'blob'\n });\n //return res.data;\n const urlCreator = window.URL || window.webkitURL\n return urlCreator.createObjectURL(res.data)\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"Incorrect password !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET AVATAR\n\nasync function getAvatar(params) {\n try {\n const res = await API.get(`/pictures/${params.userId}`, {\n headers:{\n 'content-type': 'image/png',\n 'accept': 'image/png'\n },\n \n responseType: 'blob'\n });\n //return 'data:image/png;base64,'+ btoa(res.data);\n const urlCreator = window.URL || window.webkitURL\n return urlCreator.createObjectURL(res.data)\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n }else if (err.response.status == '404') {\n return Promise.reject(\"Not found !\");\n } else if (err.response.status == '409') {\n return Promise.reject(\"Incorrect password !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { usersService } from '../../helpers/backend/users.service';\n\nexport const state = {\n users: {},\n user: {},\n userPassword: {},\n userAvatar: null,\n}\n\nexport const getters = {\n getUsers(state) {\n return state.users;\n },\n getUser(state){\n return state.user;\n },\n getAvatar(state){\n return state.userAvatar;\n }\n}\n\nexport const actions = {\n getUsersBy({ commit }, params) {\n return usersService.getUsers(params)\n .then(\n users => {\n commit(\"USERS_SUCCESS\", users)\n return Promise.resolve(users);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getUserInfos({ commit }, params) {\n return usersService.getUser(params)\n .then(\n device => {\n commit(\"USER_SUCCESS\", device);\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n addUser({ commit }, params) {\n return usersService.addUser(params)\n .then(\n user => {\n commit(\"ADD_USER_SUCCESS\", user)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateUser({ commit }, params) {\n return usersService.updateUser(params)\n .then(\n user => {\n commit(\"UPDATE_USER_SUCCESS\", user)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delUser({ commit }, id) {\n return usersService.delUser(id)\n .then(\n user => {\n commit(\"DEL_USER_SUCCESS\", id)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n changePassword({ commit }, params){\n return usersService.changePassword(params)\n .then(\n user => {\n commit(\"CHANGE_PASSWORD_SUCCESS\", user)\n return Promise.resolve(user);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateAvatar({ commit }, params){\n return usersService.updateAvatar(params)\n .then(\n avatar => {\n commit(\"AVATAR_SUCCESS\", avatar)\n return Promise.resolve(avatar);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getAvatarControl({ commit }, params) {\n return usersService.getAvatar(params)\n .then(\n avatar => {\n commit(\"AVATAR_SUCCESS\", avatar);\n return Promise.resolve(avatar);\n },\n error => {\n commit(\"AVATAR_FAILED\");\n return Promise.reject(error)\n }\n );\n },\n\n clearUsers({ commit }) {\n commit(\"CLEAR_USERS_SUCCESS\")\n },\n}\n\nexport const mutations = {\n USERS_SUCCESS(state, users) {\n state.users = users;\n },\n\n USER_SUCCESS(state, device) {\n state.device = device;\n },\n\n ADD_USER_SUCCESS(state, user) {\n let results = [...state.users.results, user]\n state.users = { ...state.users, results: results }\n },\n UPDATE_USER_SUCCESS(state, user) {\n let results = state.users.results.map(obj => obj.id == user.id ? user : obj)\n state.users = { ...state.users, results: results }\n },\n DEL_USER_SUCCESS(state, id) {\n let results = state.users.results.filter(obj => obj.id != id)\n state.users = { ...state.users, results: results }\n },\n CHANGE_PASSWORD_SUCCESS(state, user){\n state.userPassword = user;\n },\n\n AVATAR_SUCCESS(state, avatar){\n state.userAvatar = avatar;\n },\n AVATAR_FAILED(state){\n state.userAvatar = null;\n },\n\n CLEAR_USERS_SUCCESS(state) {\n state.users = {};\n },\n}","import {API} from \"./axios\";\n\nexport const vaccintypesService = {\n addVaccintype,\n updateVaccintype,\n getVaccintypes,\n delVaccintype\n};\n\n// ####################################################################### ADD Vaccintype\n\nasync function addVaccintype(params) {\n try{\n const res = await API.post(`/vaccintypes/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Vaccintype\n\nasync function updateVaccintype(params) {\n try{\n const res = await API.patch(`/vaccintypes/${params.vaccintypeId}`, {\n name: params.name,\n isClosed: params.isClosed,\n });\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Vaccintype\n\nasync function delVaccintype(id) {\n\n try{\n const res = await API.delete(`/vaccintypes/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"vaccintype Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET Vaccintypes\n\nasync function getVaccintypes(params){\n try{\n const res = await API.get(`/vaccintypes`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { vaccintypesService } from '../../helpers/backend/vaccintypes.service';\n\nexport const state = {\n vaccintypes: {},\n}\n\nexport const getters = {\n getVaccintypes(state){\n return state.vaccintypes\n },\n}\n\nexport const actions = {\n\n addVaccintype({ commit }, params) {\n return vaccintypesService.addVaccintype(params)\n .then(\n vaccintype => {\n commit(\"ADD_VACCINTYPE_SUCCESS\", vaccintype)\n return Promise.resolve(vaccintype);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateVaccintype({ commit }, params) {\n return vaccintypesService.updateVaccintype(params)\n .then(\n vaccintype => {\n commit(\"UPDATE_VACCINTYPE_SUCCESS\", vaccintype)\n return Promise.resolve(vaccintype);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delVaccintype({ commit }, id) {\n return vaccintypesService.delVaccintype(id)\n .then(\n vaccintype => {\n commit(\"DEL_VACCINTYPE_SUCCESS\", id)\n return Promise.resolve(vaccintype);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getVaccintypesBy({ commit }, params) {\n return vaccintypesService.getVaccintypes(params)\n .then(\n vaccintypes => {\n commit(\"GET_VACCINTYPES_SUCCESS\", vaccintypes);\n return Promise.resolve(vaccintypes)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearVaccintypes({ commit }) {\n commit(\"CLEAR_VACCINTYPES\")\n }\n};\n\nexport const mutations = {\n GET_VACCINTYPES_SUCCESS(state, vaccintypes) {\n state.vaccintypes = vaccintypes;\n },\n ADD_VACCINTYPE_SUCCESS(state, vaccintype) {\n let results = [...state.vaccintypes.results, vaccintype]\n state.vaccintypes = {...state.vaccintypes, results: results}\n },\n UPDATE_VACCINTYPE_SUCCESS(state, vaccintype) {\n let results = state.vaccintypes.results.map(obj => obj.id == vaccintype.id ? vaccintype : obj)\n state.vaccintypes = {...state.vaccintypes, results: results}\n },\n DEL_VACCINTYPE_SUCCESS(state, id){\n let results = state.vaccintypes.results.filter(obj => obj.id != id)\n state.vaccintypes = {...state.vaccintypes, results: results}\n },\n CLEAR_VACCINTYPES(state){\n state.vaccintypes = {}\n },\n};","import {API} from \"./axios\";\n\nexport const interventionsService = {\n addIntervention,\n updateIntervention,\n getInterventions,\n delIntervention,\n getCountByAction,\n getCountByTypeequip,\n getCountByMarque,\n getCountByRegion\n};\n\n// ####################################################################### ADD Intervention\n\nasync function addIntervention(params) {\n try{\n const res = await API.post(`/interventions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Intervention\n\nasync function updateIntervention(params) {\n try{\n const res = await API.patch(`/interventions/${params.interventionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Intervention\n\nasync function delIntervention(id) {\n\n try{\n const res = await API.delete(`/interventions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"intervention Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET InterventionS\n\nasync function getInterventions(params){\n try{\n const res = await API.get(`/interventions?populate=device,operations.operation.interventionoperation,operations.action.interventionaction`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY ACTION\n\nasync function getCountByAction(params){\n try{\n const res = await API.get(`/interventions/countByAction`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY EQUIPTYPE\n\nasync function getCountByTypeequip(params){\n try{\n const res = await API.get(`/interventions/countByTypeequip`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY MARQUE\n\nasync function getCountByMarque(params){\n try{\n const res = await API.get(`/interventions/countByMarque`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET COUNT BY REGION\n\nasync function getCountByRegion(params){\n try{\n const res = await API.get(`/interventions/countByRegion`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { interventionsService } from '../../helpers/backend/interventions.service';\n\nexport const state = {\n interventions: {},\n countByAction: [],\n countByTypeequip: [],\n countByMarque: [],\n countByRegion: [],\n}\n\nexport const getters = {\n getInterventions(state) {\n return state.interventions\n },\n getCountByAction(state) {\n return state.countByAction\n },\n getCountByTypeequip(state) {\n return state.countByTypeequip\n },\n getCountByMarque(state) {\n return state.countByMarque\n },\n getCountByRegion(state) {\n return state.countByRegion\n },\n}\n\nexport const actions = {\n\n addIntervention({ commit }, params) {\n return interventionsService.addIntervention(params)\n .then(\n intervention => {\n commit(\"ADD_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateIntervention({ commit }, params) {\n return interventionsService.updateInterventions(params)\n .then(\n intervention => {\n commit(\"UPDATE_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delIntervention({ commit }, id) {\n return interventionsService.delIntervention(id)\n .then(\n intervention => {\n commit(\"DEL_INTERVENTION_SUCCESS\", id)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getInterventionsBy({ commit }, params) {\n return interventionsService.getInterventions(params)\n .then(\n interventions => {\n commit(\"GET_INTERVENTIONS_SUCCESS\", interventions);\n return Promise.resolve(interventions)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByActionBy({commit}, params) {\n return interventionsService.getCountByAction(params)\n .then(\n count => {\n commit(\"GET_COUNTACTION_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByTypeequipBy({commit}, params) {\n return interventionsService.getCountByTypeequip(params)\n .then(\n count => {\n commit(\"GET_COUNTTYPE_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByMarqueBy({commit}, params) {\n return interventionsService.getCountByMarque(params)\n .then(\n count => {\n commit(\"GET_COUNTMARQUE_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getCountByRegionBy({commit}, params) {\n return interventionsService.getCountByRegion(params)\n .then(\n count => {\n commit(\"GET_COUNTREGION_SUCCESS\", count);\n return Promise.resolve(count)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n clearInterventions({ commit }) {\n commit(\"CLEAR_INTERVENTIONS\")\n }\n};\n\nexport const mutations = {\n GET_INTERVENTIONS_SUCCESS(state, interventions) {\n state.interventions = interventions;\n },\n ADD_INTERVENTION_SUCCESS(state, intervention) {\n if(intervention.type == \"CORRECTIVE\"){\n let results = [intervention, ...state.interventions.results]\n state.interventions = {...state.interventions, results: results}\n }\n },\n UPDATE_INTERVENTION_SUCCESS(state, intervention) {\n let results = state.interventions.results.map(obj => obj.id == intervention.id ? intervention : obj)\n state.interventions = {...state.interventions, results: results}\n },\n DEL_INTERVENTION_SUCCESS(state, id) {\n let results = state.interventions.results.filter(obj => obj.id != id)\n state.interventions = {...state.interventions, results: results}\n },\n GET_COUNTACTION_SUCCESS(state, count) {\n state.countByAction = count;\n },\n GET_COUNTTYPE_SUCCESS(state, count) {\n state.countByTypeequip = count;\n },\n GET_COUNTMARQUE_SUCCESS(state, count) {\n state.countByMarque = count;\n },\n GET_COUNTREGION_SUCCESS(state, count) {\n state.countByRegion = count;\n },\n CLEAR_INTERVENTIONS(state) {\n state.interventions = {}\n },\n};","export const state = {\n layoutType: 'vertical',\n layoutWidth: 'fluid',\n leftSidebarType: 'light',\n topbar: 'light',\n loader: false\n}\n\nexport const getters = {}\n\nexport const mutations = {\n CHANGE_LAYOUT(state, layoutType) {\n state.layoutType = layoutType;\n },\n CHANGE_LAYOUT_WIDTH(state, layoutWidth) {\n state.layoutWidth = layoutWidth;\n },\n CHANGE_LEFT_SIDEBAR_TYPE(state, leftSidebarType) {\n state.leftSidebarType = leftSidebarType;\n },\n CHANGE_TOPBAR(state, topbar) {\n state.topbar = topbar;\n },\n LOADER(state, loader) {\n state.loader = loader\n }\n}\n\nexport const actions = {\n changeLayoutType({ commit }, { layoutType }) {\n commit('CHANGE_LAYOUT', layoutType);\n },\n\n changeLayoutWidth({ commit }, { layoutWidth }) {\n commit('CHANGE_LAYOUT_WIDTH', layoutWidth)\n },\n\n changeLeftSidebarType({ commit }, { leftSidebarType }) {\n commit('CHANGE_LEFT_SIDEBAR_TYPE', leftSidebarType)\n },\n\n changeTopbar({ commit }, { topbar }) {\n commit('CHANGE_TOPBAR', topbar)\n },\n\n changeLoaderValue({ commit }, { loader }) {\n commit('LOADER', loader)\n }\n}\n","import { API } from \"./axios\";\n\nexport const provincesService = {\n getProvinces,\n addProvince,\n updateProvince,\n delProvince,\n};\n\n// Get Provinces\n\nasync function getProvinces(params) {\n try {\n const res = await API.get(`/provinces`, { params: params });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(\"Erreur Validations !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### ADD Province\n\nasync function addProvince(params) {\n try {\n const res = await API.post(`/provinces/`, params);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE Province\n\nasync function updateProvince(params) {\n try {\n const res = await API.patch(`/provinces/${params.provinceId}`, { name: params.name, region: params.region });\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE Province\n\nasync function delProvince(id) {\n\n try {\n const res = await API.delete(`/provinces/${id}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '404') {\n return Promise.reject(\"province Not Found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { provincesService } from '../../helpers/backend/provinces.service';\n\nexport const state = {\n provinces: {},\n}\n\nexport const getters = {\n getProvinces(state) {\n return state.provinces;\n },\n}\n\nexport const actions = {\n getProvincesBy({ commit }, params) {\n return provincesService.getProvinces(params)\n .then(\n provinces => {\n commit(\"PROVINCES_SUCCESS\", provinces)\n return Promise.resolve(provinces);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n addProvince({ commit }, params) {\n return provincesService.addProvince(params)\n .then(\n province => {\n commit(\"ADD_PROVINCE_SUCCESS\", province)\n return Promise.resolve(province);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateProvince({ commit }, params) {\n return provincesService.updateProvince(params)\n .then(\n province => {\n commit(\"UPDATE_PROVINCE_SUCCESS\", province)\n return Promise.resolve(province);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delProvince({ commit }, id) {\n return provincesService.delProvince(id)\n .then(\n province => {\n commit(\"DEL_PROVINCE_SUCCESS\", id)\n return Promise.resolve(province);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearProvinces({ commit }) {\n commit(\"CLEAR_PROVINCES_SUCCESS\")\n },\n}\n\nexport const mutations = {\n PROVINCES_SUCCESS(state, provinces) {\n state.provinces = provinces;\n },\n\n ADD_PROVINCE_SUCCESS(state, province) {\n let results = [...state.provinces.results, province]\n state.provinces = { ...state.provinces, results: results }\n },\n UPDATE_PROVINCE_SUCCESS(state, province) {\n let results = state.provinces.results.map(obj => obj.id == province.id ? province : obj)\n state.provinces = { ...state.provinces, results: results }\n },\n DEL_PROVINCE_SUCCESS(state, id) {\n let results = state.provinces.results.filter(obj => obj.id != id)\n state.provinces = { ...state.provinces, results: results }\n },\n\n CLEAR_PROVINCES_SUCCESS(state) {\n state.provinces = {};\n },\n}","import {API} from \"./axios\";\n\nexport const actionsService = {\n addAction,\n updateAction,\n getActions,\n delAction\n};\n\n// ####################################################################### ADD ACTION\n\nasync function addAction(params) {\n try{\n const res = await API.post(`/actions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE ACTION\n\nasync function updateAction(params) {\n try{\n const res = await API.patch(`/actions/${params.actionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE ACTION\n\nasync function delAction(id) {\n\n try{\n const res = await API.delete(`/actions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"action Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET ACTIONS\n\nasync function getActions(params){\n try{\n const res = await API.get(`/actions`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { actionsService } from '../../helpers/backend/actions.service';\n\nexport const state = {\n actions: {},\n}\n\nexport const getters = {\n getActions(state) {\n return state.actions\n },\n}\n\nexport const actions = {\n\n addAction({ commit }, params) {\n return actionsService.addAction(params)\n .then(\n action => {\n commit(\"ADD_ACTION_SUCCESS\", action)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateAction({ commit }, params) {\n return actionsService.updateAction(params)\n .then(\n action => {\n commit(\"UPDATE_ACTION_SUCCESS\", action)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delAction({ commit }, id) {\n return actionsService.delAction(id)\n .then(\n action => {\n commit(\"DEL_ACTION_SUCCESS\", id)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getActionsBy({ commit }, params) {\n return actionsService.getActions(params)\n .then(\n actions => {\n commit(\"GET_ACTIONS_SUCCESS\", actions);\n return Promise.resolve(actions)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearActions({ commit }) {\n commit(\"CLEAR_ACTIONS\")\n }\n};\n\nexport const mutations = {\n GET_ACTIONS_SUCCESS(state, actions) {\n state.actions = actions;\n },\n ADD_ACTION_SUCCESS(state, action) {\n let results = [...state.actions.results, action]\n state.actions = {...state.actions, results: results}\n },\n UPDATE_ACTION_SUCCESS(state, action) {\n let results = state.actions.results.map(obj => obj.id == action.id ? action : obj)\n state.actions = {...state.actions, results: results}\n },\n DEL_ACTION_SUCCESS(state, id) {\n let results = state.actions.results.filter(obj => obj.id != id)\n state.actions = {...state.actions, results: results}\n },\n CLEAR_ACTIONS(state) {\n state.actions = {}\n },\n};","var map = {\n\t\"./actions.js\": \"cb99\",\n\t\"./alerts.js\": \"45f9\",\n\t\"./auth.js\": \"11c0\",\n\t\"./causes.js\": \"9b26\",\n\t\"./centres.js\": \"4757\",\n\t\"./configsalerts.js\": \"e966\",\n\t\"./consolidated.js\": \"6d0b\",\n\t\"./devices.js\": \"e380\",\n\t\"./home.js\": \"3165\",\n\t\"./interventionoperations.js\": \"ee9d\",\n\t\"./interventions.js\": \"b5b3\",\n\t\"./intervmobile.js\": \"e081\",\n\t\"./language.js\": \"5a98\",\n\t\"./layout.js\": \"c21a\",\n\t\"./logs.js\": \"99a5\",\n\t\"./marques.js\": \"2cec\",\n\t\"./mtcevents.js\": \"2487\",\n\t\"./notification.js\": \"2208\",\n\t\"./offlinealerts.js\": \"afeb\",\n\t\"./operations.js\": \"e324\",\n\t\"./planifications.js\": \"a927\",\n\t\"./provinces.js\": \"c39e\",\n\t\"./rafc.js\": \"20fe\",\n\t\"./regions.js\": \"3f51\",\n\t\"./states.js\": \"37f8\",\n\t\"./stationshcplus.js\": \"4b6d\",\n\t\"./users.js\": \"b20d\",\n\t\"./vaccintypes.js\": \"b2c8\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"cfa9\";","import {API} from \"./axios\";\n\nexport const interventionsMobileService = {\n addIntervention,\n updateIntervention,\n getInterventions,\n delIntervention,\n getInterventionImg\n};\n\n// ####################################################################### ADD INTERVENTION\n\nasync function addIntervention(params) {\n try{\n const res = await API.post(`/mobile/interventions/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE INTERVENTION\n\nasync function updateIntervention(params) {\n try{\n const res = await API.patch(`/mobile/interventions/${params.interventionId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE INTERVENTION\n\nasync function delIntervention(id) {\n\n try{\n const res = await API.delete(`/mobile/interventions/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"intervention Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET INTERVENTIONS\n\nasync function getInterventions(params){\n try{\n const res = await API.get(`/mobile/interventions`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET INTERVENTION IMG\n\nasync function getInterventionImg(id){\n try{\n const res = await API.get(`/mobile/interventions/img/${id}`,{ responseType: 'blob' });\n console.log(res);\n return res;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { interventionsMobileService } from '../../helpers/backend/intervmobile.service';\n\nexport const state = {\n interventions: {},\n img: {}\n}\n\nexport const getters = {\n getInterventions(state) {\n return state.interventions\n },\n getInterventionImgData(state) {\n return state.img\n },\n}\n\nexport const actions = {\n\n addIntervention({ commit }, params) {\n return interventionsMobileService.addIntervention(params)\n .then(\n intervention => {\n commit(\"ADD_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateIntervention({ commit }, params) {\n return interventionsMobileService.updateIntervention(params)\n .then(\n intervention => {\n commit(\"UPDATE_INTERVENTION_SUCCESS\", intervention)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delIntervention({ commit }, id) {\n return interventionsMobileService.delIntervention(id)\n .then(\n intervention => {\n commit(\"DEL_INTERVENTION_SUCCESS\", id)\n return Promise.resolve(intervention);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getInterventionsBy({ commit }, params) {\n return interventionsMobileService.getInterventions(params)\n .then(\n interventions => {\n commit(\"GET_INTERVENTIONS_SUCCESS\", interventions);\n return Promise.resolve(interventions)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n getInterventionImg({ commit }, id) {\n return interventionsMobileService.getInterventionImg(id)\n .then(\n img => {\n commit(\"GET_INTERVENTION_IMG_SUCCESS\", img);\n return Promise.resolve(img)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearInterventions({ commit }) {\n commit(\"CLEAR_INTERVENTIONS\")\n }\n};\n\nexport const mutations = {\n GET_INTERVENTIONS_SUCCESS(state, interventions) {\n state.interventions = interventions;\n },\n ADD_INTERVENTION_SUCCESS(state, intervention) {\n let results = [...state.interventions.results, intervention]\n state.interventions = {...state.interventions, results: results}\n },\n UPDATE_INTERVENTION_SUCCESS(state, intervention) {\n let results = state.interventions.results.map(obj => obj.id == intervention.id ? intervention : obj)\n state.interventions = {...state.interventions, results: results}\n },\n DEL_INTERVENTION_SUCCESS(state, id) {\n let results = state.interventions.results.filter(obj => obj.id != id)\n state.interventions = {...state.interventions, results: results}\n },\n GET_INTERVENTION_IMG_SUCCESS(state, img){\n state.img = img\n },\n CLEAR_INTERVENTIONS(state) {\n state.interventions = {}\n },\n};","import {API} from \"./axios\";\n\nexport const operationsService = {\n addOperation,\n updateOperation,\n getOperations,\n delOperation\n};\n\n// ####################################################################### ADD ACTION\n\nasync function addOperation(params) {\n try{\n const res = await API.post(`/operations/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE ACTION\n\nasync function updateOperation(params) {\n try{\n const res = await API.patch(`/operations/${params.operationId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE ACTION\n\nasync function delOperation(id) {\n\n try{\n const res = await API.delete(`/operations/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"operation Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET ACTIONS\n\nasync function getOperations(params){\n try{\n const res = await API.get(`/operations`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { operationsService } from '../../helpers/backend/operations.service';\n\nexport const state = {\n operations: {},\n}\n\nexport const getters = {\n getOperations(state) {\n return state.operations\n },\n}\n\nexport const actions = {\n\n addOperation({ commit }, params) {\n return operationsService.addOperation(params)\n .then(\n operation => {\n commit(\"ADD_OPERATION_SUCCESS\", operation)\n return Promise.resolve(operation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateOperation({ commit }, params) {\n return operationsService.updateOperation(params)\n .then(\n operation => {\n commit(\"UPDATE_OPERATION_SUCCESS\", operation)\n return Promise.resolve(operation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delOperation({ commit }, id) {\n return operationsService.delOperation(id)\n .then(\n operation => {\n commit(\"DEL_OPERATION_SUCCESS\", id)\n return Promise.resolve(operation);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getOperationsBy({ commit }, params) {\n return operationsService.getOperations(params)\n .then(\n operations => {\n commit(\"GET_OPERATIONS_SUCCESS\", operations);\n return Promise.resolve(operations)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearOperations({ commit }) {\n commit(\"CLEAR_OPERATIONS\")\n }\n};\n\nexport const mutations = {\n GET_OPERATIONS_SUCCESS(state, operations) {\n state.operations = operations;\n },\n ADD_OPERATION_SUCCESS(state, operation) {\n let results = [...state.operations.results, operation]\n state.operations = {...state.operations, results: results}\n },\n UPDATE_OPERATION_SUCCESS(state, operation) {\n let results = state.operations.results.map(obj => obj.id == operation.id ? operation : obj)\n state.operations = {...state.operations, results: results}\n },\n DEL_OPERATION_SUCCESS(state, id) {\n let results = state.operations.results.filter(obj => obj.id != id)\n state.operations = {...state.operations, results: results}\n },\n CLEAR_OPERATIONS(state) {\n state.operations = {}\n },\n};","import {API} from \"./axios\";\n\nexport const devicesService = {\n getAllDevices,\n getDevices,\n exportDevicesXLS,\n exportAllDevicesXLS,\n getDevicesTransport,\n getDeviceInfos,\n getDeviceInfosBySerial,\n getEvents,\n addDevice,\n updateDevice,\n delDevice,\n interventionOffline,\n};\n\n// ####################################################################### GET ALL DEVICES\n\nasync function getAllDevices(params){\n try{\n const res = await API.get(`/devices?populate=region,province`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICES\n\nasync function getDevices(params){\n try{\n const res = await API.get(`/devices?populate=region,province,marque,vaccinTypes`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export Devices offline XLS\n\nasync function exportDevicesXLS(params) {\n try {\n const res = await API.get(`/devices/export`, {\n params: params,\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### Export All Devices XLS\n\nasync function exportAllDevicesXLS() {\n try {\n const res = await API.get(`/devices/exportAll`, {\n responseType: \"blob\"\n });\n return res;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICES\n\nasync function getDevicesTransport(params){\n try{\n const res = await API.get(`/devices/transport`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICE\n\nasync function getDeviceInfos(id){\n try{\n const res = await API.get(`/devices/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET DEVICE BY SERIAL\n\nasync function getDeviceInfosBySerial(serial){\n try{\n const res = await API.get(`/devices/serial/${serial}`);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET Events\n\nasync function getEvents(params){\n try{\n if(params.from && params.to){\n const res = await API.get(`/events/${params.serial}/${params.from}/${params.to}`, {params: {limit: params.limit, sortBy: params.sortBy}});\n return {\n ...res.data, \n loaderDashboard: false,\n from: params.from || \"\",\n to: params.to || \"\",\n }\n }else{\n const res = await API.get(`/events`, {params: {...params, limit: params.limit ? params.limit : 100}});\n return {\n ...res.data, \n loaderDashboard: false,\n }\n }\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### ADD DEVICE\n\nasync function addDevice(params){\n try{\n const res = await API.post(`/devices`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE DEVICE\n\nasync function updateDevice(params) {\n try{\n let filtredParams = {\n serial: params.serial,\n ref: params.ref,\n type: params.type,\n marque: params.marque,\n thermostat: params.thermostat,\n name: params.name,\n stockType: params.stockType,\n region: params.region,\n province: params.province,\n lat: params.lat,\n lng: params.lng,\n vaccinTypes: params.vaccinTypes,\n phones: params.phones,\n state: params.state\n };\n const res = await API.patch(`/devices/${params.deviceId}`, filtredParams);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE DEVICE\n\nasync function delDevice(id){\n try{\n const res = await API.delete(`/devices/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"device Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ######################################################################## INTERVENTION OFFLINE\n\nasync function interventionOffline(params) {\n try {\n const res = await API.post(`/devices/intervention/${params.deviceId}`, {\n state: params.state,\n action: params.action,\n cause: params.cause,\n savedDosesSino: params.savedDosesSino,\n savedDosesFizer: params.savedDosesFizer,\n note: params.note,\n });\n return (res.data != '') ? res.data : { id: params.alertId, closed: true };\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { devicesService } from '../../helpers/backend/devices.service';\n\nexport const state = {\n allDevices: {},\n devices: {},\n devicesTransport: {},\n device: {},\n events: {},\n export: {},\n interventionDevice: {},\n}\n\nexport const getters = {\n getAllDevices(state) {\n return state.devices\n },\n getDevices(state) {\n return state.devices\n },\n getDevicesTransport(state) {\n return state.devicesTransport\n },\n getDevice(state) {\n return state.device\n },\n getEvents(state){\n return state.events\n },\n getInterventionDevice(state){\n return state.interventionDevice\n }\n}\n\nexport const actions = {\n getAllDevicesBy({ commit }, params) {\n return devicesService.getAllDevices(params)\n .then(\n devices => {\n commit(\"GET_ALL_DEVICES_SUCCESS\", devices);\n return Promise.resolve(devices)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getDevicesBy({ commit }, params) {\n return devicesService.getDevices(params)\n .then(\n devices => {\n commit(\"GET_DEVICES_SUCCESS\", devices);\n return Promise.resolve(devices)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n exportDevicesXLS({commit}, params) {\n return devicesService.exportDevicesXLS(params)\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `offline--${params.from}-${params.to}.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n exportAllDevicesXLS({commit}) {\n return devicesService.exportAllDevicesXLS()\n .then(\n res => {\n if(res.status !== 204){\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `All-Devices.xlsx`);\n document.body.appendChild(link);\n link.click();\n commit(\"EXPORT_SUCCESS\", res)\n return Promise.resolve({status: true});\n }else{\n return Promise.resolve({status: false});\n }\n \n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n getDevicesTransportBy({ commit }, params) {\n return devicesService.getDevicesTransport(params)\n .then(\n devices => {\n commit(\"GET_DEVICES_TRANSPORT_SUCCESS\", devices);\n return Promise.resolve(devices)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getDeviceInfos({ commit }, id) {\n return devicesService.getDeviceInfos(id)\n .then(\n device => {\n commit(\"GET_DEVICE_INFOS_SUCCESS\", device);\n return Promise.resolve(device)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getDeviceInfosBySerial({ commit }, serial) {\n return devicesService.getDeviceInfosBySerial(serial)\n .then(\n device => {\n commit(\"GET_DEVICE_INFOS_SUCCESS\", device);\n return Promise.resolve(device)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n getEventsBy({ commit }, id){\n return devicesService.getEvents(id)\n .then(\n events => {\n commit(\"GET_EVENTS_SUCCESS\", events);\n return Promise.resolve(events)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n addDevice({ commit }, params) {\n return devicesService.addDevice(params)\n .then(\n device => {\n commit(\"ADD_DEVICE_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n updateDevice({ commit }, params) {\n return devicesService.updateDevice(params)\n .then(\n action => {\n commit(\"UPDATE_DEVICE_SUCCESS\", action)\n return Promise.resolve(action);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n delDevice({ commit }, id) {\n return devicesService.delDevice(id)\n .then(\n device => {\n commit(\"DEL_DEVICE_SUCCESS\", id)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n interventionOffline({ commit }, params) {\n return devicesService.interventionOffline(params)\n .then(\n device => {\n commit(\"INTERVENTION_OFFLINE_SUCCESS\", device)\n return Promise.resolve(device);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n clearDevices({ commit }) {\n commit(\"CLEAR_DEVICES\")\n }\n};\n\nexport const mutations = {\n GET_ALL_DEVICES_SUCCESS(state, devices) {\n state.devices = devices;\n },\n GET_DEVICES_SUCCESS(state, devices) {\n state.devices = devices;\n },\n EXPORT_SUCCESS(state, res) {\n state.export = res;\n },\n GET_DEVICES_TRANSPORT_SUCCESS(state, devices) {\n state.devicesTransport = devices;\n },\n GET_DEVICE_INFOS_SUCCESS(state, device) {\n state.device = device;\n },\n GET_EVENTS_SUCCESS(state, events){\n state.events = events;\n },\n ADD_DEVICE_SUCCESS(state, device){\n let results = [...state.devices.results, device]\n state.devices = {...state.devices, results: results}\n },\n UPDATE_DEVICE_SUCCESS(state, device) {\n if(state.devices.results){\n let results = state.devices.results.map(obj => obj.id == device.id ? device : obj)\n state.devices = {...state.devices, results: results}\n }\n },\n DEL_DEVICE_SUCCESS(state, id){\n let results = state.devices.results.filter(obj => obj.id != id)\n state.devices = {...state.devices, results: results}\n },\n INTERVENTION_OFFLINE_SUCCESS(state, device){\n state.interventionDevice = device;\n },\n CLEAR_DEVICES(state) {\n state.devices = {}\n },\n};","const base_url = process.env.NODE_ENV == 'production' ? process.env.VUE_APP_BASE_URL : process.env.VUE_APP_BASE_URL_DEV\nconst ws_url = process.env.VUE_APP_WS\nexport default {\n base_url,\n ws_url\n}","import { API } from \"./axios\";\n\nexport const configalertsService = {\n addConfigAlert,\n updateConfigAlert,\n getConfigAlerts,\n delConfigAlert\n};\n\n// ####################################################################### ADD ConfigAlert\n\nasync function addConfigAlert(params) {\n try {\n const res = await API.post(`/alertsConfigs/`, params);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE ConfigAlert\n\nasync function updateConfigAlert(params) {\n try {\n const res = await API.patch(`/alertsConfigs/${params.configAlertId}`, {\n configAlertId: params.id,\n condition: params.condition,\n value: params.value,\n minutesFirstAlert: params.minutesFirstAlert,\n minutesBetweenAlerts: params.minutesBetweenAlerts,\n message: params.message\n }/* ,{\n headers: {\"content-type\": \"application/x-www-form-urlencoded\"}\n } */);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '400') {\n return Promise.reject(err.response.data.errors[0].messages[0]);\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE ConfigAlert\n\nasync function delConfigAlert(id) {\n\n try {\n const res = await API.delete(`/alertsConfigs/${id}`);\n return res.data;\n } catch (err) {\n if (err.response.status == '401' || err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else if (err.response.status == '404') {\n return Promise.reject(\"configalert Not Found !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET ConfigAlerts\n\nasync function getConfigAlerts(params) {\n try {\n const res = await API.get(`/alertsConfigs?populate=device`, { params: params });\n return res.data;\n } catch (err) {\n if (err.response.status == '403') {\n return Promise.reject(\"Not Authorized !\");\n } else {\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { configalertsService } from '../../helpers/backend/configsalerts.service';\n\nexport const state = {\n configAlerts: {},\n}\n\nexport const getters = {\n getConfigAlerts(state) {\n return state.configAlerts\n },\n}\n\nexport const actions = {\n\n addConfigAlert({ commit }, params) {\n return configalertsService.addConfigAlert(params)\n .then(\n configAlert => {\n commit(\"ADD_CONFIGALERT_SUCCESS\", configAlert)\n return Promise.resolve(configAlert);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateConfigAlert({ commit }, params) {\n return configalertsService.updateConfigAlert(params)\n .then(\n configAlert => {\n commit(\"UPDATE_CONFIGALERT_SUCCESS\", configAlert)\n return Promise.resolve(configAlert);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delConfigAlert({ commit }, id) {\n return configalertsService.delConfigAlert(id)\n .then(\n configAlert => {\n commit(\"DEL_CONFIGALERT_SUCCESS\", id)\n return Promise.resolve(configAlert);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getConfigAlertsBy({ commit }, params) {\n return configalertsService.getConfigAlerts(params)\n .then(\n configAlerts => {\n commit(\"GET_CONFIGALERTS_SUCCESS\", configAlerts);\n return Promise.resolve(configAlerts)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearConfigAlerts({ commit }) {\n commit(\"CLEAR_CONFIGALERTS\")\n }\n};\n\nexport const mutations = {\n GET_CONFIGALERTS_SUCCESS(state, configAlerts) {\n state.configAlerts = configAlerts;\n },\n ADD_CONFIGALERT_SUCCESS(state, configAlert) {\n let results = [...state.configAlerts.results, configAlert]\n state.configAlerts = {...state.configAlerts, results: results}\n },\n UPDATE_CONFIGALERT_SUCCESS(state, configAlert) {\n let results = state.configAlerts.results.map(obj => obj.id == configAlert.id ? configAlert : obj)\n state.configAlerts = {...state.configAlerts, results: results}\n },\n DEL_CONFIGALERT_SUCCESS(state, id) {\n let results = state.configAlerts.results.filter(obj => obj.id != id)\n state.configAlerts = {...state.configAlerts, results: results}\n },\n CLEAR_CONFIGALERTS(state) {\n state.configAlerts = {}\n },\n};","import {API} from \"./axios\";\n\nexport const interventionOperationsService = {\n addInterventionOperation,\n updateInterventionOperation,\n getInterventionOperations,\n delInterventionOperation\n};\n\n// ####################################################################### ADD InterventionOperation\n\nasync function addInterventionOperation(params) {\n try{\n const res = await API.post(`/intervention-operations/`, params);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### UPDATE InterventionOperation\n\nasync function updateInterventionOperation(params) {\n try{\n const res = await API.patch(`/intervention-operations/${params.interventionOperationId}`, {name: params.name});\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '400'){\n return Promise.reject(err.response.data.errors[0].messages[0]);\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### DELETE InterventionOperation\n\nasync function delInterventionOperation(id) {\n\n try{\n const res = await API.delete(`/intervention-operations/${id}`);\n return res.data;\n }catch(err){\n if(err.response.status == '401' || err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else if(err.response.status == '404'){\n return Promise.reject(\"intervention Operation Not Found !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}\n\n// ####################################################################### GET InterventionOperationS\n\nasync function getInterventionOperations(params){\n try{\n const res = await API.get(`/intervention-operations`, {params: params});\n return res.data;\n }catch(err){\n if(err.response.status == '403'){\n return Promise.reject(\"Not Authorized !\");\n }else{\n return Promise.reject(\"Veuillez réessayer plus tard !\");\n }\n }\n}","import { interventionOperationsService } from '../../helpers/backend/interventionoperations.service';\n\nexport const state = {\n interventionOperations: {},\n}\n\nexport const getters = {\n getInterventionOperations(state) {\n return state.interventionOperations\n },\n}\n\nexport const actions = {\n\n addInterventionOperation({ commit }, params) {\n return interventionOperationsService.addInterventionOperation(params)\n .then(\n interventionOperation => {\n commit(\"ADD_INTERVENTIONACTION_SUCCESS\", interventionOperation)\n return Promise.resolve(interventionOperation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n updateInterventionOperation({ commit }, params) {\n return interventionOperationsService.updateInterventionOperations(params)\n .then(\n interventionOperation => {\n commit(\"UPDATE_INTERVENTIONACTION_SUCCESS\", interventionOperation)\n return Promise.resolve(interventionOperation);\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n\n delInterventionOperation({ commit }, id) {\n return interventionOperationsService.delInterventionOperation(id)\n .then(\n interventionOperation => {\n commit(\"DEL_INTERVENTIONACTION_SUCCESS\", id)\n return Promise.resolve(interventionOperation);\n },\n error => {\n return Promise.reject(error);\n }\n );\n },\n\n getInterventionOperationsBy({ commit }, params) {\n return interventionOperationsService.getInterventionOperations(params)\n .then(\n interventionOperations => {\n commit(\"GET_INTERVENTIONACTIONS_SUCCESS\", interventionOperations);\n return Promise.resolve(interventionOperations)\n },\n error => {\n return Promise.reject(error)\n }\n );\n },\n clearInterventionOperations({ commit }) {\n commit(\"CLEAR_INTERVENTIONACTIONS\")\n }\n};\n\nexport const mutations = {\n GET_INTERVENTIONACTIONS_SUCCESS(state, interventionOperations) {\n state.interventionOperations = interventionOperations;\n },\n ADD_INTERVENTIONACTION_SUCCESS(state, interventionOperation) {\n let results = [...state.interventionOperations.results, interventionOperation]\n state.interventionOperations = {...state.interventionOperations, results: results}\n },\n UPDATE_INTERVENTIONACTION_SUCCESS(state, interventionOperation) {\n let results = state.interventionOperations.results.map(obj => obj.id == interventionOperation.id ? interventionOperation : obj)\n state.interventionOperations = {...state.interventionOperations, results: results}\n },\n DEL_INTERVENTIONACTION_SUCCESS(state, id) {\n let results = state.interventionOperations.results.filter(obj => obj.id != id)\n state.interventionOperations = {...state.interventionOperations, results: results}\n },\n CLEAR_INTERVENTIONACTIONS(state) {\n state.interventionOperations = {}\n },\n};"],"sourceRoot":""}