{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/icon.png","webpack:///./src/views/Summary.vue?277e","webpack:///./src/views/Home.vue?5fe7","webpack:///./src/views/Home.vue?a714","webpack:///./src/components/StreckeComponent.vue?6359","webpack:///./src/App.vue?e447","webpack:///./src/App.vue?dad8","webpack:///./src/App.vue?018a","webpack:///./src/App.vue","webpack:///./src/views/Home.vue?97a1","webpack:///./src/components/StreckeComponent.vue?5807","webpack:///./src/models/einsatzDto.ts","webpack:///./src/components/StreckeComponent.vue?ef3e","webpack:///./src/components/StreckeComponent.vue?2567","webpack:///./src/components/StreckeComponent.vue","webpack:///./src/models/strecke.ts","webpack:///./src/views/Home.vue?88c7","webpack:///./src/views/Home.vue?4a42","webpack:///./src/views/Home.vue","webpack:///./src/views/Einsaetze.vue?e23d","webpack:///./src/views/Einsaetze.vue?195a","webpack:///./src/views/Einsaetze.vue?e07f","webpack:///./src/views/Einsaetze.vue","webpack:///./src/views/Summary.vue?765d","webpack:///./src/views/Summary.vue?e010","webpack:///./src/views/Summary.vue?5071","webpack:///./src/views/Summary.vue","webpack:///./src/router/index.ts","webpack:///./src/store/db.ts","webpack:///./src/store/index.ts","webpack:///./src/registerServiceWorker.js","webpack:///./src/plugins/vuetify.ts","webpack:///./src/plugins/axios.js","webpack:///./src/main.ts"],"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","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_c","_self","_setupProxy","VApp","VAppBar","attrs","staticClass","VImg","_v","VTextField","model","callback","$$v","fahrerId","expression","VSpacer","staticStyle","_s","dbVersion","version","VIcon","syncing","syncColor","on","$event","checkOnline","VMain","staticRenderFns","online","mounted","openDatabase","then","$store","dispatch","hasLocalChanges","commit","state","request","indexedDB","open","onupgradeneeded","event","console","log","db","target","onerror","oldVersion","deleteObjectStore","objectStore","createObjectStore","keyPath","createIndex","unique","einsatzStore","ex","onsuccess","deleteDatabase","location","reload","getters","axios","response","alert","App","component","VContainer","VBtn","neueStreckeAnzeigen","_e","edit","running","summaryAnzeigen","VTabs","einsatzart","VTab","class","activeEinsatzart","style","rows","columns","_l","strecke","uniqueId","inaktiveStrecken","VMenu","scopedSlots","_u","fn","_g","_b","VList","VListItem","aktiviereStrecke","anzeige","neueStrecke","VDialog","neueStreckeDialog","VCard","$set","neueStreckeSpeichern","startStop","color","VRow","runningPaused","streckenTitle","openEinsaetze","kundeBearbeitenDialog","deactivateKunde","_f","prozent","timeRunning","kundeSpeichern","parallelTaskDialog","start","Date","ende","kundeId","einsatzartId","lastUpdate","hasChanged","deleted","extend","interval","now","einsaetzeBearbeiten","einsatzLoeschenDialog","einsatzBearbeitenDialog","selektierterEinsatz","localStart","previousProzent","item","localStorage","getItem","oldStart","JSON","parse","setTimeout","setItem","stringify","removeItem","prozentChanged","starten","timeRunningInSeconds","stop","runningStrecken","strecken","filter","dif","diff","einsatz","EinsatzDto","setSeconds","newEnd","add","set","toDate","requestAnimationFrame","setTimeRunning","timeStamp","totalMinutes","Math","floor","totalSeconds","totalHours","restSeconds","alleEinsaetze","einsaetze","e","sortierteEinsaetze","sort","a","b","aktiv","$router","params","streckeId","StreckeComponent","verrechnungsmodellId","kundennummer","streckenname","position","k","height","innerHeight","width","innerWidth","targetWidth","ceil","Strecke","Home","components","VDataTable","text","props","neuerEinsatz","datePickerProps","timePickerProps","currentEditStartDate","slot","currentEditEndeDate","currentEditProzent","_n","VSelect","einsatzArten","kunden","einsatzSpeichern","einsatzLöschen","loadEinsaetze","post","toString","newDate","EinsaetzeComponent","VProgressCircular","loading","selectedDateFormated","datePickerOpen","VDatePicker","internalDate","loadEinsätze","total","pflügen","stunden","minutes","fräsen","fahrer","index","format","onInternalDateChange","saison","pop","use","routes","path","Summary","Einsaetze","router","GetStrecken","myPromise","Promise","resolve","reject","dbRequest","transaction","getAll","SaveKunde","kunde","put","SaveEinsatz","GetChangedEinsaetze","range","IDBKeyRange","only","GetFahrerId","undefined","SaveFahrerId","GetLastSyncKunden","SaveLastSyncKunden","lastSync","GetLastSyncEinsaetze","SaveLastSyncEinsaetze","syncEinsaetzeIsRunning","Store","onlineInterval","mutations","setLocalChanges","hasChanges","setStrecken","addOrUpdateStrecke","streckeImState","addOrUpdateEinsatz","vorhandeneEinsaetze","vorhandenerEinsatz","setOnlineInterval","setFahrerId","actions","loadStreckenIntoState","store","Db","loadFahrerIdIntoState","saveFahrerId","saveStrecke","saveEinsatz","syncKunden","kundenZumUpdate","lastSyncKunden","encodeURIComponent","syncEinsaetze","einsaetzeZumUpdate","setupSignalR","context","confirm","close","error","theme","dark","baseURL","withCredentials","_axios","interceptors","config","user","headers","Authorization","Plugin","install","Vue","options","defineProperties","$axios","locale","productionTip","round","toFixed","vuetify","render","h","$mount"],"mappings":"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","file":"js/app.a6cc7220.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 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// 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\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 \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","module.exports = __webpack_public_path__ + \"img/icon.b5d350e1.png\";","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!./Summary.vue?vue&type=style&index=0&id=b0320a14&prod&scoped=true&lang=css\"","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!./Home.vue?vue&type=style&index=1&id=d5cc6054&prod&scoped=true&lang=css\"","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!./Home.vue?vue&type=style&index=0&id=d5cc6054&prod&scoped=true&lang=css\"","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!./StreckeComponent.vue?vue&type=style&index=0&id=faef5df6&prod&scoped=true&lang=css\"","import { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(VApp,[_c(VAppBar,{attrs:{\"app\":\"\",\"color\":\"primary\",\"dark\":\"\",\"height\":\"30px\"}},[_c('div',{staticClass:\"d-flex align-center text-h5 font-weight-light\"},[_c(VImg,{staticClass:\"shrink mr-5\",attrs:{\"alt\":\"Snowi Logo\",\"contain\":\"\",\"src\":require(\"./assets/icon.png\"),\"transition\":\"scale-transition\",\"width\":\"20\"}}),_vm._v(\" Snowi \"),_c(VTextField,{staticClass:\"ml-4 mt-4\",attrs:{\"dense\":\"\"},model:{value:(_vm.fahrerId),callback:function ($$v) {_vm.fahrerId=$$v},expression:\"fahrerId\"}})],1),_c(VSpacer),_c('span',{staticStyle:{\"font-size\":\"10px\",\"line-height\":\"10px\",\"padding-right\":\"2em\"}},[_vm._v(\"DB \"+_vm._s(_vm.dbVersion)+\" | V\"+_vm._s(_vm.version))]),_c(VIcon,{attrs:{\"medium\":\"\",\"disabled\":_vm.syncing,\"color\":_vm.syncColor},on:{\"click\":function($event){return _vm.checkOnline()}}},[_vm._v(\" mdi-sync-alert \")])],1),_c(VMain,[_c('router-view')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport { set } from 'vue/types/umd';\r\nimport { EinsatzDto } from './models/einsatzDto';\r\nimport { KundeDto } from './models/kundeDto';\r\n\r\n@Component\r\nexport default class App extends Vue {\r\n\tprivate online: boolean = false;\r\n\tprivate syncing: boolean = false;\r\n\tprivate version: number = 18;\r\n\tprivate dbVersion: number = 11;\r\n\r\n\tprivate mounted() {\r\n\t\tthis.openDatabase().then(async() => {\r\n\t\t\tvar hasLocalChanges = await this.$store.dispatch('hasLocalChanges');\r\n\t\t\tthis.$store.commit('setLocalChanges', hasLocalChanges)\r\n\t\t\t/* this.checkOnline();\r\n\t\t\tclearInterval(this.$store.state.onlineInterval);\r\n\t\t\tconst interval = setInterval(() => {\r\n\t\t\t\tthis.checkOnline();\r\n\t\t\t}, 10000);\r\n\t\t\tthis.$store.commit('setOnlineInterval', interval); */\r\n\t\t});\r\n\t}\r\n\r\n\tprivate get syncColor() {\r\n\t\tif (this.$store.state.hasLocalChanges) {\r\n\t\t\treturn 'red';\r\n\t\t} else {\r\n\t\t\treturn 'green';\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async openDatabase() {\r\n\t\tconst request = indexedDB.open(\"snowi\", this.dbVersion);\r\n\t\trequest.onupgradeneeded = (event: any) => {\r\n\t\t\tconsole.log('db upgrade needed');\r\n\t\t\tconst db = event.target.result;\r\n\t\t\tdb.onerror = (event:any) => {\r\n\t\t\t\tconsole.log('db upgrade failed');\r\n\t\t\t}\r\n\t\t\t// Create an objectStore to hold information about our customers. We're\r\n\t\t\t// going to use \"ssn\" as our key path because it's guaranteed to be\r\n\t\t\t// unique - or at least that's what I was told during the kickoff meeting.\r\n\t\t\ttry {\r\n\t\t\t\tconsole.log('Old version: ' + event.oldVersion);\r\n\t\t\t\tif (event.oldVersion > 0) {\r\n\t\t\t\t\t// Wenn es die DB nicht gibt, dann ist die Version 0\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tdb.deleteObjectStore('kunden');\r\n\t\t\t\t\t\tdb.deleteObjectStore('settings');\r\n\t\t\t\t\t\tdb.deleteObjectStore('einsaetze');\r\n\t\t\t\t\t} catch {\r\n\t\t\t\t\t\tconsole.log('cannot delete kunden, settings, einsätze')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst objectStore = db.createObjectStore(\"kunden\", { keyPath: \"uniqueId\" });\r\n\r\n\t\t\t\t// Create an index to search customers by name. We may have duplicates\r\n\t\t\t\t// so we can't use a unique index.\r\n\t\t\t\tobjectStore.createIndex(\"lastUpdate\", \"lastUpdate\", { unique: false });\r\n\t\t\t\tobjectStore.createIndex(\"hasChanged\", \"hasChanged\", { unique: false });\r\n\t\t\t\tdb.createObjectStore(\"settings\", { keyPath: \"key\" });\r\n\r\n\t\t\t\tconst einsatzStore = db.createObjectStore(\"einsaetze\", { keyPath: \"uniqueId\" });\r\n\t\t\t\teinsatzStore.createIndex(\"lastUpdate\", \"lastUpdate\", { unique: false });\r\n\t\t\t\teinsatzStore.createIndex(\"hasChanged\", \"hasChanged\", { unique: false });\r\n\r\n\t\t\t} catch (ex) {\r\n\t\t\t\tconsole.log(ex);\r\n\t\t\t}\r\n\t\t}\r\n\t\trequest.onsuccess = (event:any) => {\r\n\t\t\tif (event.target.result.version != this.dbVersion) {\r\n\t\t\t\tindexedDB.deleteDatabase('snowi');\r\n\t\t\t\tlocation.reload();\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log('db opend successfully');\r\n\t\t\t\tconsole.log(event)\r\n\t\t\t\tthis.$store.dispatch('loadStreckenIntoState');\r\n\t\t\t\tthis.$store.dispatch('loadFahrerIdIntoState');\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t}\r\n\r\n\tprivate get fahrerId() {\r\n\t\treturn this.$store.getters.fahrerId;\r\n\t}\r\n\r\n\tprivate set fahrerId(value: string) {\r\n\t\tthis.$store.dispatch('saveFahrerId', value);\r\n\t}\r\n\r\n\tprivate async checkOnline() {\r\n\t\tconsole.log('check online status');\r\n\t\tthis.syncing = true;\r\n\t\ttry {\r\n\t\t\tconst response = await (this as any).axios.get(`online/isOnline`);\r\n\t\t\tif (response.data == true) {\r\n\t\t\t\tthis.online = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.online = false;\r\n\t\t\t}\r\n\t\t\tif (this.online) {\r\n\t\t\t\tawait this.$store.dispatch('syncKunden');\r\n\t\t\t\tawait this.$store.dispatch('syncEinsaetze');\r\n\t\t\t\talert('Alle Daten in der Cloud gespeichert.');\r\n\t\t\t\tthis.$store.commit('setLocalChanges', false);\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tthis.online = false;\r\n\t\t\tconsole.log(error);\r\n\t\t} finally {\r\n\t\t\tif (!this.online) {\r\n\t\t\t\talert('Keine Internetverbindung gefunden.');\r\n\t\t\t}\r\n\t\t\tthis.syncing = false;\r\n\t\t}\r\n\t}\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/ts-loader/index.js??ref--13-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=script&lang=ts\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/ts-loader/index.js??ref--13-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=script&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1516e6ba\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(VContainer,{staticClass:\"pt-0\",attrs:{\"fluid\":\"\"}},[(_vm.edit)?_c(VBtn,{attrs:{\"title\":\"Neue Strecke\",\"fab\":\"\",\"bottom\":\"\",\"right\":\"\",\"fixed\":\"\"},on:{\"click\":function($event){return _vm.neueStreckeAnzeigen()}}},[_c(VIcon,[_vm._v(\"mdi-plus\")])],1):_vm._e(),(!_vm.edit && !_vm.running)?_c(VBtn,{attrs:{\"title\":\"Fahrten\",\"fab\":\"\",\"bottom\":\"\",\"right\":\"\",\"fixed\":\"\"},on:{\"click\":function($event){return _vm.summaryAnzeigen()}}},[_c(VIcon,[_vm._v(\"mdi-eye\")])],1):_vm._e(),(_vm.fahrerId != '')?_c(VTabs,{attrs:{\"color\":\"red\",\"background-color\":\"\",\"grow\":\"\"},model:{value:(_vm.einsatzart),callback:function ($$v) {_vm.einsatzart=$$v},expression:\"einsatzart\"}},[_c(VTab,{class:{activeEinsatzart: _vm.einsatzart == 0},attrs:{\"disabled\":_vm.running}},[_vm._v(\"Pflügen\")]),_c(VTab,{class:{activeEinsatzart: _vm.einsatzart == 1},attrs:{\"disabled\":_vm.running}},[_vm._v(\"Fräsen\")])],1):_vm._e(),(_vm.fahrerId != '')?_c('div',{staticClass:\"grid\",style:({'--rows': _vm.rows, '--columns': _vm.columns})},_vm._l((_vm.strecken),function(strecke){return _c('div',{key:strecke.uniqueId},[_c('strecke-component',{attrs:{\"strecke\":strecke,\"einsatzart\":_vm.einsatzart,\"edit\":_vm.edit,\"fahrerId\":_vm.fahrerId}})],1)}),0):_c('h1',{staticClass:\"mt-5 text-h4 font-weight-light\"},[_vm._v(\"Bitte Fahrernamen oben eingeben\")]),(_vm.inaktiveStrecken.length > 0)?_c(VMenu,{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c(VBtn,_vm._g(_vm._b({attrs:{\"title\":\"Alte Strecken wieder einblenden\",\"icon\":\"\",\"small\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_c(VIcon,{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,false,2952451982)},[_c(VList,{attrs:{\"dense\":\"\"}},[_vm._l((_vm.inaktiveStrecken),function(strecke){return _c(VListItem,{key:strecke.uniqueId,on:{\"click\":function($event){return _vm.aktiviereStrecke(strecke)}}},[_c(VListItemTitle,[_vm._v(\" \"+_vm._s(strecke.anzeige)+\" \")])],1)}),_c(VListItem,{on:{\"click\":function($event){_vm.edit = !_vm.edit}}},[_c(VListItemTitle,[_vm._v(\" Bearbeiten \")])],1)],2)],1):_vm._e(),(_vm.neueStrecke != null)?_c(VDialog,{attrs:{\"width\":\"500\"},model:{value:(_vm.neueStreckeDialog),callback:function ($$v) {_vm.neueStreckeDialog=$$v},expression:\"neueStreckeDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\"Neue Strecke erfassen\")]),_c(VCardText,[_c(VTextField,{attrs:{\"label\":\"Anzeige\"},model:{value:(_vm.neueStrecke.anzeige),callback:function ($$v) {_vm.$set(_vm.neueStrecke, \"anzeige\", $$v)},expression:\"neueStrecke.anzeige\"}}),_c(VTextField,{attrs:{\"label\":\"Kundennummer\",\"hint\":\"Nummer des Kunden im Sanitop\"},model:{value:(_vm.neueStrecke.kundennummer),callback:function ($$v) {_vm.$set(_vm.neueStrecke, \"kundennummer\", $$v)},expression:\"neueStrecke.kundennummer\"}}),_c(VTextField,{attrs:{\"label\":\"Streckenname\",\"hint\":\"Name der Strecke auf der Rechnung\"},model:{value:(_vm.neueStrecke.streckenname),callback:function ($$v) {_vm.$set(_vm.neueStrecke, \"streckenname\", $$v)},expression:\"neueStrecke.streckenname\"}})],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.neueStreckeSpeichern()}}},[_vm._v(\"Speichern\")]),_c(VBtn,{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.neueStreckeDialog = false}}},[_vm._v(\"Schliessen\")])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(VCard,{staticClass:\"strecke\",staticStyle:{\"height\":\"100%\"},on:{\"click\":function($event){return _vm.startStop()}}},[_c(VCardTitle,{staticClass:\"pa-0 pl-3\",style:({ color: _vm.strecke.running ? 'red' : 'white'})},[_c(VRow,{staticClass:\"mx-0\",staticStyle:{\"position\":\"relative\",\"font-size\":\"0.7em\"},attrs:{\"align\":\"center\"}},[_c('span',{class:{ runningPaused: !_vm.strecke.running, streckenTitle: _vm.strecke.running }},[_vm._v(\" \"+_vm._s(_vm.strecke.anzeige)+\" \")]),_c(VSpacer),(_vm.edit)?_c(VMenu,{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c(VBtn,_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_c(VIcon,{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,false,1343604823)},[_c(VList,{attrs:{\"dense\":\"\"}},[_c(VListItem,{on:{\"click\":function($event){return _vm.openEinsaetze()}}},[_c(VListItemTitle,[_vm._v(\" Einsätze bearbeiten \")])],1),_c(VListItem,{on:{\"click\":function($event){_vm.kundeBearbeitenDialog = true}}},[_c(VListItemTitle,[_vm._v(\" Strecke bearbeiten \")])],1),_c(VListItem,{on:{\"click\":function($event){return _vm.deactivateKunde()}}},[_c(VListItemTitle,[_vm._v(\" Strecke nicht mehr anzeigen \")])],1)],1)],1):_vm._e()],1)],1),(_vm.strecke.running)?_c(VCardText,{staticStyle:{\"padding-bottom\":\"0\",\"color\":\"red\",\"font-size\":\"1.2em\"}},[_c('span',{staticStyle:{\"font-size\":\"0.8em\"}},[_vm._v(_vm._s(_vm._f(\"formatInt\")(_vm.prozent * 100))+\"%\")]),_c('span',{staticStyle:{\"padding-left\":\"20px\"}},[_vm._v(_vm._s(_vm.timeRunning))])]):_vm._e(),_c(VDialog,{attrs:{\"width\":\"500\"},model:{value:(_vm.kundeBearbeitenDialog),callback:function ($$v) {_vm.kundeBearbeitenDialog=$$v},expression:\"kundeBearbeitenDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\"Kunde bearbeiten\")]),_c(VCardText,[_c(VTextField,{attrs:{\"label\":\"Anzeige\"},model:{value:(_vm.strecke.anzeige),callback:function ($$v) {_vm.$set(_vm.strecke, \"anzeige\", $$v)},expression:\"strecke.anzeige\"}}),_c(VTextField,{attrs:{\"label\":\"Kundennummer\",\"hint\":\"Nummer des Kunden im Sanitop\"},model:{value:(_vm.strecke.kundennummer),callback:function ($$v) {_vm.$set(_vm.strecke, \"kundennummer\", $$v)},expression:\"strecke.kundennummer\"}}),_c(VTextField,{attrs:{\"label\":\"Streckenname\",\"hint\":\"Name der Strecke auf der Rechnung\"},model:{value:(_vm.strecke.streckenname),callback:function ($$v) {_vm.$set(_vm.strecke, \"streckenname\", $$v)},expression:\"strecke.streckenname\"}}),_c(VTextField,{attrs:{\"label\":\"Position\",\"hint\":\"Wo ist die Kachel\",\"type\":\"number\"},model:{value:(_vm.strecke.position),callback:function ($$v) {_vm.$set(_vm.strecke, \"position\", $$v)},expression:\"strecke.position\"}})],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.kundeSpeichern()}}},[_vm._v(\"Speichern\")]),_c(VBtn,{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.kundeBearbeitenDialog = false}}},[_vm._v(\"Schliessen\")])],1)],1)],1),(_vm.parallelTaskDialog)?_c(VDialog,{attrs:{\"width\":\"500\"},model:{value:(_vm.parallelTaskDialog),callback:function ($$v) {_vm.parallelTaskDialog=$$v},expression:\"parallelTaskDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\"Sicher?\")]),_c(VCardText,[_vm._v(\" Diese Zeit wird zwischen mehreren Kunden aufgeteilt. Stimmt das?\"),_c('br'),_vm._v(\" Falls nicht, auf Nein klicken und den alten Timer zuerst stoppen. \")]),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){_vm.strecke.running = true; _vm.parallelTaskDialog = false}}},[_vm._v(\"Ja\")]),_c(VBtn,{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.parallelTaskDialog = false}}},[_vm._v(\"Nein\")])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class EinsatzDto {\r\n public uniqueId: string = '';\r\n public fahrerId: string = '';\r\n public start: Date = new Date();\r\n public ende: Date | null = null;\r\n public prozent: number = 1;\r\n public kundeId: string = '';\r\n public einsatzartId: number = 0;\r\n public lastUpdate: Date = new Date();\r\n public hasChanged: number = 0;\r\n public deleted: boolean = false;\r\n}","\r\nimport dayjs from 'dayjs';\r\nimport duration from 'dayjs/plugin/duration'\r\ndayjs.extend(duration);\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport { EinsatzDto } from '../models/einsatzDto';\r\nimport { Strecke } from '../models/strecke';\r\n//@ts-ignore\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\n@Component\r\nexport default class StreckeComponent extends Vue {\r\n @Prop()\r\n private strecke!: Strecke;\r\n @Prop()\r\n private einsatzart!: number;\r\n @Prop()\r\n private fahrerId!: string;\r\n @Prop()\r\n private edit!: boolean;\r\n private interval: any = 0;\r\n private now: Date = new Date();\r\n private kundeBearbeitenDialog: boolean = false;\r\n private einsaetzeBearbeiten: boolean = false;\r\n private einsatzLoeschenDialog: boolean = false;\r\n private einsatzBearbeitenDialog: boolean = false;\r\n private parallelTaskDialog: boolean = false;\r\n private selektierterEinsatz: EinsatzDto | null = null;\r\n private localStart: Date | null = null;\r\n private previousProzent: number = 0;\r\n private timeRunning: string = '';\r\n\r\n private mounted() {\r\n var item = localStorage.getItem(`running${this.strecke.uniqueId}`);\r\n if (item != null) {\r\n var oldStart = JSON.parse(item);\r\n console.log('Alter Startpunkt gefunden');\r\n console.log(oldStart);\r\n this.strecke.running = true\r\n setTimeout(() => this.start = new Date(oldStart.start), 2000);\r\n }\r\n }\r\n\r\n private get start() {\r\n return this.localStart;\r\n }\r\n private set start(start: Date | null) {\r\n this.localStart = start;\r\n if (start != null) {\r\n localStorage.setItem(`running${this.strecke.uniqueId}`, JSON.stringify({\r\n start: this.localStart,\r\n }))\r\n } else {\r\n localStorage.removeItem(`running${this.strecke.uniqueId}`);\r\n }\r\n }\r\n\r\n private startStop() {\r\n if (!this.strecke.running) {\r\n // starten\r\n if (this.prozent > 0) {\r\n // andere laufen schon\r\n this.parallelTaskDialog = true;\r\n return;\r\n }\r\n }\r\n this.strecke.running = !this.strecke.running;\r\n }\r\n\r\n \r\n @Watch('prozent')\r\n private prozentChanged() {\r\n if (this.strecke.running) {\r\n if (this.start == null) {\r\n // neu gestartet\r\n this.starten();\r\n } else {\r\n // lief schon\r\n \r\n if (this.timeRunningInSeconds > 20) {\r\n // Neuer Einsatz\r\n this.stop();\r\n this.starten();\r\n } else {\r\n // einfach weiterlaufen lassen\r\n this.previousProzent = this.prozent;\r\n }\r\n }\r\n } else {\r\n if (this.start == null) {\r\n // war schon vorher nicht am Laufen. Nichts machen.\r\n } else {\r\n // wurde beendet\r\n this.stop();\r\n }\r\n }\r\n }\r\n\r\n private get prozent() {\r\n const runningStrecken = this.$store.getters.strecken.filter((s:Strecke) => s.running).length;\r\n if (runningStrecken > 0) {\r\n return 1 / runningStrecken;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private get timeRunningInSeconds() : number{\r\n if (this.start == null) {\r\n return 0;\r\n }\r\n const start = dayjs(this.start);\r\n const now = dayjs(this.now);\r\n const dif = now.diff(start, 'second');\r\n return dif;\r\n }\r\n\r\n private stop() {\r\n\r\n if (this.timeRunningInSeconds > 20) {\r\n var einsatz = new EinsatzDto();\r\n this.start?.setSeconds(0);\r\n ///@ts-ignore\r\n einsatz.start = this.start;\r\n einsatz.kundeId = this.strecke.uniqueId;\r\n einsatz.einsatzartId = this.einsatzart;\r\n einsatz.prozent = this.previousProzent;\r\n einsatz.uniqueId = uuidv4();\r\n einsatz.fahrerId = this.$store.getters.fahrerId;\r\n var newEnd = dayjs().add(1, 'minute').set('second', 0).toDate();\r\n einsatz.ende = newEnd;\r\n console.log(this.strecke.anzeige + ' ' + einsatz.prozent * 100 + '% ' + this.timeRunningInSeconds);\r\n this.$store.dispatch('saveEinsatz', einsatz);\r\n this.$store.commit('setLocalChanges', true);\r\n }\r\n this.start = null;\r\n }\r\n\r\n private starten() {\r\n this.start = new Date();\r\n this.interval = window.requestAnimationFrame(this.setTimeRunning);\r\n this.previousProzent = 1 / this.$store.getters.strecken.filter((s:Strecke) => s.running).length\r\n }\r\n \r\n private setTimeRunning(timeStamp: any) {\r\n this.now = new Date();\r\n const dif = this.timeRunningInSeconds;\r\n if (dif <= 0) {\r\n this.timeRunning = '';\r\n }\r\n else if (dif <= 59) {\r\n this.timeRunning = '' + dif;\r\n } else if (dif < 3600) {\r\n const totalMinutes = Math.floor(dif/60);\r\n const totalSeconds = dif - (totalMinutes*60) \r\n this.timeRunning = `${totalMinutes}:${totalSeconds}`;\r\n } else {\r\n const totalHours = Math.floor(dif/(60*60)) \r\n var restSeconds = dif - (totalHours*60*60) \r\n const totalMinutes = Math.floor(restSeconds/60)\r\n restSeconds = restSeconds - (totalMinutes*60)\r\n this.timeRunning = `${totalHours}:${totalMinutes}:${restSeconds}`;\r\n }\r\n\r\n if (this.start != null) {\r\n this.interval = window.requestAnimationFrame(this.setTimeRunning);\r\n }\r\n }\r\n\r\n private get kunden() {\r\n return this.$store.getters.strecken;\r\n }\r\n\r\n private get einsaetze() {\r\n var alleEinsaetze = this.$store.getters.einsaetze.filter((e: EinsatzDto) =>\r\n e.kundeId == this.strecke.uniqueId && !e.deleted);\r\n var sortierteEinsaetze = alleEinsaetze.sort((a: any, b: any) => {\r\n //@ts-ignore\r\n return new Date(b.start) - new Date(a.start);\r\n });\r\n return sortierteEinsaetze;\r\n }\r\n\r\n \r\n\r\n deactivateKunde() {\r\n this.strecke.aktiv = false;\r\n this.kundeSpeichern();\r\n }\r\n kundeSpeichern() {\r\n this.$store.dispatch('saveStrecke', this.strecke);\r\n this.kundeBearbeitenDialog = false;\r\n }\r\n \r\n\r\n private openEinsaetze() {\r\n this.$router.push({ name: 'einsaetze', params: { streckeId: this.strecke.uniqueId }});\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/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StreckeComponent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StreckeComponent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./StreckeComponent.vue?vue&type=template&id=faef5df6&scoped=true\"\nimport script from \"./StreckeComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./StreckeComponent.vue?vue&type=script&lang=ts\"\nimport style0 from \"./StreckeComponent.vue?vue&type=style&index=0&id=faef5df6&prod&scoped=true&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 \"faef5df6\",\n null\n \n)\n\nexport default component.exports","import { EinsatzDto } from \"./einsatzDto\";\r\n\r\nexport class Strecke {\r\n public uniqueId: string = '';\r\n public anzeige: string = '';\r\n public lastUpdate: Date = new Date();\r\n public verrechnungsmodellId: number = 0;\r\n public kundennummer: number = 0;\r\n public aktiv: boolean = true;\r\n public streckenname: string = '';\r\n public hasChanged: number = 0;\r\n public running: boolean = false;\r\n public einsaetze: EinsatzDto[] = [];\r\n public position: number = 0;\r\n}","\r\nimport { KundeDto } from '@/models/kundeDto';\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport StreckeComponent from '../components/StreckeComponent.vue';\r\nimport { EinsatzDto } from '../models/einsatzDto';\r\nimport { Strecke } from '../models/strecke';\r\n//@ts-ignore\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\n@Component({\r\n components: {\r\n StreckeComponent,\r\n }\r\n})\r\nexport default class Home extends Vue {\r\n\tprivate einsatzart: number = 0\r\n\tprivate neueStreckeDialog: boolean = false;\r\n\tprivate edit: boolean = false;\r\n\tprivate neueStrecke: Strecke | null = null;\r\n\r\n\tpublic get strecken() {\r\n\t\treturn this.$store.getters.strecken.filter((k: Strecke) => k.aktiv);\r\n\t}\r\n\tpublic get inaktiveStrecken() {\r\n\t\treturn this.$store.getters.strecken.filter((k: Strecke) => !k.aktiv);\r\n\t}\r\n\tprivate get fahrerId() {\r\n\t\treturn this.$store.getters.fahrerId;\r\n\t}\r\n\r\n\tprivate get running() {\r\n return this.$store.getters.strecken.filter((e: Strecke) =>\r\n e.running).length > 0;\r\n\t}\r\n\r\n\tprivate get rows() {\r\n\t\tvar height = window.innerHeight;\r\n\t\tvar width = window.innerWidth;\r\n\t\tconsole.log(width)\r\n\t\tconst targetWidth = 250;\r\n\t\tif (width > height) {\r\n\t\t\t// landscape\r\n\t\t\tvar columns = Math.ceil(width / targetWidth)\r\n\t\t\tconsole.log(columns)\r\n\t\t\treturn Math.ceil(this.strecken.length / columns)\r\n\t\t} else {\r\n\t\t\t// Portrait\r\n\t\t\tconsole.log(width)\r\n\t\t\tif (width < 800) {\r\n\t\t\t\treturn Math.ceil(this.strecken.length / 2)\r\n\t\t\t}\r\n\t\t\treturn Math.ceil(this.strecken.length / 3)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get columns() {\r\n\t\treturn Math.ceil(this.strecken.length / this.rows)\r\n\t}\r\n\r\n\tprivate aktiviereStrecke(strecke: KundeDto) {\r\n\t\tstrecke.aktiv = true;\r\n\t\tstrecke.lastUpdate = new Date();\r\n\t\tstrecke.hasChanged = 1;\r\n\t\tthis.$store.dispatch('saveStrecke', strecke);\r\n\t}\r\n\r\n\tprivate neueStreckeAnzeigen() {\r\n\t\tthis.neueStrecke = new Strecke();\r\n\t\tthis.neueStreckeDialog = true;\r\n\t}\r\n\r\n\tprivate neueStreckeSpeichern() {\r\n\t\tif (this.neueStrecke != null) {\r\n\t\t\tthis.neueStrecke.uniqueId = uuidv4();\r\n\t\t\tthis.neueStrecke.lastUpdate = new Date();\r\n\t\t\tthis.neueStrecke.aktiv = true;\r\n\t\t\tthis.neueStrecke.hasChanged = 1;\r\n\t\t\tthis.$store.dispatch('saveStrecke', this.neueStrecke);\r\n\t\t\tthis.neueStreckeDialog = false;\r\n\t\t}\r\n\t}\r\n\tprivate summaryAnzeigen() {\r\n this.$router.push({ name: 'Summary'});\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/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=d5cc6054&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=d5cc6054&prod&scoped=true&lang=css\"\nimport style1 from \"./Home.vue?vue&type=style&index=1&id=d5cc6054&prod&scoped=true&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 \"d5cc6054\",\n null\n \n)\n\nexport default component.exports","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c(VCard,[_c(VCardTitle,[_vm._v(\"Einsätze \"+_vm._s(_vm.strecke.streckenname))]),_c(VCardText,[_c(VDataTable,{attrs:{\"hide-default-footer\":\"\",\"items-per-page\":5000,\"items\":_vm.einsaetze,\"headers\":[\n {\n text: 'Datum'\n },\n {\n text: 'Start'\n },\n {\n text: 'Ende'\n },\n {\n text: 'Prozent'\n },\n {\n text: 'Fahrer'\n },\n {\n text: 'Art'\n },\n {\n text: 'Funktion'\n }\n ]},scopedSlots:_vm._u([{key:\"item\",fn:function(props){return [_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm._f(\"formatDate\")(props.item.start))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm._f(\"formatTime\")(props.item.start))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm._f(\"formatTime\")(props.item.ende))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm._f(\"formatInt\")(props.item.prozent * 100))+\"% \")]),_c('td',[_vm._v(\" \"+_vm._s(props.item.fahrerId)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(props.item.einsatzartId == 0 ? 'Pflügen' : 'Fräsen')+\" \")]),_c('td',[_c(VBtn,{attrs:{\"title\":\"Bearbeiten\",\"icon\":\"\"},on:{\"click\":function($event){_vm.selektierterEinsatz = props.item; _vm.einsatzBearbeitenDialog = true}}},[_c(VIcon,{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-pencil-outline\")])],1),_c(VBtn,{staticClass:\"ml-4\",attrs:{\"title\":\"Einsatz löschen\",\"icon\":\"\"},on:{\"click\":function($event){_vm.selektierterEinsatz = props.item; _vm.einsatzLoeschenDialog = true}}},[_c(VIcon,{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-trash-can-outline\")])],1)],1)])]}}])})],1)],1),_c(VBtn,{attrs:{\"title\":\"Neuer Einsatz\",\"fab\":\"\",\"bottom\":\"\",\"right\":\"\",\"fixed\":\"\"},on:{\"click\":function($event){return _vm.neuerEinsatz()}}},[_c(VIcon,[_vm._v(\"mdi-plus\")])],1),(_vm.einsatzBearbeitenDialog)?_c(VDialog,{attrs:{\"width\":\"500\"},model:{value:(_vm.einsatzBearbeitenDialog),callback:function ($$v) {_vm.einsatzBearbeitenDialog=$$v},expression:\"einsatzBearbeitenDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\"Einsatz bearbeiten\")]),_c(VCardText,[_c('v-datetime-picker',{attrs:{\"label\":\"Start\",\"dateFormat\":\"dd.MM.yyyy\",\"timeFormat\":\"HH:mm\",\"clearText\":\"\",\"datePickerProps\":_vm.datePickerProps,\"timePickerProps\":_vm.timePickerProps},model:{value:(_vm.currentEditStartDate),callback:function ($$v) {_vm.currentEditStartDate=$$v},expression:\"currentEditStartDate\"}},[_c(VIcon,{attrs:{\"slot\":\"dateIcon\"},slot:\"dateIcon\"},[_vm._v(\"mdi-calendar-range\")]),_c(VIcon,{attrs:{\"slot\":\"timeIcon\"},slot:\"timeIcon\"},[_vm._v(\"mdi-clock-time-four-outline\")])],1),_c('v-datetime-picker',{attrs:{\"label\":\"Ende\",\"dateFormat\":\"dd.MM.yyyy\",\"timeFormat\":\"HH:mm\",\"clearText\":\"\",\"datePickerProps\":_vm.datePickerProps,\"timePickerProps\":_vm.timePickerProps},model:{value:(_vm.currentEditEndeDate),callback:function ($$v) {_vm.currentEditEndeDate=$$v},expression:\"currentEditEndeDate\"}},[_c(VIcon,{attrs:{\"slot\":\"dateIcon\"},slot:\"dateIcon\"},[_vm._v(\"mdi-calendar-range\")]),_c(VIcon,{attrs:{\"slot\":\"timeIcon\"},slot:\"timeIcon\"},[_vm._v(\"mdi-clock-time-four-outline\")])],1),_c(VTextField,{attrs:{\"label\":\"Fahrer\"},model:{value:(_vm.selektierterEinsatz.fahrerId),callback:function ($$v) {_vm.$set(_vm.selektierterEinsatz, \"fahrerId\", $$v)},expression:\"selektierterEinsatz.fahrerId\"}}),_c(VTextField,{attrs:{\"label\":\"Prozent\"},model:{value:(_vm.currentEditProzent),callback:function ($$v) {_vm.currentEditProzent=_vm._n($$v)},expression:\"currentEditProzent\"}}),_c(VSelect,{attrs:{\"items\":_vm.einsatzArten},model:{value:(_vm.selektierterEinsatz.einsatzartId),callback:function ($$v) {_vm.$set(_vm.selektierterEinsatz, \"einsatzartId\", $$v)},expression:\"selektierterEinsatz.einsatzartId\"}}),_c(VSelect,{attrs:{\"items\":_vm.kunden,\"item-text\":\"anzeige\",\"item-value\":\"uniqueId\"},model:{value:(_vm.selektierterEinsatz.kundeId),callback:function ($$v) {_vm.$set(_vm.selektierterEinsatz, \"kundeId\", $$v)},expression:\"selektierterEinsatz.kundeId\"}})],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.einsatzSpeichern()}}},[_vm._v(\"Speichern\")]),_c(VBtn,{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.einsatzBearbeitenDialog = false; _vm.selektierterEinsatz = null}}},[_vm._v(\"Schliessen\")])],1)],1)],1):_vm._e(),_c(VDialog,{attrs:{\"width\":\"500\"},model:{value:(_vm.einsatzLoeschenDialog),callback:function ($$v) {_vm.einsatzLoeschenDialog=$$v},expression:\"einsatzLoeschenDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\"Echt jetzt?\")]),_c(VCardText,[_vm._v(\"Die ganze Arbeit war umsonst und ich bin den Tränen nahe.\")]),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){_vm.einsatzLöschen()}}},[_vm._v(\"Aber sicher doch\")]),_c(VBtn,{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.einsatzLoeschenDialog = false}}},[_vm._v(\"Abbrechen\")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport dayjs from 'dayjs';\r\nimport duration from 'dayjs/plugin/duration'\r\ndayjs.extend(duration);\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport { EinsatzDto } from '../models/einsatzDto';\r\nimport { Strecke } from '../models/strecke';\r\n//@ts-ignore\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\n@Component\r\nexport default class EinsaetzeComponent extends Vue {\r\n @Prop()\r\n private streckeId!: number;\r\n\r\n private einsaetze: EinsatzDto[] = [];\r\n private einsatzBearbeitenDialog: boolean = false;\r\n private einsatzLoeschenDialog: boolean = false;\r\n private selektierterEinsatz: EinsatzDto | null = null;\r\n private mounted() {\r\n this.loadEinsaetze();\r\n\r\n }\r\n\r\n private get strecke() {\r\n return this.$store.state.strecken.filter((s:any) => s.uniqueId == this.streckeId)[0];\r\n }\r\n\r\n private async loadEinsaetze() {\r\n //@ts-ignore\r\n var response = await window.axios.get(`einsatz/getEinsaetzeFuerStrecke?streckeId=${this.streckeId}`);\r\n this.einsaetze = response.data;\r\n }\r\n\r\n private async einsatzSpeichern() {\r\n if (this.selektierterEinsatz != null) {\r\n console.log(this.selektierterEinsatz)\r\n //@ts-ignore\r\n var response = await window.axios.post(`einsatz/saveEinsatz`, this.selektierterEinsatz);\r\n this.einsatzBearbeitenDialog = false;\r\n this.loadEinsaetze();\r\n }\r\n }\r\n\r\n private neuerEinsatz() {\r\n this.selektierterEinsatz = new EinsatzDto();\r\n this.selektierterEinsatz.start = new Date();\r\n var newEnd = dayjs().add(5, 'minute').set('second', 0).toDate();\r\n this.selektierterEinsatz.ende = newEnd;\r\n //@ts-ignore\r\n this.selektierterEinsatz.hasChanged = true;\r\n this.selektierterEinsatz.kundeId = this.streckeId.toString();\r\n this.selektierterEinsatz.fahrerId = this.fahrerId;\r\n this.selektierterEinsatz.uniqueId = uuidv4();\r\n this.einsatzBearbeitenDialog = true;\r\n }\r\n\r\n private async einsatzLöschen() {\r\n if (this.selektierterEinsatz != null) {\r\n this.selektierterEinsatz.deleted = true;\r\n //@ts-ignore\r\n var response = await window.axios.post(`einsatz/saveEinsatz`, this.selektierterEinsatz);\r\n this.einsatzLoeschenDialog = false;\r\n this.loadEinsaetze();\r\n }\r\n }\r\n\r\n private get currentEditStartDate() {\r\n if (this.selektierterEinsatz != null) {\r\n return dayjs(this.selektierterEinsatz.start).toDate();\r\n }\r\n return null;\r\n }\r\n private set currentEditStartDate(newDate: any) {\r\n if (this.selektierterEinsatz != null) {\r\n \r\n this.selektierterEinsatz.start = dayjs(newDate).toDate();\r\n }\r\n }\r\n private get currentEditEndeDate() {\r\n if (this.selektierterEinsatz != null) {\r\n var ende = new Date();\r\n if (this.selektierterEinsatz.ende != null) {\r\n ende = this.selektierterEinsatz.ende;\r\n }\r\n return dayjs(ende).toDate();\r\n }\r\n return null;\r\n }\r\n private set currentEditEndeDate(newDate: any) {\r\n if (this.selektierterEinsatz != null) {\r\n \r\n this.selektierterEinsatz.ende = dayjs(newDate).toDate();;\r\n }\r\n }\r\n \r\n private get currentEditProzent() {\r\n if (this.selektierterEinsatz != null) {\r\n return this.selektierterEinsatz.prozent * 100;\r\n }\r\n return 0; \r\n }\r\n private set currentEditProzent(prozent: number) {\r\n if (this.selektierterEinsatz != null) {\r\n this.selektierterEinsatz.prozent = prozent / 100;\r\n }\r\n }\r\n\r\n private get fahrerId() {\r\n\t\treturn this.$store.getters.fahrerId;\r\n\t}\r\n \r\n private einsatzArten: any = [\r\n {\r\n text: 'Pflügen',\r\n value: 0\r\n },\r\n {\r\n text: 'Fräsen',\r\n value: 1\r\n }\r\n ]\r\n\r\n private get kunden() {\r\n return this.$store.getters.strecken.filter((s:any) => s.aktiv);\r\n }\r\n\r\n private datePickerProps = {\r\n 'first-day-of-week': 1,\r\n 'locale': 'de-ch'\r\n };\r\n private timePickerProps = {\r\n 'format': '24hr'\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/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Einsaetze.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Einsaetze.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Einsaetze.vue?vue&type=template&id=7f1a06e6\"\nimport script from \"./Einsaetze.vue?vue&type=script&lang=ts\"\nexport * from \"./Einsaetze.vue?vue&type=script&lang=ts\"\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\n\nvar render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c(VCard,[_c(VCardTitle,[_vm._v(\"Übersicht der Fahrten \")]),(_vm.loading)?_c(VProgressCircular,{staticClass:\"ml-3\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}):_vm._e(),(!_vm.loading)?_c(VCardText,[_c(VMenu,{attrs:{\"close-on-content-click\":\"true\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c(VBtn,_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.selectedDateFormated)+\" \")])]}}],null,false,2422708400),model:{value:(_vm.datePickerOpen),callback:function ($$v) {_vm.datePickerOpen=$$v},expression:\"datePickerOpen\"}},[_c(VDatePicker,{attrs:{\"first-day-of-week\":\"1\",\"locale\":\"de-de\"},model:{value:(_vm.internalDate),callback:function ($$v) {_vm.internalDate=$$v},expression:\"internalDate\"}})],1),_c(VBtn,{staticClass:\"ml-3\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.loadEinsätze(true)}}},[_vm._v(\" Saison \")]),_c('div',{staticClass:\"ma-5\"},[_c('span',{staticClass:\"pa-3\"},[_vm._v(\" Pflügen: \"+_vm._s(_vm.total.pflügen[0].stunden)+\" Std \"+_vm._s(_vm.total.pflügen[0].minutes)+\" Min \")]),_vm._v(\" | \"),_c('span',{staticClass:\"pa-3\"},[_vm._v(\" Fräsen: \"+_vm._s(_vm.total.fräsen[0].stunden)+\" Std \"+_vm._s(_vm.total.fräsen[0].minutes)+\" Min \")]),_vm._v(\" | \"),_c('span',{staticClass:\"pa-3\"},[_vm._v(\" Total: \"+_vm._s(_vm.total.total[0].stunden)+\" Std \"+_vm._s(_vm.total.total[0].minutes)+\" Min \")])]),(_vm.total.total[0].stunden > 0 || _vm.total.total[0].minutes > 0)?_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\" Strecke \")]),_c('th',{attrs:{\"colspan\":_vm.einsaetze[0].pflügen.length}},[_vm._v(\" Pflügen \")]),_c('th',{attrs:{\"colspan\":_vm.einsaetze[0].pflügen.length}},[_vm._v(\" Fräsen \")]),_c('th',{attrs:{\"colspan\":_vm.einsaetze[0].pflügen.length}},[_vm._v(\" Total \")])]),_c('tr',[_c('th'),_vm._l((_vm.einsaetze[0].pflügen),function(fahrer,index){return _c('td',{key:index,staticClass:\"minuten\"},[_vm._v(\" \"+_vm._s(fahrer.fahrer)+\" \")])}),_vm._l((_vm.einsaetze[0].pflügen),function(fahrer,index){return _c('td',{key:index,staticClass:\"minuten\"},[_vm._v(\" \"+_vm._s(fahrer.fahrer)+\" \")])}),_vm._l((_vm.einsaetze[0].pflügen),function(fahrer,index){return _c('td',{key:index,staticClass:\"minuten\"},[_vm._v(\" \"+_vm._s(fahrer.fahrer)+\" \")])})],2)]),_vm._l((_vm.einsaetze),function(strecke,index){return _c('tr',{key:index},[_c('td',[_vm._v(\" \"+_vm._s(strecke.anzeige)+\" \")]),_vm._l((strecke.pflügen),function(fahrer,index){return _c('td',{key:index,staticClass:\"minuten\"},[(fahrer.stunden > 0)?_c('span',[_vm._v(\" \"+_vm._s(fahrer.stunden)+\" Std \")]):_vm._e(),_vm._v(\" \"+_vm._s(fahrer.minutes)+\" Min \")])}),_vm._l((strecke.fräsen),function(fahrer,index){return _c('td',{key:index,staticClass:\"minuten\"},[(fahrer.stunden > 0)?_c('span',[_vm._v(\" \"+_vm._s(fahrer.stunden)+\" Std \")]):_vm._e(),_vm._v(\" \"+_vm._s(fahrer.minutes)+\" Min \")])}),_vm._l((strecke.total),function(fahrer,index){return _c('td',{key:index,staticClass:\"minuten\"},[(fahrer.stunden > 0)?_c('span',[_vm._v(\" \"+_vm._s(fahrer.stunden)+\" Std \")]):_vm._e(),_vm._v(\" \"+_vm._s(fahrer.minutes)+\" Min \")])})],2)})],2):_c('div',[_vm._v(\" Für diesen Tag sind keine Zeiten verbucht. \")])],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\n\r\n@Component\r\nexport default class EinsaetzeComponent extends Vue {\r\n private einsaetze: any[] = [];\r\n private total: any = null;\r\n private loading: boolean = true;\r\n private datePickerOpen: boolean = false;\r\n private internalDate: string = '';\r\n private mounted() {\r\n this.internalDate = dayjs().format('YYYY-MM-DD');\r\n }\r\n\r\n @Watch('internalDate')\r\n private onInternalDateChange() {\r\n this.loadEinsätze(false);\r\n this.datePickerOpen = false;\r\n }\r\n\r\n\r\n private async loadEinsätze(saison: boolean) {\r\n try {\r\n this.loading = true;\r\n //@ts-ignore\r\n var response = await window.axios.get(`einsatz/GetSummary?${saison ? '' : `date=${this.internalDate}`}`);\r\n this.total = response.data.pop();\r\n this.einsaetze = response.data;\r\n console.log(this.total)\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n private get selectedDateFormated() {\r\n return dayjs(this.internalDate).format('DD.MM.YYYY');\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/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Summary.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Summary.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Summary.vue?vue&type=template&id=b0320a14&scoped=true\"\nimport script from \"./Summary.vue?vue&type=script&lang=ts\"\nexport * from \"./Summary.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Summary.vue?vue&type=style&index=0&id=b0320a14&prod&scoped=true&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 \"b0320a14\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport VueRouter, { RouteConfig } from 'vue-router'\r\nimport Home from '../views/Home.vue'\r\nimport Einsaetze from '../views/Einsaetze.vue'\r\nimport Summary from '../views/Summary.vue'\r\nVue.use(VueRouter)\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/',\r\n name: 'Home',\r\n component: Home\r\n },\r\n {\r\n path: '/summary',\r\n name: 'Summary',\r\n component: Summary\r\n },\r\n {\r\n path: '/einsaetze/:streckeId',\r\n name: 'einsaetze',\r\n props: true,\r\n // route level code-splitting\r\n // this generates a separate chunk (about.[hash].js) for this route\r\n // which is lazy-loaded when the route is visited.\r\n component: Einsaetze,\r\n },\r\n]\r\n\r\nconst router = new VueRouter({\r\n routes\r\n})\r\n\r\nexport default router\r\n","import { EinsatzDto } from \"@/models/einsatzDto\";\r\nimport { KundeDto } from \"@/models/kundeDto\";\r\n\r\n/**\r\n * class Db\r\n */\r\nexport class Db {\r\n\r\n /**\r\n * Lädt Strecken aus der DB und gibt sie zurück\r\n */\r\n public GetStrecken() {\r\n const myPromise = new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"kunden\"], \"readwrite\")\r\n .objectStore(\"kunden\")\r\n .getAll();\r\n dbRequest.onsuccess = (event:any) => {\r\n resolve(dbRequest.result);\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n /**\r\n * Fügt einen Kunden, eine Strecke neu ein, oder aktualisiert eine bestehende.\r\n * @param kunde \r\n * @returns \r\n */\r\n public SaveKunde(kunde: KundeDto) {\r\n const myPromise = new Promise((resolve, reject) => {\r\n console.log('Insert kunde')\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"kunden\"], \"readwrite\")\r\n .objectStore(\"kunden\")\r\n .put(kunde);\r\n dbRequest.onsuccess = (event:any) => {\r\n resolve(dbRequest.result);\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n /**\r\n * Speichert den Einsatz. Kann einen bestehenden Einsatz aktualisieren \r\n * oder einen neuen Einsatz einfügen.\r\n * @param einsatz \r\n * @returns \r\n */\r\n public SaveEinsatz(einsatz: EinsatzDto) {\r\n const myPromise = new Promise((resolve, reject) => {\r\n console.log('Insert Einsatz')\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"einsaetze\"], \"readwrite\")\r\n .objectStore(\"einsaetze\")\r\n .put(einsatz);\r\n dbRequest.onsuccess = (event:any) => {\r\n resolve(dbRequest.result);\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n public GetChangedEinsaetze() {\r\n const myPromise = new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"snowi\")\r\n var range = IDBKeyRange.only(1);\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"einsaetze\"], \"readonly\")\r\n .objectStore(\"einsaetze\").index('hasChanged')\r\n .getAll(range);\r\n dbRequest.onsuccess = (event:any) => {\r\n resolve(dbRequest.result);\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n\r\n public GetFahrerId() {\r\n const myPromise = new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"settings\"], \"readwrite\")\r\n .objectStore(\"settings\")\r\n .get('fahrerId');\r\n dbRequest.onsuccess = (event:any) => {\r\n if (dbRequest.result == undefined) {\r\n resolve('');\r\n } else {\r\n resolve(dbRequest.result.value);\r\n }\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n public hasLocalChanges() {\r\n const myPromise = new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n var range = IDBKeyRange.only(1);\r\n const dbRequest = event.target.result\r\n .transaction([\"einsaetze\"], \"readonly\")\r\n .objectStore(\"einsaetze\").index('hasChanged')\r\n .getAll(range);\r\n dbRequest.onsuccess = (event:any) => {\r\n console.log(event.target.result)\r\n resolve(event.target.result.length > 0);\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject(false);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n public SaveFahrerId(fahrerId: string) {\r\n const myPromise = new Promise((resolve, reject) => {\r\n indexedDB.open(\"snowi\")\r\n\t\t\t\t.onsuccess = (event: any) => {\r\n\t\t\t\t\tevent.target.result\r\n\t\t\t\t\t\t.transaction([\"settings\"], \"readwrite\")\r\n\t\t\t\t\t\t.objectStore(\"settings\")\r\n\t\t\t\t\t\t.put({\r\n\t\t\t\t\t\t\tkey: 'fahrerId',\r\n\t\t\t\t\t\t\tvalue: fahrerId\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.onsuccess = (event:any) => {\r\n\t\t\t\t\t\t\tresolve(fahrerId);\r\n\t\t\t\t};\r\n\t\t\t}\r\n });\r\n return myPromise;\r\n }\r\n \r\n public GetLastSyncKunden() {\r\n const myPromise = new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"settings\"], \"readwrite\")\r\n .objectStore(\"settings\")\r\n .get('lastSyncKunden');\r\n dbRequest.onsuccess = (event:any) => {\r\n if (dbRequest.result == undefined) {\r\n resolve('');\r\n } else {\r\n resolve(dbRequest.result.value);\r\n }\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n public SaveLastSyncKunden(lastSync: string) {\r\n const myPromise = new Promise((resolve, reject) => {\r\n indexedDB.open(\"snowi\")\r\n\t\t\t\t.onsuccess = (event: any) => {\r\n\t\t\t\t\tevent.target.result\r\n\t\t\t\t\t\t.transaction([\"settings\"], \"readwrite\")\r\n\t\t\t\t\t\t.objectStore(\"settings\")\r\n\t\t\t\t\t\t.put({\r\n\t\t\t\t\t\t\tkey: 'lastSyncKunden',\r\n\t\t\t\t\t\t\tvalue: lastSync\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.onsuccess = (event:any) => {\r\n\t\t\t\t\t\t\tresolve('');\r\n\t\t\t\t};\r\n\t\t\t}\r\n });\r\n return myPromise;\r\n }\r\n\r\n public GetLastSyncEinsaetze() {\r\n const myPromise = new Promise((resolve, reject) => {\r\n const request = indexedDB.open(\"snowi\")\r\n request.onsuccess = (event: any) => {\r\n const dbRequest = event.target.result\r\n .transaction([\"settings\"], \"readwrite\")\r\n .objectStore(\"settings\")\r\n .get('lastSyncEinsaetze');\r\n dbRequest.onsuccess = (event:any) => {\r\n if (dbRequest.result == undefined) {\r\n resolve('');\r\n } else {\r\n resolve(dbRequest.result.value);\r\n }\r\n };\r\n };\r\n request.onerror = (event: any) => {\r\n reject([]);\r\n }\r\n });\r\n return myPromise;\r\n }\r\n\r\n public SaveLastSyncEinsaetze(lastSync: string) {\r\n const myPromise = new Promise((resolve, reject) => {\r\n indexedDB.open(\"snowi\")\r\n\t\t\t\t.onsuccess = (event: any) => {\r\n\t\t\t\t\tevent.target.result\r\n\t\t\t\t\t\t.transaction([\"settings\"], \"readwrite\")\r\n\t\t\t\t\t\t.objectStore(\"settings\")\r\n\t\t\t\t\t\t.put({\r\n\t\t\t\t\t\t\tkey: 'lastSyncEinsaetze',\r\n\t\t\t\t\t\t\tvalue: lastSync\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.onsuccess = (event:any) => {\r\n\t\t\t\t\t\t\tresolve('');\r\n\t\t\t\t};\r\n\t\t\t}\r\n });\r\n return myPromise;\r\n }\r\n}","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport dayjs from 'dayjs';\r\nimport * as signalR from '@microsoft/signalr';\r\nimport { EinsatzDto } from '@/models/einsatzDto';\r\nimport { KundeDto } from '@/models/kundeDto';\r\nimport { Strecke } from '@/models/strecke';\r\nimport { Db } from './db';\r\n\r\nVue.use(Vuex)\r\nvar syncEinsaetzeIsRunning = false;\r\n\r\nexport default new Vuex.Store({\r\n\tstate: {\r\n\t\tstrecken: [],\r\n\t\teinsaetze: [],\r\n\t\tonlineInterval: 0,\r\n\t\tfahrerId: '',\r\n\t\thasLocalChanges: false,\r\n\t},\r\n\tgetters: {\r\n\t\t\r\n\t\tstrecken(state) {\r\n\t\t\treturn (state.strecken as Strecke[]).sort((a,b) => (a.position > b.position) ? 1 : ((b.position > a.position) ? -1 : 0));\r\n\t\t},\r\n\t\tfahrerId(state) {\r\n\t\t\treturn state.fahrerId;\r\n\t\t},\r\n\t\t\r\n\t},\r\n\tmutations: {\r\n\t\tsetLocalChanges(state, hasChanges) {\r\n\t\t\tstate.hasLocalChanges = hasChanges;\r\n\t\t},\r\n\t\tsetStrecken(state, strecken) {\r\n\t\t\tconsole.log('set stecke')\r\n\t\t\tstate.strecken = strecken;\r\n\t\t\tconsole.log(state.strecken)\r\n\t\t\tfor (const strecke of strecken) {\r\n\t\t\t\tstrecke.einsaetze = [];\r\n\t\t\t\tstrecke.running = false;\r\n\t\t\t}\r\n\t\t},\r\n\t\taddOrUpdateStrecke(state, strecke: Strecke) {\r\n\t\t\t\r\n\t\t\tif (strecke.position == null) {\r\n\t\t\t\tstrecke.position = 0;\r\n\t\t\t}\r\n\t\t\tvar strecken = state.strecken.filter((k: Strecke) => k.uniqueId == strecke.uniqueId) as Strecke[];\r\n\t\t\tif (strecken.length == 0) {\r\n\t\t\t\t(state.strecken as Strecke[]).push(strecke);\r\n\t\t\t} else {\r\n\t\t\t\tconst streckeImState = strecken[0];\r\n\t\t\t\tstreckeImState.aktiv = strecke.aktiv;\r\n\t\t\t\tstreckeImState.anzeige = strecke.anzeige;\r\n\t\t\t\tstreckeImState.hasChanged = strecke.hasChanged;\r\n\t\t\t\tstreckeImState.kundennummer = strecke.kundennummer;\r\n\t\t\t\tstreckeImState.lastUpdate = strecke.lastUpdate;\r\n\t\t\t\tstreckeImState.streckenname = strecke.streckenname;\r\n\t\t\t\tstreckeImState.verrechnungsmodellId = strecke.verrechnungsmodellId;\r\n\t\t\t\tstreckeImState.position = strecke.position;\r\n\t\t\t\tlocalStorage.setItem(streckeImState.uniqueId, strecke.position.toString());\r\n\t\t\t}\r\n\t\t},\r\n\t\taddOrUpdateEinsatz(state, einsatz: EinsatzDto) {\r\n\t\t\tvar strecken = state.strecken.filter((s: Strecke) => s.uniqueId == einsatz.kundeId) as Strecke[];\r\n\t\t\tif (strecken.length == 1) {\r\n\t\t\t\tvar vorhandeneEinsaetze = strecken[0].einsaetze.filter((e) => e.uniqueId == einsatz.uniqueId);\r\n\t\t\t\tif (vorhandeneEinsaetze.length == 0) {\r\n\t\t\t\t\tconsole.log(vorhandeneEinsaetze);\r\n\t\t\t\t\tstrecken[0].einsaetze.splice(0, 0, einsatz);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar vorhandenerEinsatz = vorhandeneEinsaetze[0];\r\n\t\t\t\t\tvorhandenerEinsatz.deleted = einsatz.deleted;\r\n\t\t\t\t\tvorhandenerEinsatz.einsatzartId = einsatz.einsatzartId;\r\n\t\t\t\t\tvorhandenerEinsatz.ende = einsatz.ende;\r\n\t\t\t\t\tvorhandenerEinsatz.fahrerId = einsatz.fahrerId;\r\n\t\t\t\t\tvorhandenerEinsatz.hasChanged = einsatz.hasChanged;\r\n\t\t\t\t\tvorhandenerEinsatz.kundeId = einsatz.kundeId;\r\n\t\t\t\t\tvorhandenerEinsatz.lastUpdate = einsatz.lastUpdate;\r\n\t\t\t\t\tvorhandenerEinsatz.prozent = einsatz.prozent;\r\n\t\t\t\t\tvorhandenerEinsatz.start = einsatz.start;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetOnlineInterval(state, interval) {\r\n\t\t\tstate.onlineInterval = interval;\r\n\t\t},\r\n\t\t\r\n\t\tsetFahrerId(state, fahrerId) {\r\n\t\t\tstate.fahrerId = fahrerId;\r\n\t\t},\r\n\t},\r\n\tactions: {\r\n\r\n\t\t/**\r\n\t\t * Lädt Strecken aus der lokalen DB und kopiert sie in den State\r\n\t\t * @param store \r\n\t\t */\r\n\t\tasync loadStreckenIntoState(store) {\r\n\t\t\tconst db = new Db();\r\n\t\t\tconst strecken = await db.GetStrecken();\r\n\t\t\tstore.commit('setStrecken', strecken);\r\n\t\t},\r\n\t\t/**\r\n\t\t * Lädt die Fahrer Id aus der lokalen DB und speichert sie im State.\r\n\t\t * @param store \r\n\t\t */\r\n\t\tasync loadFahrerIdIntoState(store) {\r\n\t\t\tconst db = new Db();\r\n\t\t\tconst fahrerId = await db.GetFahrerId();\r\n\t\t\tstore.state.fahrerId = fahrerId;\r\n\t\t},\r\n\r\n\t\tasync saveFahrerId(store, fahrerId: string) {\r\n\t\t\tstore.commit('setFahrerId', fahrerId);\r\n\t\t\tconst db = new Db();\r\n\t\t\tawait db.SaveFahrerId(fahrerId);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Speichert eine neue Strecke oder aktualisiert eine bestehende Strecke.\r\n\t\t * Das sowohl im State als auch in der DB.\r\n\t\t * @param state \r\n\t\t * @param strecke \r\n\t\t */\r\n\t\tasync saveStrecke(state, strecke:Strecke) {\r\n\t\t\tstrecke.hasChanged = 1;\r\n\t\t\tstrecke.lastUpdate = new Date();\r\n\t\t\tstate.commit('addOrUpdateStrecke', strecke);\r\n\t\t\tconst db = new Db();\r\n\t\t\tawait db.SaveKunde(strecke);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Fügt einen neuen Einsatz zur Strecke lokal hinzu und speichert den Einsatz\r\n\t\t * in der DB. Das Datum der Änderung wird nachgetragen\r\n\t\t * @param state \r\n\t\t * @param einsatz \r\n\t\t */\r\n\t\tasync saveEinsatz(state:any, einsatz:EinsatzDto) {\r\n\t\t\teinsatz.lastUpdate = new Date();\r\n einsatz.hasChanged = 1;\r\n\t\t\tconsole.log(einsatz);\r\n\t\t\tconst db = new Db();\r\n\t\t\tawait db.SaveEinsatz(einsatz);\r\n\t\t},\r\n\r\n\t\tasync hasLocalChanges(state:any) {\r\n\t\t\tconst db = new Db();\r\n\t\t\treturn await db.hasLocalChanges();\r\n\t\t},\r\n\r\n\t\tasync syncKunden(store) {\r\n\t\t\ttry {\r\n\t\t\t\tconsole.log('sync Kunden');\r\n\t\t\t\tconst db = new Db();\r\n\t\t\t\tvar strecken = await db.GetStrecken();\r\n\t\t\t\tvar kundenZumUpdate = strecken.filter((s: KundeDto) => s.hasChanged == 1);\r\n\t\t\t\tfor (const kunde of kundenZumUpdate) {\r\n\t\t\t\t\t//@ts-ignore\r\n\t\t\t\t\tconst response = await window.axios.post(`kunde/saveKunde`, kunde);\r\n\t\t\t\t\tkunde.hasChanged = 0;\r\n\t\t\t\t\tawait db.SaveKunde(kunde);\r\n\t\t\t\t\tconsole.log(`Lokale Änderung am Kunde '${kunde.anzeige}' wurde gespeichert.`)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar lastSyncKunden = await db.GetLastSyncKunden()\r\n\t\t\t\tif (lastSyncKunden == '') {\r\n\t\t\t\t\tawait db.SaveLastSyncKunden('2000-01-01T00:00:00+0100');\r\n\t\t\t\t\tconsole.log('Vollständige Synchronisation der Kunden');\r\n\t\t\t\t\tlastSyncKunden = await db.GetLastSyncKunden();\r\n\t\t\t\t}\r\n\t\t\t\tvar now = new Date();\r\n\t\t\t\tvar lastSync = encodeURIComponent(dayjs(lastSyncKunden).format('YYYY-MM-DDTHH:mm:ss.SSSZZ'));\r\n\r\n\t\t\t\t//@ts-ignore\r\n\t\t\t\tconst response = await window.axios.get(`kunde/getUpdatedKunden?lastUpdate=${lastSync}`);\r\n\t\t\t\tfor (const kunde of response.data) {\r\n\t\t\t\t\tkunde.hasChanged = 0;\r\n\t\t\t\t\tawait db.SaveKunde(kunde);\r\n\t\t\t\t\t\r\n\t\t\t\t\tstore.commit('addOrUpdateStrecke', kunde);\r\n\t\t\t\t}\r\n\t\t\t\tawait db.SaveLastSyncKunden(dayjs(now).format('YYYY-MM-DDTHH:mm:ss.SSSZZ'));\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tasync syncEinsaetze(store) {\r\n\t\t\ttry {\r\n\t\t\t\tif (syncEinsaetzeIsRunning) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tsyncEinsaetzeIsRunning = true;\r\n\t\t\t\tconsole.log('sync einsaetze');\r\n\t\t\t\tconst db = new Db();\r\n\t\t\t\tconst einsaetzeZumUpdate = await db.GetChangedEinsaetze();\r\n\t\t\t\tfor (const einsatz of einsaetzeZumUpdate) {\r\n\t\t\t\t\t//@ts-ignore\r\n\t\t\t\t\teinsatz.hasChanged = true;\r\n\t\t\t\t\t//@ts-ignore\r\n\t\t\t\t\tawait window.axios.post(`einsatz/saveEinsatz`, einsatz);\r\n\t\t\t\t\teinsatz.hasChanged = 0;\r\n\t\t\t\t\tawait db.SaveEinsatz(einsatz);\r\n\t\t\t\t\tconsole.log(`Lokale Änderung am Einsatz '${einsatz.uniqueId}' wurde gespeichert.`)\r\n\t\t\t\t}\r\n\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t} finally {\r\n\t\t\t\tsyncEinsaetzeIsRunning = false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetupSignalR(context: any) {\r\n\t\t\treturn;\r\n\t\t\t//@ts-ignore\r\n\t\t\tconst connection = new signalR.HubConnectionBuilder()\r\n\t\t\t.withUrl(process.env.VUE_APP_BASEAPIURL + 'SignalHub')\r\n\t\t\t.configureLogging(signalR.LogLevel.Debug)\r\n\t\t\t.build();\r\n\t\r\n\t\t\tasync function start() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait connection.start();\r\n\t\t\t\t\tconsole.log('SignalR connected');\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tconsole.log(err);\r\n\t\t\t\t\tsetTimeout(() => start(), 5000);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\r\n\t\t\tconnection.onclose(async () => {\r\n\t\t\t\tconsole.log('signalR closed');\r\n\t\t\t\tawait start();\r\n\t\t\t});\r\n\t\r\n\t\t\tconnection.on('EinsatzChanged', (message: any) => {\r\n\t\t\t\tconsole.log('einsatz changed');\r\n\t\t\t\tif (!syncEinsaetzeIsRunning) {\r\n\t\t\t\t\tcontext.dispatch('syncEinsaetze');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\r\n\t\t\t// Start the connection.\r\n\t\t\tstart();\r\n\t \r\n\t\t}\r\n\t},\r\n\tmodules: {\r\n\t}\r\n})\r\n","import { register } from 'register-service-worker'\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n register(`${process.env.BASE_URL}service-worker.js`, {\r\n ready () {\r\n console.log(\r\n 'App is being served from cache by a service worker.\\n' +\r\n 'For more details, visit https://goo.gl/AFskqB'\r\n )\r\n },\r\n registered () {\r\n console.log('Service worker has been registered.')\r\n },\r\n cached () {\r\n console.log('Content has been cached for offline use.')\r\n },\r\n updatefound () {\r\n console.log('New content is downloading.')\r\n },\r\n updated () {\r\n console.log('New content is available; please refresh.')\r\n if (confirm('Es gibt eine neue Version.')) {\r\n window.close();\r\n }\r\n },\r\n offline () {\r\n console.log('No internet connection found. App is running in offline mode.')\r\n },\r\n error (error) {\r\n console.error('Error during service worker registration:', error)\r\n }\r\n })\r\n}\r\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib';\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n dark: true\r\n },\r\n \r\n});\r\n","\"use strict\";\r\n\r\nimport Vue from 'vue';\r\nimport axios from \"axios\";\r\nimport store from '../store';\r\n\r\n// Full config: https://github.com/axios/axios#request-config\r\n// axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';\r\n// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;\r\n// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';\r\n\r\nlet config = {\r\n baseURL: process.env.VUE_APP_BASEAPIURL,\r\n // timeout: 60 * 1000, // Timeout\r\n withCredentials: false, // Check cross-site Access-Control\r\n \r\n};\r\n\r\nconst _axios = axios.create(config);\r\n\r\n_axios.interceptors.request.use(\r\n function(config) {\r\n if (store.getters.user !== undefined) {\r\n config.headers = {\r\n Authorization: 'Bearer ' + store.getters.user,\r\n };\r\n }\r\n return config;\r\n },\r\n function(error) {\r\n // Do something with request error\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n// Add a response interceptor\r\n_axios.interceptors.response.use(\r\n function(response) {\r\n // Do something with response data\r\n return response;\r\n },\r\n function(error) {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nPlugin.install = function(Vue, options) {\r\n Vue.axios = _axios;\r\n window.axios = _axios;\r\n Object.defineProperties(Vue.prototype, {\r\n axios: {\r\n get() {\r\n return _axios;\r\n }\r\n },\r\n $axios: {\r\n get() {\r\n return _axios;\r\n }\r\n },\r\n });\r\n};\r\n\r\nVue.use(Plugin)\r\n\r\nexport default Plugin;\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport './registerServiceWorker'\r\nimport vuetify from './plugins/vuetify';\r\nimport './plugins/axios';\r\nimport dayjs from 'dayjs'\r\nimport isLeapYear from 'dayjs/plugin/isLeapYear' // import plugin\r\nimport 'dayjs/locale/de-ch' // import locale\r\n//@ts-ignore\r\nimport DatetimePicker from 'vuetify-datetime-picker';\r\n\r\ndayjs.extend(isLeapYear) // use plugin\r\ndayjs.locale('de-ch') // use locale\r\n\r\nVue.config.productionTip = false\r\nVue.use(DatetimePicker)\r\n\r\nVue.filter('format2Digits', function(value: any) {\r\n if (value) {\r\n return (Math.round(value * 100) / 100).toFixed(2);\r\n }\r\n});\r\nVue.filter('formatInt', function(value: any) {\r\n if (value) {\r\n return (Math.round(value * 100) / 100).toFixed(0);\r\n }\r\n});\r\nVue.filter('formatDate', function(value:any) {\r\n if (value) {\r\n return dayjs(value).format('DD.MM.YYYY');\r\n }\r\n})\r\n\r\nVue.filter('formatTime', function(value:any) {\r\n if (value) {\r\n return dayjs(value).format('HH:mm');\r\n }\r\n})\r\n\r\nstore.dispatch('setupSignalR').then(() => {\r\n new Vue({\r\n router,\r\n store,\r\n vuetify,\r\n render: h => h(App)\r\n }).$mount('#app')\r\n})\r\n"],"sourceRoot":""}