{"version":3,"sources":["webpack-debugging:///webpack/bootstrap","webpack-generated:///./src/components/Home/Home.vue?812d","webpack-generated:///./src/Base.vue?9596","webpack-generated:///./src/components/Products/ProductTopbar.vue?93eb","webpack-debugging:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack-generated:///./src/components/Products/ProductForm.vue?3d4e","webpack-generated:///./src/components/Profile/UserProfile.vue?426e","webpack-generated:///./src/components/Tickets/TicketCard.vue?d983","webpack-generated:///./src/components/Products/ProductGrid.vue?2ff0","webpack-generated:///./src/components/Products/ProductTile.vue?374f","webpack-generated:///./src/components/Announcements/Announcements.vue?0076","webpack-generated:///./src/components/Tickets/Tickets.vue?13aa","webpack-generated:///./src/components/SelectCustomerDialog/SelectCustomerDialog.vue?ff3f","webpack-debugging:///./src/models/enums/language.enum.ts","webpack-generated:///./src/App.vue?3dfd","webpack-generated:///./src/Base.vue?6ff6","webpack-generated:///./src/components/SelectCustomerDialog/SelectCustomerDialog.vue?6736","webpack-debugging:///./src/components/SelectCustomerDialog/SelectCustomerDialog.vue","webpack:///./src/components/SelectCustomerDialog/SelectCustomerDialog.vue?b9eb","webpack-generated:///./src/components/SelectCustomerDialog/SelectCustomerDialog.vue?4f88","webpack-generated:///src/Base.vue?de27","webpack-debugging:///./src/Base.vue","webpack-generated:///./src/Base.vue?7cf7","webpack-generated:///src/App.vue?c65d","webpack-debugging:///./src/App.vue","webpack-generated:///./src/App.vue?315a","webpack-generated:///./src/components/Home/Home.vue?cc92","webpack-generated:///./src/components/Products/ProductGrid.vue?5415","webpack-generated:///./src/components/Products/ProductTile.vue?c4dd","webpack-generated:///./src/components/Products/ProductForm.vue?1bb6","webpack-debugging:///./src/utils/functions.ts","webpack-debugging:///./src/plugins/translations-plugin.ts","webpack-debugging:///./src/components/Products/ProductForm.vue","webpack-debugging:///./src/models/dtos/product/product.enum.ts","webpack:///./src/components/Products/ProductForm.vue?c591","webpack-generated:///./src/components/Products/ProductForm.vue?b99d","webpack-debugging:///./src/plugins/msal-plugin.ts","webpack-debugging:///./src/components/Products/ProductTile.vue","webpack:///./src/components/Products/ProductTile.vue?656c","webpack-generated:///./src/components/Products/ProductTile.vue?a72b","webpack-debugging:///./src/models/requests/product.request.ts","webpack-generated:///./src/components/Products/ProductTopbar.vue?126d","webpack-debugging:///./src/components/Products/ProductTopbar.vue","webpack:///./src/components/Products/ProductTopbar.vue?d196","webpack-generated:///./src/components/Products/ProductTopbar.vue?3f81","webpack-debugging:///./src/components/Products/ProductGrid.vue","webpack:///./src/components/Products/ProductGrid.vue?ed51","webpack-generated:///./src/components/Products/ProductGrid.vue?aefb","webpack-generated:///./src/components/Announcements/Announcements.vue?1188","webpack-generated:///./src/components/Tickets/Tickets.vue?9fe2","webpack-debugging:///./src/models/errors/fresh-service.err-msg.ts","webpack-generated:///./src/components/Tickets/TicketCard.vue?202b","webpack-debugging:///./src/models/dtos/ticket/ticket.status.enum.ts","webpack-debugging:///./src/components/Tickets/TicketCard.vue","webpack:///./src/components/Tickets/TicketCard.vue?2139","webpack-generated:///./src/components/Tickets/TicketCard.vue?3118","webpack-debugging:///./src/components/Tickets/Tickets.vue","webpack:///./src/components/Tickets/Tickets.vue?ff96","webpack-generated:///./src/components/Tickets/Tickets.vue?0d04","webpack-debugging:///./src/components/Announcements/Announcements.vue","webpack:///./src/components/Announcements/Announcements.vue?b701","webpack-generated:///./src/components/Announcements/Announcements.vue?10bd","webpack-debugging:///./src/components/Home/Home.vue","webpack:///./src/components/Home/Home.vue?b088","webpack-generated:///./src/components/Home/Home.vue?ccaf","webpack-generated:///./src/components/Profile/UserProfile.vue?37b6","webpack-generated:///src/components/Profile/UserProfile.vue?ef6b","webpack-debugging:///./src/components/Profile/UserProfile.vue","webpack-generated:///./src/components/Profile/UserProfile.vue?b17a","webpack-debugging:///./src/router/index.ts","webpack-debugging:///./src/models/current-user.dto.ts","webpack-debugging:///./src/store/index.ts","webpack-debugging:///./src/plugins/vuetify.ts","webpack-debugging:///./src/utils/interceptors/interceptors.ts","webpack-debugging:///./src/services/api/base.api.service.ts","webpack-debugging:///./src/services/api/products.api.service.ts","webpack-debugging:///./src/services/api/tickets.api.service.ts","webpack-debugging:///./src/services/api/users.api.service.ts","webpack-debugging:///./src/services/api/base.envidanportal.api.services.ts","webpack-debugging:///./src/services/api/envidanportal.api.service.ts","webpack-debugging:///./src/services/api/index.ts","webpack-debugging:///./src/application-insights/app-insights.telemetry.ts","webpack-debugging:///./src/application-insights/app-insights.plugin.ts","webpack-debugging:///./src/application-insights/app-insights.initializer.ts","webpack-debugging:///./src/services/blob-storage/image.blob-storage.service.ts","webpack-debugging:///./src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","UserLanguage","render","_vm","this","_c","_self","staticRenderFns","isUserLoading","_e","attrs","isLoadingCustomer","activeUser","customerSwitchOptions","routeToHome","$store","getters","getAdministrativeOptions","$t","on","routeToProfile","changeCustomerDialogState","signOutOidc","scopedSlots","_u","activeCustomer","user","fn","_v","_s","customerName","proxy","showCustomerDialog","customers","setSelectedCustomer","staticClass","hasFinishedLoading","_setupProxy","closeDialog","$event","type","indexOf","_k","keyCode","arguments","model","show","callback","$$v","expression","debounceInput","searchText","resultQuery","class","selectedCustomer","_l","customer","uid","domProps","_g","returnSelectedCustomer","staticStyle","Vue","extend","props","Boolean","required","default","hostCustomer","Array","filterText","computed","filter","item","toLowerCase","includes","methods","debounce","$emit","component","languagesMap","Map","Danish","Norwegian","Swedish","English","use","VueCookies","tooltipMessage","components","SelectCustomerDialog","Topbar","onDestroy$","Subject","showButton","disabled","tooltip","administrativeOptions","configureCustomersLink","state","configureCustomers","administrationLink","administration","mounted","initializeData","isAuth","$msal","getIsAuthenticated","firstName","fullName","lastName","email","currentUser","_this$$store$state$ac","setCustomerSwitchOptions","showBtn","disableBtn","tooltipBtn","setActiveCustomerInStore","claimsCustomerId","currentStoreCustomerId","customerId","currentActiveCustomer","_customers$find","find","x","uuid","commit","setSwitchCustomerBasedOnData","$route","path","$router","authenticated$","pipe","distinct","switchMap","$api","users","getUserData","_this$$msal$getAllAcc","_this$$msal$getAllAcc2","setUserLanguage","languageId","currentUserData","getAllAccounts","idTokenClaims","hostCustomerId","getActiveCustomersForUser","userId","EMPTY","takeUntil","subscribe","next","_this$$msal$getAllAcc3","_this$$msal$getAllAcc4","error","complete","$cookies","remove","process","location","host","parser","href","domain","undefined","envidanPortal","Logout","signOut","language","$i18n","locale","beforeDestroy","Base","isEditable","changedProducts","toggleEdit","updateProducts","resetPositions","cancel","toggleProductForm","drag","products","product","productId","showProductForm","formSubmit","showConfirmationDialog","confirmUnsaved","hover","editMode","isHidden","isCustom","click","getImgUrl","title","_f","goToProduct","ref","preventDefault","submit","previewImage","titleRules","currentTitle","urlRules","currentUrl","imageRules","getAcceptableFileTypes","selectImage","currentImage","edit","deleteProduct","dismiss","getExtension","fileName","split","loadTranslations","locales","require","messages","forEach","matched","match","VueI18n","i18n","acceptableExtensions","defaultIcon","StrategyType","ProductType","v","size","currentId","_this$product","_this$product2","url","imageLink","resetForm","image","URL","createObjectURL","imageId","$imageService","uploadBlobAsync","$appInsights","trackException","exception","response","uuidv4","uploadImage","lastValueFrom","envidanPortalId","editedProduct","$refs","form","validate","editProduct","created","createLink","productsUpdated","deleteBlobAsync","reset","resetValidation","titleInput","blur","urlInput","msalInstance","accessApiScope","msalPluginInstance","MsalPlugin","constructor","_defineProperty","clientId","loginAuthority","passwordAuthority","knownAuthority","install","vue","options","pluginOptions","initialize","observable","msalConfig","auth","authority","knownAuthorities","cache","cacheLocation","BrowserCacheLocation","LocalStorage","system","loggerOptions","loggerCallback","level","message","containsPii","msal","Info","Verbose","Warning","piiLoggingEnabled","logLevel","isAuthenticated","onRedirect","handleRedirectPromise","loginRequest","scopes","loginRedirect","err","errorMessage","passwordResetResponse","loginPopup","account","passwordResetError","logoutRedirect","stringDict","hint","ui_locales","resetRequest","extraQueryParameters","signIn","request","acquireTokenSilent","accessToken","acquireTokenRedirect","accounts","expire","ProductForm","$props","productType","Custom","destroying$","oldValues","open","redirectToProductUrl","acquireToken","then","f","set","toggleShowHide","_this$$parent","_this$$parent$$parent","_this$$parent2","_this$$parent2$$paren","_this$$parent3","_this$$parent3$$paren","$parent","$on","save","_this$$parent4","_this$$parent4$$paren","_this$$parent5","_this$$parent5$$paren","_this$$parent6","_this$$parent6$$paren","$off","EditProductRequest","position","dto","createItem","customize","ProductTile","Draggable","ProductTopbar","ConfirmationDialog","customerChanged$","BehaviorSubject","destroyed$","unsubscribeFromStore","originalProductsArray","productsDictionaryByProductId","fab","watch","combineLatest","refreshProducts$","rL","cust","getProducts","_products$data$value$","reduce","assign","administrativeProducts","_this$$store$state$cu","mappedProducts","val","index","originalProductsDict","differentProducts","originalProduct","fromDto","replacementProducts","counter","sort","a","b","localeCompare","elementFromArray","preventNav","event","returnValue","beforeMount","addEventListener","removeEventListener","sheet","hasAccount","tickets","ticket","hasError","currentUserEmail","goToFreshServiceSignUpPage","refreshTickets","goToFreshServiceTickets","goToCreateTicketForm","FRESHSERVICE_ERRORS","FreshServiceErrorKeys","FRESH_SERVICE_API_EMAIL_INVALID_VALUE","FRESH_SERVICE_UNAVAILABLE","FRESH_SERVICE_RESOURCE_NOT_FOUND","FRESH_SERVICE_ERROR","FRESH_SERVICE_RATE_LIMIT_EXCEEDED","TicketStatus","openTicketOnFreshservice","subject","dueBy","category","getTicketStatus","ticketStatusOpen","ticketStatusPending","ticketStatusTransferred","ticketStatusPlanned","ticketStatusWorkInProgress","ticketStatusUAT","ticketStatusResolved","ticketStatusClosed","ticketStatusProductBacklog","ticketStatusWIPSupport","TicketDisplayStatus","Open","Pending","Transferred","Planned","WorkInProgress","UAT","Resolved","Closed","ProductBacklog","WIPSupport","ticketUrl","status","TicketCard","refreshTickets$","getTickets","Tickets","Announcements","ProductGrid","isLoading","userData","showSidebar","sidebarItems","handleSidebarClick","workPhoneNumber","languageItems","selectedLanguage","isAdUser","changePassword","NavigationalSidebar","iconName","selected","entries","toString","passwordReset","isMobile","$vuetify","breakpoint","mobile","isADLogin","VueRouter","routes","Home","UserProfile","redirect","router","CurrentUserDto","Vuex","Store","supportAdmin","showLegacyProductDialog","supportAdminLink","mutations","setCurrentUser","setActiveCustomer","setAdministrativeOptions","actions","plugins","createPersistedState","Vuetify","opts","customVariables","theme","dark","themes","primary","colors","blue","darken2","accent","grey","darken3","secondary","amber","info","teal","lighten1","warning","base","deepOrange","accent4","success","green","accent3","light","jwtInterceptor","axios","interceptors","async","_request$url","token","isApiUrl","startsWith","headers","Authorization","Promise","reject","BaseApiService","from","baseUrl","post","JSON","stringify","config","put","delete","patch","ProductsApiService","args","super","TicketsApiService","ticketsUpdated","UsersApiService","BaseEnvidanPortalApiService","withCredentials","EnvidanPortalApiService","catch","telemetryInitializer","envelope","_envelope$baseData","doNotTrackCodes","Tenant","baseData","doNotTrackTicketsEndpoint","baseType","responseCode","appInsightsConfig","instrumentationKey","appInsights","ApplicationInsights","loadAppInsights","addTelemetryInitializer","onAfterScriptLoaded","_process$env$VUE_APP_","isDevelopment","customHeaders","disableExceptionTracking","disableTelemetry","enableAutoRouteTracking","enableUnhandledPromiseRejectionTracking","VueAppInsights","errorHandler","vm","properties","onerror","msg","line","col","ImageService","substring","BlobServiceClient","withoutSlash","blobServiceClient","getContainerClient","file","uploadImageResponse","imageContainerClient","uploadBlockBlob","blobName","deleteBlob","productionTip","msalPlugin","lastResponse","VueAxios","VueAppInsightsInitializer","VueGtag","appName","claims","allAccounts","claimsRecord","objectId","tenantId","store","fromCache","replace","beforeEach","_to","_from","text","innerWidth","date","datjs","String","format","vuetify","h","App","$mount"],"mappings":"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","file":"js/app.340e3548.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"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--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=93b339c8&prod&scoped=true&lang=scss&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Base.vue?vue&type=style&index=0&id=38cdaddb&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductTopbar.vue?vue&type=style&index=0&id=1a6c7add&prod&lang=scss&\"","var map = {\n\t\"./da.json\": \"21aa\",\n\t\"./en.json\": \"edd4\",\n\t\"./no.json\": \"f947\",\n\t\"./sv.json\": \"4c5b\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductForm.vue?vue&type=style&index=0&id=519429d1&prod&lang=scss&scope=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=style&index=0&id=551417b4&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCard.vue?vue&type=style&index=0&id=370ff8ae&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductGrid.vue?vue&type=style&index=0&id=70dfa662&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductTile.vue?vue&type=style&index=0&id=2202e06f&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Announcements.vue?vue&type=style&index=0&id=61f831f3&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tickets.vue?vue&type=style&index=0&id=051b9c0e&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectCustomerDialog.vue?vue&type=style&index=0&id=b471b50e&prod&lang=scss&\"","export enum UserLanguage {\r\n Danish = 1,\r\n Norwegian = 2,\r\n Swedish = 3,\r\n English = 4\r\n}\r\n\r\nexport const languagesMap = new Map([\r\n [UserLanguage.Danish, 'da'],\r\n [UserLanguage.Norwegian, 'no'],\r\n [UserLanguage.Swedish, 'sv'],\r\n [UserLanguage.English, 'en']\r\n]);","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Base')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[(!_vm.isUserLoading)?_c('topbar',{attrs:{\"applicationTitle\":\"Envidan\",\"user\":_vm.isLoadingCustomer ? {} : _vm.activeUser,\"showUserProfileMenuItem\":true,\"customerSwitchButton\":_vm.customerSwitchOptions,\"logoClickHandler\":_vm.routeToHome,\"administrativeOptions\":_vm.$store.getters.getAdministrativeOptions,\"profileMenuItemText\":_vm.$t('user-dropdown-profile-item'),\"switchCustomerMenuItemText\":_vm.$t('user-dropdown-switch-customer-item'),\"supportMenuItemText\":_vm.$t('user-dropdown-support-item'),\"signOutMenuItemText\":_vm.$t('user-dropdown-log-out-item'),\"adminDropdownText\":_vm.$t('user-dropdown-admin-panel-item'),\"administrationMenuItemText\":_vm.$t('user-dropdown-administration-item'),\"supportAdminMenuItemText\":_vm.$t('user-dropdown-Support-Admin-item'),\"configureCustomersMenuItemText\":_vm.$t('user-dropdown-configure-customers-item'),\"baseApp\":true},on:{\"profile-item-clicked\":_vm.routeToProfile,\"switch-customer\":_vm.changeCustomerDialogState,\"sign-out\":_vm.signOutOidc},scopedSlots:_vm._u([(_vm.activeCustomer && _vm.user)?{key:\"subtitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.activeCustomer.customerName)+\" \")]},proxy:true}:null],null,true)}):_vm._e(),_c('select-customer-dialog',{attrs:{\"show\":_vm.showCustomerDialog,\"hostCustomer\":this.activeCustomer,\"customers\":_vm.customers},on:{\"changeCustomer\":_vm.setSelectedCustomer,\"close\":_vm.changeCustomerDialogState}}),_c('v-main',{staticClass:\"content-root\"},[(_vm.hasFinishedLoading)?_c('router-view'):_vm._e(),(!_vm.hasFinishedLoading)?_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"indeterminate\"}})],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"scrollable\":\"\",\"max-width\":\"500px\",\"max-height\":\"620px\"},on:{\"click:outside\":_vm.closeDialog,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.closeDialog.apply(null, arguments)}},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',{staticClass:\"card-wrapper\"},[_c('div',{staticClass:\"header\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeDialog}},[_c('v-icon',{attrs:{\"medium\":\"\",\"color\":\"black\"}},[_vm._v(\" mdi-close \")])],1)],1),_c('v-divider'),_c('v-text-field',{staticClass:\"input-search\",attrs:{\"label\":_vm.$t('customer-switch-dialog-company-name-label'),\"clearable\":\"\",\"append-icon\":\"mdi-magnify\",\"outlined\":\"\",\"dense\":\"\"},on:{\"input\":_vm.debounceInput},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}}),_c('v-divider'),(_vm.resultQuery.length > 0)?_c('v-card-text',{staticClass:\"customers-card\",class:_vm.customers.length > 9 ? 'customers-with-scrollbar':'customers-without-scrollbar'},[_c('v-list',[_c('v-list-item-group',{model:{value:(_vm.selectedCustomer),callback:function ($$v) {_vm.selectedCustomer=$$v},expression:\"selectedCustomer\"}},_vm._l((_vm.resultQuery),function(customer){return _c('v-list-item',{key:customer.uid,staticClass:\"customer\",attrs:{\"value\":customer,\"active-class\":\"active-item\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(customer.customerName)}})],1)],1)}),1)],1)],1):_vm._e(),(_vm.resultQuery.length === 0)?_c('v-card-text',{staticClass:\"empty-state customers-card\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('customer-switch-dialog-no-companies-message'))+\" \")])]):_vm._e(),_c('v-divider'),_c('v-card-actions',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"disabled\":!!_vm.selectedCustomer && !!_vm.resultQuery.length},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({staticClass:\"select-btn\"},on),[_c('v-btn',{attrs:{\"color\":\"#009FE3\",\"disabled\":!_vm.selectedCustomer || !_vm.resultQuery.length},on:{\"click\":function($event){return _vm.returnSelectedCustomer(_vm.selectedCustomer)}}},[_c('span',{staticStyle:{\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm.$t('customer-switch-dialog-switch-company-button'))+\" \")])])],1)]}}])},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('customer-switch-dialog-no-customer-selected-message'))+\" \")])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { CustomerDto } from '@/models/dtos/users/user.dtos';\r\nimport { PropType } from 'vue';\r\nimport { debounce } from 'ts-debounce';\r\nimport Vue from 'vue';\r\n\r\nexport default Vue.extend({\r\n props: {\r\n show: {\r\n type: Boolean,\r\n required: false,\r\n default: false\r\n }, \r\n hostCustomer: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n customers: {\r\n type: Array as PropType,\r\n required: true\r\n }\r\n },\r\n data() {\r\n return {\r\n selectedCustomer: this.hostCustomer,\r\n searchText: \"\",\r\n filterText: \"\"\r\n };\r\n },\r\n computed: {\r\n resultQuery(): CustomerDto[] {\r\n if (this.filterText) {\r\n return this.customers\r\n .filter((item: CustomerDto) => {\r\n return item.customerName.toLowerCase()\r\n .includes(this.filterText.toLowerCase());\r\n });\r\n } else {\r\n return this.customers;\r\n }\r\n }\r\n },\r\n methods:{\r\n debounceInput: debounce(function(this: any){\r\n this.filterText = this.searchText\r\n }, 200),\r\n returnSelectedCustomer(customer: CustomerDto): void {\r\n this.$emit(\"changeCustomer\", customer);\r\n },\r\n closeDialog(): void {\r\n this.$emit(\"close\")\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectCustomerDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectCustomerDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectCustomerDialog.vue?vue&type=template&id=b471b50e&\"\nimport script from \"./SelectCustomerDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectCustomerDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectCustomerDialog.vue?vue&type=style&index=0&id=b471b50e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Base.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Base.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Base.vue?vue&type=template&id=38cdaddb&scoped=true&\"\nimport script from \"./Base.vue?vue&type=script&lang=js&\"\nexport * from \"./Base.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Base.vue?vue&type=style&index=0&id=38cdaddb&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38cdaddb\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=2dd8921e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{attrs:{\"id\":\"home-container\"}},[_c('ProductGrid',{staticClass:\"products\"}),_c('Announcements')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"products\"},[(_vm.hasFinishedLoading)?_c('div',[(_vm.hasFinishedLoading)?_c('ProductTopbar',{attrs:{\"editMode\":_vm.isEditable,\"changedProducts\":_vm.changedProducts},on:{\"edit-item-clicked\":_vm.toggleEdit,\"save-item-clicked\":_vm.updateProducts,\"reset-item-clicked\":_vm.resetPositions,\"cancel-item-clicked\":_vm.cancel,\"create-item-clicked\":_vm.toggleProductForm}}):_vm._e(),_c('Draggable',{staticClass:\"grid\",attrs:{\"tag\":\"div\",\"disabled\":!_vm.isEditable,\"scroll-sensitivity\":120,\"force-fallback\":true,\"ghost-class\":\"ghost\",\"chosen-class\":\"chosen-item\",\"fallbackTolerance\":1},on:{\"start\":function($event){_vm.drag = true},\"end\":function($event){_vm.drag = false}},model:{value:(_vm.products),callback:function ($$v) {_vm.products=$$v},expression:\"products\"}},_vm._l((_vm.products),function(product){return _c('div',{key:product.productId,staticClass:\"grid-item\"},[_c('ProductTile',{key:product.productId,attrs:{\"product\":product,\"editMode\":_vm.isEditable}})],1)}),0)],1):_c('div',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"indeterminate\"}})],1)],1),_c('ProductForm',{attrs:{\"show\":_vm.showProductForm,\"edit\":false},on:{\"dismiss\":_vm.toggleProductForm,\"submit\":_vm.formSubmit}}),_c('ConfirmationDialog',{attrs:{\"title\":_vm.$t('unsaved-conformation-dialog'),\"value\":_vm.showConfirmationDialog,\"confirmTitle\":_vm.$t('continue'),\"declineTitle\":_vm.$t('cancel')},on:{\"cancel\":function($event){_vm.showConfirmationDialog = false},\"confirm\":_vm.confirmUnsaved}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-badge',{attrs:{\"value\":_vm.editMode,\"color\":_vm.isHidden ? 'grey' : 'primary',\"icon\":_vm.isCustom ? 'mdi-pencil' : _vm.isHidden ? 'mdi-eye-off' : 'mdi-eye',\"offset-x\":\"11\",\"offset-y\":\"11\",\"dark\":\"\",\"overlap\":\"\"}},[(_vm.editMode)?_c('v-card',{staticClass:\"card-style\",attrs:{\"color\":'white',\"elevation\":5},on:{\"click\":_vm.click}},[_c('v-row',{attrs:{\"dense\":true}},[(!_vm.isCustom)?_c('v-col',{staticClass:\"icon\"},[_c('img',{attrs:{\"src\":_vm.getImgUrl()}})]):_c('v-col',{staticClass:\"custom-icon-wrapper\"},[_c('div',{staticClass:\"custom-icon\"},[_c('img',{staticClass:\"preview-image\",attrs:{\"src\":_vm.getImgUrl()}})])])],1),_c('v-row',{attrs:{\"dense\":true}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"disabled\":_vm.product.title.length < 25,\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-col',_vm._g({staticClass:\"product-name\"},on),[_c('span',[_c('b',[_vm._v(_vm._s(_vm._f(\"truncate\")(_vm.product.title)))])])])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.product.title))])])],1),(_vm.isHidden)?_c('v-overlay',{attrs:{\"color\":\"grey\",\"absolute\":\"\"}}):_vm._e()],1):_vm._e(),(!_vm.editMode && !_vm.isHidden)?_c('v-card',{staticClass:\"card-style\",attrs:{\"elevation\":hover ? 8 : 0},on:{\"click\":_vm.goToProduct}},[_c('v-row',{attrs:{\"dense\":true}},[(!_vm.isCustom)?_c('v-col',{staticClass:\"icon\"},[_c('img',{attrs:{\"src\":_vm.getImgUrl()}})]):_c('v-col',{staticClass:\"custom-icon-wrapper\"},[_c('div',{staticClass:\"custom-icon\"},[_c('img',{staticClass:\"preview-image\",attrs:{\"src\":_vm.getImgUrl()}})])])],1),_c('v-row',{attrs:{\"dense\":true}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"disabled\":_vm.product.title.length < 25,\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-col',_vm._g({staticClass:\"product-name\"},on),[_c('span',[_c('b',[_vm._v(_vm._s(_vm._f(\"truncate\")(_vm.product.title)))])])])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.product.title))])])],1)],1):_vm._e()],1)]}}])}),(_vm.showProductForm)?_c('ProductForm',{attrs:{\"show\":_vm.showProductForm,\"edit\":true,\"product\":_vm.product},on:{\"dismiss\":_vm.toggleProductForm,\"submit\":_vm.formSubmit}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"calc(450px + 5vw)\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('link-form-title'))+\" \")]),_c('v-divider'),_c('v-card-text',{attrs:{\"id\":\"link-form\"}},[_c('v-container',{staticClass:\"form\"},[_c('v-row',{attrs:{\"id\":\"icon\"}},[_c('img',{staticClass:\"preview my-1\",attrs:{\"src\":_vm.previewImage,\"alt\":\"\"}})]),_c('v-row',{attrs:{\"id\":\"form-properties\"}},[_c('v-col',{staticClass:\"input-field\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{ref:\"titleInput\",attrs:{\"label\":_vm.$t('title'),\"rules\":_vm.titleRules,\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"required\":\"\"},model:{value:(_vm.currentTitle),callback:function ($$v) {_vm.currentTitle=$$v},expression:\"currentTitle\"}})],1),_c('v-col',{staticClass:\"input-field\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{ref:\"urlInput\",attrs:{\"label\":\"URL\",\"rules\":_vm.urlRules,\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"required\":\"\"},model:{value:(_vm.currentUrl),callback:function ($$v) {_vm.currentUrl=$$v},expression:\"currentUrl\"}})],1),_c('v-col',{staticClass:\"input-field\",attrs:{\"cols\":\"12\"}},[_c('v-file-input',{attrs:{\"rules\":_vm.imageRules,\"accept\":_vm.getAcceptableFileTypes,\"prepend-icon\":\"mdi-image\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.selectImage},model:{value:(_vm.currentImage),callback:function ($$v) {_vm.currentImage=$$v},expression:\"currentImage\"}})],1),(_vm.error)?_c('v-col',{staticClass:\"error-col\"},[_c('p',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.$t('something-wrong-message')))])]):_vm._e()],1)],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),(_vm.edit)?_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"color\":\"black\"},on:{\"click\":_vm.deleteProduct}},[_vm._v(\" \"+_vm._s(_vm.$t('delete-button'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"color\":\"grey\"},on:{\"click\":_vm.dismiss}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel-button'))+\" \")]),_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(\" \"+_vm._s(_vm.$t('save-button'))+\" \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function getExtension(fileName: string): string{\r\n return fileName.split(\".\")[1];\r\n}","import VueI18n from \"vue-i18n\";\r\nimport Vue from \"vue\";\r\n\r\nVue.use(VueI18n);\r\n\r\nfunction loadTranslations () {\r\n // this is temporary until we set up Azure CDN\r\n const locales = require.context('../locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\r\n const messages = {}\r\n locales.keys().forEach(key => {\r\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\r\n if (matched && matched.length > 1) {\r\n const locale = matched[1]\r\n messages[locale] = locales(key)\r\n }\r\n });\r\n\r\n return messages;\r\n}\r\n\r\nconst i18n = new VueI18n({\r\n // we can put the language in store in future so we set it here\r\n locale: undefined,\r\n messages: loadTranslations(),\r\n});\r\n\r\nexport default i18n;","\r\n\r\n import { CreateProductRequest } from \"@/models/requests/product.request\";\r\n import Vue, { PropType } from \"vue\";\r\n import { getExtension } from '@/utils/functions'\r\n import {v4 as uuidv4} from 'uuid';\r\n import { lastValueFrom } from \"rxjs\";\r\n import i18n from \"@/plugins/translations-plugin\";\r\n import { GetProductsDto } from \"@/models/dtos/product\";\r\n\r\n const acceptableExtensions = ['png', 'jpg', 'jpeg', 'bmp', 'jfif', 'pjpeg', 'pjp', 'bmp', 'dib' ];\r\n const defaultIcon = 'placeholder.png';\r\n\r\n export default Vue.extend({\r\n props: {\r\n show: {\r\n type: Boolean,\r\n required: true\r\n },\r\n edit: {\r\n type: Boolean,\r\n required: true\r\n },\r\n product: {\r\n type: Object as PropType,\r\n required: false\r\n }\r\n },\r\n data: () => ({\r\n error: false,\r\n titleRules: [\r\n v => !!v || i18n.t('title-error-message')\r\n\r\n ],\r\n urlRules: [\r\n v => !!v || i18n.t('url-error-message')\r\n ],\r\n imageRules: [\r\n v => !v || (v.size > 0 && acceptableExtensions.includes(v.name.split(\".\")[1])) || i18n.t('file-format-error-message'),\r\n v => !v || v.size < 2000000 || i18n.t('file-size-error-message')\r\n ],\r\n currentId: 0 as number | string,\r\n currentTitle: '' as string,\r\n currentUrl: '' as string,\r\n currentImage: undefined as File | undefined,\r\n previewImage: process.env.VUE_APP_BLOB_STORAGE_URL + 'images/' + defaultIcon\r\n }),\r\n methods: {\r\n initializeData(){\r\n if(this.edit){\r\n this.currentId = this.product.productId;\r\n this.currentTitle = this.product?.title;\r\n this.currentUrl = this.product?.url;\r\n this.previewImage = process.env.VUE_APP_BLOB_STORAGE_URL + 'images/' + this.product.imageLink;\r\n }\r\n },\r\n dismiss() {\r\n this.$emit(\"dismiss\");\r\n this.resetForm();\r\n },\r\n selectImage(image) {\r\n if (!!image){\r\n this.previewImage = URL.createObjectURL(image);\r\n } else {\r\n this.previewImage = process.env.VUE_APP_BLOB_STORAGE_URL + 'images/' + defaultIcon;\r\n }\r\n },\r\n async uploadImage(imageId: string, image: File){\r\n try {\r\n await this.$imageService.uploadBlobAsync(imageId + \".\" + getExtension(image.name), image);\r\n return true;\r\n } catch (e) {\r\n this.$appInsights.trackException({\r\n exception: e as Error\r\n });\r\n return false;\r\n }\r\n \r\n },\r\n async createLink() {\r\n let response = true;\r\n let imageId = uuidv4();\r\n if (!!this.currentImage) {\r\n response = await this.uploadImage(imageId, this.currentImage);\r\n }\r\n\r\n if (response){\r\n try {\r\n await lastValueFrom(this.$api.products.create({\r\n 'userId': this.$store.state.currentUser.envidanPortalId,\r\n 'customerId': this.$store.state.activeCustomer.customerId as number,\r\n \"product\": {\r\n \"title\": this.currentTitle,\r\n \"url\": this.currentUrl,\r\n \"imageLink\": !!this.currentImage ? imageId + \".\" + getExtension(this.currentImage.name) : defaultIcon\r\n }\r\n } as CreateProductRequest));\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n },\r\n async editProduct(){\r\n let editedProduct = {}\r\n if (this.currentImage){\r\n\r\n const imageId = uuidv4();\r\n console.log(imageId)\r\n await this.uploadImage(imageId, this.currentImage);\r\n \r\n editedProduct = {\r\n \"title\": this.currentTitle,\r\n \"url\": this.currentUrl,\r\n \"image\": imageId + \".\" + getExtension(this.currentImage.name)\r\n }\r\n } else {\r\n editedProduct = {\r\n \"title\": this.currentTitle,\r\n \"url\": this.currentUrl,\r\n \"image\": null\r\n }\r\n }\r\n this.$emit('submit', editedProduct)\r\n },\r\n async submit(){ \r\n this.error = false;\r\n if((this.$refs.form as HTMLFormElement).validate()){\r\n if (this.edit) {\r\n await this.editProduct();\r\n this.resetForm();\r\n } else {\r\n let created = await this.createLink();\r\n if(created){\r\n this.$emit(\"submit\");\r\n this.resetForm();\r\n this.$api.products.productsUpdated();\r\n } else {\r\n this.error = true;\r\n }\r\n }\r\n }\r\n },\r\n async deleteProduct(){\r\n this.$api.products.deleteProduct(this.$store.state.currentUser.envidanPortalId, this.product.productId)\r\n .subscribe({\r\n next: () => {\r\n if (this.product.imageLink !== defaultIcon){\r\n this.$imageService.deleteBlobAsync(this.product.imageLink);\r\n }\r\n }\r\n })\r\n this.dismiss();\r\n this.$api.products.productsUpdated();\r\n },\r\n resetForm(){\r\n (this.$refs.form as HTMLFormElement).reset();\r\n (this.$refs.form as HTMLFormElement).resetValidation();\r\n (this.$refs.titleInput as HTMLInputElement).blur();\r\n (this.$refs.urlInput as HTMLInputElement).blur();\r\n this.error = false;\r\n }\r\n },\r\n mounted(){\r\n this.initializeData();\r\n },\r\n computed: {\r\n getAcceptableFileTypes(){\r\n return acceptableExtensions.map(x=> 'image/' + x);\r\n }\r\n }\r\n })\r\n","export enum StrategyType {\r\n Default = 0,\r\n Legacy = 1,\r\n Webshell = 2,\r\n CustomerBased = 3,\r\n KeyzonesWebshell = 4\r\n}\r\n\r\nexport enum ProductType {\r\n Application = 0,\r\n Custom = 1\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductForm.vue?vue&type=template&id=519429d1&\"\nimport script from \"./ProductForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductForm.vue?vue&type=style&index=0&id=519429d1&prod&lang=scss&scope=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import * as msal from \"@azure/msal-browser\";\r\nimport { BrowserCacheLocation } from \"@azure/msal-browser\";\r\nimport Vue, { PluginObject, VueConstructor } from \"vue\";\r\nimport { Subject } from \"rxjs\";\r\nimport { StringDict } from \"@azure/msal-common\";\r\nexport interface MsalPluginOptions {\r\n clientId: string;\r\n loginAuthority: string;\r\n passwordAuthority: string;\r\n knownAuthority: string;\r\n}\r\n\r\nlet msalInstance: msal.PublicClientApplication;\r\n\r\nconsole.log(process.env);\r\n\r\nconst accessApiScope = `https://${process.env.VUE_APP_TENANT_ID}/${process.env.VUE_APP_ACCESS_AS_USER_SCOPE_ID}/access_as_user`;\r\n\r\nexport let msalPluginInstance: MsalPlugin;\r\n\r\nexport class MsalPlugin implements PluginObject {\r\n\r\n private pluginOptions: MsalPluginOptions = {\r\n clientId: \"\",\r\n loginAuthority: \"\",\r\n passwordAuthority: \"\",\r\n knownAuthority: \"\"\r\n };\r\n\r\n public isAuthenticated = false;\r\n public authenticated$ = new Subject();\r\n\r\n public install(vue: VueConstructor, options?: MsalPluginOptions): void {\r\n if (!options) {\r\n throw new Error(\"MsalPluginOptions must be specified\");\r\n }\r\n this.pluginOptions = options;\r\n this.initialize(options);\r\n msalPluginInstance = this;\r\n vue.prototype.$msal = Vue.observable(msalPluginInstance);\r\n }\r\n\r\n private initialize(options: MsalPluginOptions) {\r\n const msalConfig: msal.Configuration = {\r\n auth: {\r\n clientId: options.clientId,\r\n authority: options.loginAuthority,\r\n knownAuthorities: [options.knownAuthority]\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage\r\n },\r\n \r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level: msal.LogLevel, message: string, containsPii: boolean): void => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case msal.LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case msal.LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case msal.LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case msal.LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: msal.LogLevel.Verbose\r\n }\r\n }\r\n };\r\n msalInstance = new msal.PublicClientApplication(msalConfig);\r\n this.isAuthenticated = this.getIsAuthenticated();\r\n }\r\n\r\n public onRedirect() : Promise {\r\n return msalInstance.handleRedirectPromise();\r\n }\r\n\r\n public async signIn(): Promise {\r\n try {\r\n const loginRequest: msal.PopupRequest = {\r\n scopes: [\"openid\", \"profile\", \"offline_access\", accessApiScope],\r\n };\r\n return msalInstance.loginRedirect(loginRequest);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n } catch (err: any) {\r\n if (err.errorMessage && err.errorMessage.indexOf(\"AADB2C90118\") > -1) {\r\n try {\r\n const passwordResetResponse: msal.AuthenticationResult = await msalInstance.loginPopup({\r\n scopes: [\"openid\", \"profile\", \"offline_access\", accessApiScope],\r\n authority: this.pluginOptions.passwordAuthority\r\n });\r\n this.isAuthenticated = !!passwordResetResponse.account;\r\n this.authenticated$.next(!!passwordResetResponse.account);\r\n } catch (passwordResetError) {\r\n console.error(passwordResetError);\r\n }\r\n } else {\r\n this.authenticated$.next(false);\r\n this.isAuthenticated = false;\r\n }\r\n }\r\n }\r\n\r\n public async signOut(): Promise {\r\n await msalInstance.logoutRedirect();\r\n this.authenticated$.next(false);\r\n this.isAuthenticated = false;\r\n }\r\n\r\n\r\n public async passwordReset(email?: string | undefined, language?: string | undefined): Promise {\r\n let stringDict: StringDict | undefined;\r\n\r\n\r\n if(email?.length){\r\n stringDict = {\r\n hint: email\r\n }\r\n }\r\n\r\n if(language?.length){\r\n stringDict = stringDict ? {...stringDict, ui_locales: language } : { ui_locales: language };\r\n }\r\n\r\n console.log(stringDict);\r\n try {\r\n const resetRequest: msal.RedirectRequest = {\r\n scopes: [\"openid\", \"profile\", \"offline_access\", accessApiScope],\r\n authority: this.pluginOptions.passwordAuthority,\r\n extraQueryParameters: stringDict\r\n };\r\n this.authenticated$.next(false);\r\n this.isAuthenticated = false;\r\n\r\n return msalInstance.loginRedirect(resetRequest);\r\n }\r\n catch (err){\r\n console.log(err);\r\n return this.signIn();\r\n }\r\n }\r\n\r\n public getAllAccounts() {\r\n return msalInstance.getAllAccounts();\r\n }\r\n\r\n public async acquireToken() {\r\n const request = {\r\n account: msalInstance.getAllAccounts()[0],\r\n scopes: [accessApiScope]\r\n };\r\n try {\r\n \r\n const response = await msalInstance.acquireTokenSilent(request);\r\n console.log(response);\r\n\r\n this.authenticated$.next(true);\r\n\r\n return response.accessToken; \r\n } catch (error) {\r\n if (error instanceof msal.InteractionRequiredAuthError) {\r\n try{\r\n await msalInstance.acquireTokenRedirect(request);\r\n } catch {\r\n await this.signIn();\r\n }\r\n }\r\n this.authenticated$.next(false);\r\n await this.signIn();\r\n\r\n return false;\r\n }\r\n }\r\n\r\n public getIsAuthenticated(): boolean {\r\n const accounts: msal.AccountInfo[] = msalInstance.getAllAccounts();\r\n\r\n this.authenticated$.next(accounts && accounts.length > 0);\r\n return accounts && accounts.length > 0;\r\n }\r\n\r\n}\r\n","\r\nimport ProductForm from \"@/components/Products/ProductForm.vue\"\r\nimport { PropType } from \"vue\";\r\nimport Vue from 'vue';\r\nimport VueCookies from 'vue-cookies'\r\nimport parser from 'tld-extract'\r\nimport { Subject } from 'rxjs';\r\nimport { EditProductDto, GetProductsDto, ProductType, StrategyType } from '@/models/dtos/product';\r\nimport { msalPluginInstance } from './../../plugins/msal-plugin';\r\nVue.use(VueCookies, { expire: '5min'});\r\n\r\nexport default Vue.extend({\r\n components: {\r\n ProductForm\r\n },\r\n props: {\r\n product: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n editMode: {\r\n type: Boolean,\r\n required: true\r\n }\r\n },\r\n data () {\r\n return {\r\n showProductForm: false,\r\n isCustom: this.$props.product.productType === ProductType.Custom ? true : false,\r\n isHidden: this.$props.product.isHidden,\r\n destroying$: new Subject(),\r\n oldValues:{\r\n isHidden: this.$props.product.isHidden,\r\n title: this.$props.product.title,\r\n url: this.$props.product.url,\r\n image: this.$props.product.imageLink\r\n }\r\n }\r\n },\r\n methods: {\r\n initializeData(){\r\n this.oldValues.title = this.$props.product.title;\r\n this.oldValues.url = this.$props.product.url;\r\n this.oldValues.image = this.$props.product.imageLink;\r\n this.oldValues.isHidden = this.$props.product.isHidden;\r\n },\r\n goToProduct(): void {\r\n if (this.isCustom) {\r\n window.open(this.$props.product.url, \"_blank\");\r\n } else {\r\n this.redirectToProductUrl();\r\n }\r\n },\r\n redirectToProductUrl(): void {\r\n msalPluginInstance.acquireToken().then(f=> {\r\n this.$cookies.set(process.env.VUE_APP_ENVIDAN_B2C_COOKIE_NAME!, f, undefined, undefined, window.location.host.indexOf(\"localhost\") === -1 ? parser(window.location.href).domain : undefined);\r\n window.open(this.$props.product.url, \"_self\");\r\n });\r\n },\r\n getImgUrl() {\r\n return process.env.VUE_APP_BLOB_STORAGE_URL + 'images/' + this.$props.product.imageLink;\r\n },\r\n toggleShowHide(){\r\n this.isHidden = !this.isHidden;\r\n this.$props.product.isHidden = this.isHidden;\r\n },\r\n toggleProductForm(){\r\n this.showProductForm = !this.showProductForm;\r\n },\r\n click(){\r\n !this.isCustom ? this.toggleShowHide() : this.toggleProductForm();\r\n },\r\n formSubmit(product: EditProductDto){\r\n this.$props.product.title = product.title;\r\n this.$props.product.url = product.url;\r\n if (product.image){\r\n this.$props.product.imageLink = product.image;\r\n }\r\n this.showProductForm=false;\r\n },\r\n async save(){\r\n if (this.product.imageLink !== this.oldValues.image && this.oldValues.image !== 'placeholder.png') {\r\n await this.$imageService.deleteBlobAsync(this.oldValues.image);\r\n }\r\n },\r\n async cancel(){\r\n if (this.$props.product.imageLink !== this.oldValues.image && this.$props.product.imageLink !== 'placeholder.png'){\r\n await this.$imageService.deleteBlobAsync(this.$props.product.imageLink);\r\n this.$props.product.imageLink = this.oldValues.image;\r\n }\r\n },\r\n reset(){\r\n this.isHidden = false;\r\n }\r\n },\r\n mounted(){\r\n this.initializeData();\r\n },\r\n async created() {\r\n this.$parent?.$parent?.$on('save', await this.save) || '';\r\n this.$parent?.$parent?.$on('cancel', await this.cancel);\r\n this.$parent?.$parent?.$on('reset', await this.reset);\r\n },\r\n async beforeDestroy() {\r\n this.$parent?.$parent?.$off('save', await this.save);\r\n this.$parent?.$parent?.$off('cancel', await this.cancel);\r\n this.$parent?.$parent?.$off('reset', await this.reset);\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductTile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductTile.vue?vue&type=template&id=2202e06f&scoped=true&\"\nimport script from \"./ProductTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductTile.vue?vue&type=style&index=0&id=2202e06f&prod&lang=scss&scoped=true&\"\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 \"2202e06f\",\n null\n \n)\n\nexport default component.exports","import { GetProductsDto } from \"@/models/dtos/product\";\r\n\r\nexport class NewProductRequest{\r\n public title: string;\r\n public url: string;\r\n public imageLink: string;\r\n\r\n public constructor(title: string, url: string, imageLink: string){\r\n this.title = title;\r\n this.url = url;\r\n this.imageLink = imageLink;\r\n }\r\n}\r\n\r\nexport class CreateProductRequest {\r\n public userId: number;\r\n public customerId: number;\r\n public product: NewProductRequest;\r\n\r\n public constructor(userId: number, customerId: number, product: NewProductRequest){\r\n this.userId = userId;\r\n this.customerId = customerId;\r\n this.product = product;\r\n }\r\n}\r\n\r\nexport class UpdateProductsRequest {\r\n public userId: number;\r\n public customerId: number;\r\n public products: EditProductRequest[];\r\n\r\n public constructor(userId: number, customerId: number, products: EditProductRequest[]){\r\n this.userId = userId;\r\n this.customerId = customerId;\r\n this.products = products;\r\n }\r\n}\r\n\r\nexport class EditProductRequest {\r\n public productId: string;\r\n public title: string;\r\n public url: string;\r\n public imageLink: string;\r\n public position: number;\r\n public isHidden = false;\r\n\r\n public constructor(productId: string, title: string, url: string, imageLink: string, position: number, isHidden: boolean){\r\n this.productId = productId;\r\n this.title = title;\r\n this.url = url;\r\n this.imageLink = imageLink;\r\n this.position = position;\r\n this.isHidden = isHidden;\r\n }\r\n\r\n public static fromDto(dto: GetProductsDto): EditProductRequest{\r\n return new EditProductRequest(\r\n dto.productId,\r\n dto.title,\r\n dto.url,\r\n dto.imageLink,\r\n dto.position,\r\n dto.isHidden\r\n )\r\n }\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{staticClass:\"row\"},[_c('div',{staticClass:\"link-topbar\"},[_c('v-btn',{staticClass:\"ma-2 link-topbar-button\",attrs:{\"color\":\"black\",\"plain\":\"\"},on:{\"click\":function($event){return _vm.createItem()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-plus-circle \")]),_vm._v(\" \"+_vm._s(_vm.$t('create'))+\" \")],1),(!_vm.editMode)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ma-2 white--text link-topbar-button\",attrs:{\"color\":\"#007faa\"},on:{\"click\":function($event){return _vm.customize()}}},on),[_c('v-icon',[_vm._v(\" mdi-pencil \")])],1)]}}],null,false,1544320157)},[_c('span',[_vm._v(_vm._s(_vm.$t('edit-button-tooltip')))])]):_vm._e(),(_vm.editMode)?_c('div',[_c('v-btn',{staticClass:\"ma-2 white--text link-topbar-button\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")]),_c('v-btn',{staticClass:\"ma-2 white--text link-topbar-button\",attrs:{\"color\":\"black\"},on:{\"click\":function($event){return _vm.reset()}}},[_vm._v(\" \"+_vm._s(_vm.$t('reset'))+\" \")]),_c('v-btn',{staticClass:\"ma-2 white--text link-topbar-button\",attrs:{\"color\":\"grey\"},on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")])],1):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue';\r\n\r\nexport default Vue.extend({\r\n components: {\r\n },\r\n props: {\r\n editMode:{\r\n type: Boolean,\r\n required: true\r\n }\r\n },\r\n data () {\r\n return {\r\n \r\n }\r\n },\r\n methods: {\r\n customize(){\r\n this.$emit(\"edit-item-clicked\")\r\n },\r\n save(){\r\n this.$emit(\"save-item-clicked\");\r\n },\r\n cancel(){\r\n this.$emit(\"cancel-item-clicked\");\r\n },\r\n reset(){\r\n this.$emit(\"reset-item-clicked\");\r\n },\r\n createItem(){\r\n this.$emit(\"create-item-clicked\")\r\n }\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductTopbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductTopbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductTopbar.vue?vue&type=template&id=1a6c7add&\"\nimport script from \"./ProductTopbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductTopbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductTopbar.vue?vue&type=style&index=0&id=1a6c7add&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport Vue from \"vue\";\r\nimport ProductTile from \"@/components/Products/ProductTile.vue\";\r\nimport Draggable from 'vuedraggable';\r\nimport { BehaviorSubject, combineLatest, filter, Subject, switchMap, takeUntil } from \"rxjs\";\r\nimport { GetProductsDto } from '@/models/dtos/product';\r\nimport { EditProductRequest, UpdateProductsRequest } from '@/models/requests/product.request';\r\nimport ProductForm from \"@/components/Products/ProductForm.vue\";\r\nimport ProductTopbar from \"@/components/Products/ProductTopbar.vue\";\r\nimport { ConfirmationDialog } from \"@envidan/shared-frontend-components\"\r\n\r\nexport default Vue.extend({\r\n props: {\r\n },\r\n components: {\r\n ProductTile,\r\n Draggable,\r\n ProductForm,\r\n ProductTopbar,\r\n ConfirmationDialog\r\n },\r\n data() {\r\n return {\r\n products: [] as GetProductsDto[],\r\n hasFinishedLoading: false as boolean ,\r\n customerChanged$: new BehaviorSubject(!!this.$store.state.activeCustomer.customerId) as BehaviorSubject,\r\n destroyed$: new Subject() as Subject,\r\n unsubscribeFromStore: null as (() => void) | null,\r\n drag: false as boolean,\r\n originalProductsArray: [] as GetProductsDto[],\r\n productsDictionaryByProductId: {} as { [key: string] : GetProductsDto },\r\n fab: false as boolean,\r\n isEditable: false as boolean,\r\n showProductForm: false as boolean,\r\n showConfirmationDialog: false as boolean\r\n\r\n };\r\n },\r\n mounted() {\r\n this.unsubscribeFromStore = this.$store.watch((state, getters) => state.activeCustomer.customerId, (customerId) => {\r\n if(customerId){\r\n this.customerChanged$.next(true);\r\n }\r\n })\r\n this.initializeData();\r\n },\r\n methods: {\r\n initializeData() {\r\n this.hasFinishedLoading = false;\r\n combineLatest([this.$api.products.refreshProducts$, this.customerChanged$]).pipe(\r\n filter(([rL, cust]) => !!cust),\r\n switchMap(() => {\r\n this.hasFinishedLoading = false;\r\n \r\n return this.$api.products.getProducts(this.$store.state.activeCustomer.customerId);\r\n }),\r\n takeUntil(this.destroyed$))\r\n .subscribe({\r\n next: products => {\r\n this.products = products.data.value.products?.length ? products.data.value.products.map(x => {return {...x}}) : [];\r\n console.log(\"Returned products\", this.products);\r\n this.productsDictionaryByProductId = this.products ?\r\n this.products.reduce((r, o) => Object.assign(r, { [o.productId]: o }), {}) : {};\r\n this.originalProductsArray = this.products.map(p => {return {...p}});\r\n console.log(\"Copy of original products\",this.originalProductsArray);\r\n \r\n this.$store.commit('setAdministrativeOptions', products.data.value.administrativeProducts); \r\n this.hasFinishedLoading = true;\r\n },\r\n error: error => {\r\n console.error(error);\r\n this.hasFinishedLoading = true;\r\n },\r\n complete: () => {\r\n this.hasFinishedLoading = true;\r\n }\r\n });\r\n },\r\n updateProducts(){\r\n\r\n if(!this.$store.state.currentUser?.envidanPortalId || !this.$store.state.activeCustomer){\r\n return;\r\n }\r\n\r\n const mappedProducts = this.products.map((val, index) => { return { ...val, position: index+1}});\r\n \r\n const originalProductsDict: { [key: string] : GetProductsDto } = this.originalProductsArray ?\r\n this.originalProductsArray.reduce((r, o) => Object.assign(r, { [o.productId]: {...o} }), {}) : {};\r\n\r\n const differentProducts = mappedProducts.filter(x => {\r\n const originalProduct = originalProductsDict[x.productId];\r\n\r\n if(!originalProduct){\r\n return false;\r\n }\r\n return x.imageLink !== originalProduct.imageLink || x.url !== originalProduct.url || x.title !== originalProduct.title || x.position !== originalProduct.position || originalProduct.isHidden !== x.isHidden;\r\n });\r\n console.log(\"Changed products\", differentProducts);\r\n if(differentProducts.length === 0){\r\n this.toggleEdit();\r\n return;\r\n }\r\n\r\n const request: UpdateProductsRequest = {\r\n userId: this.$store.state.currentUser.envidanPortalId,\r\n customerId: this.$store.state.activeCustomer.customerId,\r\n products: differentProducts.map(x => EditProductRequest.fromDto(x))\r\n };\r\n\r\n this.hasFinishedLoading = false;\r\n this.$api.products.updateProducts(request).subscribe({\r\n next: () => {\r\n this.originalProductsArray = [...mappedProducts];\r\n\r\n this.hasFinishedLoading = true;\r\n },\r\n error: err => {\r\n console.error(err);\r\n this.hasFinishedLoading = true;\r\n },\r\n complete: () => {\r\n this.hasFinishedLoading = true;\r\n this.$emit('save');\r\n this.toggleEdit();\r\n this.$api.products.productsUpdated();\r\n }\r\n });\r\n },\r\n resetPositions() {\r\n this.$emit('reset');\r\n const replacementProducts: GetProductsDto[] = [];\r\n let counter = 1; \r\n console.log(this.originalProductsArray); \r\n this.originalProductsArray.map(x => {return {...x}}).sort((a, b) => a.title.localeCompare(b.title)).forEach(val => {\r\n \r\n const elementFromArray = this.productsDictionaryByProductId[val.productId];\r\n if(elementFromArray){\r\n replacementProducts.push({\r\n ...elementFromArray, position : counter, isHidden : false\r\n })\r\n counter++;\r\n }\r\n });\r\n console.log(this.originalProductsArray); \r\n this.products = replacementProducts;\r\n },\r\n toggleEdit(){\r\n this.isEditable = !this.isEditable;\r\n },\r\n toggleProductForm(){\r\n this.showProductForm = !this.showProductForm;\r\n },\r\n formSubmit(){\r\n this.toggleProductForm();\r\n this.$api.products.productsUpdated();\r\n },\r\n cancel(){\r\n if(this.changedProducts()){\r\n this.showConfirmationDialog = true; \r\n } else {\r\n this.$emit('cancel');\r\n this.toggleEdit();\r\n }\r\n },\r\n confirmUnsaved(){\r\n this.showConfirmationDialog = false;\r\n this.$emit('cancel');\r\n this.toggleEdit();\r\n this.$api.products.productsUpdated();\r\n },\r\n changedProducts(){\r\n const mappedProducts = this.products.map((val, index) => { return { ...val, position: index+1}});\r\n \r\n console.log(\"Mapped products\",mappedProducts);\r\n \r\n const originalProductsDict: { [key: string] : GetProductsDto } = this.originalProductsArray ?\r\n this.originalProductsArray.reduce((r, o) => Object.assign(r, { [o.productId]: o }), {}) : {};\r\n\r\n console.log(\"Original product array\",this.originalProductsArray);\r\n console.log(\"Original product dict\",originalProductsDict);\r\n \r\n\r\n const differentProducts = mappedProducts.filter(x => {\r\n const originalProduct = originalProductsDict[x.productId];\r\n\r\n if(!originalProduct){\r\n return false;\r\n }\r\n console.log(originalProduct, x);\r\n \r\n return x.imageLink !== originalProduct.imageLink || x.url !== originalProduct.url || x.title !== originalProduct.title || x.position !== originalProduct.position || originalProduct.isHidden !== x.isHidden;\r\n });\r\n console.log(differentProducts)\r\n console.log(differentProducts.length)\r\n if(differentProducts.length !== 0){\r\n return true;\r\n }\r\n return false;\r\n },\r\n preventNav(event) {\r\n if (!this.changedProducts() && !this.isEditable) return\r\n event.preventDefault()\r\n event.returnValue = \"\"\r\n }\r\n },\r\n computed: { },\r\n beforeMount() {\r\n window.addEventListener(\"beforeunload\", event => this.preventNav(event))\r\n },\r\n beforeDestroy() {\r\n if(this.unsubscribeFromStore){\r\n this.unsubscribeFromStore();\r\n }\r\n\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n\r\n window.removeEventListener('beforeunload', event => this.preventNav(event))\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductGrid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductGrid.vue?vue&type=template&id=70dfa662&scoped=true&lang=html&\"\nimport script from \"./ProductGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductGrid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductGrid.vue?vue&type=style&index=0&id=70dfa662&prod&scoped=true&lang=scss&\"\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 \"70dfa662\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-card',{staticClass:\"ann\",attrs:{\"elevation\":1}},[_c('v-card-title',{staticClass:\"d-flex justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-tab')))]),_c('Tickets')],1),_c('div',{staticClass:\"text-center\"},[_c('div',{staticClass:\"bottom-drawer\"},[_c('v-card',{staticClass:\"d-flex justify-center card-wrapper-bottom align-top\",attrs:{\"active-class\":\"active-drawer\",\"elevation\":8},on:{\"click\":function($event){_vm.sheet = !_vm.sheet}}},[_c('v-card-title',{staticClass:\"card-title-bottom\"},[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-chevron-up\")]),_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-tab'))+\" \")],1)],1)],1),_c('v-bottom-sheet',{attrs:{\"retain-focus\":false},model:{value:(_vm.sheet),callback:function ($$v) {_vm.sheet=$$v},expression:\"sheet\"}},[_c('v-sheet',{staticClass:\"text-center tickets-sheet\"},[_c('v-card',{staticClass:\"ann-mobile\",attrs:{\"elevation\":1}},[_c('v-card-title',{staticClass:\"d-flex mobile-card-title justify-center\",on:{\"click\":function($event){_vm.sheet = !_vm.sheet}}},[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-chevron-down\")]),_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-tab')))],1),_c('Tickets')],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"tickets-card\",attrs:{\"elevation\":\"0\"}},[_c('v-divider'),_c('v-card-text',{staticClass:\"tickets\"},[(_vm.hasFinishedLoading && _vm.hasAccount && _vm.tickets.length >=1)?_c('div',{staticClass:\"tickets-wrapper\"},_vm._l((_vm.tickets),function(ticket){return _c('div',{key:ticket.id,staticClass:\"ticket\"},[_c('TicketCard',{attrs:{\"ticket\":ticket}})],1)}),0):_vm._e(),(!_vm.hasFinishedLoading)?_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"indeterminate\"}})],1)],1):_vm._e(),(_vm.hasFinishedLoading && _vm.hasAccount && !_vm.hasError && _vm.tickets.length === 0)?_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-alert',{attrs:{\"id\":\"info-alert\",\"border\":\"top\",\"colored-border\":\"\",\"type\":\"info\",\"elevation\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-no-tickets-message'))+\" \"),_c('b',[_vm._v(_vm._s(_vm.currentUserEmail))]),_vm._v(\". \")])],1)],1):_vm._e(),(!_vm.hasAccount && !_vm.hasError && _vm.hasFinishedLoading)?_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center message\"},[_c('v-alert',{attrs:{\"border\":\"top\",\"colored-border\":\"\",\"color\":\"#C51162\",\"elevation\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-no-account-part1-message'))),_c('b',[_vm._v(_vm._s(_vm.currentUserEmail))]),_vm._v(_vm._s(_vm.$t('support-tickets-no-account-part2-message'))+\" \"),_c('v-btn',{staticClass:\"white--text btn-font\",attrs:{\"color\":\"#C51162\",\"height\":\"calc(23px + 0.5vh)\"},on:{\"click\":_vm.goToFreshServiceSignUpPage}},[_vm._v(\" \"+_vm._s(_vm.$t('sign-up-button'))+\" \")])],1)],1)],1):_vm._e(),(_vm.hasError && _vm.hasFinishedLoading)?_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-alert',{attrs:{\"border\":\"top\",\"colored-border\":\"\",\"type\":\"info\",\"elevation\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \"),_c('br'),_c('v-btn',{staticClass:\"white--text btn-font\",attrs:{\"color\":\"primary\",\"height\":\"calc(23px + 0.5vh)\"},on:{\"click\":_vm.refreshTickets}},[_vm._v(\" \"+_vm._s(_vm.$t('refresh'))+\" \")])],1)],1)],1):_vm._e()],1),_c('v-card-actions',{attrs:{\"id\":\"tickets-actions\"}},[_c('v-btn',{staticClass:\"white--text btn-font\",attrs:{\"disabled\":!_vm.hasAccount,\"color\":\"#252F45\",\"height\":\"calc(23px + 0.5vh)\"},on:{\"click\":_vm.goToFreshServiceTickets}},[_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-view-all-button'))+\" \")]),_c('v-btn',{staticClass:\"white--text btn-font\",attrs:{\"disabled\":!_vm.hasAccount,\"color\":\"#252F45\",\"height\":\"calc(23px + 0.5vh)\"},on:{\"click\":_vm.goToCreateTicketForm}},[_vm._v(\" \"+_vm._s(_vm.$t('support-tickets-create-ticket-button'))+\" \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CustomErrors } from \"./custom-errors\";\r\n\r\nexport const FRESHSERVICE_ERRORS: CustomErrors = {\r\n 'FRESH_SERVICE_RATE_LIMIT_EXCEEDED':\r\n {\r\n title: 'Freshservice rate limit exceeded',\r\n message: 'Freshservice rate limit exceeded.'\r\n },\r\n 'FRESH_SERVICE_ERROR':\r\n {\r\n title: 'Freshservice error',\r\n message: 'Freshservice error.'\r\n },\r\n 'FRESH_SERVICE_RESOURCE_NOT_FOUND':\r\n {\r\n title: 'Freshservice resource not found',\r\n message: 'Freshservice resource not found.'\r\n },\r\n 'FRESH_SERVICE_UNAVAILABLE':\r\n {\r\n title: 'Freshservice unavailable',\r\n message: 'Freshservice unavailable.'\r\n },\r\n 'FRESH_SERVICE_API_EMAIL_INVALID_VALUE':\r\n {\r\n title: 'Freshservice invalid email',\r\n message: 'Freshservice invalid email.'\r\n },\r\n}\r\n\r\nexport const FreshServiceErrorKeys = {\r\n FRESH_SERVICE_API_EMAIL_INVALID_VALUE: \"FRESH_SERVICE_API_EMAIL_INVALID_VALUE\",\r\n FRESH_SERVICE_UNAVAILABLE: \"FRESH_SERVICE_UNAVAILABLE\",\r\n FRESH_SERVICE_RESOURCE_NOT_FOUND: \"FRESH_SERVICE_RESOURCE_NOT_FOUND\",\r\n FRESH_SERVICE_ERROR: \"FRESH_SERVICE_ERROR\",\r\n FRESH_SERVICE_RATE_LIMIT_EXCEEDED: \"FRESH_SERVICE_RATE_LIMIT_EXCEEDED\"\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"card-style\",attrs:{\"elevation\":\"3\"},on:{\"click\":function($event){return _vm.openTicketOnFreshservice()}}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"disabled\":_vm.ticket.subject.length < 35,\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({attrs:{\"id\":\"title\"}},on),[_c('div',[_c('b',[_vm._v(_vm._s(_vm._f(\"truncate\")(_vm.ticket.subject)))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm._f(\"ticketIdFormat\")(_vm.ticket.id))+\" \")])])]}}])},[_c('span',[_vm._v(_vm._s(_vm.ticket.subject))])]),_c('v-divider'),_c('v-card-text',{attrs:{\"id\":\"ticket-body\"}},[_c('div',{attrs:{\"id\":\"ticket-time\"}},[_vm._v(\" \"+_vm._s(_vm.$t('due-by'))+\" \"),_c('b',[_vm._v(_vm._s(_vm._f(\"dateFormat\")(_vm.ticket.dueBy)))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('ticket-application'))+\" \"),_c('b',[_vm._v(_vm._s(_vm.ticket.category))])]),_c('div',{attrs:{\"id\":\"status-chip\"}},[_c('v-chip',{attrs:{\"small\":\"\",\"text-color\":\"#000000\",\"right\":\"\",\"color\":\"#E0B366\",\"label\":\"\"}},[_vm._v(_vm._s(_vm.$t(_vm.getTicketStatus)))])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum TicketStatus {\r\n Open = 2,\r\n Pending = 3,\r\n Resolved = 4,\r\n Closed = 5,\r\n Planned = 6,\r\n Transferred = 7,\r\n WorkInProgress = 9,\r\n UAT = 10,\r\n ProductBacklog = 11,\r\n WIPSupport = 12\r\n}\r\n\r\nconst ticketStatusOpen = 'ticket-status-open';\r\nconst ticketStatusPending = 'ticket-status-pending';\r\nconst ticketStatusTransferred = 'ticket-status-transferred';\r\nconst ticketStatusPlanned = 'ticket-status-planned';\r\nconst ticketStatusWorkInProgress = 'ticket-status-workinprogress';\r\nconst ticketStatusUAT = 'ticket-status-uat';\r\nconst ticketStatusResolved = 'ticket-status-resolved';\r\nconst ticketStatusClosed = 'ticket-status-closed';\r\nconst ticketStatusProductBacklog = 'ticket-status-product-backlog';\r\nconst ticketStatusWIPSupport = 'ticket-status-wip-support';\r\n\r\n\r\nexport const TicketDisplayStatus = new Map([\r\n [TicketStatus.Open, ticketStatusOpen],\r\n [TicketStatus.Pending, ticketStatusPending],\r\n [TicketStatus.Transferred, ticketStatusTransferred],\r\n [TicketStatus.Planned, ticketStatusPlanned],\r\n [TicketStatus.WorkInProgress, ticketStatusWorkInProgress],\r\n [TicketStatus.UAT, ticketStatusUAT],\r\n [TicketStatus.Resolved, ticketStatusResolved],\r\n [TicketStatus.Closed, ticketStatusClosed],\r\n [TicketStatus.ProductBacklog, ticketStatusProductBacklog],\r\n [TicketStatus.WIPSupport, ticketStatusWIPSupport]\r\n\r\n])","\r\nimport Vue from \"vue\";\r\nimport { TicketDisplayStatus, TicketDto } from \"@/models/dtos/ticket\"\r\nimport { PropType } from \"vue\";\r\n\r\nexport default Vue.extend({\r\n props: {\r\n ticket: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n components: {\r\n },\r\n data(){\r\n return {\r\n };\r\n }, \r\n methods: { \r\n openTicketOnFreshservice(){\r\n window.open(this.$props.ticket.ticketUrl, \"blank_\");\r\n }\r\n },\r\n computed: {\r\n getTicketStatus() {\r\n return TicketDisplayStatus.get(this.ticket.status);\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TicketCard.vue?vue&type=template&id=370ff8ae&scoped=true&lang=html&\"\nimport script from \"./TicketCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./TicketCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TicketCard.vue?vue&type=style&index=0&id=370ff8ae&prod&scoped=true&lang=scss&\"\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 \"370ff8ae\",\n null\n \n)\n\nexport default component.exports","\r\nimport { TicketDto } from \"@/models/dtos/ticket\";\r\nimport { FRESHSERVICE_ERRORS, FreshServiceErrorKeys } from \"@/models/errors\"\r\nimport { BehaviorSubject, Subject, takeUntil } from \"rxjs\";\r\nimport Vue from \"vue\";\r\nimport TicketCard from \"./TicketCard.vue\"\r\n\r\nexport default Vue.extend({\r\n props: {},\r\n components: {\r\n TicketCard\r\n },\r\n data() {\r\n return {\r\n tickets: [] as TicketDto[],\r\n destroyed$: new Subject() as Subject,\r\n refreshTickets$: new BehaviorSubject(true) as BehaviorSubject,\r\n hasFinishedLoading: false as boolean,\r\n hasAccount: true as boolean,\r\n currentUserEmail: \"\" as string,\r\n hasError: false as boolean,\r\n errorMessage: \"\" as string\r\n };\r\n },\r\n mounted() {\r\n this.initializeData();\r\n },\r\n methods: {\r\n initializeData() {\r\n this.hasFinishedLoading = false;\r\n this.currentUserEmail = this.$store.state.currentUser.email\r\n this.$api.tickets.getTickets(this.currentUserEmail).pipe(\r\n takeUntil(this.destroyed$)\r\n )\r\n .subscribe({\r\n next: tickets => {\r\n this.tickets = tickets.data.value; \r\n this.hasFinishedLoading= true;\r\n },\r\n error: err => {\r\n this.errorMessage = FRESHSERVICE_ERRORS[err.response.data.message].message;\r\n console.error(this.errorMessage);\r\n\r\n if(err.response.data.message == FreshServiceErrorKeys.FRESH_SERVICE_API_EMAIL_INVALID_VALUE){\r\n this.hasAccount = false;\r\n } \r\n else{\r\n this.hasError = true;\r\n }\r\n this.hasFinishedLoading = true;\r\n },\r\n complete: () => {\r\n this.hasFinishedLoading = true;\r\n }\r\n })\r\n },\r\n goToFreshServiceSignUpPage() {\r\n window.open(\"https://support.envidan.com/support/signup\", \"_blank\");\r\n },\r\n goToCreateTicketForm() {\r\n window.open(\"https://support.envidan.com/support/tickets/new\", \"_blank\");\r\n },\r\n goToFreshServiceTickets(){\r\n window.open(\"https://support.envidan.com/support/tickets\", \"_blank\");\r\n },\r\n refreshTickets(){\r\n this.initializeData();\r\n this.hasError = false;\r\n }\r\n },\r\n computed: {},\r\n beforeDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tickets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tickets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tickets.vue?vue&type=template&id=051b9c0e&scoped=true&lang=html&\"\nimport script from \"./Tickets.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tickets.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tickets.vue?vue&type=style&index=0&id=051b9c0e&prod&scoped=true&lang=scss&\"\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 \"051b9c0e\",\n null\n \n)\n\nexport default component.exports","\r\nimport Vue from \"vue\";\r\nimport Tickets from \"@/components/Tickets/Tickets.vue\";\r\n\r\nexport default Vue.extend({\r\n props: {},\r\n components: {\r\n Tickets,\r\n },\r\n data() {\r\n return {\r\n sheet: false as boolean\r\n };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Announcements.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Announcements.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Announcements.vue?vue&type=template&id=61f831f3&scoped=true&lang=html&\"\nimport script from \"./Announcements.vue?vue&type=script&lang=ts&\"\nexport * from \"./Announcements.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Announcements.vue?vue&type=style&index=0&id=61f831f3&prod&scoped=true&lang=scss&\"\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 \"61f831f3\",\n null\n \n)\n\nexport default component.exports","\r\nimport Vue from \"vue\";\r\nimport ProductGrid from \"@/components/Products/ProductGrid.vue\";\r\nimport Announcements from \"@/components/Announcements/Announcements.vue\"\r\n\r\nexport default Vue.extend({\r\n props: {\r\n },\r\n components: {\r\n Announcements,\r\n ProductGrid\r\n },\r\n data(): {\r\n\r\n } {\r\n return {\r\n \r\n };\r\n },\r\n methods: {\r\n },\r\n computed: {},\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=93b339c8&scoped=true&lang=html&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=93b339c8&prod&scoped=true&lang=scss&\"\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 \"93b339c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"profile-wrapper\",attrs:{\"fluid\":\"\"}},[(!_vm.isLoading && _vm.userData)?_c('v-row',{staticClass:\"row-wrapper\",attrs:{\"cols\":\"12\"}},[(_vm.showSidebar)?_c('v-col',{staticClass:\"navbar-side\",attrs:{\"xsm\":\"3\",\"md\":\"2\",\"sm\":\"3\"}},[_c('NavigationalSidebar',{staticClass:\"sidebar\",attrs:{\"sidebarItems\":_vm.sidebarItems,\"initialNavigationItem\":_vm.sidebarItems[0]},on:{\"click\":_vm.handleSidebarClick}})],1):_vm._e(),_c('v-col',{staticClass:\"avatar-form pl-0 ml-0 d-flex\",attrs:{\"md\":\"10\",\"xsm\":\"9\",\"sm\":\"9\",\"pl\":\"0\",\"ml\":\"0\"}},[_c('div',{staticClass:\"avatar-wrapper d-flex\"},[_c('v-container',{staticClass:\"d-flex avatar-container\"},[_c('div',{staticClass:\"left-avatar\"},[_c('v-responsive',{attrs:{\"aspect-ratio\":\"1/1\"}},[_c('v-avatar',{staticClass:\"user-avatar rounded\",attrs:{\"tile\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-account\")])],1)],1)],1),_c('div',{staticClass:\"form-properties\"},[_c('v-text-field',{staticClass:\"text-input\",attrs:{\"dense\":\"\",\"label\":_vm.$t('user-profile-name-label'),\"outlined\":\"\",\"readonly\":\"\",\"disabled\":\"\",\"value\":_vm.userData.fullName}}),_c('v-text-field',{staticClass:\"text-input\",attrs:{\"dense\":\"\",\"label\":_vm.$t('user-profile-email'),\"outlined\":\"\",\"readonly\":\"\",\"disabled\":\"\",\"value\":_vm.email}}),_c('v-text-field',{staticClass:\"text-input\",attrs:{\"dense\":\"\",\"label\":_vm.$t('user-profile-phone'),\"outlined\":\"\",\"disabled\":\"\",\"readonly\":\"\",\"value\":_vm.userData.workPhoneNumber || ' '}}),_c('v-select',{staticClass:\"text-input language-dropdown\",attrs:{\"disabled\":\"\",\"items\":_vm.languageItems,\"label\":_vm.$t('user-profile-language'),\"item-text\":\"name\",\"item-value\":\"id\",\"readonly\":\"\",\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.selectedLanguage),callback:function ($$v) {_vm.selectedLanguage=$$v},expression:\"selectedLanguage\"}}),(!_vm.isAdUser)?_c('v-btn',{staticClass:\"change-password-button\",on:{\"click\":_vm.changePassword}},[_vm._v(_vm._s(_vm.$t('user-profile-change-password-button')))]):_vm._e()],1)])],1)])],1):_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"indeterminate\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n \r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserProfile.vue?vue&type=template&id=551417b4&scoped=true&lang=html&\"\nimport script from \"./UserProfile.vue?vue&type=script&lang=js&\"\nexport * from \"./UserProfile.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserProfile.vue?vue&type=style&index=0&id=551417b4&prod&scoped=true&lang=scss&\"\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 \"551417b4\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport VueRouter, { RouteConfig } from 'vue-router';\r\nimport Home from '@/components/Home/Home.vue';\r\nimport UserProfile from '@/components/Profile/UserProfile.vue';\r\n\r\nVue.use(VueRouter)\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/home',\r\n name: 'home',\r\n component: Home\r\n },\r\n {\r\n path: '/profile',\r\n name: 'profile',\r\n component: UserProfile\r\n },\r\n {\r\n path: \"*\",\r\n redirect: '/home'\r\n }\r\n];\r\n\r\nconst router = new VueRouter({\r\n routes\r\n});\r\n\r\n\r\nexport default router\r\n","export class CurrentUserDto {\r\n public envidanPortalId!: number;\r\n public objectId!: string;\r\n public tenantId!: string;\r\n public hostCustomerId!: number;\r\n public firstName!: string;\r\n public lastName!: string;\r\n public email!: string;\r\n public isADLogin!: boolean;\r\n}","import { CurrentUserDto } from '@/models/current-user.dto';\r\nimport { GetProductsDto } from '@/models/dtos/product';\r\nimport { CustomerDto } from '@/models/dtos/users';\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport createPersistedState from \"vuex-persistedstate\";\r\n\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n state: {\r\n currentUser: new CurrentUserDto,\r\n isAuthenticated: false,\r\n activeCustomer: {},\r\n supportAdmin:\"\",\r\n administration: \"\",\r\n configureCustomers: \"\",\r\n showLegacyProductDialog: true\r\n },\r\n getters: {\r\n getAdministrativeOptions (state) {\r\n return {\r\n configureCustomersLink: state.configureCustomers !== \"\" ? state.configureCustomers : null,\r\n administrationLink: state.administration !== \"\" ? state.administration : null,\r\n supportAdminLink: state.supportAdmin !== \"\" ? state.supportAdmin : null\r\n }\r\n }\r\n },\r\n mutations: {\r\n setCurrentUser(state, user: CurrentUserDto) {\r\n state.currentUser = user;\r\n },\r\n setActiveCustomer(state, activeCustomer: CustomerDto) {\r\n state.activeCustomer = activeCustomer;\r\n },\r\n setAdministrativeOptions(state, options: GetProductsDto[]){\r\n state.supportAdmin=\"\";\r\n state.administration = \"\";\r\n state.configureCustomers = \"\";\r\n \r\n options.forEach(product => {\r\n if(product.title===\"SupportAdmin\"){\r\n state.supportAdmin=product.url;\r\n }\r\n if (product.title === \"Administration\"){\r\n state.administration = product.url;\r\n } \r\n if (product.title === \"Vælg egne kunde\") {\r\n state.configureCustomers = product.url;\r\n }\r\n });\r\n }\r\n },\r\n actions: {\r\n },\r\n modules: {\r\n },\r\n plugins: [createPersistedState()]\r\n});\r\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport 'vuetify/dist/vuetify.min.css';\r\nimport { colors } from 'vuetify/lib';\r\n\r\nVue.use(Vuetify);\r\n\r\nconst opts =\r\n{\r\n customVariables: ['../assets/variables.scss'],\r\n theme: {\r\n dark: false,\r\n themes: {\r\n dark: {\r\n primary: colors.blue.darken2,\r\n accent: colors.grey.darken3,\r\n secondary: colors.amber.darken3,\r\n info: colors.teal.lighten1,\r\n warning: colors.amber.base,\r\n error: colors.deepOrange.accent4,\r\n success: colors.green.accent3\r\n },\r\n light: {\r\n primary: '#00aeef',\r\n secondary: '#00aeef',\r\n accent: '#00aeef',\r\n error: '#d82821',\r\n info: '#00aeef',\r\n success: '#73d821',\r\n warning: '#d82821'\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default new Vuetify(opts)","import { msalPluginInstance } from './../../plugins/msal-plugin';\r\nimport axios from 'axios';\r\n\r\nexport function jwtInterceptor(): void {\r\n axios.interceptors.request.use(async request => {\r\n const token = await msalPluginInstance.acquireToken();\r\n const isApiUrl = request.url?.startsWith(process.env.VUE_APP_BASE_APP_GATEWAY_API_URL!);\r\n\r\n if (token && isApiUrl) {\r\n request.headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n return request;\r\n\r\n }, err => Promise.reject(err));\r\n}","import axios, { AxiosResponse } from \"axios\";\r\nimport { from, Observable } from \"rxjs\";\r\nexport class BaseApiService {\r\n private baseUrl = `${process.env.VUE_APP_BASE_APP_GATEWAY_API_URL}/api/`;\r\n private config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n };\r\n\r\n public get(url: string): Observable> {\r\n return from(axios.get(`${this.baseUrl}${url}`));\r\n }\r\n\r\n public post(url: string, data: Record = { }): Observable> {\r\n return from(axios.post(`${this.baseUrl}${url}`, JSON.stringify(data), this.config));\r\n }\r\n \r\n public put(url: string, data: Record = { }): Observable> {\r\n return from(axios.put(`${this.baseUrl}${url}`, JSON.stringify(data), this.config));\r\n }\r\n\r\n public delete(url: string): Observable> {\r\n return from(axios.delete(`${this.baseUrl}${url}`));\r\n }\r\n\r\n public patch(url: string, data: Record = { }): Observable> {\r\n return from(axios.patch(`${this.baseUrl}${url}`, JSON.stringify(data), this.config));\r\n }\r\n}","import { ProductsResponse } from '../../models/responses/Product.response';\r\nimport { AxiosResponse } from \"axios\";\r\nimport { BaseApiService } from \"./base.api.service\";\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Result } from '@/models/interfaces/result.interface';\r\nimport { CreateProductRequest, UpdateProductsRequest } from '@/models/requests/product.request';\r\n\r\nexport class ProductsApiService extends BaseApiService {\r\n public refreshProducts$ = new BehaviorSubject(true);\r\n\r\n public getProducts(customerId: number): Observable>> {\r\n return super.get>(`product/${customerId}`);\r\n }\r\n\r\n public create(request: CreateProductRequest): Observable>> {\r\n return super.post>('product', request);\r\n }\r\n\r\n public updateProducts(request: UpdateProductsRequest): Observable>> {\r\n return super.patch>(`product`, request);\r\n }\r\n\r\n public deleteProduct(userId: number, productId: string): Observable>> {\r\n return super.delete>(`product/${productId}/user/${userId}`);\r\n }\r\n\r\n public productsUpdated(): void {\r\n this.refreshProducts$.next(true);\r\n }\r\n}","import { TicketDto } from '../../models/dtos/ticket';\r\nimport { AxiosResponse } from \"axios\";\r\nimport { BaseApiService } from \"./base.api.service\";\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Result } from '@/models/interfaces/result.interface';\r\n\r\nexport class TicketsApiService extends BaseApiService {\r\n\r\n public refreshTickets$ = new BehaviorSubject(true);\r\n\r\n public getTickets(email: string): Observable>> {\r\n return super.get>(`tickets/requester/${email}`);\r\n }\r\n\r\n public ticketsUpdated(): void {\r\n this.refreshTickets$.next(true);\r\n }\r\n}","import { CustomerDto, UserDto } from '../../models/dtos/users/user.dtos';\r\nimport { AxiosResponse } from \"axios\";\r\nimport { BaseApiService } from \"./base.api.service\";\r\nimport { Observable } from 'rxjs';\r\n\r\nexport class UsersApiService extends BaseApiService {\r\n \r\n public getUserData(): Observable> {\r\n return super.get(`users`);\r\n }\r\n\r\n public getActiveCustomersForUser(userId: number): Observable> {\r\n return super.get(`users/${userId}/customers`);\r\n }\r\n}","import axios, { AxiosResponse } from \"axios\";\r\nimport { from, Observable } from \"rxjs\";\r\n\r\nexport class BaseEnvidanPortalApiService {\r\n protected baseUrl = `${process.env.VUE_APP_PORTAL_URL}EnviWCFWebService/`;\r\n protected config = {\r\n withCredentials: true\r\n }; \r\n}\r\n","import { BaseEnvidanPortalApiService } from \"./base.envidanportal.api.services\";\r\nimport axios from \"axios\";\r\n\r\n\r\nexport class EnvidanPortalApiService extends BaseEnvidanPortalApiService {\r\n // Logs out from EnviDan Portal by calling EnviWCFWebservice logout endpoint which signs the user out and deletes the envisecure cookie\r\n public async Logout() : Promise {\r\n await axios\r\n .post(`${this.baseUrl}WebShellService.json/Logout`, null, this.config)\r\n // we catch all errors because we don't want the BaseApp logout flow to be interrupted by an error from the legacy monolith logout\r\n .catch(function (error) {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n console.log(error.response.data);\r\n console.log(error.response.status);\r\n console.log(error.response.headers);\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\r\n // http.ClientRequest in node.js\r\n console.log(error.request);\r\n } else {\r\n // Something happened in setting up the request that triggered an Error\r\n console.log('Error', error.message);\r\n }\r\n console.log(error.config);\r\n });\r\n }\r\n}","import { ProductsApiService } from './products.api.service';\r\nimport { TicketsApiService } from './tickets.api.service';\r\nimport { UsersApiService } from './users.api.service';\r\nimport { EnvidanPortalApiService } from './envidanportal.api.service';\r\n\r\nexport const $api : ApiServices = {\r\n users: new UsersApiService(),\r\n products: new ProductsApiService(),\r\n tickets: new TicketsApiService(),\r\n envidanPortal: new EnvidanPortalApiService()\r\n}\r\n\r\nexport interface ApiServices {\r\n users: UsersApiService;\r\n products: ProductsApiService;\r\n tickets: TicketsApiService;\r\n envidanPortal: EnvidanPortalApiService;\r\n}","import { ITelemetryItem } from '@microsoft/applicationinsights-web';\r\n\r\nexport const telemetryInitializer = (envelope : ITelemetryItem): boolean => {\r\n const doNotTrackCodes = [0, 401, 404];\r\n \r\n envelope.data = envelope.data ? {...envelope.data, Tenant: process.env.VUE_APP_APPLICATION_INSIGHTS_TENANT_NAME} : {Tenant: process.env.VUE_APP_APPLICATION_INSIGHTS_TENANT_NAME };\r\n\r\n const baseData = envelope.baseData;\r\n\r\n const doNotTrackTicketsEndpoint = baseData && baseData.name.includes('/tickets/requester/') && envelope.baseType === \"RemoteDependencyData\" && baseData.responseCode === 406;\r\n\r\n if(doNotTrackTicketsEndpoint) {\r\n return false;\r\n }\r\n\r\n return !doNotTrackCodes.includes(envelope?.baseData?.responseCode)\r\n \r\n };","import VueRouter from 'vue-router';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { VueConstructor } from 'Vue/types/vue';\r\nimport { telemetryInitializer } from './app-insights.telemetry';\r\n\r\nexport class VueAppInsightsOptions{\r\n public instrumentationKey!: string;\r\n public appInsightsConfig?: any;\r\n public onAfterScriptLoaded?: (s: any) => any;\r\n public appInsights?: ApplicationInsights;\r\n}\r\n\r\n\r\nfunction install (Vue: VueConstructor, options: VueAppInsightsOptions): void {\r\n\r\n const config = options.appInsightsConfig || {};\r\n config.instrumentationKey = config.instrumentationKey || options.instrumentationKey;\r\n \r\n if (options.appInsights) {\r\n Vue.appInsights = options.appInsights;\r\n } else {\r\n Vue.appInsights = new ApplicationInsights({ config });\r\n Vue.appInsights.loadAppInsights();\r\n Vue.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n if (typeof(options.onAfterScriptLoaded) === 'function') {\r\n options.onAfterScriptLoaded(Vue.appInsights);\r\n }\r\n }\r\n\r\n Object.defineProperty(Vue.prototype, '$appInsights', {\r\n get: () => Vue.appInsights\r\n })\r\n\r\n}\r\n\r\n// auto install for navigator\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(install);\r\n}\r\n\r\n\r\nexport default install;","import { VueConstructor } from 'vue';\r\nimport VueAppInsights, { VueAppInsightsOptions } from '@/application-insights/app-insights.plugin';\r\n\r\nexport function initialize(Vue: VueConstructor): void {\r\n\r\n const isDevelopment = process.env.NODE_ENV === \"development\";\r\n\r\n const options: VueAppInsightsOptions = {\r\n instrumentationKey: process.env.VUE_APP_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY ?? '',\r\n appInsightsConfig: {\r\n customHeaders: [{\r\n \"Tenant\": process.env.VUE_APP_APPLICATION_INSIGHTS_TENANT_NAME\r\n }],\r\n disableExceptionTracking: isDevelopment,\r\n disableTelemetry: isDevelopment,\r\n enableAutoRouteTracking: !isDevelopment,\r\n enableUnhandledPromiseRejectionTracking: !isDevelopment\r\n }\r\n };\r\n\r\n Vue.use(VueAppInsights, options);\r\n \r\n // Track every error from vue\r\n Vue.config.errorHandler = (err, vm) => {\r\n\r\n if(!!vm.$appInsights && !isDevelopment){\r\n vm.$appInsights.trackException({\r\n exception: err,\r\n properties: {\r\n \"Tenant\": process.env.VUE_APP_APPLICATION_INSIGHTS_TENANT_NAME\r\n }\r\n });\r\n }\r\n \r\n }\r\n \r\n // Track every error on page\r\n window.onerror = (msg, url, line, col, error) => {\r\n if(!!Vue.prototype.$appInsights && !isDevelopment){\r\n Vue.prototype.$appInsights.trackException({\r\n exception: error,\r\n properties: {\r\n \"Tenant\": process.env.VUE_APP_APPLICATION_INSIGHTS_TENANT_NAME\r\n }\r\n });\r\n }\r\n }\r\n\r\n}","import { BlobDeleteResponse, BlobServiceClient, BlockBlobUploadResponse } from \"@azure/storage-blob\";\r\n\r\nexport class ImageService {\r\n\r\n private withoutSlash = process.env.VUE_APP_BLOB_STORAGE_URL!.substring(0, process.env.VUE_APP_BLOB_STORAGE_URL!.length -1);\r\n private blobServiceClient = new BlobServiceClient(`${this.withoutSlash}${process.env.VUE_APP_AZURE_BLOB_STORAGE_SAS_TOKEN!}`);\r\n \r\n private imageContainerClient = this.blobServiceClient.getContainerClient(\"images\");\r\n\r\n public async uploadBlobAsync(fileName: string, file: File): Promise{\r\n \r\n const uploadImageResponse = await this.imageContainerClient.uploadBlockBlob(fileName, file, file.size);\r\n\r\n return uploadImageResponse.response;\r\n }\r\n\r\n public async deleteBlobAsync(blobName: string): Promise {\r\n\r\n const response = await this.imageContainerClient.deleteBlob(blobName);\r\n\r\n return response;\r\n }\r\n} ","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport Vue from 'vue';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport store from './store';\r\nimport vuetify from '@/plugins/vuetify'\r\nimport { MsalPlugin, MsalPluginOptions } from './plugins/msal-plugin';\r\nimport './assets/AssetPack/font/webfonts.css';\r\nimport './assets/AssetPack/EnviDanIconPack/style.css';\r\nimport './assets/css/main.css';\r\nimport axios from 'axios';\r\nimport VueAxios from 'vue-axios';\r\nimport { CurrentUserDto } from './models/current-user.dto';\r\nimport { AuthenticationResult } from '@azure/msal-browser';\r\nimport { jwtInterceptor } from './utils/interceptors/interceptors';\r\nimport { $api, ApiServices } from './services/api';\r\nimport datjs from \"dayjs\"\r\nimport i18n from './plugins/translations-plugin';\r\nimport * as VueAppInsightsInitializer from '@/application-insights/app-insights.initializer';\r\nimport VueGtag from \"vue-gtag\"\r\nimport { ImageService } from './services/blob-storage/image.blob-storage.service';\r\n\r\nVue.config.productionTip = false\r\n\r\nconst options: MsalPluginOptions = {\r\n clientId: process.env.VUE_APP_MSAL_CLIENT_ID!,\r\n loginAuthority: process.env.VUE_APP_MSAL_LOGIN_AUTHORITY!,\r\n passwordAuthority: process.env.VUE_APP_MSAL_PASSWORD_RESET_AUTHORITY!,\r\n knownAuthority: process.env.VUE_APP_MSAL_KNOWN_AUTHORITY!\r\n};\r\n\r\nconst msalPlugin = new MsalPlugin();\r\n\r\ndeclare module \"vue/types/vue\" {\r\n interface Vue {\r\n $msal: MsalPlugin;\r\n $api: ApiServices;\r\n $appInsights: ApplicationInsights;\r\n $imageService: ImageService;\r\n }\r\n\r\n interface VueConstructor {\r\n appInsights: ApplicationInsights;\r\n }\r\n}\r\n\r\nVue.use(msalPlugin, options);\r\nVue.use(VueAxios, axios);\r\nVueAppInsightsInitializer.initialize(Vue);\r\n\r\nif ('production' === process.env.NODE_ENV) {\r\n Vue.use(VueGtag, {\r\n appName: \"BaseApp\",\r\n config: { id: process.env.VUE_APP_GOOGLE_ANALYTICS_MEASUREMENT_ID} \r\n }, router);\r\n}\r\n\r\nlet lastResponse : AuthenticationResult | null;\r\n\r\nmsalPlugin\r\n.onRedirect()\r\n.then(async response => \r\n{\r\n console.log(response);\r\n lastResponse = response;\r\n if (msalPlugin.getIsAuthenticated()) {\r\n let claims;\r\n const allAccounts = msalPlugin.getAllAccounts();\r\n if (!response) {\r\n claims = allAccounts[0].idTokenClaims; \r\n }\r\n else {\r\n claims = response.idTokenClaims;\r\n }\r\n const claimsRecord = claims as Record;\r\n const currentUser: CurrentUserDto = new CurrentUserDto;\r\n currentUser.envidanPortalId = claimsRecord['userId'];\r\n currentUser.objectId = claimsRecord['sub'];\r\n currentUser.tenantId = claimsRecord['tid'];\r\n currentUser.hostCustomerId = claimsRecord['hostCustomerId'];\r\n currentUser.firstName = claimsRecord['given_name'];\r\n currentUser.lastName = claimsRecord['family_name'];\r\n currentUser.email = claimsRecord['preferred_username'];\r\n currentUser.isADLogin = !!claimsRecord['aadUPN'];\r\n\r\n\r\n\r\n store.commit('setCurrentUser', currentUser);\r\n msalPlugin.authenticated$.next(true);\r\n if(response && !response.fromCache){\r\n router.replace('/');\r\n }\r\n }\r\n else {\r\n await msalPlugin.signIn();\r\n }\r\n}).catch(async err => {\r\n if (err.errorMessage && err.errorMessage.indexOf(\"AADB2C90118\") > -1) {\r\n await msalPlugin.passwordReset('', i18n?.locale)\r\n }\r\n else {\r\n try{\r\n await msalPlugin.acquireToken();\r\n } catch {\r\n await msalPlugin.signIn();\r\n }\r\n\r\n if(msalPlugin.isAuthenticated && msalPlugin.getAllAccounts().length){\r\n msalPlugin.authenticated$.next(true);\r\n router.replace('/');\r\n }\r\n\r\n await msalPlugin.signIn();\r\n }\r\n});\r\n\r\nrouter.beforeEach((_to, _from, next) => {\r\n if (!msalPlugin.getIsAuthenticated()) {\r\n next(false);\r\n }\r\n else {\r\n next();\r\n }\r\n});\r\n\r\njwtInterceptor();\r\nVue.prototype.$api = $api;\r\nVue.prototype.$imageService = new ImageService();\r\n\r\nVue.filter('truncate', function (text: string) {\r\n if (window.innerWidth < 1200 ) {\r\n return text.slice(0, 27) + (27 < text.length ? '...' : '')\r\n } else if (window.innerWidth > 1300 && window.innerWidth < 1400 ) {\r\n return text.slice(0, 40) + (40 < text.length ? '...' : '')\r\n }else if (window.innerWidth > 1400 && window.innerWidth < 2500){\r\n return text.slice(0, 45) + (45 < text.length ? '...' : '')\r\n } else if (window.innerWidth > 2500){\r\n return text.slice(0, 60) + (60 < text.length ? '...' : '')\r\n } else {\r\n return text.slice(0, 35) + (35 < text.length ? '...' : '')\r\n }\r\n});\r\n\r\nVue.filter('stringOrSlash', function (text: string) {\r\n return text?.length ? text : '/';\r\n});\r\n\r\nVue.filter('dateFormat', function (date: Date) {\r\n if (date) {\r\n return datjs(String(date)).format('DD/MMM/YYYY HH:mm')\r\n }\r\n});\r\n\r\nVue.filter('ticketIdFormat', function (text: string) {\r\n return \"#INC-\" + text;\r\n});\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n vuetify,\r\n i18n,\r\n render: h => h(App)\r\n}).$mount('#app');\r\n"],"sourceRoot":""}