\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\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=4f8bb9f0&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=4f8bb9f0&prod&lang=css&\"\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","export const home = [\r\n {\r\n path: \"/\",\r\n name: \"Home\",\r\n isMenu: true,\r\n component: () =>\r\n import(\"@/views/home/Home.vue\"),\r\n },\r\n];","export const account = [\r\n {\r\n path: \"/mijn-roadpursuit/login\",\r\n name: \"Login\",\r\n component: () => import(\"@/views/account/Login.vue\"),\r\n },\r\n {\r\n path: \"/mijn-roadpursuit/registratie\",\r\n name: \"Registratie\",\r\n component: () => import(\"@/views/account/Registratie.vue\"),\r\n },\r\n {\r\n path: \"/mijn-roadpursuit/activeren/:activationString\",\r\n name: \"Registratie Welkom\",\r\n component: () => import(\"@/views/account/RegistratieWelkom.vue\"),\r\n },\r\n\r\n {\r\n path: \"/mijn-roadpursuit/wachtwoord-vergeten\",\r\n name: \"Wachtwoord Vergeten\",\r\n component: () => import(\"@/views/account/WachtwoordVergeten.vue\"),\r\n },\r\n {\r\n path: \"/mijn-roadpursuit/wachtwoord-wijzigen\",\r\n name: \"Wachtwoord Wijzigen\",\r\n component: () => import(\"@/views/account/WachtwoordWijzigenDashboard.vue\"),\r\n },\r\n];","export const dashboard = [\r\n {\r\n path: \"/dashboard\",\r\n name: \"Mijn Roadpursuit\",\r\n isMenu: true,\r\n requiresAuth: true,\r\n requiresRoleCheck: true,\r\n component: () => \r\n import(\"@/views/dashboard/Dashboard.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/account\",\r\n name: \"Account\",\r\n requiresAuth: true,\r\n component: () => import(\"@/views/dashboard/Account.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/account/verwijderen\",\r\n name: \"Account verwijderen\",\r\n requiresAuth: true,\r\n component: () => import(\"@/views/dashboard/AccountVerwijderen.vue\"),\r\n },\r\n {\r\n path: `/dashboard/aankomend/:trip`, // /{trip-name}-{day-month-year}/\r\n name: `Aankomende Roadtrip`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AankomendeRoadtrip.vue\"),\r\n },\r\n {\r\n path: `/dashboard/aankomend/:trip/wijzigen`, // /{trip-name}-{day-month-year}/wijzigen\r\n name: `Aankomende Roadtrip Wijzigen`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AankomendeRoadtripWijzigen.vue\"),\r\n },\r\n {\r\n path: `/dashboard/afgelopen`,\r\n name: `Afgelopen Roadtrips`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AfgelopenRoadtrips.vue\"),\r\n },\r\n {\r\n path: `/dashboard/afgelopen/:trip`, // /{trip-name}-{day-month-year}/\r\n name: `Afgelopen Roadtrip`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AfgelopenRoadtrip.vue\"),\r\n },\r\n {\r\n path: `/dashboard/voertuigen/:carId`, \r\n name: `Voertuig`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/Voertuig.vue\"),\r\n },\r\n];","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst authorizedModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n samples: [],\r\n userId: '',\r\n isAdmin: false\r\n },\r\n getters:\r\n {\r\n\r\n },\r\n mutations:\r\n { \r\n setSamples(state, data)\r\n {\r\n state.samples = data;\r\n },\r\n setUserId(state, id)\r\n {\r\n state.userId = id;\r\n },\r\n setAdmin(state, isAdmin)\r\n {\r\n state.isAdmin = isAdmin;\r\n }\r\n },\r\n actions:\r\n {\r\n },\r\n};\r\n\r\n\r\nexport default authorizedModule;","import axios from \"axios\";\r\n// import axios from \"axios\";\r\n\r\nconst instance = axios.create({\r\n headers: {\r\n baseURL : process.env.VUE_APP_BASE_URL,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n});\r\n\r\ninstance.defaults.baseURL = process.env.VUE_APP_BASE_URL;\r\nexport default instance;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst roadtripModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n isLoading: false,\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n setLoading(state, isLoading)\r\n {\r\n state.isLoading = isLoading;\r\n },\r\n },\r\n actions:\r\n {\r\n getRoadtripStatistics({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/admin/GetRoadtripStatistics?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getRoadtripStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/admin/dashboard/GetRoadtripStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n addRoadtrip({commit, dispatch}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n commit('setLoading', true);\r\n api.post(`/Roadtrip/AddRoadtrip`, request)\r\n .then(response => {\r\n\r\n // images\r\n let imageRequest = new FormData();\r\n imageRequest.append('ProductId', response.data.productId);\r\n request.productPhotos.forEach(photo => {\r\n if (photo)\r\n {\r\n imageRequest.append(`ProductPhotos`, photo);\r\n }\r\n });\r\n\r\n // GPX\r\n if (request.gpx_file != null && request.gpx_file != \"\")\r\n {\r\n let gpxRequest = new FormData();\r\n gpxRequest.append('RoadtripId', response.data.roadtripId);\r\n gpxRequest.append('File', request.gpx_file);\r\n\r\n Promise.all([\r\n dispatch('addRoadtripPhotos', imageRequest),\r\n dispatch('addGPXToRoadtrip', gpxRequest),\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n else\r\n {\r\n Promise.all([\r\n dispatch('addRoadtripPhotos', imageRequest),\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n })\r\n .catch(error => reject(error.response))\r\n })\r\n },\r\n addRoadtripPhotos({commit}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Product/AddRoadtripProductPhotos`, request,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n commit('dialog/showDialog', 'Something went wrong with saving photos.', {root: true})\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n addGPXToRoadtrip({commit}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/AddGPXToRoadtrip`, request,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n commit('dialog/showDialog', 'Something went wrong with saving gpx file.', {root: true})\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n updateRoadtrip({commit, dispatch}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n commit('setLoading', true);\r\n api.post(`/Product/UpdateProduct`, request)\r\n .then(response => {\r\n\r\n // images\r\n let imageRequest = new FormData();\r\n imageRequest.append('ProductId', request.productId);\r\n request.newPhotos.forEach(photo => {\r\n if (photo)\r\n {\r\n imageRequest.append(`ProductPhotos`, photo);\r\n }\r\n });\r\n\r\n // GPX\r\n let gpxRequest = new FormData();\r\n gpxRequest.append('RoadtripId', request.roadtripId);\r\n gpxRequest.append('File', request.gpx_file);\r\n gpxRequest.append('Changes', request.gpx_file_changes);\r\n\r\n if(request.gpx_file_changes != '' && request.gpx_file != null)\r\n {\r\n Promise.all([\r\n dispatch('updateGPXFile', gpxRequest),\r\n dispatch('addRoadtripPhotos', imageRequest)\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n else\r\n {\r\n Promise.all([\r\n dispatch('addRoadtripPhotos', imageRequest)\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n })\r\n .catch(error => reject(error.response))\r\n })\r\n },\r\n updateGPXFile({commit}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/UpdateGPXFile`, request,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n commit('dialog/showDialog', 'Something went wrong with updating gpx file.', {root: true})\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n // dashboard\r\n getUpcomingRoadtrips({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetUpcomingRoadtrips?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getUpcomingRoadtripInformation({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/GetUpcomingRoadtripInformation`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPassedRoadtrips({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetPassedRoadtrips?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPassedRoadtrip({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/GetPassedRoadtrip`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getRoadtripId({}, uniqueName)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetRoadtripId?uniqueName=${uniqueName}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getTripDayStatistics({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetTripDayStatistics?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n scanQR({}, orderId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/ScanQR?orderId=${orderId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getUnauthorizedScanQRInfo({}, orderId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetUnauthorizedScanQRInfo?orderId=${orderId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n updateCheckInStatus({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/UpdateCheckInStatus?orderId=${request.orderId}&checkIn=${request.isPresent}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default roadtripModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst productModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n getAdminProduct({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetAdminProduct?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n GetProductsByMonthAndYear({}, payload)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetProductsByMonthAndYear?month=${payload.month}&year=${payload.year}&accountId=${payload.accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPublicProductByNameWhenLoggedIn({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetPublicProductByNameWhenLoggedIn?uniqueName=${request.uniqueName}&accountId=${request.accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPublicProductByName({}, roadtripName)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/getPublicProductByName?uniqueName=${roadtripName}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getNextRoadtripDate({})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetNextRoadtripDate`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n adjustProductStatus({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Product/AdjustProductStatus`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default productModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\nimport axios from \"axios\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst accountModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n personInfo: {\r\n foodRestrictions: []\r\n },\r\n accountAddress: {},\r\n },\r\n getters:\r\n {\r\n\r\n },\r\n mutations:\r\n {\r\n setAccountPersonInfo(state, info)\r\n {\r\n state.personInfo = info;\r\n },\r\n setAccountAddress(state, address)\r\n {\r\n state.accountAddress = address;\r\n },\r\n addUpdateClickCounter(state)\r\n {\r\n state.updateAccountClickCounter++;\r\n }\r\n },\r\n actions:\r\n {\r\n registerAccount({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/RegisterToRoadpursuit`, request)\r\n .then(response => {\r\n resolve(!response.data);\r\n })\r\n .catch(error => reject(error))\r\n\r\n })\r\n },\r\n isEmailAvailable({}, email)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Account/TryAccountExists?emailAddress=${email}`)\r\n .then(response => {\r\n resolve(!response.data);\r\n })\r\n .catch(error => reject(error))\r\n\r\n })\r\n },\r\n getFirstNameFromActivationString({}, activationString)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Person/GetFirstNameFromActivationString?activationString=${activationString}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n\r\n })\r\n },\r\n getEmailAddressFromAccountOwner({}, accountId)\r\n {\r\n if(!accountId) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.post(`Person/GetEmailAddressFromAccountOwner?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n\r\n })\r\n },\r\n activateAccount({}, activationString)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/ActivateAccount?activationString=${activationString}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n requestAccountDeletionLink({rootState})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Account/RequestAccountDeletionLink?accountId=${rootState.authorizedModule.userId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n\r\n })\r\n },\r\n blockAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/BlockAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n unblockAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/UnblockAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n removeAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/RemoveAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAccountOwnerBasePersoninfo({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Person/GetAccountOwnerBasePersoninfo?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAddressFromAccountowner({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Address/GetAddressFromAccountowner?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getCoRegisteredPersonsFromAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Person/GetCoregisteredPersonsFromAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAccountsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/GetAccountsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAccountStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/dashboard/GetAccountStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updatePersonInfo({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Person/UpdatePersonInfo`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updateAddressFromAccountowner({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Address/UpdateAddressFromAccountowner`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n deletePerson({}, personId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/Person/SoftDeletePerson?personId=${personId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n addCoregisteredPersons({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Person/AddCoregisteredPersons`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n confirmAccountDeletionRequest({}, deletionString)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/Account/ConfirmAccountDeletionRequest?deletionString=${deletionString}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPasswordChangeLink({}, email)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/GetPasswordChangeLink?emailAddress=${email}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n changePassword({}, request) // from email link\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/ChangePassword`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n changePasswordDashBoard({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/ChangePasswordDashBoard`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n reset({commit})\r\n {\r\n commit('setAccountPersonInfo', {\r\n foodRestrictions: []\r\n });\r\n commit('setAccountAddress', {});\r\n },\r\n isAccountOwnerValid({}, userId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`/authentication/IsAccountOwnerValid?userId=${userId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n isPrimaryUser({}, userId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/authentication/IsPrimaryUser?userId=${userId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n revokeToken({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n axios.post('/authentication/RevokeToken', request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n \r\n },\r\n};\r\n\r\nexport default accountModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst vehicleModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n },\r\n actions:\r\n {\r\n getVehiclesByAccountId({}, accountId)\r\n {\r\n if(!accountId) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Vehicle/GetVehiclesByAccountId?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getVehicle({}, vehicleId)\r\n {\r\n if(!vehicleId) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.get(`Vehicle/GetVehicle?vehicleId=${vehicleId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getLicenseplateInformation({}, licensePlate)\r\n {\r\n if(!licensePlate) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Vehicle/GetLicenseplateInformation?licensePlate=${licensePlate}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getVehicleStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Vehicle/admin/dashboard/GetVehicleStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n addVehicle({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Vehicle/AddVehicle`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updateVehicle({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Vehicle/UpdateVehicle`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n }) \r\n },\r\n deleteVehicle({}, vehicleId)\r\n {\r\n if(!vehicleId) return;\r\n \r\n return new Promise((resolve, reject) => {\r\n api.delete(`Vehicle/SoftDeleteVehicle?vehicleId=${vehicleId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n }) \r\n },\r\n },\r\n};\r\n\r\nexport default vehicleModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst supplierModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n addSupplier({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Supplier/admin/AddSupplier`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n updateSupplier({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Supplier/admin/UpdateBaseSupplierInformation`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getSupplierFromAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Supplier/admin/GetBaseSupplierInfoFromAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n }\r\n },\r\n};\r\n\r\nexport default supplierModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst expenseModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n getFinancialStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Expense/admin/dashboard/GetFinancialStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default expenseModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\nimport axios from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst galleryModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n likePhoto({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Gallery/LikePhoto?`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getRoadtripGalleryLoggedOut({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`/Gallery/GetRoadtripGalleryLoggedOut?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n GetRoadtripGalleryLoggedIn({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Gallery/GetRoadtripGalleryLoggedIn?`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getGalleries({})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Gallery/GetGalleries`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getGalleriesFromMake({}, makeId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Gallery/GetGalleriesFromMake?roadtripLabel=${makeId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n }\r\n },\r\n};\r\n\r\nexport default galleryModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst reviewModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n },\r\n actions:\r\n {\r\n canPlaceReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/CanPlaceReview`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n placeReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/PlaceReview`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updateReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/UpdateReview`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAllReviewsFromRoadtrip({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/GetAllReviewsFromRoadtrip?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n removeReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/RoadtripReview/RemoveReview?reviewId=${request.reviewId}&accountId=${request.accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n }\r\n },\r\n};\r\n\r\nexport default reviewModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst newsletterModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n subscribeNonExistingAccountToNewsletter({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/SubscribeNonExistingAccountToNewsletter`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n unsubscribeExistingAccountFromNewsletter({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/UnsubscribeExistingAccountFromNewsletter?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n subscribeExistingAccountToNewsletter({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/SubscribeExistingAccountToNewsletter?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n accountIsSubscribed({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/AccountIsSubscribed?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default newsletterModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst storeModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n \r\n },\r\n getters:\r\n {\r\n\r\n },\r\n mutations:\r\n { \r\n },\r\n actions:\r\n {\r\n placeOrderWithExistingAccount({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Store/PlaceOrderWithExistingAccount`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n placeOrderWithNewAccount({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Store/PlaceOrderWithNewAccount`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getOrdersInformation({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Store/GetOrdersInformation?accountId=${request.accountId}&productId=${request.productId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n checkPaymentStatusByOrderId({}, orderId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Store/CheckPaymentStatusByOrderId?orderId=${orderId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n validateVoucher({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Voucher/ValidateVoucher`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n }\r\n },\r\n};\r\n\r\n\r\nexport default storeModule;","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst menuHelper = {\r\n namespaced: true,\r\n state:\r\n {\r\n foodRestrictions: [],\r\n fuelTypes: [],\r\n mileageTypes: [],\r\n billingTypes: [],\r\n vehicleMakes: [],\r\n vehicleTypes: [],\r\n supplierTypes: [],\r\n suppliers: [],\r\n VATRates: [],\r\n itineraryTypes: [],\r\n roadtripLocationTypes: [],\r\n roadtripLabels: [],\r\n productCategories: [],\r\n productStatuses: [],\r\n countries: [],\r\n accountOrigins: [],\r\n },\r\n mutations:\r\n {\r\n setFoodRestrictions(state, data)\r\n {\r\n state.foodRestrictions = data;\r\n },\r\n setFuelTypes(state, data)\r\n {\r\n state.fuelTypes = data;\r\n },\r\n setMileageTypes(state, data)\r\n {\r\n state.mileageTypes = data;\r\n },\r\n setBillingTypes(state, data)\r\n {\r\n state.billingTypes = data;\r\n },\r\n setVehicleMakes(state, data)\r\n {\r\n state.vehicleMakes = data;\r\n },\r\n setVehicleTypes(state, data)\r\n {\r\n state.vehicleTypes = data;\r\n },\r\n setSupplierTypes(state, data)\r\n {\r\n state.supplierTypes = data;\r\n },\r\n setSuppliers(state, data)\r\n {\r\n state.suppliers = data;\r\n },\r\n setVATRates(state, data)\r\n {\r\n state.VATRates = data;\r\n },\r\n setItineraryTypes(state, data)\r\n {\r\n state.itineraryTypes = data;\r\n },\r\n setRoadtripLocationTypes(state, data)\r\n {\r\n state.roadtripLocationTypes = data;\r\n },\r\n setRoadtripLabels(state, data)\r\n {\r\n state.roadtripLabels = data;\r\n },\r\n setProductCategories(state, data)\r\n {\r\n state.productCategories = data;\r\n },\r\n setProductStatuses(state, data)\r\n {\r\n state.productStatuses = data;\r\n },\r\n setCountries(state, data)\r\n {\r\n state.countries = data;\r\n },\r\n setAccountOrigins(state, data)\r\n {\r\n state.accountOrigins = data;\r\n },\r\n },\r\n actions:\r\n {\r\n getVehicleOptions({dispatch}) {\r\n dispatch('getVehicleTypes');\r\n dispatch('getVehicleMakes');\r\n dispatch('getFuelTypes');\r\n },\r\n getFoodRestrictions({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetFoodRestrictions`)\r\n .then(response => {\r\n commit('setFoodRestrictions', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getFuelTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetFuelTypes`)\r\n .then(response => {\r\n commit('setFuelTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getMileageTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetMileageTypes`)\r\n .then(response => {\r\n commit('setMileageTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getBillingTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetBillingTypes`)\r\n .then(response => {\r\n commit('setBillingTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getVehicleMakes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetVehicleMakes`)\r\n .then(response => {\r\n commit('setVehicleMakes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getVehicleTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetVehicleTypes`)\r\n .then(response => {\r\n commit('setVehicleTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getSupplierTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetSupplierTypes`)\r\n .then(response => {\r\n commit('setSupplierTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getVATRates({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetVATRates`)\r\n .then(response => {\r\n commit('setVATRates', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getItineraryTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetItineraryTypes`)\r\n .then(response => {\r\n commit('setItineraryTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getRoadtripLocationTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetRoadtripLocationTypes`)\r\n .then(response => {\r\n commit('setRoadtripLocationTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getRoadtripLabels({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetRoadtripLabels`)\r\n .then(response => {\r\n commit('setRoadtripLabels', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getProductCategories({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetProductCategories`)\r\n .then(response => {\r\n commit('setProductCategories', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getProductStatuses({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetProductStatuses`)\r\n .then(response => {\r\n commit('setProductStatuses', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getCountries({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetCountries`)\r\n .then(response => {\r\n commit('setCountries', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getAccountOrigins({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetAccountOrigins`)\r\n .then(response => {\r\n commit('setAccountOrigins', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n // admin\r\n getSuppliers({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetSuppliers`)\r\n .then(response => {\r\n commit('setSuppliers', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default menuHelper;","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\n\r\nVue.use(Vuex);\r\n\r\nconst dialogModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n isDialogVisible: false,\r\n message: \"\",\r\n\r\n isActionDialogVisible: false,\r\n actionMessage: \"\",\r\n\r\n isPictureDialogVisible: false,\r\n imgSrc: \"\",\r\n },\r\n mutations:\r\n {\r\n showDialog(state, message)\r\n {\r\n state.isDialogVisible = true;\r\n state.message = message;\r\n },\r\n hideDialog(state)\r\n {\r\n state.isDialogVisible = false;\r\n },\r\n\r\n showActionDialog(state, message)\r\n {\r\n state.isActionDialogVisible = true;\r\n state.actionMessage = message;\r\n },\r\n hideActionDialog(state)\r\n {\r\n state.isActionDialogVisible = false;\r\n },\r\n\r\n showPictureDialog(state, src)\r\n {\r\n state.isPictureDialogVisible = true;\r\n state.imgSrc = src;\r\n },\r\n hidePictureDialog(state)\r\n {\r\n state.isPictureDialogVisible = false;\r\n },\r\n setPictureDialogVisibility(state, val)\r\n {\r\n state.isPictureDialogVisible = val;\r\n }\r\n },\r\n actions:\r\n {\r\n\r\n },\r\n};\r\n\r\nexport default dialogModule;","\r\nimport TokenService from \"./token.service\";\r\nimport { RolesEnum } from '@/enums/RolesEnum';\r\n\r\nexport const userService = {\r\n login,\r\n logout,\r\n handleResponse,\r\n};\r\n\r\nfunction login(email, password) {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n const request = {\r\n \"email\" : email,\r\n \"password\" : password\r\n }\r\n \r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(request)\r\n };\r\n \r\n return fetch(`${process.env.VUE_APP_BASE_URL}/authentication/login`, requestOptions)\r\n .then(handleResponse)\r\n .then(user => {\r\n // login successful if there's a jwt token in the response\r\n if (user.token) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n let userCache = {\r\n token : user.token,\r\n userId : user.userId,\r\n refreshToken : user.refreshToken\r\n }\r\n \r\n let role = user.role;\r\n\r\n if (role == RolesEnum.Administrator)\r\n {\r\n userCache[\"rpKey\"] = TokenService.getRPKey(role);\r\n }\r\n\r\n TokenService.setUser(userCache);\r\n }\r\n resolve(user);\r\n return user;\r\n })\r\n .catch(error => reject(error))\r\n })\r\n \r\n \r\n}\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n TokenService.removeUser();\r\n}\r\n\r\nfunction handleResponse(response) {\r\n return response.text()\r\n .then(text => {\r\n if (!response.ok) {\r\n if (response.status === 401) {\r\n // auto logout if 401 response returned from api\r\n logout();\r\n location.reload(true);\r\n }\r\n\r\n return Promise.reject(text);\r\n }\r\n\r\n let data = text && JSON.parse(text);\r\n return data;\r\n });\r\n}","/* eslint-disable no-unused-vars */\r\nimport { userService, role } from '../../services';\r\nimport router from '@/router';\r\n\r\nconst user = JSON.parse(localStorage.getItem('user'));\r\nconst state = user\r\n ? { status: { loggedIn: true }, user, role: '' }\r\n : { status: {}, user: null, role: '' };\r\n\r\nconst actions = {\r\n login({ dispatch, commit }, {email, password, redirectPath}) {\r\n commit('loginRequest', { email });\r\n userService.login(email, password)\r\n .then(\r\n user => {\r\n commit('loginSuccess', user);\r\n\r\n // TODO: implement is admin flag\r\n const isAdmin = false;\r\n\r\n commit('authorizedModule/setAdmin', isAdmin, { root: true });\r\n router.push(redirectPath || '/dashboard')\r\n },\r\n error => {\r\n commit('dialog/showDialog', error, { root: true });\r\n commit('loginFailure', error);\r\n commit('authorizedModule/setAdmin', false, { root: true });\r\n dispatch('alert/error', error, { root: true });\r\n }\r\n );\r\n },\r\n logout({ commit }) {\r\n commit('authorizedModule/setAdmin', false, { root: true });\r\n userService.logout();\r\n router.push('/mijn-roadpursuit/login');\r\n commit('logout');\r\n },\r\n refreshToken({ commit }, accessToken) {\r\n commit('refreshToken', accessToken);\r\n },\r\n setRole({ commit }, role) {\r\n commit('setRole', role);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n loginRequest(state, email) {\r\n state.status = { loggingIn: true };\r\n state.user = email;\r\n },\r\n loginSuccess(state, user) {\r\n state.status = { loggedIn: true };\r\n state.user = user;\r\n },\r\n loginFailure(state) {\r\n state.status = {};\r\n state.user = null;\r\n },\r\n logout(state) {\r\n state.status = {};\r\n state.user = null;\r\n },\r\n refreshToken(state, accessToken) {\r\n state.status.loggedIn = true;\r\n state.user = { ...state.user, accessToken: accessToken };\r\n },\r\n setRole(state, role) {\r\n state.role = role;\r\n }\r\n};\r\n\r\nexport const account = {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n};","const state = {\r\n type: null,\r\n message: null\r\n};\r\n\r\nconst actions = {\r\n success({ commit }, message) {\r\n commit('success', message);\r\n },\r\n error({ commit }, message) {\r\n commit('error', message);\r\n },\r\n clear({ commit }) {\r\n commit('clear');\r\n }\r\n};\r\n\r\nconst mutations = {\r\n success(state, message) {\r\n state.type = 'alert-success';\r\n state.message = message;\r\n },\r\n error(state, message) {\r\n state.type = 'alert-danger';\r\n state.message = message;\r\n },\r\n clear(state) {\r\n state.type = null;\r\n state.message = null;\r\n }\r\n};\r\n\r\nexport const alert = {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n};\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport authorizedModule from './modules/authorized.module'\r\nimport roadtripModule from './modules/roadtrips.module';\r\nimport productModule from './modules/product.module';\r\nimport accountModule from \"./modules/account.module\";\r\nimport vehicleModule from \"./modules/vehicle.module\";\r\nimport supplierModule from \"./modules/supplier.module\";\r\nimport expenseModule from \"./modules/expense.module\";\r\nimport galleryModule from \"./modules/gallery.module\";\r\nimport reviewModule from \"./modules/roadtrip-review.module\";\r\nimport newsletterModule from \"./modules/newsletter.module\";\r\nimport storeModule from \"./modules/store.module\";\r\nimport menuHelper from \"./modules/menu-helper.module\";\r\nimport dialogModule from \"./modules/dialog.module\";\r\nimport { account } from './const/account';\r\nimport { alert } from './const/alert';\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state:\r\n {\r\n isPilot: true, // Pilot version does not yet support facturen and single vehicle information.\r\n selectedYear: new Date().getFullYear(),\r\n showFooter: true\r\n },\r\n getters:\r\n {\r\n },\r\n mutations:\r\n {\r\n setFooterVisibility(state, value)\r\n {\r\n state.showFooter = value;\r\n }\r\n },\r\n actions:\r\n {\r\n getAccountInformation({commit, dispatch}, userId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n dispatch('accountModule/getAccountOwnerBasePersoninfo', userId)\r\n .then((data) => {\r\n commit('accountModule/setAccountPersonInfo', data);\r\n\r\n dispatch('accountModule/getAddressFromAccountowner', userId)\r\n .then((data) => {\r\n commit('accountModule/setAccountAddress', data);\r\n resolve(data);\r\n });\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n reset({dispatch})\r\n {\r\n dispatch('accountModule/reset');\r\n },\r\n // eslint-disable-next-line no-empty-pattern\r\n emailTrack({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Email/Track?accountId=${request.accountId}&redirect=${request.url}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n }\r\n },\r\n modules:\r\n {\r\n roadtripModule: roadtripModule,\r\n productModule: productModule,\r\n authorizedModule: authorizedModule,\r\n accountModule: accountModule,\r\n vehicleModule: vehicleModule,\r\n supplierModule: supplierModule,\r\n expenseModule: expenseModule,\r\n galleryModule: galleryModule,\r\n reviewModule: reviewModule,\r\n newsletterModule: newsletterModule,\r\n storeModule: storeModule,\r\n menuHelper: menuHelper,\r\n dialog: dialogModule,\r\n alert,\r\n account\r\n }\r\n});","import store from \"@/store\";\r\nexport const kalender = [\r\n {\r\n path: `/kalender`,\r\n name: `Roadtrips in ${store.state.selectedYear}`,\r\n isMenu: true,\r\n requiresRoleCheck: true,\r\n component: () =>\r\n import(\"@/views/kalender/Kalender.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip`, // {trip-name}-{day-month-year}\r\n name: `Roadtrip (Store)`,\r\n requiresRoleCheck: true,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripStore.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip/aanmelden`, // {trip-name}-{day-month-year}/aanmelden\r\n name: `Roadtrip (Aanmelden)`,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripAanmelden.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip/aanmelden/gast`, // {trip-name}-{day-month-year}/aanmelden/gast\r\n name: `Roadtrip (Aanmelden - Gast)`,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripAanmeldenGast.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip/aanmelden/nieuw-account`, // {trip-name}-{day-month-year}/aanmelden/nieuw-account\r\n name: `Roadtrip (Aanmelden - Nieuw Account)`,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripAanmeldenNieuwAccount.vue\"),\r\n },\r\n];","export const admin = [\r\n {\r\n path: \"/dashboard/roadtrips/toevoegen\",\r\n name: \"RoadtripNieuw\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Roadtrip(Nieuw).vue\"),\r\n },\r\n {\r\n path: \"/dashboard/roadtrips/:id\",\r\n name: \"RoadtripBestaand\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Roadtrip(Bestaand).vue\"),\r\n },\r\n {\r\n path: \"/dashboard/roadtrips/wijzigen/:id\",\r\n name: \"RoadtripBestaandWijzigen\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Roadtrip(Bestaand)Wijzigen.vue\"),\r\n },\r\n {\r\n // the trip is auto-selected in the dropdown if given\r\n path: \"/dashboard/roadtrips/:trip/nieuwe-factuur\", // /{trip-name}-{day-month-year}\r\n name: \"Nieuwe Factuur - Roadtrip\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/NieuweFactuur.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/roadtrips/kies-trip/nieuwe-factuur\",\r\n name: \"Nieuwe Factuur\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/NieuweFactuur.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/financien\",\r\n name: \"Financiƫn\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Financiƫn.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/accounts\",\r\n name: \"Accounts\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Accounts.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/accounts/:accountId\",\r\n name: \"Accountgegevens\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Accountgegevens.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/voertuigen\",\r\n name: \"Voertuigen\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Voertuigen.vue\"),\r\n },\r\n\r\n {\r\n path: \"/dashboard/leverancieren\",\r\n name: \"Leverancieren\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Leverancieren.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/leverancieren/toevoegen\",\r\n name: \"LeverancierenNieuw\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Leverancier(Nieuw).vue\"),\r\n },\r\n {\r\n path: \"/dashboard/leverancier/:accountId\",\r\n name: \"Leverancier\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Leverancier.vue\"),\r\n },\r\n];","export const galerijenreviews = [\r\n {\r\n path: \"/galerij\",\r\n name: \"Galerij en reviews\",\r\n isMenu: true,\r\n component: () =>\r\n import(\"@/views/galerijenreviews/GalerijEnReviews.vue\"),\r\n },\r\n {\r\n path: `/galerij/:make`,\r\n name: `Merk galerij`,\r\n component: () =>\r\n import(\"@/views/galerijenreviews/MerkGalerij.vue\"),\r\n },\r\n {\r\n path: `/galerij/:make/:trip`,\r\n name: `Trip galerij`,\r\n component: () =>\r\n import(\"@/views/galerijenreviews/TripGalerij.vue\"),\r\n },\r\n];","export const overons = [\r\n {\r\n path: \"/over-ons\",\r\n name: \"Over ons\",\r\n isMenu: true,\r\n component: () =>\r\n import(\"@/views/overons/OverOns.vue\"),\r\n },\r\n];","export const misc = [\r\n {\r\n path: \"/404\",\r\n name: \"404 - Not Found\",\r\n component: () => import(\"@/views/misc/404Page.vue\"),\r\n },\r\n {\r\n path: \"/401\",\r\n name: \"401 - Unauthorized\",\r\n component: () => import(\"@/views/misc/401Unauthorized.vue\"),\r\n },\r\n {\r\n path: \"/unsubscribe/:unsubscribeString\",\r\n name: \"Unsubscribe\",\r\n component: () => import(\"@/views/misc/Unsubscribe.vue\"),\r\n },\r\n {\r\n path: \"/verwijderen/:deletionString\",\r\n name: \"ConfirmAccountDeletion\",\r\n component: () => import(\"@/views/misc/ConfirmAccountDeletion.vue\"),\r\n },\r\n {\r\n path: \"/wachtwoord-wijzigen/:passwordChangeString\",\r\n name: \"Wachtwoord Wijzigen Link\",\r\n component: () => import(\"@/views/misc/WachtwoordWijzigen.vue\"),\r\n },\r\n {\r\n path: \"/redirect/:accountId/:url\",\r\n name: \"Redirect\",\r\n component: () => import(\"@/views/misc/Redirect.vue\"),\r\n },\r\n {\r\n path: \"/aanmelding/:orderId\",\r\n name: \"RoadtripAanmelding\",\r\n component: () => import(\"@/views/misc/RoadtripAanmelding.vue\"),\r\n },\r\n];","export const tripdaymanager = [\r\n {\r\n path: \"/roadtrip/scanqr/:orderId\",\r\n name: \"Check In\",\r\n isMenu: false,\r\n requiresRoleCheck: true,\r\n component: () =>\r\n import(\"@/views/tripdaymanager/CheckIn.vue\"),\r\n },\r\n {\r\n path: \"/tripday/statistics/:roadtripId\",\r\n name: \"Trip Day Statistics\",\r\n isMenu: false,\r\n requiresPrimaryUser: true,\r\n component: () =>\r\n import(\"@/views/tripdaymanager/TripDayStatistics.vue\"),\r\n },\r\n];","import Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\nimport TokenService from \"@/services/token.service\";\r\n\r\nimport { home } from './home';\r\nimport { account } from './account';\r\nimport { dashboard } from './dashboard';\r\nimport { kalender } from './kalender';\r\nimport { admin } from './admin';\r\nimport { galerijenreviews } from './galerijenreviews';\r\nimport { overons } from './overons';\r\nimport { misc } from './misc';\r\nimport { tripdaymanager } from './tripdaymanager';\r\n\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes = [\r\n // the default route, when none of the above matches:\r\n { path: \"*\", component: () => import(\"../views/misc/404Page.vue\") }\r\n];\r\n\r\nroutes.push(...home);\r\nroutes.push(...account);\r\nroutes.push(...dashboard);\r\nroutes.push(...kalender);\r\nroutes.push(...admin);\r\nroutes.push(...galerijenreviews);\r\nroutes.push(...overons);\r\nroutes.push(...misc);\r\nroutes.push(...tripdaymanager);\r\n\r\nconst router = new VueRouter({\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => \r\n{\r\n let view = document.querySelector('.content-wrapper');\r\n if (view)\r\n {\r\n view.scrollIntoView({behavior: 'auto', block: 'start', inline: 'start'});\r\n }\r\n\r\n const loggedIn = localStorage.getItem('user');\r\n let currentRoute = routes.find(x => x.name == to.name);\r\n let requiresAuth = currentRoute && currentRoute.requiresAuth;\r\n let requiresPrimaryUser = currentRoute && currentRoute.requiresPrimaryUser;\r\n let requiresRoleCheck = currentRoute && currentRoute.requiresRoleCheck;\r\n let isAdmin = false;\r\n\r\n if(loggedIn)\r\n {\r\n const userId = JSON.parse(loggedIn)[\"userId\"];\r\n\r\n if (requiresRoleCheck || requiresPrimaryUser)\r\n {\r\n router.app.$store.dispatch('accountModule/isPrimaryUser', userId)\r\n .then(data => {\r\n isAdmin = data && TokenService.isAdmin();\r\n router.app.$store.commit('authorizedModule/setAdmin', isAdmin);\r\n\r\n if (requiresPrimaryUser && isAdmin) {\r\n next();\r\n }\r\n })\r\n .finally(() => {\r\n\r\n if (requiresPrimaryUser && !isAdmin) {\r\n // role not authorised so redirect to 404 page\r\n return next('/404');\r\n }\r\n })\r\n }\r\n // check if userId is still valid\r\n router.app.$store.dispatch('accountModule/isAccountOwnerValid', userId)\r\n .then(data => {\r\n router.app.$store.state.account.status.loggedIn = data;\r\n if(data)\r\n {\r\n router.app.$store.commit('authorizedModule/setUserId', userId);\r\n }\r\n else\r\n {\r\n router.app.$store.commit('authorizedModule/setUserId', '');\r\n TokenService.removeUser();\r\n return next('/mijn-roadpursuit/login');\r\n }\r\n })\r\n }\r\n else\r\n {\r\n router.app.$store.dispatch('reset');\r\n }\r\n\r\n // redirect to login page if not logged in and trying to access a restricted page\r\n if (requiresAuth && !loggedIn) {\r\n return next('/mijn-roadpursuit/login');\r\n }\r\n\r\n // check if route is restricted by role\r\n if(requiresPrimaryUser && !loggedIn)\r\n {\r\n return next('/404');\r\n }\r\n\r\n if(!requiresPrimaryUser)\r\n {\r\n next();\r\n }\r\n})\r\n\r\n\r\nexport default router;","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport { TiptapVuetifyPlugin } from 'tiptap-vuetify'\r\n\r\n// import CSS styles\r\nimport 'tiptap-vuetify/dist/main.css'\r\nimport 'vuetify/dist/vuetify.min.css'\r\n\r\n\r\n// Vuetify Object (as described in the Vuetify 2 documentation)\r\nconst vuetify = new Vuetify({\r\n icons: \r\n {\r\n iconfont: 'mdi',\r\n },\r\n theme: { \r\n themes: {\r\n dark: {\r\n primary: '#0071E3',\r\n secondary: '#b0bec5',\r\n accent: '#8c9eff',\r\n error: '#b71c1c',\r\n },\r\n },\r\n \r\n dark: true \r\n },\r\n options: {\r\n customProperties: true\r\n }\r\n});\r\n\r\n// use Vuetify's plugin\r\nVue.use(Vuetify)\r\n// use this package's plugin\r\nVue.use(TiptapVuetifyPlugin, {\r\n vuetify,\r\n iconsGroup: 'mdi'\r\n})\r\n\r\nexport default vuetify;\r\n","import axiosInstance from \"./api\";\r\nimport TokenService from \"./token.service\";\r\nimport axios from \"axios\";\r\nimport router from \"@/router\";\r\n\r\nconst setup = (store) => {\r\n axiosInstance.interceptors.request.use(\r\n (config) => {\r\n const token = TokenService.getLocalAccessToken();\r\n if (token) {\r\n config.headers[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n return config;\r\n },\r\n error => {\r\n Promise.reject(error)\r\n }\r\n );\r\n const interceptor = axiosInstance.interceptors.response.use(\r\n response => response,\r\n error => {\r\n const originalConfig = error.config;\r\n // Reject promise if usual error\r\n if (error.response && error.response.status !== 401) {\r\n return Promise.reject(error);\r\n }\r\n\r\n // When response code is 401, try to refresh the token.\r\n // Eject the interceptor so it doesn't loop in case\r\n // token refresh causes the 401 response\r\n axios.interceptors.response.eject(interceptor);\r\n\r\n if(!originalConfig._retry)\r\n {\r\n originalConfig._retry = true;\r\n return axios.post('/Authentication/RefreshToken', {\r\n Token: TokenService.getLocalRefreshToken()\r\n }).then(response => {\r\n store.dispatch('account/refreshToken', response.data.token);\r\n TokenService.updateLocalAccessToken(response.data.token);\r\n originalConfig.headers['Authorization'] = 'Bearer ' + response.data.token;\r\n return axios(originalConfig);\r\n }).catch(error => {\r\n if((error.response && error.response.status !== 401) && TokenService.getUser() != null)\r\n {\r\n store.dispatch('accountModule/revokeToken', { token: TokenService.getLocalRefreshToken()});\r\n store.commit('authorizedModule/setUserId', '');\r\n TokenService.removeUser();\r\n router.push('/mijn-roadpursuit/login');\r\n }\r\n return Promise.reject(error);\r\n }).finally(setup);\r\n }\r\n\r\n \r\n });\r\n};\r\nexport default setup;","import Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport vuetify from \"./plugins/vuetify\";\r\nimport axios from \"axios\";\r\nimport VueAxios from \"vue-axios\";\r\nimport Vuex from 'vuex';\r\nimport VueMeta from 'vue-meta'\r\nimport store from \"./store\";\r\nimport setupInterceptors from './services/setupInterceptors';\r\nVue.use(Vuex);\r\nVue.use(VueMeta);\r\nsetupInterceptors(store);\r\n\r\nVue.prototype.$API = process.env.VUE_APP_BASE_URL;\r\naxios.defaults.baseURL = Vue.prototype.$API;\r\nVue.use(VueAxios, axios);\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n Vue.config.devtools = false\r\n Vue.config.productionTip = false\r\n} \r\nrequire('@/assets/styles/main.css')\r\nrequire('@/assets/styles/darktheme.css')\r\n\r\nnew Vue({\r\n vuetify,\r\n store,\r\n router,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=style&index=0&id=43d41df4&prod&lang=css&\"","module.exports = __webpack_public_path__ + \"img/Instagram_Icon.4178cb0d.svg\";","export default {\r\n methods: \r\n {\r\n // Home\r\n goToHome()\r\n {\r\n this.goto(`/`);\r\n },\r\n\r\n // Account\r\n goToLoginOnly()\r\n {\r\n this.goto(`/mijn-roadpursuit/login`);\r\n },\r\n goToLogin(redirectPath)\r\n {\r\n this.gotoAndRedirect(`Login`, redirectPath);\r\n },\r\n goToChangePassword()\r\n {\r\n this.goto(`/mijn-roadpursuit/wachtwoord-wijzigen`);\r\n },\r\n\r\n // Dashboard\r\n goToMyDashboard()\r\n {\r\n this.goto(`/dashboard`);\r\n },\r\n goToAccount()\r\n {\r\n this.goto(`/dashboard/account`);\r\n },\r\n gotoDeleteAccount()\r\n {\r\n this.goto(`/dashboard/account/verwijderen`);\r\n },\r\n goToUpComingTrip(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/dashboard/aankomend/${title}`);\r\n },\r\n goToUpComingTripWijzigen(title)\r\n {\r\n this.goto(`/dashboard/aankomend/${title}/wijzigen`);\r\n },\r\n goToAllPastTrips()\r\n {\r\n this.goto(`/dashboard/afgelopen`);\r\n },\r\n goToPastTrip(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/dashboard/afgelopen/${title}`);\r\n },\r\n\r\n // Admin \r\n goToNewRoadtrip()\r\n {\r\n this.goto(`/dashboard/roadtrips/toevoegen`);\r\n },\r\n goToRoadtrip(id)\r\n {\r\n this.goto(`/dashboard/roadtrips/${id}`);\r\n },\r\n goToRoadtripWijzigen(id)\r\n {\r\n this.goto(`/dashboard/roadtrips/wijzigen/${id}`);\r\n },\r\n goToNewInvoice()\r\n {\r\n this.goto(`/dashboard/roadtrips/kies-trip/nieuwe-factuur`);\r\n },\r\n goToRoadtripNewInvoice(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/dashboard/roadtrips/${title}/nieuwe-factuur`);\r\n },\r\n goToFinances()\r\n {\r\n this.goto(`/dashboard/financien`);\r\n },\r\n goToAccounts()\r\n {\r\n this.goto(`/dashboard/accounts`);\r\n },\r\n goToAccountId(accountId)\r\n {\r\n this.goto(`/dashboard/accounts/${accountId}`);\r\n },\r\n goToCar(carId)\r\n {\r\n this.goto(`/dashboard/voertuigen/${carId}`);\r\n },\r\n goToCars()\r\n {\r\n this.goto(`/dashboard/voertuigen`);\r\n },\r\n goToSuppliers()\r\n {\r\n this.goto(`/dashboard/leverancieren`);\r\n },\r\n goToNewSupplier()\r\n {\r\n this.goto(`/dashboard/leverancieren/toevoegen`);\r\n },\r\n goToSupplierId(accountId)\r\n {\r\n this.goto(`/dashboard/leverancier/${accountId}`);\r\n },\r\n\r\n // Galerij\r\n goToGalleryAndReviews()\r\n {\r\n this.goto(`/galerij`);\r\n },\r\n goToGallery(title)\r\n {\r\n this.goto(`/galerij/${title.toLowerCase()}`);\r\n },\r\n goToGalleryTrip(make, trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/galerij/${make.toLowerCase()}/${title}`);\r\n },\r\n\r\n // Kalender\r\n goToMainCalendar()\r\n {\r\n this.goto(`/kalender`);\r\n },\r\n goToCalendar(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}`);\r\n },\r\n goToRoadtripAanmelden(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}/aanmelden`);\r\n },\r\n goToRoadtripAanmeldenGuest(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}/aanmelden/gast`);\r\n },\r\n goToRoadtripAanmeldenNewAccount(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}/aanmelden/nieuw-account`);\r\n },\r\n\r\n // trip day \r\n goToTripStatistics(roadtripId)\r\n {\r\n this.goto(`/tripday/statistics/${roadtripId}`);\r\n },\r\n goToCheckinPage(orderId)\r\n {\r\n this.goto(`/roadtrip/scanqr/${orderId}`);\r\n },\r\n\r\n goToAboutUs()\r\n {\r\n this.goto('/over-ons');\r\n },\r\n\r\n goto(path)\r\n {\r\n this.$router.push({ path: path });\r\n },\r\n gotoAndRedirect(path, redirectPath)\r\n {\r\n this.$router.push({ name: path, query: { redirect: redirectPath } });\r\n },\r\n getTitleFormat(trip, date)\r\n {\r\n return `${trip.replace(/\\s+/g, '-').toLowerCase()}-${date}`; //{trip-name}-{day-month-year}/\r\n }\r\n }\r\n}","export default {\r\n data: function ()\r\n {\r\n return {\r\n decimalSeparator: \",\",\r\n account_age_limit: 16\r\n }\r\n },\r\n methods: \r\n {\r\n getToday() {\r\n // Format: YYYY-MM-DD\r\n return (new Date(Date.now() - (new Date()).getTimezoneOffset() * 60000)).toISOString().substr(0, 10);\r\n },\r\n getCurrentYear()\r\n {\r\n return new Date().getFullYear();\r\n },\r\n getCurrentQuarter()\r\n {\r\n return Math.floor(new Date().getMonth() / 3 + 1);\r\n },\r\n getCurrentMonth()\r\n {\r\n const d = new Date();\r\n let month = d.getMonth();\r\n // returns the month (from 0 to 11)\r\n return month + 1;\r\n },\r\n formatDate (date) {\r\n if (!date) return null\r\n // Format: DD-MM-YYYY from input YYYY-MM-DD\r\n const [year, month, day] = date.split('-')\r\n return `${day}-${month}-${year}`\r\n },\r\n formatDateWithoutTime(date)\r\n {\r\n if (!date) return null;\r\n \r\n // return format DD-MM-YYYY\r\n date = this.getDateOnly(date);\r\n return this.formatDate(date);\r\n },\r\n getDateOnly(date)\r\n {\r\n // remove time information from input YYYY-MM-DDTHH:mm:ss\r\n if (!date) return null;\r\n // returns YYYY-MM-DD\r\n return date.substr(0, 10);\r\n },\r\n getYearOnly(date)\r\n {\r\n if (!date) return null;\r\n // returns YYYY\r\n return date.substr(0, 4);\r\n },\r\n getMonthOnly(date)\r\n {\r\n if (!date) return null;\r\n // returns MM from YYYY-MM\r\n return date.substr(5, 2);\r\n },\r\n getTimeOnly(date)\r\n {\r\n // get time information from input YYYY-MM-DDTHH:mm:ss\r\n if (!date) return null;\r\n // returns HH:mm\r\n return date.substr(11, 5);\r\n },\r\n minBirthdate() {\r\n return '1900-01-01';\r\n },\r\n maxBirthdate(ageLimit) {\r\n // Format: YYYY-MM-DD\r\n // minimum age should be 16 years old.\r\n const [year, month, day] = this.getToday().split('-');\r\n return `${year - ageLimit}-${month}-${day}`;\r\n },\r\n \r\n parseDate (date) {\r\n if (!date) return null\r\n \r\n const [day, month, year] = date.split('-') // return YYYY-MM-DD\r\n return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`\r\n },\r\n formatDayMonth(date)\r\n {\r\n if(date == undefined) return date;\r\n \r\n // e.g. 13 september\r\n const d = new Date(date);\r\n const [,, day] = date.split('-')\r\n return `${day} ${d.toLocaleString('nl', { month: 'long' })}`;\r\n },\r\n formatDayMonthYear(date)\r\n {\r\n if(date == undefined) return date;\r\n\r\n // e.g. 14 juli, 2018\r\n const d = new Date(date);\r\n const [year,, day] = date.split('-')\r\n return `${day} ${d.toLocaleString('nl', { month: 'long' })}, ${year}`;\r\n },\r\n addDays(date, days)\r\n {\r\n var newDate = new Date(new Date(date).setDate(new Date(date).getDate() + days));\r\n return newDate.toISOString().substr(0, 10);\r\n },\r\n\r\n // currency\r\n getCurrency(amount)\r\n {\r\n if(amount == undefined) return '';\r\n \r\n return (amount).toLocaleString('nl-NL', {\r\n style: 'currency',\r\n currency: 'EUR',\r\n })\r\n },\r\n getLocalNumericDisplay(input)\r\n {\r\n const defaultEmpty = input == 0 ? \"0\" : \"\";\r\n return input ? input.toString().replace('.', this.decimalSeparator) : defaultEmpty;\r\n },\r\n localParseFloat(input)\r\n {\r\n let num = input.replace(this.decimalSeparator, \".\");\r\n\r\n // Now it can be parsed\r\n return this.convertToNullableFloat(num);\r\n },\r\n convertToNullableFloat(num)\r\n {\r\n let number = parseFloat(num);\r\n if(isNaN(number))\r\n {\r\n return null; // prevent parsing errors to nullable decimal.\r\n }\r\n\r\n return number;\r\n },\r\n\r\n getPersonInitials(firstname, lastname)\r\n {\r\n const names = lastname.split(' ');\r\n return `${firstname.charAt(0)}${names[names.length - 1].charAt(0)}`;\r\n },\r\n }\r\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=010574e2&prod&lang=css&\"","module.exports = __webpack_public_path__ + \"img/facebook-logo.7283f29b.svg\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=4f8bb9f0&prod&lang=css&\""],"sourceRoot":""}