{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/customer/CustomerSelectList.vue?aa0a","webpack:///./src/helpers/input.helper.js","webpack:///./src/services/setting.service.js","webpack:///./src/plugins/dexie/dbDoControl.js","webpack:///./src/services/do-control.service.js","webpack:///./src/components/MenuLogotype.vue?4c51","webpack:///./src/helpers/coordinate.helper.js","webpack:///./src/services/control-position-status.service.js","webpack:///./src/components/NavbarLogotype.vue?7723","webpack:///./src/components/customer/CustomerSelectList.vue?2929","webpack:///./src/App.vue?58d0","webpack:///./src/components/MenuLogotype.vue?5965","webpack:///src/components/MenuLogotype.vue","webpack:///./src/components/MenuLogotype.vue?01da","webpack:///./src/components/MenuLogotype.vue","webpack:///./src/components/NavbarLogotype.vue?ce94","webpack:///src/components/NavbarLogotype.vue","webpack:///./src/components/NavbarLogotype.vue?82fd","webpack:///./src/components/NavbarLogotype.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue","webpack:///./src/store/modules/UserModule/actions.js","webpack:///./src/store/modules/UserModule/mutations.js","webpack:///./src/store/modules/UserModule/getters.js","webpack:///./src/store/modules/UserModule/index.js","webpack:///./src/store/modules/ArchiveModule/actions.js","webpack:///./src/store/modules/ArchiveModule/mutations.js","webpack:///./src/store/modules/ArchiveModule/index.js","webpack:///./src/store/modules/BuildingPositionsModule/actions.js","webpack:///./src/store/modules/BuildingPositionsModule/mutations.js","webpack:///./src/store/modules/BuildingPositionsModule/getters.js","webpack:///./src/store/modules/BuildingPositionsModule/index.js","webpack:///./src/store/modules/ControlModule/actions.js","webpack:///./src/store/modules/ControlModule/mutations.js","webpack:///./src/store/modules/ControlModule/index.js","webpack:///./src/store/index.js","webpack:///./src/plugins/router.js","webpack:///./src/helpers/array.helper.js","webpack:///./src/filters/datetime.filters.js","webpack:///./src/filters/file.filters.js","webpack:///./src/filters/app.filters.js","webpack:///./src/plugins/registerServiceWorker.js","webpack:///./src/main.js","webpack:///./src/App.vue?f446","webpack:///./src/helpers/entity-type.helper.js","webpack:///./src/App.vue?2c4b","webpack:///./src/helpers/file.helper.js","webpack:///./src/services/article.service.js","webpack:///./src/components/customer/CustomerSelectList.vue?5e26","webpack:///src/components/customer/CustomerSelectList.vue","webpack:///./src/components/customer/CustomerSelectList.vue?c3c1","webpack:///./src/components/customer/CustomerSelectList.vue","webpack:///./src/App.vue?f616","webpack:///./src/helpers/api.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","debounce","func","wait","immediate","context","this","args","arguments","later","callNow","SETTINGS","pagination","selectedPageSize","options","isOffline","createSettings","localStorage","setItem","JSON","stringify","getByKey","one","getAll","parse","getItem","save","db","Dexie","version","stores","changes","files","controls","articles","service","getFirst","checkIn","setControlPartPosition","setNewRevisionDate","checkOut","getFileById","openFile","getFileByEntityTypeAndEntityId","addFiles","removeFile","setFileDescription","add","addChange","getAllFilesForControl","abortCheckIn","setControlNotes","setToDone","setAllPositionsToDone","getAllByCustomerId","checkInAll","fetchControlPartPositionById","toArray","map","control","isCheckedOut","id","scheduleName","transaction","where","equals","delete","controlId","filter","x","partId","checkedOut","post","positionsWithNewStatus","positions","position","statusId","controlPartId","newDate","Date","forEach","date","entityId","positionsId","modify","pos","find","y","done","controlNotes","notes","cc","change","handleChange","checkInControl","currentControl","response","updatedControl","getEntityTypeForFileType","buildingPartPositionId","years","uploadBlobAndSetFileIdToRealId","file","fileName","fileId","removeFileFromSql","alert","first","customerId","lackDescription","lackDueDate","remainingLackId","nextRevisionDate","setFullYear","getFullYear","parseInt","nextRevisionDateDisplayText","toLocaleDateString","entityType","blob","FormData","append","realSqlId","update","changeId","addFile","now","toString","Math","floor","random","fileInfo","created","createdBy","description","fileContentType","fileExtension","getExtension","fileSize","size","fileAsBase64","fileClientType","typeOfFile","fileInfoAndBlob","url","URL","createObjectURL","open","revokeObjectURL","fetch","remove","descriptionForm","getCoordinateTypeAsNumber","coordinateTypeAsString","getNumberFromCocatenatedNumbers","numbers","direction","indexOf","splitted","split","setBuildingPartPositionCoordinatesFromLowestPositionNumber","arr","positionWithLowestNumber","number","sort","a","b","parseFloat","concatenatedNumbers","coordinateX","coordinateY","coordinateInfoX","coordinateInfoY","getNewPositionsInBox","offsets","boxRectangle","scale","boxSize","width","height","getPositionDependingOnEventType","panZoomScale","boxLeft","boxTop","xy","offsetX","offsetY","touches","clientX","clientY","changedTouches","DEFAULT_GROUP_COLOR","DEFAULT_STATUS_COLOR","fetchStatuses","axios","getStatusColor","found","color","getGroupStatusColor","every","some","getStatusName","text","_vm","_h","$createElement","_c","_self","class","collapsed","isMenuCollapsed","user","onmobile","isOnMobile","attrs","staticClass","_v","_e","on","$event","menu","onToggleCollapse","onItemClick","slot","directives","rawName","modifiers","logout","expression","_s","fullName","collapseMenuOnOutsideClick","staticRenderFns","isLoading","organizationId","logotypeFileId","getImgUrl","smallLogotypeFileId","imgUrl","staticStyle","component","preventDefault","location","getUser","commit","dispatch","state","saveSetting","defaultCustomer","root","setCustomer","customer","setBuilding","building","setUserOrganization","setOffline","val","toggleOfflineMode","newValue","SET_ISLOADING","SET_USER","organizationLogotypes","SET_CUSTOMER","selectedCustomer","SET_BUILDING","selectedBuilding","SET_USER_ORGANIZATION","SET_IS_OFFLINE","isInSomeRole","roles","isInRole","role","userModule","namespaced","actions","mutations","getters","getMenu","rootState","withCredentials","SET_MENU","items","archiveModule","types","icon","customerAdminMenu","render","h","title","element","attributes","child","adminMenu","superAdminMenu","getBuildingParts","buildingId","getBuildingPartPositions","setIsPositionNotInAnySchedule","obj","setActivePartTab","openPartPositionSidebar","partPosition","clearPartPositionSidebar","placeCoordinatesOnDrawing","setPartSymbolSize","symbolSize","abortPlacePositionOnDrawing","positionId","clearCoordinates","removeBuildingPartPosition","saveBuildingPartPosition","subNumber","savePartsCoordinates","saveBuildingPart","part","openPartSidebar","deleteBuildingPart","SET_BUILDING_PART","parts","isLoadingParts","SET_ACTIVE_PART_SYMBOL_SIZE","activePartTab","SET_BUILDING_PART_POSITIONS","partPositions","isLoadingPartPositions","SET_ACTIVE_PART_TAB","SET_IS_POSITION_NOT_IN_ANY_SCHEDULE","existing","isPositionNotInAnySchedule","OPEN_PART_POSITION_SIDEBAR","partPositionSidebar","active","isOpen","CLEAR_PART_POSITION_SIDEBAR","OPEN_PART_SIDEBAR","partSidebar","REMOVE_BUILDING_PART_POSITIONS","index","findIndex","SAVE_BUILDING_PART_POSITIONS","Vue","set","SAVE_BUILDING_PART","DELETE_BUILDING_PART","SET_PARTS_POSITION","SET_PLACE_COORDINATES_ON_DRAWING","drawing","activePosition","ABORT_PLACE_POSITION_ON_DRAWING","CLEAR_POSITION_COORDINATE","getActivePartPositions","app","getActivePartPositionsWithoutCoordinates","nextPartPositionNumber","highestNumber","reduce","entity","max","parsed","toFixed","nextPartPositionSubNumber","isNaN","buildingPositionsModule","activePartPosition","controlPartPosition","postPartPosition","vm","setAllPositionStatusesToDone","checkedOutProps","articleService","getAllArticlesForControl","setNotes","errors","SET_IS_LOADING","SET_IS_CHECKING_IN","isCheckingIn","SET_ACTIVE_CONTROL","SET_CONTROL_PART_POSITION","SET_TO_DONE","status","SET_NOTES","ABORT_CHECK_IN","checkedOutBy","checkedOutDate","CHECK_OUT_CONTROL","SET_NEW_REVISION_DATE","SET_ALL_POSITION_STATUSES_TO_DONE","positionIds","assign","ADD_POSITION_TO_CONTROL","numberOfPositions","controlModule","use","Vuex","store","Store","archive","buildingPositions","router","Router","base","process","routes","path","meta","redirect","to","encodeURIComponent","DEFAULT_TITLE","afterEach","nextTick","join","groupByKey","array","item","convertTo","getDate","months","month","substr","year","day","startsWith","getTime","formatting","substring","formatBytes","getIcon","ENTITY_TYPES","register","ready","log","registered","cached","updatefound","updated","offline","defaults","headers","common","interceptors","replace","history","current","fullPath","config","autoAddCss","library","faUser","faUsers","faClipboardList","faHome","faArrowsAltH","faChevronRight","faChevronLeft","faChevronDown","faChevronUp","faFire","faSignOutAlt","faSpinner","faPenSquare","faInfoCircle","faImage","faFolderOpen","faFileEdit","faLink","faExternalLink","faPlusSquare","faRegistered","faTrashAlt","faCog","faAddressBook","faBoxOpen","faSitemap","faBug","faFilePdf","faFileImage","faFileVideo","faFileArchive","faFileExcel","faFilePowerpoint","faFileWord","faFileAlt","faFile","faList","faMap","faMapMarkedAlt","faMapMarkerPlus","faMapMarkerExclamation","faSearchMinus","faSearchPlus","faBuilding","faTachometerAlt","faSquare","faCheckSquare","faExclamationTriangle","faArrowAltCircleLeft","faClipboardCheck","faCheckDouble","faCommentLines","faCommentPlus","faPrint","faBars","faFilter","faFireExtinguisher","faSensorFire","faFireSmoke","faBlanket","faPaperclip","faFolder","faFolders","faCircle","faTimes","faEnvelope","faCalendarTimes","faCalendar","faUserHardHat","faToggleOff","faToggleOn","faEye","faSignalSlash","faLock","faPlayCircle","faKey","faTachometerFast","faChartLine","faChartNetwork","faTag","faGripVertical","FontAwesomeIcon","productionTip","VueRouter","BootstrapVue","VueSidebarMenu","panZoom","Vue2TouchEvents","vSelect","eventHub","$eventHub","Array","App","$mount","displayText","allowedExtensions","ACCEPTED_FILE_TYPES","article","symbol","acceptedImageExtensions","organization","controlNote","getEntityTypeById","values","getDisplayText","ACCEPTED_IMAGE_TYPES","extension","convertToBase64","reader","FileReader","readAsDataURL","getDownloadUrl","getDownloadUrlByArticleId","bytes","decimals","k","dm","sizes","pow","isAcceptedImage","toLowerCase","isImageContentType","filename","lastIndexOf","addArticles","bulkPut","viewChange","_uid","changeCustomer","ref","customers","onSearch","onSelect","onBlur","stopPropagation","scopedSlots","_u","fn","option","customerNo","model","callback","$$v","newCustomer","isSuperAdmin","isChanging","allCustomers","selected","computed","watch","userIsLoading","handler","mounted","methods","$bvModal","show","controller","method"],"mappings":"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","file":"js/app.57c0df6b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"admin-manage-archive-list~admin-manage-article-list~admin-manage-article-save~page\":\"admin-manage-archive-list~admin-manage-article-list~admin-manage-article-save~page\",\"admin-manage-archive-list~page\":\"admin-manage-archive-list~page\",\"admin-manage-archive-list\":\"admin-manage-archive-list\",\"page\":\"page\",\"admin-manage-article-save\":\"admin-manage-article-save\",\"admin-manage-article-list\":\"admin-manage-article-list\",\"admin-manage-customer-list\":\"admin-manage-customer-list\",\"admin-manage-customer-save\":\"admin-manage-customer-save\",\"admin-manage-dashboard-list\":\"admin-manage-dashboard-list\",\"admin-manage-organizations-list\":\"admin-manage-organizations-list\",\"admin-manage-role-list\":\"admin-manage-role-list\",\"admin-manage-role-save\":\"admin-manage-role-save\",\"admin-manage-symbols-list\":\"admin-manage-symbols-list\",\"admin-manage-user-list\":\"admin-manage-user-list\",\"admin-manage-user-save\":\"admin-manage-user-save\",\"admin-manage-widget-list~startPage\":\"admin-manage-widget-list~startPage\",\"admin-manage-widget-list\":\"admin-manage-widget-list\",\"startPage\":\"startPage\",\"control-print-view\":\"control-print-view\",\"do-control~manage-building\":\"do-control~manage-building\",\"do-control\":\"do-control\",\"manage-building\":\"manage-building\",\"error-view\":\"error-view\",\"globalpage\":\"globalpage\",\"import-buildings\":\"import-buildings\",\"log-table\":\"log-table\",\"manage-building-list\":\"manage-building-list\"}[chunkId]||chunkId) + \".\" + {\"admin-manage-archive-list~admin-manage-article-list~admin-manage-article-save~page\":\"74a9422c\",\"admin-manage-archive-list~page\":\"819953e5\",\"admin-manage-archive-list\":\"8e1bbe53\",\"page\":\"5b9032ab\",\"admin-manage-article-save\":\"f745cc1f\",\"admin-manage-article-list\":\"e54a3ac1\",\"admin-manage-customer-list\":\"00614bd2\",\"admin-manage-customer-save\":\"4dbf3cc0\",\"admin-manage-dashboard-list\":\"a8159ebb\",\"admin-manage-organizations-list\":\"2103903d\",\"admin-manage-role-list\":\"f3d14e5b\",\"admin-manage-role-save\":\"c64bb8db\",\"admin-manage-symbols-list\":\"ed05971c\",\"admin-manage-user-list\":\"badf99d2\",\"admin-manage-user-save\":\"a9cc250f\",\"admin-manage-widget-list~startPage\":\"eb5399c3\",\"admin-manage-widget-list\":\"c7522e67\",\"startPage\":\"377bf6a2\",\"control-print-view\":\"73b66ceb\",\"do-control~manage-building\":\"ad1838a8\",\"do-control\":\"3d6940a9\",\"manage-building\":\"bf54bec5\",\"error-view\":\"4ea7045a\",\"globalpage\":\"eeea8abc\",\"import-buildings\":\"1fe4af2d\",\"log-table\":\"953f121c\",\"manage-building-list\":\"7712f625\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"admin-manage-archive-list~page\":1,\"admin-manage-archive-list\":1,\"page\":1,\"admin-manage-article-save\":1,\"admin-manage-article-list\":1,\"admin-manage-customer-list\":1,\"admin-manage-customer-save\":1,\"admin-manage-dashboard-list\":1,\"admin-manage-organizations-list\":1,\"admin-manage-role-list\":1,\"admin-manage-role-save\":1,\"admin-manage-symbols-list\":1,\"admin-manage-user-list\":1,\"admin-manage-user-save\":1,\"admin-manage-widget-list~startPage\":1,\"admin-manage-widget-list\":1,\"startPage\":1,\"control-print-view\":1,\"do-control~manage-building\":1,\"do-control\":1,\"manage-building\":1,\"globalpage\":1,\"log-table\":1,\"manage-building-list\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"admin-manage-archive-list~admin-manage-article-list~admin-manage-article-save~page\":\"admin-manage-archive-list~admin-manage-article-list~admin-manage-article-save~page\",\"admin-manage-archive-list~page\":\"admin-manage-archive-list~page\",\"admin-manage-archive-list\":\"admin-manage-archive-list\",\"page\":\"page\",\"admin-manage-article-save\":\"admin-manage-article-save\",\"admin-manage-article-list\":\"admin-manage-article-list\",\"admin-manage-customer-list\":\"admin-manage-customer-list\",\"admin-manage-customer-save\":\"admin-manage-customer-save\",\"admin-manage-dashboard-list\":\"admin-manage-dashboard-list\",\"admin-manage-organizations-list\":\"admin-manage-organizations-list\",\"admin-manage-role-list\":\"admin-manage-role-list\",\"admin-manage-role-save\":\"admin-manage-role-save\",\"admin-manage-symbols-list\":\"admin-manage-symbols-list\",\"admin-manage-user-list\":\"admin-manage-user-list\",\"admin-manage-user-save\":\"admin-manage-user-save\",\"admin-manage-widget-list~startPage\":\"admin-manage-widget-list~startPage\",\"admin-manage-widget-list\":\"admin-manage-widget-list\",\"startPage\":\"startPage\",\"control-print-view\":\"control-print-view\",\"do-control~manage-building\":\"do-control~manage-building\",\"do-control\":\"do-control\",\"manage-building\":\"manage-building\",\"error-view\":\"error-view\",\"globalpage\":\"globalpage\",\"import-buildings\":\"import-buildings\",\"log-table\":\"log-table\",\"manage-building-list\":\"manage-building-list\"}[chunkId]||chunkId) + \".\" + {\"admin-manage-archive-list~admin-manage-article-list~admin-manage-article-save~page\":\"31d6cfe0\",\"admin-manage-archive-list~page\":\"54e61991\",\"admin-manage-archive-list\":\"9233ea8b\",\"page\":\"0245a580\",\"admin-manage-article-save\":\"c1c5492a\",\"admin-manage-article-list\":\"09e19aec\",\"admin-manage-customer-list\":\"f7cab538\",\"admin-manage-customer-save\":\"ad0f4d73\",\"admin-manage-dashboard-list\":\"c82e2559\",\"admin-manage-organizations-list\":\"8e0db4e2\",\"admin-manage-role-list\":\"09e19aec\",\"admin-manage-role-save\":\"89977d5e\",\"admin-manage-symbols-list\":\"11f9c412\",\"admin-manage-user-list\":\"0f8713c8\",\"admin-manage-user-save\":\"ccac99a2\",\"admin-manage-widget-list~startPage\":\"7606b429\",\"admin-manage-widget-list\":\"5059face\",\"startPage\":\"853e264a\",\"control-print-view\":\"b853ff5c\",\"do-control~manage-building\":\"3b52537d\",\"do-control\":\"d968b5d9\",\"manage-building\":\"73c34bce\",\"error-view\":\"31d6cfe0\",\"globalpage\":\"bb8cd49b\",\"import-buildings\":\"31d6cfe0\",\"log-table\":\"127db525\",\"manage-building-list\":\"b352031a\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSelectList.vue?vue&type=style&index=0&id=5d8a0704&scoped=true&lang=css&\"","'use strict';\r\n\r\n// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\nexport const debounce = function (func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n};\r\n","'use strict';\r\n\r\nconst SETTINGS = {\r\n pagination: {\r\n selectedPageSize: 10,\r\n options: [5, 10, 25, 50, 100, 500]\r\n },\r\n isOffline: false\r\n};\r\n\r\nfunction createSettings() {\r\n localStorage.setItem('settings', JSON.stringify(SETTINGS));\r\n};\r\n\r\nexport function getByKey(key) {\r\n const one = getAll()[key] || null;\r\n if (one === 'null')\r\n return null;\r\n\r\n return one;\r\n};\r\n\r\nexport function getAll() {\r\n const all = JSON.parse(localStorage.getItem('settings'));\r\n if (!all) {\r\n createSettings();\r\n return SETTINGS;\r\n }\r\n\r\n return all;\r\n};\r\n\r\nexport function save(key, value) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let all = getAll();\r\n all[key] = value;\r\n localStorage.setItem('settings', JSON.stringify(all));\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n};","'use strict';\r\nimport Dexie from 'dexie';\r\n\r\nexport const db = new Dexie('dbDoControl');\r\n\r\ndb.version(2).stores({\r\n changes: '++id, controlId, date, type, entityId, data, event',\r\n files: '&id, [entityId+entityType], controlId, fileId',\r\n controls: '&id, *parts, *positions, customerId',\r\n articles: '&id, fileId'\r\n});\r\n\r\ndb.version(1).stores({\r\n changes: '++id, controlId, date, type, entityId, data, event',\r\n files: '&id, [entityId+entityType], controlId, fileId',\r\n controls: '&id, *parts, *positions, customerId'\r\n});","'use strict';\nimport { db } from '@/plugins/dexie/dbDoControl';\r\nimport { get, post, remove } from '@/helpers/api';\r\nimport { getExtension } from '@/helpers/file.helper';\r\n\nexport const service = {\n getFirst,\n checkIn,\n setControlPartPosition,\n setNewRevisionDate,\r\n checkOut,\r\n getFileById,\r\n openFile,\r\n getFileByEntityTypeAndEntityId,\r\n addFiles,\r\n removeFile,\r\n setFileDescription,\r\n getAll,\r\n add,\r\n addChange,\r\n getAllFilesForControl,\r\n abortCheckIn,\r\n setControlNotes,\r\n setToDone,\r\n setAllPositionsToDone,\r\n getAllByCustomerId,\r\n checkInAll,\r\n fetchControlPartPositionById,\r\n}\n\n\nexport async function checkInAll() {\r\n const controls = await db.controls.toArray();\r\n\r\n const result = await Promise.all(\r\n controls.map(async control => {\r\n if ((await isCheckedOut(control.id)).data) {\r\n try {\r\n await checkIn(control.id);\r\n } catch (e) {\r\n return {\r\n error: e + ' Egenkontrollens schemanamn: ' + control.scheduleName,\r\n control: control\r\n };\r\n }\r\n }\r\n else {\r\n // Remove control from db tables.\n await db.transaction('rw', [db.changes, db.files, db.controls], async () => {\n await db.changes.where('controlId').equals(control.id).delete(); // Remove changes.\r\n await db.files.where({ controlId: control.id }).delete(); // Remove db files.\n await db.controls.where('id').equals(control.id).delete(); // Remove db controls.\r\n });\r\n\r\n return {\r\n error: `Egenkontroll med schemanamn '${control.scheduleName}' har redan checkats in.`,\r\n control: control\r\n };\r\n }\r\n })\r\n );\r\n\r\n // Returns errors.\r\n return result.filter(x => x);\r\n}\n\nasync function setAllPositionsToDone(control, partId) {\n if (!control.checkedOut)\r\n await post('Control', `SetAllControlPositionStatusesToDone/${control.id}?controlPartId=${partId ? partId : ''}`)\r\n\r\n let changes = [];\r\n let positionsWithNewStatus = control.positions.map((position) => {\r\n if (position.statusId === 0) {\r\n if (!partId) {\r\n position.statusId = 10;\r\n changes.push(position);\r\n return position.id;\r\n }\r\n else {\r\n if (position.controlPartId === partId) {\r\n position.statusId = 10;\r\n changes.push(position);\r\n return position.id;\r\n }\r\n }\r\n }\r\n }).filter(x => x !== undefined);\r\n\r\n if (!control.checkedOut)\r\n return positionsWithNewStatus;\r\n\r\n // Add to db if offline.\r\n const newDate = new Date();\r\n await db.transaction('rw', [db.changes, db.controls], async () => {\r\n await changes.forEach(async x => {\r\n await db.changes.add({\n controlId: control.id,\n date: newDate,\n type: 'setControlPartPosition',\n entityId: x.id,\n data: x,\n event: 'update'\n });\r\n const positionsId = x.id;\r\n await db.controls\r\n .where({ id: control.id })\r\n .modify(x => {\r\n let pos = x.positions.find(y => y.id === positionsId);\r\n pos.statusId = 10;\r\n });\r\n });\r\n });\r\n\r\n return positionsWithNewStatus;\r\n}\n\nasync function setToDone(controlId, done, controlNotes) {\n return await post('Control', `SetToDone/${controlId}`, {\r\n done: done,\r\n controlNotes: controlNotes\r\n });\r\n}\n\nasync function setControlNotes(isOffline, controlId, controlNotes) {\n if (!isOffline)\n return await post('Control', `SetNotes/${controlId}`, { id: controlId, notes: controlNotes })\r\n else {\r\n await db.controls\r\n .where({ id: controlId })\r\n .modify(x => x.notes = controlNotes);\r\n return await addChange(controlId, new Date(), 'controlNote', controlId, controlNotes, null);\r\n }\r\n}\n\nasync function abortCheckIn(controlId) {\n await db.transaction('rw', [db.changes, db.files, db.controls], async () => {\r\n // Changes.\r\n await db.changes\r\n .where('controlId')\r\n .equals(controlId)\n .delete();\n\n // Files.\r\n await db.files\r\n .where({ controlId: controlId })\r\n .delete();\r\n\r\n // Control.\r\n await db.controls.where({ id: controlId }).delete();\n });\r\n\n await post('Control', `AbortCheckIn/${controlId}`);\r\n}\n\nasync function checkIn(controlId) {\n try {\r\n // Get changes.\r\n let cc = await db.changes\r\n .where('controlId')\r\n .equals(controlId)\n .toArray();\n\n // Post.\n await Promise.all(cc.map(async change => {\n await handleChange(change);\n }));\r\n } catch {\r\n return 'Misslyckades med att hantera förändringar!';\r\n }\n\n try {\n // Update tables.\n await db.transaction('rw', [db.changes, db.files, db.controls], async () => {\n await db.changes.where('controlId').equals(controlId).delete(); // Remove changes.\r\n await db.files.where({ controlId: controlId }).delete(); // Remove db files.\n await db.controls.where('id').equals(controlId).delete(); // Remove db controls.\r\n });\r\n } catch {\r\n return 'Misslyckades med databasuppdatering!';\r\n }\r\n\r\n try {\r\n // Post checkedIn.\r\n await checkInControl(controlId);\r\n } catch {\r\n return 'Misslyckades med incheckning!';\r\n }\r\n\r\n return true;\r\n}\n\nasync function checkOut(currentControl) {\n const response = await post('Control', `CheckOut/${currentControl.id}`);\n const updatedControl =\n {\r\n ...currentControl,\r\n ...response.data\n };\n await add(updatedControl);\r\n await getAllFilesForControl(currentControl.id);\r\n\r\n return response.data;\r\n}\r\n\r\nfunction getEntityTypeForFileType(type) {\r\n switch (type) {\r\n case 'controlPartPositionFile':\r\n return 12;\r\n case 'controlNoteFile':\r\n return 14;\r\n }\r\n\r\n throw 'no entity type corresponding with file type';\r\n}\r\n\r\nasync function handleChange(change) {\r\n switch (change.type) {\r\n case 'setControlPartPosition':\r\n return await setControlPartPosition(false, change.controlId, change.data);\r\n case 'setNewRevisionDate':\r\n return await setNewRevisionDate(change.data.buildingPartPositionId, change.data.years);\r\n //return await setNewRevisionDate(change.data.buildingPartPositionId, change.data.date);\r\n case 'controlPartPositionFile':\r\n case 'controlNoteFile':\r\n switch (change.event) {\r\n case 'added':\r\n return await uploadBlobAndSetFileIdToRealId(getEntityTypeForFileType(change.type), change.entityId, change.data.file, change.data.fileName, change.data.fileId);\r\n case 'removed':\r\n return await removeFileFromSql(change.data.id);\r\n case 'setDescription':\r\n // TODO: transaction over table.changes instead.\r\n alert('not implemented');\r\n //return await saveFileDescription(change.data);\r\n break;\r\n }\r\n case 'controlNote':\r\n return await setControlNotes(false, change.controlId, change.data);\r\n };\r\n}\r\n\r\nasync function getAll() {\r\n return await db.controls.toArray();\r\n}\r\n\r\nasync function getFirst(id) {\r\n return await db.controls.where({ id: id }).first();\r\n}\r\n\r\nasync function getAllByCustomerId(id) {\r\n return await db.controls.where({ customerId: id }).toArray();\r\n}\r\n\r\nasync function add(control) {\r\n return await db.controls.add(control);\r\n}\r\n\r\n/* SETS */\nasync function setControlPartPosition(isOffline, controlId, data) {\n if (isOffline) {\r\n await db.transaction('rw', [db.changes, db.controls], async () => {\r\n // Add change.\r\n await addChange(\r\n controlId,\r\n new Date(),\r\n 'setControlPartPosition',\r\n data.id,\r\n data,\r\n 'update'\r\n );\r\n // Update control.\r\n await db.controls\r\n .where({ id: controlId })\r\n .modify(x => {\r\n let pos = x.positions.find(y => y.id === data.id);\r\n pos.statusId = data.statusId;\r\n pos.lackDescription = data.lackDescription;\r\n pos.lackDueDate = data.lackDueDate;\r\n pos.remainingLackId = data.remainingLackId;\r\n });\r\n });\r\n\r\n return;\r\n }\r\n\r\n return await post('Control', `SetControlPartPosition/${data.id}`, data);\r\n};\n\n//async function setNewRevisionDate(isOffline, controlId, buildingPartPositionId, nextRevisionDate) {\n// if (isOffline) {\n// await addChange(\r\n// controlId,\r\n// new Date(),\r\n// 'setNewRevisionDate',\r\n// buildingPartPositionId,\r\n// {\r\n// buildingPartPositionId: buildingPartPositionId,\r\n// nextRevisionDate: nextRevisionDate\r\n// },\r\n// 'update'\r\n// );\r\n\r\n// return {\r\n// data: {\r\n// nextRevisionDate: nextRevisionDate,\r\n// nextRevisionDateDisplayText: nextRevisionDate\r\n// }\r\n// }\r\n// }\n\r\n// return await post('Control', `SetNewRevisionDate/${buildingPartPositionId}?date=${nextRevisionDate}`);\r\n//}\r\n\r\nasync function setNewRevisionDate(isOffline, controlId, buildingPartPositionId, years) {\n if (isOffline) {\n // Calculate NextRevisionDate.\n let nextRevisionDate = new Date();\r\n nextRevisionDate.setFullYear(nextRevisionDate.getFullYear() + parseInt(years));\n\n await addChange(\r\n controlId,\r\n new Date(),\r\n 'setNewRevisionDate',\r\n buildingPartPositionId,\r\n {\r\n controlId,\r\n buildingPartPositionId: buildingPartPositionId,\r\n years: years,\r\n nextRevisionDate: nextRevisionDate\r\n },\r\n 'update'\r\n );\r\n\r\n return {\r\n data: {\r\n nextRevisionDate: nextRevisionDate,\r\n nextRevisionDateDisplayText: nextRevisionDate.toLocaleDateString('sv-SE')\r\n }\r\n }\r\n }\n\r\n return await post('Control', `SetNewRevisionDate/${controlId}?buildingPartPositionId=${buildingPartPositionId}&years=${years}`);\r\n}\r\n\nasync function checkInControl(controlId) {\n return await post('Control', `CheckIn/${controlId}`);\r\n}\n\nasync function isCheckedOut(controlId) {\n return await post('Control', `IsCheckedOut/${controlId}`);\r\n}\r\n\r\n/* ./sets */\r\n\r\n/* FILES */\nasync function uploadBlobAndSetFileIdToRealId(entityType, entityId, blob, fileName, fileId) {\n let data = new FormData();\n data.append('files', blob, fileName);\n const response = await post(\n 'File',\n `SaveSingle?entityType=${entityType}&entityId=${entityId}`,\n data\n );\r\n const realSqlId = response.data;\r\n return await db.files.update(fileId, { fileId: realSqlId });\r\n}\n\nasync function getFileById(id) {\r\n return await db.files\r\n .where('id')\r\n .equals(id)\r\n .first();\r\n}\n\nasync function removeFile(controlId, fileId, entityId) {\n // Get file.\r\n const file = await db.files.get({ id: fileId });\r\n // Delete file.\r\n await db.files.where({ id: fileId }).delete();\r\n // Has been added while offline, if so, remove from Changes.\r\n if (file.changeId) {\r\n await db.changes.where({ id: file.changeId }).delete();\r\n return;\r\n }\r\n\r\n // Else add to change.\r\n await addChange(controlId, new Date(), 'controlPartPositionFile', entityId, { id: fileId }, 'removed');\r\n}\n\nasync function getFileByEntityTypeAndEntityId(entityType, entityId) {\r\n return await db.files\r\n .where({ entityType: entityType, entityId: entityId }).toArray();\r\n}\n\nasync function addFile(controlId, entityType, entityId, file) {\n const fileId = parseInt(Date.now().toString() + Math.floor((Math.random() * 100) + 1).toString())\n const fileInfo = {\r\n created: null,\r\n createdBy: null,\r\n description: null,\r\n entityId: entityId,\r\n entityType: entityType,\r\n fileContentType: file.type,\r\n fileExtension: getExtension(file.name),\r\n fileName: file.name,\r\n fileSize: file.size,\r\n id: fileId,\r\n controlId: controlId\r\n };\n const fileAsBase64 = {\r\n file: file,\r\n fileClientType: 'blob',\r\n fileName: file.name,\r\n fileId: fileId\r\n };\r\n\r\n const typeOfFile = entityType === 12 ? 'controlPartPositionFile' : 'controlNoteFile';\n const changeId = await addChange(controlId, new Date(), typeOfFile, entityId, fileAsBase64, 'added');\r\n\r\n const fileInfoAndBlob = {\r\n ...fileInfo,\r\n ...fileAsBase64,\r\n changeId\r\n };\r\n\r\n await db.files.add(fileInfoAndBlob);\r\n}\n\nasync function addFiles(data) {\n await db.transaction('rw', [db.files, db.changes], async () => {\n // TODO: Promise all constructor is anti-pattern.\r\n return await Promise.all(\r\n await data.files.map(async (x) => {\r\n await addFile(data.controlId, data.entityType, data.entityId, x)\r\n })\n );\n });\r\n}\n\nasync function openFile(id) {\n await db.files\r\n .where('id')\r\n .equals(id)\r\n .first()\n .then(x => {\r\n const url = window.URL.createObjectURL(x.blob);\r\n window.open(url, '_blank');\r\n window.URL.revokeObjectURL(url);\r\n });\r\n}\n\nasync function getAllFilesForControl(controlId) {\r\n const fileInfo = await get('File', `GetAllForControl/${controlId}`).then(x => x.data);\r\n fileInfo.forEach((fileInfo) => {\r\n fetch(`/api/File/Download/${fileInfo.id}`)\r\n .then(file => {\r\n file.blob().then(x => {\r\n const fileInfoAndBlob = {\r\n ...fileInfo,\r\n file: x,\r\n fileClientType: 'blob',\r\n controlId: controlId\r\n };\r\n db.files.add(fileInfoAndBlob);\r\n });\r\n });\r\n });\r\n}\r\n\nasync function fetchControlPartPositionById(id) {\r\n return await get('Control', `GetControlPosition/${id}`).then(x => {\r\n return x.data;\r\n });\r\n}\r\n\r\nasync function removeFileFromSql(id) {\n await remove('File', `Remove/${id}`);\r\n}\r\n\r\nasync function setFileDescription(controlId, descriptionForm) {\r\n throw 'not yet implemented correctly.';\r\n // Set description in iDB.\r\n await db.files.update(descriptionForm.id, { description: descriptionForm.description });\r\n // Add to changes.\r\n await addChange(controlId, new Date(), 'controlPartPositionFile', descriptionForm.id, descriptionForm, 'setDescription');\r\n}\r\n\r\nasync function saveFileDescription(data) {\n const file = await db.files.get({ id: data.id });\n // TODO: Needs to be in a transaction to work properly.\n const realId = file.fileId;\n await post('File', `SetDescription`, { id: realId, description: data.description });\r\n}\r\n/* ./ files */\r\n\r\n\r\n/* HELPERS */\nasync function addChange(controlId, date, type, entityId, data, event) {\n return await db.changes.add({\n controlId: controlId,\n date: date,\n type: type,\n entityId: entityId,\n data: data,\n event: event\n });\n};\n/* ./ helpers */","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuLogotype.vue?vue&type=style&index=0&id=c5ff3db4&scoped=true&lang=css&\"","'use strict';\r\n\r\nexport const getCoordinateTypeAsNumber = function (coordinateTypeAsString) {\r\n switch (coordinateTypeAsString) {\r\n case 'all':\r\n return -1;\r\n case 'coordinates':\r\n return 0;\r\n case 'coordinatesInfo':\r\n return 1;\r\n }\r\n};\r\n\r\nexport const getNumberFromCocatenatedNumbers = function (numbers, direction) {\r\n if (numbers.indexOf(',') === -1 && numbers.indexOf('.') === -1) {\r\n if (direction === 'after') return null;\r\n else return parseInt(numbers);\r\n }\r\n\r\n var splitted = numbers.split(',').length === 0 || numbers.split('.');\r\n switch (direction) {\r\n case 'before':\r\n return parseInt(splitted[0]);\r\n case 'after':\r\n return parseInt(splitted[1]);\r\n }\r\n};\r\n\r\nexport const setBuildingPartPositionCoordinatesFromLowestPositionNumber =\r\n function (position, arr) {\r\n //if ((position.coordinateX || position.coordinateY) || (position.coordinateInfoX || position.coordinateInfoY))\r\n // return;\r\n\r\n var positionWithLowestNumber = arr\r\n .filter((x) => x.number === position.number && x.id !== position.id)\r\n .sort((a, b) => {\r\n return (\r\n parseFloat(a.concatenatedNumbers) - parseFloat(b.concatenatedNumbers)\r\n );\r\n });\r\n if (!positionWithLowestNumber[0]) return;\r\n\r\n // Set values.\r\n if (!position.coordinateX || !position.coordinateY) {\r\n position.coordinateX = positionWithLowestNumber[0].coordinateX;\r\n position.coordinateY = positionWithLowestNumber[0].coordinateY;\r\n }\r\n if (!position.coordinateInfoX || !position.coordinateInfoY) {\r\n position.coordinateInfoX = positionWithLowestNumber[0].coordinateInfoX;\r\n position.coordinateInfoY = positionWithLowestNumber[0].coordinateInfoY;\r\n }\r\n };\r\n\r\n/**\r\n * Normalizes the values in an object of positions to ensure they stay within the bounds of a box.\r\n * \r\n * This function iterates over the properties of the input object and \r\n * replaces any values that are negative or exceed the maximum allowed \r\n * dimensions of the box with the appropriate boundary values.\r\n *\r\n * @param {Object} positions - An object where the keys are position names and the values are numbers.\r\n * @param {Object} boxSize - An object containing the maximum width and height of the box.\r\n * @returns {Object} A new object with the same keys as the input, but with all values constrained within the box dimensions.\r\n *\r\n * @example\r\n * const positions = { x: -5, y: 10, z: 150 };\r\n * const boxSize = { width: 100, height: 100 };\r\n * const normalized = normalizePositions(positions, boxSize);\r\n * // normalized = { x: 0, y: 10, z: 100 };\r\n */\r\nexport const normalizePositionsInBox = function (positions, boxSize) {\r\n return Object.fromEntries(\r\n Object.entries(positions).map(([key, value]) => {\r\n if (key.toLowerCase().includes('x')) {\r\n return [key, Math.max(0, Math.min(boxSize.width, value))];\r\n } else if (key.toLowerCase().includes('y')) {\r\n return [key, Math.max(0, Math.min(boxSize.height, value))];\r\n }\r\n return [key, value];\r\n })\r\n );\r\n};\r\n\r\nexport const getNewPositionsInBox = function (\r\n offsets,\r\n coordinateX,\r\n coordinateY,\r\n coordinateInfoX,\r\n coordinateInfoY,\r\n boxRectangle,\r\n scale,\r\n boxSize\r\n) {\r\n const positions = {\r\n coordinateX: parseInt(\r\n ((offsets.x * scale.scale) / boxRectangle.width) * boxSize.width - coordinateX\r\n ),\r\n coordinateY: parseInt(\r\n ((offsets.y * scale.scale) / boxRectangle.height) * boxSize.height - coordinateY\r\n ),\r\n coordinateInfoX: parseInt(\r\n ((offsets.x * scale.scale) / boxRectangle.width) * boxSize.width - coordinateInfoX\r\n ),\r\n coordinateInfoY: parseInt(\r\n ((offsets.y * scale.scale) / boxRectangle.height) * boxSize.height - coordinateInfoY\r\n )\r\n };\r\n return positions;\r\n // Normalisera positionerna inom boxens dimensioner\r\n const normalizedPositions = normalizePositionsInBox(positions, boxSize);\r\n\r\n return normalizedPositions;\r\n};\r\n\r\nexport const getPositionDependingOnEventType = function (event, panZoomScale, boxLeft, boxTop) {\r\n let xy = {\r\n x: event.offsetX,\r\n y: event.offsetY\r\n };\r\n\r\n // Touches.\r\n if (event.type === 'touchmove' || event.type === 'touchstart') {\r\n return {\r\n x: (event.touches[0].clientX - boxLeft) / panZoomScale.scale,\r\n y: (event.touches[0].clientY - boxTop) / panZoomScale.scale\r\n };\r\n }\r\n\r\n if (event.type === 'touchend') {\r\n return {\r\n x: (event.changedTouches[0].clientX - boxLeft) / panZoomScale.scale,\r\n y: (event.changedTouches[0].clientY - boxTop) / panZoomScale.scale\r\n };\r\n }\r\n\r\n return xy;\r\n};","'use strict';\n\nimport axios from 'axios';\n\nconst DEFAULT_GROUP_COLOR = '#17a2b8';\nexport const DEFAULT_STATUS_COLOR = '#f08000';\n\nexport async function fetchStatuses() {\r\n const response = await axios.get('/api/Control/GetAllStatuses');\n localStorage.setItem('control-statuses', JSON.stringify(response.data));\r\n return response.data;\n}\n\nexport function getAll() {\n const all = JSON.parse(localStorage.getItem('control-statuses'));\n if (all) {\n return all;\n }\n\n return [];\n};\n\nexport async function save(key, value) {\n return new Promise(async (resolve, reject) => {\n try {\n let all = getAll();\n all[key] = value;\n localStorage.setItem('control-statuses', JSON.stringify(all));\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n};\n\nexport const getStatusColor = function (statusId) {\n const all = getAll();\n const found = all.find(x => x.id === statusId);\n\n return found\n ? found.color\n : DEFAULT_STATUS_COLOR;\n};\n\nexport const getGroupStatusColor = function (positions) {\n if (!positions || positions.length === 0) return DEFAULT_GROUP_COLOR;\n\n if (positions.every((x) => x.statusId === 10 || x.statusId === 15)) return getStatusColor(10);\n\n if (positions.some((x) => x.statusId === 1 || x.statusId === 2)) return getStatusColor(1);\n\n return DEFAULT_GROUP_COLOR;\n};\n\nexport const getStatusName = function (statusId) {\n const all = getAll();\n const found = all.find(x => x.id === statusId);\n\n return found\n ? found.text\n : () => {\n throw `status '${statusId}' has not yet been implemented.`;\n };\n};","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavbarLogotype.vue?vue&type=style&index=0&id=044add27&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSelectList.vue?vue&type=style&index=1&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n { collapsed: _vm.isMenuCollapsed }, \n {'isOnline': !_vm.user.isOffline},\n { onmobile: _vm.isOnMobile }\n ],attrs:{\"id\":\"app\"}},[(_vm.user.isOffline)?_c('b-navbar',{staticClass:\"topMenu\",attrs:{\"toggleable\":\"\",\"type\":\"dark\",\"variant\":\"dark\"}},[_c('b-navbar-brand',[_c('NavbarLogotype',{attrs:{\"user\":_vm.user}})],1),_c('b-navbar-nav',{staticClass:\"ml-auto\"},[_c('b-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"to\":{name:'startPage'}}},[_vm._v(\"Egenkontroller\")])],1)],1):_vm._e(),(_vm.isOnMobile && !_vm.user.isOffline)?_c('b-navbar',{staticClass:\"topMenu\",attrs:{\"toggleable\":\"\",\"type\":\"dark\",\"variant\":\"dark\"}},[_c('b-navbar-brand',[_c('NavbarLogotype',{attrs:{\"user\":_vm.user}})],1),_c('b-navbar-nav',{staticClass:\"ml-auto\"},[_c('b-nav-item',{on:{\"click\":function($event){_vm.isMenuCollapsed = false}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"bars\"}})],1)],1)],1):_vm._e(),_c('div',[_c('router-view',{staticClass:\"container-fluid\"}),(!_vm.user.isOffline)?_c('div',[_c('sidebar-menu',{attrs:{\"menu\":_vm.menu,\"collapsed\":_vm.isMenuCollapsed,\"width\":\"280px\",\"hide-toggle\":false,\"show-child\":false,\"show-one-child\":true},on:{\"toggle-collapse\":_vm.onToggleCollapse,\"item-click\":_vm.onItemClick}},[_c('div',{attrs:{\"slot\":\"header\"},slot:\"header\"}),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(_vm.user.user)?_c('div',{staticClass:\"text-white text-center\"},[_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"href\":\"#\",\"title\":\"Logga ut\"},on:{\"click\":_vm.logout}},[_c('font-awesome-icon',{attrs:{\"icon\":\"sign-out-alt\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isMenuCollapsed),expression:\"!isMenuCollapsed\"}]},[_vm._v(_vm._s(_vm.user.user.fullName))])],1)]):_vm._e()]),_c('span',{attrs:{\"slot\":\"toggle-icon\"},slot:\"toggle-icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"arrows-alt-h\"}})],1),_c('span',{attrs:{\"slot\":\"dropdown-icon\"},slot:\"dropdown-icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"chevron-right\"}})],1)]),(_vm.isOnMobile && !_vm.isMenuCollapsed)?_c('div',{staticClass:\"sidebar-overlay\",on:{\"click\":function($event){return _vm.collapseMenuOnOutsideClick()}}}):_vm._e(),_c('div',{staticClass:\"sidebar-menu-mobile--toggle-button-wrapper\"},[_c('b-button',{on:{\"click\":function($event){_vm.isMenuCollapsed = false}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"arrows-alt-h\"}})],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.user.user && !_vm.user.isLoading)?_c('div',{staticClass:\"text-center\"},[(_vm.user.user.organizationId > 0)?_c('router-link',{attrs:{\"to\":\"/\"}},[(_vm.user.user.logotypeFileId > 0 && !_vm.isMenuCollapsed)?_c('img',{class:{ collapsed: _vm.isMenuCollapsed },attrs:{\"src\":_vm.getImgUrl(false),\"alt\":\"Logotyp\"}}):_vm._e(),(_vm.user.user.smallLogotypeFileId > 0 && _vm.isMenuCollapsed)?_c('img',{class:{ collapsed: _vm.isMenuCollapsed },attrs:{\"src\":_vm.imgUrl,\"alt\":\"Logotyp\"}}):(!(_vm.user.user.smallLogotypeFileId > 0) && _vm.isMenuCollapsed)?_c('font-awesome-icon',{staticClass:\"text-primary\",staticStyle:{\"margin\":\"5px\"},attrs:{\"icon\":\"fire\",\"size\":\"3x\"}}):_vm._e()],1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuLogotype.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuLogotype.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MenuLogotype.vue?vue&type=template&id=c5ff3db4&scoped=true&\"\nimport script from \"./MenuLogotype.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuLogotype.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MenuLogotype.vue?vue&type=style&index=0&id=c5ff3db4&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 \"c5ff3db4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.user.user && !_vm.user.isLoading)?_c('div',[(_vm.user.user.organizationId > 0)?_c('router-link',{attrs:{\"to\":\"/\"}},[(_vm.user.user.logotypeFileId > 0)?_c('img',{attrs:{\"src\":_vm.getImgUrl(false),\"alt\":\"Logotyp\"}}):_c('font-awesome-icon',{staticClass:\"text-primary\",staticStyle:{\"margin\":\"5px\"},attrs:{\"icon\":\"fire\",\"size\":\"3x\"}})],1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavbarLogotype.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavbarLogotype.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavbarLogotype.vue?vue&type=template&id=044add27&scoped=true&\"\nimport script from \"./NavbarLogotype.vue?vue&type=script&lang=js&\"\nexport * from \"./NavbarLogotype.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavbarLogotype.vue?vue&type=style&index=0&id=044add27&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 \"044add27\",\n null\n \n)\n\nexport default component.exports","\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--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-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--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-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=455414fa&scoped=true&\"\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&lang=scss&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=455414fa&scoped=true&lang=css&\"\nimport style2 from \"./App.vue?vue&type=style&index=2&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 \"455414fa\",\n null\n \n)\n\nexport default component.exports","'use strict';\n\nimport axios from 'axios';\nimport { save as saveSetting, getByKey } from '@/services/setting.service';\n\nexport default {\n async getUser({ commit, dispatch, state }) {\n commit('SET_ISLOADING', true);\n\n // Get user from LS.\n if (state.isOffline) {\n commit('SET_USER', await getByKey('user'));\r\n return;\r\n }\n\n const response = await axios.get('/api/User/GetLoggedIn');\n commit('SET_USER', response.data);\n await saveSetting('user', response.data);\n // Sets default customer if user only has permission to one AND if customer is not already selected.\n if (!getByKey('selectedCustomer') && response.data.defaultCustomer) {\n await saveSetting('selectedCustomer', response.data.defaultCustomer);\n commit('SET_CUSTOMER', response.data.defaultCustomer);\n // Get selected customer menu.\n dispatch('archive/getMenu', {}, { root: true });\r\n }\n },\n async setCustomer({ commit, dispatch }, customer) {\n await saveSetting('selectedCustomer', customer);\n commit('SET_CUSTOMER', customer);\n\n await saveSetting('selectedBuilding', null);\n commit('SET_BUILDING', null);\n // Get selected customer menu.\n dispatch('archive/getMenu', {}, { root: true });\n },\n async setBuilding({ commit, dispatch }, building) {\n await saveSetting('selectedBuilding', building);\n commit('SET_BUILDING', building);\n // Get selected customer menu.\n dispatch('archive/getMenu', {}, { root: true });\n },\n async setUserOrganization({ commit, dispatch }, organizationId) {\n await axios.post(`/api/User/SetUserOrganization/${organizationId}`);\n commit('SET_USER_ORGANIZATION', organizationId);\n // Clear customer.\n await saveSetting('selectedCustomer', null);\n commit('SET_CUSTOMER', null);\n // Get user.\n dispatch('user/getUser', {}, { root: true });\n // Get selected customer menu.\n dispatch('archive/getMenu', {}, { root: true });\n },\n async setOffline({ commit }, val) {\r\n await saveSetting('isOffline', val);\n commit('SET_IS_OFFLINE', val);\r\n },\n async toggleOfflineMode({ commit, state, dispatch }) {\r\n const newValue = !state.isOffline;\r\n await saveSetting('isOffline', newValue);\r\n if (!newValue) {\r\n // Get user.\n dispatch('user/getUser', {}, { root: true });\n\n // Get selected customer menu.\n dispatch('archive/getMenu', {}, { root: true });\r\n }\n\n commit('SET_IS_OFFLINE', newValue);\r\n }\n};","'use strict';\n\nexport default {\r\n SET_ISLOADING(state, isLoading) {\n state.isLoading = isLoading;\n },\n SET_USER(state, user) {\n state.user = { ...user.user, ...user.organizationLogotypes };\n state.isLoading = false;\n },\n SET_CUSTOMER(state, customer) {\n state.selectedCustomer = customer;\n },\n SET_BUILDING(state, building) {\n state.selectedBuilding = building;\n },\n SET_USER_ORGANIZATION(state, organizationId) {\n state.user.organizationId = organizationId;\r\n },\n SET_IS_OFFLINE(state, val) {\n state.isOffline = val;\r\n }\n};\n","'use strict';\r\n\r\nexport default {\r\n isInSomeRole: (state) => (roles) => {\r\n return state.user?.roles?.some(x => roles.indexOf(x) >= 0) ?? false;\r\n },\r\n isInRole: (state) => (role) => {\r\n return typeof state.user?.roles?.find(x => x === role) !== 'undefined' ?? false;\r\n }\r\n};\r\n","'use strict';\r\n\r\nimport actions from '@/store/modules/UserModule/actions';\r\nimport mutations from '@/store/modules/UserModule/mutations';\r\nimport getters from '@/store/modules/UserModule/getters';\r\nimport { getByKey } from '@/services/setting.service';\r\n\r\nexport const userModule = {\r\n namespaced: true,\r\n state: {\r\n user: getByKey('user'),\r\n isLoading: true,\r\n selectedCustomer: getByKey('selectedCustomer'),\r\n selectedBuilding: getByKey('selectedBuilding'),\r\n isOffline: getByKey('isOffline')\r\n },\r\n actions,\r\n mutations,\r\n getters\r\n};","'use strict';\r\n\r\nimport axios from 'axios';\r\n\r\nexport default {\r\n getMenu({ commit, rootState }) {\r\n rootState.user.selectedCustomer\r\n ? axios\r\n .get(\r\n `/api/Archive/GetMenuItemsByCustomerId?id=${rootState.user.selectedCustomer.id}${(rootState.user.selectedBuilding ? '&buildingId=' + rootState.user.selectedBuilding : '')}`,\r\n { withCredentials: true }\r\n )\r\n .then((response) => commit('SET_MENU', response.data))\r\n : commit('SET_MENU', []);\r\n }\r\n};\r\n","'use strict';\r\n\r\nexport default {\r\n SET_MENU(state, items) {\r\n state.menu = items;\r\n state.isLoading = false;\r\n }\r\n};","'use strict';\r\n\r\nimport actions from '@/store/modules/ArchiveModule/actions';\r\nimport mutations from '@/store/modules/ArchiveModule/mutations';\r\n\r\nexport const archiveModule = {\r\n namespaced: true,\r\n state: {\r\n menu: [],\r\n isLoading: true,\r\n types: [\r\n { value: 2, text: 'Rubrik', icon: 'registered' },\r\n { value: 3, text: 'Behållare', icon: 'folder-open' },\r\n { value: 0, text: 'Artikel', icon: 'file-edit' },\r\n { value: 4, text: 'Intern länk', icon: 'link' },\r\n { value: 5, text: 'Extern länk', icon: 'external-link' },\r\n { value: 6, text: 'Global länk', icon: 'global-link' }\r\n //{ value: 1, text: 'Dokumentlista' },\r\n ],\r\n customerAdminMenu: [\r\n {\r\n component: {\r\n render(h) {\r\n return h('div', { class: 'menu-divider' });\r\n }\r\n }\r\n },\r\n {\r\n title: 'Inställningar',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'cog'\r\n }\r\n },\r\n child: [\r\n {\r\n title: 'Användare',\r\n href: '/admin/manage/users',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'user'\r\n }\r\n }\r\n },\r\n //{\r\n // title: 'Innehåll',\r\n // href: '/admin/manage/archives',\r\n // icon: {\r\n // element: 'font-awesome-icon',\r\n // attributes: {\r\n // icon: 'sitemap'\r\n // }\r\n // }\r\n //}\r\n ]\r\n }\r\n ],\r\n adminMenu: [\r\n /* {\r\n header: true,\r\n title: 'Admin',\r\n hiddenOnCollapse: true\r\n },*/\r\n {\r\n component: {\r\n render(h) {\r\n return h('div', { class: 'menu-divider' });\r\n }\r\n }\r\n },\r\n {\r\n title: 'Inställningar',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'cog'\r\n }\r\n },\r\n child: [\r\n {\r\n title: 'Användare',\r\n href: '/admin/manage/users',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'user'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Kunder',\r\n href: '/admin/manage/customers',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'address-book'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Innehåll',\r\n href: '/admin/manage/archives',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'sitemap'\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n ],\r\n superAdminMenu: [\r\n {\r\n component: {\r\n render(h) {\r\n return h('div', { class: 'menu-divider' });\r\n }\r\n }\r\n },\r\n {\r\n title: 'Inställningar',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'cog'\r\n }\r\n },\r\n child: [\r\n {\r\n title: 'Organisationer',\r\n href: '/admin/manage/organizations',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'user-hard-hat'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Användare',\r\n href: '/admin/manage/users',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'user'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Kunder',\r\n href: '/admin/manage/customers',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'address-book'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Innehåll',\r\n href: '/admin/manage/archives',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'sitemap'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Artiklar',\r\n href: '/admin/manage/articles',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'box-open'\r\n }\r\n },\r\n child: [\r\n {\r\n href: '/admin/manage/files/7',\r\n title: 'Symboler'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Roller',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'users'\r\n }\r\n },\r\n child: [\r\n {\r\n href: '/admin/manage/roles',\r\n title: 'Visa alla'\r\n },\r\n {\r\n href: '/admin/manage/roles/save',\r\n title: 'Skapa ny'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Startsida',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'tachometer-fast'\r\n }\r\n },\r\n child: [\r\n {\r\n title: 'Dashboards',\r\n href: '/admin/manage/dashboards',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'chart-network'\r\n }\r\n }\r\n },\r\n {\r\n title: 'Widgets',\r\n href: '/admin/manage/widgets',\r\n icon: {\r\n element: 'font-awesome-icon',\r\n attributes: {\r\n icon: 'chart-line'\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n actions,\r\n mutations\r\n};\r\n","'use strict';\n\nimport { get, post, remove } from '@/helpers/api';\nimport {\n getCoordinateTypeAsNumber,\n getNumberFromCocatenatedNumbers\n} from '@/helpers/coordinate.helper';\n\nexport default {\n getBuildingParts({ commit }, buildingId) {\n get('BuildingPart', `GetAllByBuildingId/${buildingId}`).then((x) =>\n commit('SET_BUILDING_PART', x.data)\n );\n },\n getBuildingPartPositions({ commit }, buildingId) {\n get('BuildingPartPosition', `GetAllForListByBuildingId/${buildingId}`).then(\n (x) => commit('SET_BUILDING_PART_POSITIONS', x.data)\n );\n },\n /**\n * Set is position.isPositionNotInAnySchedule\n * @param {object} {id: number, isPositionNotInAnySchedule: bool}\n */\n setIsPositionNotInAnySchedule({ commit }, obj) {\n commit('SET_IS_POSITION_NOT_IN_ANY_SCHEDULE', obj);\n },\n setActivePartTab({ commit }, partId) {\n commit('SET_ACTIVE_PART_TAB', partId);\n },\n openPartPositionSidebar({ commit }, partPosition) {\n commit('OPEN_PART_POSITION_SIDEBAR', partPosition);\n },\n clearPartPositionSidebar({ commit }) {\n commit('CLEAR_PART_POSITION_SIDEBAR');\n },\n placeCoordinatesOnDrawing({ commit }, position) {\n commit('SET_PLACE_COORDINATES_ON_DRAWING', position);\n },\n /**\n * Set symbol size\n * @param {object} {id: number, symbolSize: decimal(2,1)}\n */\n async setPartSymbolSize({ commit }, obj) {\n post(\n 'BuildingPart',\n `SetSymbolSize/${obj.id}`,\n obj\n ).then((x) => {\n commit('SET_ACTIVE_PART_SYMBOL_SIZE', obj.symbolSize);\n });\n },\n /**\n * Aborting place position on drawing\n * @param {number} positionId\n */\n async abortPlacePositionOnDrawing({ commit }, positionId) {\n await remove(\n 'BuildingPartPosition',\n `DeleteCoordinates/${positionId}`\n ).then((x) => {\n commit('ABORT_PLACE_POSITION_ON_DRAWING');\n });\n },\n async clearCoordinates({ commit }, positionId) {\n await remove(\n 'BuildingPartPosition',\n `DeleteCoordinates/${positionId}`\n ).then((x) => {\n commit('CLEAR_POSITION_COORDINATE', positionId);\n });\n },\n removeBuildingPartPosition({ commit }, id) {\n return new Promise((resolve, reject) => {\n remove('BuildingPartPosition', `Delete/${id}`).then(\n (x) => {\n commit('REMOVE_BUILDING_PART_POSITIONS', id);\n resolve(x);\n },\n (error) => reject(error)\n );\n });\n },\n saveBuildingPartPosition({ commit }, position) {\n return new Promise((resolve, reject) => {\n post('BuildingPartPosition', `Save/${position.partId}`, position).then(\n (x) => {\n position.id = parseInt(x.data.entityId);\n position.number = getNumberFromCocatenatedNumbers(\n position.concatenatedNumbers,\n 'before'\n );\n position.subNumber = getNumberFromCocatenatedNumbers(\n position.concatenatedNumbers,\n 'after'\n );\n commit('SAVE_BUILDING_PART_POSITIONS', position);\n resolve(x);\n },\n (error) => reject(error)\n );\n });\n },\n /**\n * Saves coordinates.\n * @param {object} obj {id, coordinateX, coordinateY, coordinateInfoX, coordinateInfoY, type, isGroup}\n */\n async savePartsCoordinates({ commit }, obj) {\n await post('BuildingPartPosition', `SaveCoordinates/${obj.id}`, {\n ...obj,\n type: getCoordinateTypeAsNumber(obj.type) // Overwrites type as an \"enum\".\n }).then((x) => {\n commit('SET_PARTS_POSITION', obj);\n });\n },\n saveBuildingPart({ commit }, part) {\n return new Promise((resolve, reject) => {\n post('BuildingPart', `Save/${part.buildingId}`, part).then(\n (x) => {\n commit('SAVE_BUILDING_PART', part);\n resolve(x);\n },\n (error) => reject(error)\n );\n });\n },\n openPartSidebar({ commit }, part) {\n commit('OPEN_PART_SIDEBAR', part);\n },\n deleteBuildingPart({ commit }, partId) {\r\n return new Promise((resolve, reject) => {\n remove('BuildingPart', `Delete/${partId}`).then(\n (x) => {\n commit('DELETE_BUILDING_PART', partId);\n resolve(x);\n },\n (error) => reject(error)\n );\n })\r\n }\n};\n","import Vue from 'vue';\nimport { setBuildingPartPositionCoordinatesFromLowestPositionNumber } from '@/helpers/coordinate.helper';\n\nexport default {\n SET_BUILDING_PART(state, parts) {\n state.parts = parts;\n state.isLoadingParts = false;\n },\n SET_ACTIVE_PART_SYMBOL_SIZE(state, symbolSize) {\n state.activePartTab.symbolSize = symbolSize;\n },\n SET_BUILDING_PART_POSITIONS(state, partPositions) {\n state.partPositions = partPositions;\n state.isLoadingPartPositions = false;\n },\n SET_ACTIVE_PART_TAB(state, partId) {\n state.activePartTab =\n partId === null ? null : state.parts.find((x) => x.id === partId);\n },\n SET_IS_POSITION_NOT_IN_ANY_SCHEDULE(state, obj) {\n const existing = state.partPositions.find((x) => x.id === obj.id);\r\n existing.isPositionNotInAnySchedule = obj.isPositionNotInAnySchedule;\r\n },\n OPEN_PART_POSITION_SIDEBAR(state, partPosition) {\n state.partPositionSidebar.active = partPosition;\n state.partPositionSidebar.isOpen = partPosition !== null;\n },\n CLEAR_PART_POSITION_SIDEBAR(state) {\n state.partPositionSidebar.active = null;\n },\n OPEN_PART_SIDEBAR(state, part) {\n state.partSidebar.active = { ...part };\n state.partSidebar.isOpen = part !== null;\n },\n REMOVE_BUILDING_PART_POSITIONS(state, id) {\n const index = state.partPositions.findIndex((x) => x.id === id);\n state.partPositions.splice(index, 1);\n },\n SAVE_BUILDING_PART_POSITIONS(state, partPosition) {\n const index = state.partPositions.findIndex(\n (x) => x.id === partPosition.id\n );\n setBuildingPartPositionCoordinatesFromLowestPositionNumber(\n partPosition,\n state.partPositions\n );\n if (index >= 0) {\n Vue.set(state.partPositions, index, partPosition);\n state.partPositions.splice(index, 1, partPosition);\n } else state.partPositions.push(partPosition);\n },\n SAVE_BUILDING_PART(state, part) {\n const index = state.parts.findIndex((x) => x.id === part.id);\n if (index >= 0) {\n Vue.set(state.parts, index, part);\n state.parts.splice(index, 1, part);\n\n // Is active tab. Replaces.\n if (state.activePartTab.id === part.id)\n state.activePartTab = state.parts.find((x) => x.id === part.id);\n } else state.parts.push(part);\n },\n DELETE_BUILDING_PART(state, partId) {\n const index = state.parts.findIndex((x) => x.id === partId);\n state.parts.splice(index, 1);\n\n // If active tab, set to null.\n if (state.activePartTab != null) {\n if (state.activePartTab.id === partId)\n state.activePartTab = null;\r\n }\n },\n /**\n * Saves coordinates depending on type.\n * @param {object} obj {id, x, y, type}\n */\n SET_PARTS_POSITION(state, obj) {\n const existing = state.partPositions.find((x) => x.id === obj.id);\n switch (obj.type) {\n case 'all':\n existing.coordinateX = obj.coordinateX;\n existing.coordinateY = obj.coordinateY;\n existing.coordinateInfoX = obj.coordinateInfoX;\n existing.coordinateInfoY = obj.coordinateInfoY;\n break;\n case 'coordinates':\n existing.coordinateX = obj.coordinateX;\n existing.coordinateY = obj.coordinateY;\n break;\n case 'coordinatesInfo':\n existing.coordinateInfoX = obj.coordinateInfoX;\n existing.coordinateInfoY = obj.coordinateInfoY;\n break;\n }\n },\n SET_PLACE_COORDINATES_ON_DRAWING(state, position) {\n state.drawing.activePosition = position;\n },\n ABORT_PLACE_POSITION_ON_DRAWING(state) {\n const existing = state.partPositions.find(\n (x) => x.id === state.drawing.activePosition.id\n );\n existing.coordinateX = null;\n existing.coordinateY = null;\n existing.coordinateInfoX = null;\n existing.coordinateInfoY = null;\n\n state.drawing.activePosition = null;\n },\n CLEAR_POSITION_COORDINATE(state, positionId) {\n const existing = state.partPositions.find(\n (x) => x.id === positionId\n );\n existing.coordinateX = null;\n existing.coordinateY = null;\n existing.coordinateInfoX = null;\n existing.coordinateInfoY = null;\n },\n};\n","'use strict';\n\nexport default {\n getActivePartPositions(state) {\n const app = !state.activePartTab\n ? state.partPositions\n : state.partPositions\n .filter((x) => x.partId === state.activePartTab.id)\n .sort(\n (a, b) =>\n parseFloat(a.concatenatedNumbers) -\n parseFloat(b.concatenatedNumbers)\n );\n return app;\n },\n getActivePartPositionsWithoutCoordinates(state) {\n const app = !state.activePartTab\n ? []\n : state.partPositions.filter(\n (x) =>\n x.partId === state.activePartTab.id &&\n (!x.coordinateX || !x.coordinateY)\n );\n return app;\n },\n nextPartPositionNumber(state) {\n const highestNumber = state.partPositions.reduce((entity, max) => {\n const parsed = parseInt(parseFloat(max.concatenatedNumbers).toFixed(0));\n if (entity > parsed) {\n return entity;\n } else {\n return parsed;\n }\n }, 0);\n\n return highestNumber + 1;\n },\n nextPartPositionSubNumber(state) {\n const highestNumber = state.partPositions.filter(x => x.partId === state.activePartTab.id).reduce((entity, max) => {\r\n const parsed = parseInt(parseFloat(max.subNumber).toFixed(0));\r\n if (entity > parsed) {\r\n return entity;\r\n } else {\r\n return parsed;\r\n }\r\n }, 0);\r\n\r\n if (isNaN(highestNumber))\r\n return 1;\r\n\r\n return highestNumber + 1;\r\n }\n};\n","'use strict';\r\n\r\nimport actions from '@/store/modules/BuildingPositionsModule/actions';\r\nimport mutations from '@/store/modules/BuildingPositionsModule/mutations';\r\nimport getters from '@/store/modules/BuildingPositionsModule/getters';\r\n\r\nexport const buildingPositionsModule = {\r\n namespaced: true,\r\n state: {\r\n activePartTab: null,\r\n // Parts.\r\n isLoadingParts: true,\r\n parts: [],\r\n // Part positions.\r\n isLoadingPartPositions: true,\r\n partPositions: [],\r\n activePartPosition: null,\r\n partSidebar: {\r\n isOpen: false,\r\n active: null\r\n },\r\n partPositionSidebar: {\r\n isOpen: false,\r\n active: null\r\n },\r\n drawing: {\r\n activePosition: null\r\n }\r\n },\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","'use strict';\n\nimport axios from 'axios';\nimport { service } from '@/services/do-control.service';\nimport { articleService } from '@/services/article.service';;\n\nexport default {\n async get({ commit }, id) {\n commit('SET_IS_LOADING', true);\n\n let control = await service.getFirst(id);\n commit('SET_ACTIVE_CONTROL', control || (await axios.get(`/api/Control/Get/${id}`)).data);\n },\n async fetchControlPartPositionById({ commit }, id) {\n const controlPartPosition = await service.fetchControlPartPositionById(id);\n commit('ADD_POSITION_TO_CONTROL', controlPartPosition);\n },\n async postPartPosition({ commit, state }, vm) {\r\n await service.setControlPartPosition(\r\n state.active.checkedOut,\r\n state.active.id,\r\n vm\r\n );\r\n commit('SET_CONTROL_PART_POSITION', vm);\r\n },\n async setNewRevisionDate({ commit, state }, vm) {\n const response = await service.setNewRevisionDate(\n state.active.checkedOut,\n state.active.id,\n vm.buildingPartPositionId,\n vm.years,\n //vm.nextRevisionDate\n );\n\n commit('SET_NEW_REVISION_DATE', {\r\n buildingPartPositionId: vm.buildingPartPositionId,\r\n newValue: response.data\n });\r\n\r\n return response.data;\r\n },\n async setAllPositionStatusesToDone({ commit, state }, partId) {\r\n const positionsWithNewStatus = await service.setAllPositionsToDone(state.active, partId);\n\r\n commit('SET_ALL_POSITION_STATUSES_TO_DONE', positionsWithNewStatus);\r\n },\n async checkOut({ commit, state }) {\r\n const checkedOutProps = await service.checkOut(state.active);\r\n await articleService.getAllArticlesForControl(state.active.id);\r\n commit('CHECK_OUT_CONTROL', checkedOutProps);\r\n },\n async setToDone({ commit, state }, vm) {\n await service.setToDone(state.active.id, vm.done, vm.controlNotes);\r\n commit('SET_TO_DONE', vm);\r\n },\n async setNotes({ commit, state }, controlNotes) {\n await service.setControlNotes(state.active.checkedOut, state.active.id, controlNotes);\r\n commit('SET_NOTES', controlNotes);\r\n },\n async abortCheckIn({ commit, state }) {\r\n await service.abortCheckIn(state.active.id);\r\n commit('ABORT_CHECK_IN');\r\n },\n async checkIn({ commit }, controlId) {\n commit('SET_IS_CHECKING_IN', true);\n await service.checkIn(controlId);\r\n commit('SET_IS_CHECKING_IN', false);\r\n },\n async checkInAll({ commit }) {\n commit('SET_IS_CHECKING_IN', true);\n const errors = await service.checkInAll();\r\n commit('ABORT_CHECK_IN');\r\n commit('SET_IS_CHECKING_IN', false);\r\n\r\n return errors;\r\n }\n};","'use strict'; import Vue from 'vue';\n\nexport default {\n SET_IS_LOADING(state, val) {\n state.isLoading = val;\n },\n SET_IS_CHECKING_IN(state, val) {\n state.isCheckingIn = val;\r\n },\n SET_ACTIVE_CONTROL(state, control) {\n state.active = control;\n state.isLoading = false;\n },\n SET_CONTROL_PART_POSITION(state, vm) {\n const existing = state.active.positions.find(x => x.id === vm.id)\r\n existing.statusId = vm.statusId\r\n existing.lackDescription = vm.lackDescription;\r\n },\n SET_TO_DONE(state, vm) {\n state.active.status = 10;\r\n state.active.notes = vm.controlNotes;\r\n },\n SET_NOTES(state, notes) {\n state.active.notes = notes;\r\n },\n ABORT_CHECK_IN(state) {\n if (!state.active)\n return;\n state.active.checkedOut = false;\r\n state.active.checkedOutBy = null;\r\n state.active.checkedOutDate = null;\r\n },\n CHECK_OUT_CONTROL(state, vm) {\r\n state.active.checkedOut = vm.checkedOut;\r\n state.active.checkedOutBy = vm.checkedOutBy;\r\n state.active.checkedOutDate = vm.checkedOutDate;\r\n state.active.controlId = vm.controlId;\r\n },\n SET_NEW_REVISION_DATE(state, vm) {\n const existing = state.active.positions.find(x => x.positionId === vm.buildingPartPositionId);\r\n existing.nextRevisionDate = vm.newValue.nextRevisionDate;\r\n existing.nextRevisionDateDisplayText = vm.newValue.nextRevisionDateDisplayText;\r\n },\n SET_ALL_POSITION_STATUSES_TO_DONE(state, positionIds) {\n positionIds.forEach(positionId => {\r\n const position = state.active.positions.find(x => x.id === positionId);\r\n Object.assign(position, {\r\n statusId: 10\r\n });\r\n });\n },\n ADD_POSITION_TO_CONTROL(state, vm) {\n Vue.set(state.active, 'positions', [...state.active.positions, vm]);\r\n state.active.numberOfPositions++;\r\n },\n};\n","'use strict';\r\n\r\nimport actions from '@/store/modules/ControlModule/actions';\r\nimport mutations from '@/store/modules/ControlModule/mutations';\r\n\r\nexport const controlModule = {\r\n namespaced: true,\r\n state: {\r\n isLoading: true,\r\n isCheckingIn:false,\r\n active: null\r\n },\r\n actions,\r\n mutations\r\n};","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nimport { userModule } from '@/store/modules/UserModule/index';\r\nimport { archiveModule } from '@/store/modules/ArchiveModule/index';\r\nimport { buildingPositionsModule } from '@/store/modules/BuildingPositionsModule/index';\r\nimport { controlModule } from '@/store/modules/ControlModule/index';\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n modules: {\r\n user: userModule,\r\n archive: archiveModule,\r\n buildingPositions: buildingPositionsModule,\r\n control: controlModule\r\n }\r\n});\r\n\r\nexport default store;","'use strict';\r\n\r\nimport Router from 'vue-router';\r\n\r\nlet router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'startPage',\r\n meta: {\r\n title: 'Översikt',\r\n },\r\n component: () => import(/*webpackChunkName: \"startPage\" */ '@/views/StartPage.vue')\r\n },\r\n {\r\n path: '/page/:id?',\r\n name: 'page',\r\n component: () => import(/*webpackChunkName: \"page\" */ '@/views/ArchivePage.vue')\r\n },\r\n {\r\n path: '/globalpage/:id?',\r\n name: 'globalpage',\r\n component: () => import(/*webpackChunkName: \"globalpage\" */ '@/views/ArchiveGlobalPage.vue')\r\n },\r\n {\r\n path: '/admin/manage/users/save',\r\n name: 'admin-manage-user-save',\r\n component: () => import(/* webpackChunkName: \"admin-manage-user-save\" */ '@/views/admin/manage/user/SaveUser.vue')\r\n },\r\n {\r\n path: '/admin/manage/users',\r\n name: 'admin-manage-user-list',\r\n meta: {\r\n title: 'Användare',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-user-list\" */ '@/views/admin/manage/user/ListUsers.vue')\r\n },\r\n {\r\n path: '/admin/manage/roles/save',\r\n name: 'admin-manage-role-save',\r\n meta: {\r\n title: 'Skapa roll',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-role-save\" */ '@/views/admin/manage/role/SaveRole.vue')\r\n },\r\n {\r\n path: '/admin/manage/roles',\r\n name: 'admin-manage-role-list',\r\n meta: {\r\n title: 'Roller',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-role-list\" */ '@/views/admin/manage/role/ListRoles.vue')\r\n },\r\n {\r\n path: '/admin/manage/customers',\r\n name: 'admin-manage-customer-list',\r\n meta: {\r\n title: 'Kunder',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-customer-list\" */ '@/views/admin/manage/customer/ListCustomers.vue')\r\n },\r\n {\r\n path: '/admin/manage/customers/save',\r\n name: 'admin-manage-customer-save',\r\n component: () => import(/* webpackChunkName: \"admin-manage-customer-save\" */ '@/views/admin/manage/customer/SaveCustomer.vue')\r\n },\r\n {\r\n path: '/admin/manage/articles',\r\n name: 'admin-manage-article-list',\r\n meta: {\r\n title: 'Artiklar',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-article-list\" */ '@/views/admin/manage/article/ListArticles.vue')\r\n },\r\n {\r\n path: '/admin/manage/widgets',\r\n name: 'admin-manage-widget-list',\r\n meta: {\r\n title: 'Widgets',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-widget-list\" */ '@/views/admin/manage/widgets/ListWidgets.vue')\r\n },\r\n {\r\n path: '/admin/manage/dashboards',\r\n name: 'admin-manage-dashboard-list',\r\n meta: {\r\n title: 'Dashboards',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-dashboard-list\" */ '@/views/admin/manage/dashboards/ListDashboards.vue')\r\n },\r\n {\r\n path: '/admin/manage/organizations',\r\n name: 'admin-manage-organizations-list',\r\n meta: {\r\n title: 'Organisationer',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-organizations-list\" */ '@/views/admin/manage/organization/ListOrganizations.vue')\r\n },\r\n {\r\n path: '/admin/manage/articles/save',\r\n name: 'admin-manage-article-save',\r\n component: () => import(/* webpackChunkName: \"admin-manage-article-save\" */ '@/views/admin/manage/article/SaveArticle.vue')\r\n },\r\n {\r\n path: '/admin/manage/archives',\r\n name: 'admin-manage-archive-list',\r\n meta: {\r\n title: 'Innehåll',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-archive-list\" */ '@/views/admin/manage/archive/ListArchive.vue')\r\n },\r\n {\r\n path: '/admin/manage/files/:entityType/:entityId?',\r\n name: 'admin-manage-files-list',\r\n meta: {\r\n title: 'Filer',\r\n },\r\n component: () => import(/* webpackChunkName: \"admin-manage-symbols-list\" */ '@/views/admin/manage/file/ListFiles.vue')\r\n },\r\n {\r\n path: '/manage/buildings',\r\n name: 'manage-building-list',\r\n meta: {\r\n title: 'Fastigheter',\r\n },\r\n component: () => import(/* webpackChunkName: \"manage-building-list\" */ '@/views/manage/building/ListBuildings.vue')\r\n },\r\n {\r\n path: '/manage/buildings/:id/:tab?/:entityId?',\r\n name: 'manage-building',\r\n component: () => import(/* webpackChunkName: \"manage-building\" */ '@/views/manage/building/Building.vue')\r\n },\r\n {\r\n path: '/import/buildings/:id?',\r\n name: 'import-buildings',\r\n component: () => import(/* webpackChunkName: \"import-buildings\" */ '@/views/import/ImportBuildings.vue')\r\n },\r\n {\r\n path: '/control/:id',\r\n name: 'do-control',\r\n component: () => import(/* webpackChunkName: \"do-control\" */ '@/views/control/DoControl.vue')\r\n },\r\n {\r\n path: '/error/:statusCode/:statusText?',\r\n name: 'error',\r\n meta: {\r\n title: 'Ett fel har inträffat',\r\n },\r\n component: () => import( /* webpackChunkName: \"error-view\" */ '@/views/Error.vue')\r\n },\r\n {\r\n path: '/do-control/print/:controlId/:partId?',\r\n name: 'control-print-view',\r\n component: () => import(/* webpackChunkName: \"control-print-view\" */ '@/components/control/ControlPrintView.vue')\r\n },\r\n {\r\n path: '*',\r\n name: '404-default',\r\n redirect: (to) => {\r\n return `/Error/404/${encodeURIComponent('Sidan saknas.')}`;\r\n }\r\n },\r\n {\r\n path: '/dev/logs',\r\n name: 'log-table',\r\n component: () => import(/* webpackChunkName: \"log-table\" */ '@/views/Logs.vue')\r\n }\r\n ]\r\n});\r\n\r\n\r\nimport Vue from 'vue';\r\nimport store from '@/store';\r\nconst DEFAULT_TITLE = 'SeBrA';\r\nrouter.afterEach((to) => {\r\n Vue.nextTick(() => {\r\n var arr = [];\r\n if (store.state.user.selectedCustomer)\r\n arr.push(store.state.user.selectedCustomer.name);\r\n\r\n if (to.meta.title)\r\n arr.push(to.meta.title);\r\n\r\n document.title = `${arr.join(' / ')} - ${DEFAULT_TITLE}`;\r\n });\r\n});\r\n\r\nexport default router;","'use strict';\r\n\r\nexport const groupByKey = function (array, key) {\r\n const result = {};\r\n array.forEach((item) => {\r\n if (!result[item[key]]) result[item[key]] = [];\r\n result[item[key]].push(item);\r\n });\r\n return result;\r\n};\r\n\r\n/**\r\n * Filter-map. Like map, but skips undefined values.\r\n *\r\n * @param callback\r\n */\r\nexport const fmap = function(callback) {\r\n return this.reduce((accum, ...args) => {\r\n let x = callback(...args);\r\n if (x !== undefined)\r\n accum.push(x);\r\n return accum;\r\n }, []);\r\n}","'use strict';\r\n\r\nimport Vue from 'vue';\r\n\r\n// This filter is ONLY for C# DateTimes. Doesn't work with JavaScript Dates.\r\nVue.filter('datetime', function (value, convertTo) {\r\n function getDate(val) {\r\n const months = [\r\n { index: '01', name: 'januari' },\r\n { index: '02', name: 'februari' },\r\n { index: '03', name: 'mars' },\r\n { index: '04', name: 'april' },\r\n { index: '05', name: 'maj' },\r\n { index: '06', name: 'juni' },\r\n { index: '07', name: 'juli' },\r\n { index: '08', name: 'augusti' },\r\n { index: '09', name: 'september' },\r\n { index: '10', name: 'oktober' },\r\n { index: '11', name: 'november' },\r\n { index: '12', name: 'december' }\r\n ];\r\n let month = val.substr(5, 2);\r\n let year = val.substr(0, 4);\r\n let day = val.substr(8, 2).startsWith('0')\r\n ? val.substr(9, 1)\r\n : val.substr(8, 2); // Remove first 0.\r\n return `${day} ${months.find((m) => m.index == month).name} ${year}`;\r\n }\r\n function getTime(val, formatting) {\r\n switch (formatting) {\r\n case 'HH:mm':\r\n return val.substr(0, 5);\r\n case 'HH:mm:ss':\r\n return val.substr(0, 8);\r\n }\r\n }\r\n if (value) {\r\n // Valid input = yyyy-MM-dd OR yyyy-MM-ddTHH:mm:ss OR yyyy-MM-dd HH:mm:ss\r\n let splitted =\r\n value.indexOf('T') > -1 ? value.split('T') : value.split(' ');\r\n switch (convertTo) {\r\n // d MMMM yyyy:\r\n case 'd MMMM yyyy':\r\n return getDate(splitted[0]);\r\n case 'd MMMM yyyy HH:mm':\r\n return getDate(splitted[0]) + ' ' + getTime(splitted[1], 'HH:mm');\r\n case 'd MMMM yyyy HH:mm:ss':\r\n return getDate(splitted[0]) + ' ' + getTime(splitted[1], 'HH:mm:ss');\r\n // yyyy-MM-dd:\r\n case 'dd':\r\n return splitted[0].substring(8, 1);\r\n case 'MM':\r\n return splitted[0].substring(5, 1);\r\n case 'yyyy':\r\n return splitted[0].substring(0, 4);\r\n case 'yyyy-MM-dd':\r\n return splitted[0];\r\n case 'yyyy-MM-dd HH:mm':\r\n return splitted[0] + ' ' + getTime(splitted[1], 'HH:mm');\r\n case 'yyyy-MM-dd HH:mm:ss':\r\n return splitted[0] + ' ' + getTime(splitted[1], 'HH:mm:ss');\r\n }\r\n // Something went snett :(\r\n return 'Något gick snett med datumkonvertering :(';\r\n }\r\n});\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport { getIcon, formatBytes } from '@/helpers/file.helper';\r\n\r\nVue.filter('formatFileSize', function (value) {\r\n return formatBytes(value);\r\n});\r\n\r\nVue.filter('getIcon', function (value) {\r\n return getIcon(value);\r\n});\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport { ENTITY_TYPES } from '@/helpers/entity-type.helper';\r\n\r\nVue.filter('getEntityTypeIdFromText', function (value) {\r\n return ENTITY_TYPES[value].id;\r\n});\r\n","/* eslint-disable no-console */\r\n\r\nimport { 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 },\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}","import Vue from 'vue';\r\nimport App from '@/App.vue';\r\nimport VueRouter from 'vue-router';\r\nimport BootstrapVue from 'bootstrap-vue';\r\nimport router from '@/plugins/router';\r\nimport store from '@/store';\r\nimport { groupByKey } from '@/helpers/array.helper';\r\n\r\n/*https://vue-select.org/*/\r\nimport vSelect from 'vue-select';\r\n\r\n/* https://github.com/thecodealer/vue-panzoom */\r\n/* wrapper of https://github.com/anvaka/panzoom */\r\nimport panZoom from 'vue-panzoom';\r\n\r\n// Axios.\r\nimport axios from 'axios';\r\naxios.defaults.headers.common = {\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n};\r\naxios.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n if (error.response.status === 401) {\r\n return window.location.replace(`/login?returnUrl=${encodeURIComponent(router.history.current.fullPath)}`);\r\n }\r\n if (error.response.status === 403) {\r\n return alert('Du saknar åtkomst');\r\n }\r\n throw error;\r\n }\r\n);\r\n// ./ Axios.\r\n\r\n// Vue2TouchEvents - https://github.com/jerrybendy/vue-touch-events\r\nimport Vue2TouchEvents from 'vue2-touch-events';\r\n\r\n// VueSidebarMenu - https://github.com/yaminncco/vue-sidebar-menu\r\nimport VueSidebarMenu from 'vue-sidebar-menu';\r\n// ./ VueSidebarMenu.\r\n\r\n// FA - https://github.com/FortAwesome/vue-fontawesome\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\r\nimport { library, config } from '@fortawesome/fontawesome-svg-core';\r\nconfig.autoAddCss = false;\r\nimport {\r\n faUser,\r\n faUsers,\r\n faClipboardList,\r\n faHome,\r\n faArrowsAltH,\r\n faChevronRight,\r\n faChevronLeft,\r\n faChevronDown,\r\n faChevronUp,\r\n faFire,\r\n faSignOutAlt,\r\n faSpinner,\r\n faPenSquare,\r\n faInfoCircle,\r\n faImage,\r\n faFolderOpen,\r\n faFileEdit,\r\n faLink,\r\n faExternalLink,\r\n faPlusSquare,\r\n faRegistered,\r\n faTrashAlt,\r\n faCog,\r\n faAddressBook,\r\n faBoxOpen,\r\n faSitemap,\r\n faBug,\r\n faFilePdf,\r\n faFileImage,\r\n faFileVideo,\r\n faFileArchive,\r\n faFileExcel,\r\n faFilePowerpoint,\r\n faFileWord,\r\n faFileAlt,\r\n faFile,\r\n faList,\r\n faMap,\r\n faMapMarkedAlt,\r\n faMapMarkerPlus,\r\n faMapMarkerExclamation,\r\n faSearchMinus,\r\n faSearchPlus,\r\n faBuilding,\r\n faTachometerAlt,\r\n faSquare,\r\n faCheckSquare,\r\n faExclamationTriangle,\r\n faArrowAltCircleLeft,\r\n faClipboardCheck,\r\n faCheckDouble,\r\n faCommentLines,\r\n faCommentPlus,\r\n faPrint,\r\n faBars,\r\n faFilter,\r\n faFireExtinguisher,\r\n faSensorFire,\r\n faFireSmoke,\r\n faBlanket,\r\n faPaperclip,\r\n faFolder,\r\n faFolders,\r\n faCircle,\r\n faTimes,\r\n faEnvelope,\r\n faCalendarTimes,\r\n faCalendar,\r\n faUserHardHat,\r\n faToggleOff,\r\n faToggleOn,\r\n faEye,\r\n faSignalSlash,\r\n faLock,\r\n faKey,\r\n faPlayCircle,\r\n faTachometerFast,\r\n faChartLine,\r\n faChartNetwork,\r\n faTag,\r\n faGripVertical,\r\n} from '@fortawesome/pro-solid-svg-icons';\r\nlibrary.add(\r\n faUser,\r\n faUsers,\r\n faClipboardList,\r\n faHome,\r\n faArrowsAltH,\r\n faChevronRight,\r\n faChevronLeft,\r\n faChevronDown,\r\n faChevronUp,\r\n faFire,\r\n faSignOutAlt,\r\n faSpinner,\r\n faPenSquare,\r\n faInfoCircle,\r\n faImage,\r\n faFolderOpen,\r\n faFileEdit,\r\n faLink,\r\n faExternalLink,\r\n faPlusSquare,\r\n faRegistered,\r\n faTrashAlt,\r\n faCog,\r\n faAddressBook,\r\n faBoxOpen,\r\n faSitemap,\r\n faBug,\r\n faFilePdf,\r\n faFileImage,\r\n faFileVideo,\r\n faFileArchive,\r\n faFileExcel,\r\n faFilePowerpoint,\r\n faFileWord,\r\n faFileAlt,\r\n faFile,\r\n faList,\r\n faMap,\r\n faMapMarkedAlt,\r\n faMapMarkerPlus,\r\n faMapMarkerExclamation,\r\n faSearchMinus,\r\n faSearchPlus,\r\n faBuilding,\r\n faTachometerAlt,\r\n faSquare,\r\n faCheckSquare,\r\n faExclamationTriangle,\r\n faArrowAltCircleLeft,\r\n faClipboardCheck,\r\n faCheckDouble,\r\n faCommentLines,\r\n faCommentPlus,\r\n faPrint,\r\n faBars,\r\n faFilter,\r\n faFireExtinguisher,\r\n faSensorFire,\r\n faFireSmoke,\r\n faBlanket,\r\n faPaperclip,\r\n faFolder,\r\n faFolders,\r\n faCircle,\r\n faTimes,\r\n faEnvelope,\r\n faCalendarTimes,\r\n faCalendar,\r\n faUserHardHat,\r\n faToggleOff,\r\n faToggleOn,\r\n faEye,\r\n faSignalSlash,\r\n faLock,\r\n faPlayCircle,\r\n faKey,\r\n faTachometerFast,\r\n faChartLine,\r\n faChartNetwork,\r\n faTag,\r\n faGripVertical,\r\n \r\n);\r\nVue.component('font-awesome-icon', FontAwesomeIcon);\r\n// ./ FA.\r\n\r\n/*Filters*/\r\nimport '@/filters/datetime.filters';\r\nimport '@/filters/file.filters';\r\nimport '@/filters/app.filters';\r\n\r\n// SW.\r\nimport '@/plugins/registerServiceWorker';\r\n\r\nVue.config.productionTip = true;\r\n\r\nVue.use(VueRouter);\r\nVue.use(BootstrapVue);\r\nVue.use(VueSidebarMenu);\r\nVue.use(panZoom);\r\nVue.use(Vue2TouchEvents);\r\nVue.component('v-select', vSelect);\r\n\r\n/* Globals */\r\nconst eventHub = new Vue();\r\nVue.prototype.$eventHub = eventHub;\r\nArray.prototype.groupByKey = function (key) {\r\n return groupByKey(this, key);\r\n};\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: (h) => h(App)\r\n}).$mount('#app');\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","'use strict';\r\nimport {\r\n ACCEPTED_FILE_TYPES,\r\n acceptedImageExtensions\r\n} from '@/helpers/file.helper';\r\n\r\nexport const ENTITY_TYPES = {\r\n customer: {\r\n id: 0,\r\n displayText: 'kund',\r\n allowedExtensions: ACCEPTED_FILE_TYPES,\r\n name: 'customer'\r\n },\r\n archive: {\r\n id: 1,\r\n displayText: 'innehåll',\r\n allowedExtensions: ACCEPTED_FILE_TYPES,\r\n name: 'archive'\r\n },\r\n article: {\r\n id: 3,\r\n displayText: 'artikel',\r\n allowedExtensions: ACCEPTED_FILE_TYPES,\r\n name: 'article'\r\n },\r\n building: {\r\n id: 4,\r\n displayText: 'fastighet',\r\n name: 'building'\r\n },\r\n symbol: {\r\n id: 7,\r\n displayText: 'symbol',\r\n allowedExtensions: ['.svg'],\r\n name: 'symbol'\r\n },\r\n controlPartPosition: {\r\n id: 12,\r\n displayText: 'kontrollposition',\r\n allowedExtensions: acceptedImageExtensions,\r\n name: 'controlPartPosition'\r\n },\r\n organization: {\r\n id: 13,\r\n displayText: 'organisation',\r\n allowedExtensions: acceptedImageExtensions,\r\n name: 'organization'\r\n },\r\n controlNote: {\r\n id: 14,\r\n displayText: 'kontrollanteckning',\r\n allowedExtensions: ACCEPTED_FILE_TYPES,\r\n name: 'controlNote'\r\n }\r\n};\r\n\r\nexport const getEntityTypeById = function (entityType) {\r\n const found = Object.values(ENTITY_TYPES).find((x) => x.id === entityType);\r\n return found\r\n ? found\r\n : () => {\r\n throw `EntityType '${entityType}' has not yet been implemented.`;\r\n };\r\n};\r\n\r\nexport const getDisplayText = function (entityType) {\r\n return getEntityTypeById(entityType).displayText;\r\n};\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=2&lang=css&\"","'use strict';\n\nexport const ACCEPTED_IMAGE_TYPES = [\n {\n extension: '.tif',\n type: 'image/tif'\n },\n {\n extension: '.jpg',\n type: 'image/jpg'\n },\n {\n extension: '.jpeg',\n type: 'image/jpeg'\n },\n {\n extension: '.tiff',\n type: 'image/tiff'\n },\n {\n extension: '.gif',\n type: 'image/gif'\n },\n {\n extension: '.svg',\n type: 'image/svg+xml'\n },\n {\n extension: '.webp',\n type: 'image/webp'\n },\n {\n extension: '.png',\n type: 'image/png'\n }\n];\n\n// Should mirror Skydda.SBA.WebApp\\appsettings.json - FileSettings['AllowedExtensions'].\nexport const ACCEPTED_FILE_TYPES = [\n '.png',\n '.jpg',\n '.jpeg',\n '.gif',\n '.xlsx',\n '.pptx',\n '.docx',\n '.rtf',\n '.txt',\n '.svg'\n];\n\nexport const convertToBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\nexport const getIcon = function (extension) {\n switch (extension) {\n case '.pdf':\n case '.pdfx':\n return 'file-pdf';\n case '.eps':\n case '.gif':\n case '.jpg':\n case '.jpeg':\n case '.pct':\n case '.psd':\n case '.png':\n case '.ps':\n case '.tiff':\n case '.bmp':\n return 'file-image';\n case '.mov':\n case '.mpg':\n case '.mpeg':\n case '.avi':\n return 'file-video';\n case '.rar':\n case '.zip':\n case '.tar':\n return 'file-archive';\n case '.xls':\n case '.xlsx':\n case '.xltx':\n case '.xlt':\n return 'file-excel';\n case '.pptx':\n case '.ppsx':\n case '.potx':\n case '.ppt':\n case '.pps':\n case '.pot':\n return 'file-powerpoint';\n case '.doc':\n case '.dot':\n case '.docx':\n case '.dotx':\n return 'file-word';\n case '.rtf':\n case '.txt':\n return 'file-alt';\n default:\n return 'file';\n }\n};\n\nexport const getDownloadUrl = function (id) {\n return `${process.env.VUE_APP_ROOT_API}File/Download/${id}`;\n};\n\nexport const getDownloadUrlByArticleId = function (id) {\n return `${process.env.VUE_APP_ROOT_API}File/Article/${id}`;\n};\n\nexport const formatBytes = function (bytes, decimals = 2) {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n};\n\nexport const isAcceptedImage = function (file) {\n if (!file.type.startsWith('image/')) return false;\n\n return ACCEPTED_IMAGE_TYPES.some((x) => x.type === file.type.toLowerCase());\n};\n\nexport const isImageContentType = function (type) {\n return ACCEPTED_IMAGE_TYPES.some((x) => x.type === type.toLowerCase());\n};\n\nexport const acceptedImageExtensions = function () {\n return ACCEPTED_IMAGE_TYPES.map((x) => x.extension).toString();\n};\n\nexport const getExtension = function (filename) {\n return filename.substring(filename.lastIndexOf('.') + 1, filename.length) || filename;\r\n};\r\n\r\nexport const base64toBlob = function (base64) {\r\n return new Promise(resolved => {\n let byteString;\r\n if (base64.split(',')[0].indexOf('base64') >= 0)\r\n byteString = atob(base64.split(',')[1]);\r\n else\r\n byteString = unescape(base64.split(',')[1]);\r\n\r\n const mimeString = base64.split(',')[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n const blob = new Blob([ia], { type: mimeString });\r\n resolved(blob);\n });\r\n};","'use strict';\nimport { db } from '@/plugins/dexie/dbDoControl';\r\nimport { get } from '@/helpers/api';\r\n\nexport const articleService = {\r\n getAllArticlesForControl,\r\n getFirst\r\n}\n\nasync function getAllArticlesForControl(controlId) {\r\n const articles = await get('Article', `GetAllForControl/${controlId}`).then(x => x.data);\r\n return await addArticles(articles);\r\n}\r\n\r\nasync function addArticles(articles) {\r\n return await db.articles.bulkPut(articles);\r\n}\r\n\r\nexport async function getFirst(id) {\r\n return await db.articles.where({ id: id }).first();\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.user.isLoading)?_c('div',{staticClass:\"p-1\"},[_c('div',{staticClass:\"text-white text-center\"},[(_vm.user.selectedCustomer === null)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.viewChange()}}},[_vm._v(\" Välj kund \")]):(_vm.user.selectedCustomer !== null)?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"href\":\"#\",\"title\":\"Byt kund\"},on:{\"click\":function($event){return _vm.viewChange()}}},[_vm._v(\" \"+_vm._s(_vm.user.selectedCustomer.name)+\" \")]):_vm._e(),_c('b-modal',{attrs:{\"id\":(\"modal-customer-\" + _vm._uid),\"title\":\"Byt kund\",\"ok-title\":\"Byt\",\"cancel-title\":\"Avbryt\",\"no-close-on-backdrop\":\"\"},on:{\"ok\":_vm.changeCustomer}},[_c('label',[_vm._v(\"Sök eller välj kund\")]),_c('v-select',{ref:\"customer-select-list\",attrs:{\"placement\":\"top\",\"filterable\":false,\"options\":_vm.customers,\"clearable\":false},on:{\"search\":_vm.onSearch,\"option:selected\":_vm.onSelect,\"option:blur\":_vm.onBlur,\"click\":function($event){$event.stopPropagation();},\"keyup\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('div',{staticClass:\"d-center\"},[_vm._v(\" \"+_vm._s(option.name)+\" (\"+_vm._s(option.customerNo)+\") \")])]}},{key:\"selected-option\",fn:function(option){return [_c('div',{staticClass:\"selected d-center\"},[_vm._v(\" \"+_vm._s(option.name)+\" (\"+_vm._s(option.customerNo)+\") \")])]}}],null,false,3701002724),model:{value:(_vm.newCustomer),callback:function ($$v) {_vm.newCustomer=$$v},expression:\"newCustomer\"}},[_c('template',{slot:\"no-options\"},[_vm._v(_vm._s(_vm.isSuperAdmin ? 'Sök' : 'Välj')+\" \")])],2)],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSelectList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSelectList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomerSelectList.vue?vue&type=template&id=5d8a0704&scoped=true&\"\nimport script from \"./CustomerSelectList.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomerSelectList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomerSelectList.vue?vue&type=style&index=0&id=5d8a0704&scoped=true&lang=css&\"\nimport style1 from \"./CustomerSelectList.vue?vue&type=style&index=1&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 \"5d8a0704\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&id=455414fa&scoped=true&lang=css&\"","'use strict';\r\n\r\nimport axios from 'axios';\r\n\r\nexport const get = async (controller, method, options) => {\r\n const response = await axios.get(`/api/${controller}/${method}`, options);\r\n return response;\r\n};\r\nexport const post = async (controller, method, options) => {\r\n const response = await axios.post(`/api/${controller}/${method}`, options);\r\n return response;\r\n};\r\n\r\nexport const remove = async (controller, method, options) => {\r\n const response = await axios.delete(`/api/${controller}/${method}`, options);\r\n return response;\r\n};\r\n"],"sourceRoot":""}