{"version":3,"sources":["webpack:///./src/@core/components/feather-icon/FeatherIcon.vue?768c","webpack:///src/@core/components/feather-icon/FeatherIcon.vue","webpack:///./src/@core/components/feather-icon/FeatherIcon.vue?fe69","webpack:///./src/@core/layouts/components/Logo.vue?fca4","webpack:///src/@core/layouts/components/Logo.vue","webpack:///./src/@core/layouts/components/Logo.vue?f886","webpack:///./src/@core/layouts/components/Logo.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?f360","webpack:///src/@core/components/toastification/ToastificationContent.vue","webpack:///./src/@core/components/toastification/ToastificationContent.vue?3fc5","webpack:///./src/@core/components/toastification/ToastificationContent.vue?6e2d","webpack:///./src/@core/components/toastification/ToastificationContent.vue?994d","webpack:///./src/@core/components/feather-icon/FeatherIcon.vue?93b6","webpack:///./src/@core/app-config/useAppConfig.js","webpack:///./src/@core/auth/jwt/jwtDefaultConfig.js","webpack:///./src/@core/auth/jwt/jwtService.js","webpack:///./src/@core/auth/jwt/useJwt.js"],"names":["staticRenderFns","name","functional","props","icon","required","type","String","Object","size","default","badge","Number","badgeClasses","Array","render","svg","h","component","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","img","components","BImg","data","staticClass","variant","class","domProps","_s","title","_e","text","on","$event","$emit","hideClose","BAvatar","Boolean","usAppConfig","isVerticalMenuCollapsed","computed","get","store","state","verticalMenu","set","val","commit","isRTL","appConfig","layout","skin","skinClasses","value","routerTransition","layoutType","watch","contentWidth","isNavMenuHidden","menu","hidden","navbarBackgroundColor","navbar","backgroundColor","navbarType","footerType","footer","loginEndpoint","registerEndpoint","refreshEndpoint","logoutEndpoint","tokenType","storageTokenKeyName","storageRefreshTokenKeyName","JwtService","axiosIns","jwtOverrideConfig","jwtDefaultConfig","jwtConfig","interceptors","request","use","config","JSON","parse","localStorage","getItem","accessToken","getToken","headers","Authorization","locale","plantid","app","selectedPlantId","modelid","selectedModelId","model","culinfo","culture","error","Promise","reject","response","errorCount","dispatch","originalRequest","status","isAlreadyFetchingAccessToken","removeItem","Vue","$toast","VueI18n","t","router","push","then","catch","retryOriginalRequest","resolve","addSubscriber","subscribers","filter","callback","setItem","args","post","refreshToken","getRefreshToken","useJwt","jwt"],"mappings":"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","file":"js/app~d0ae3f07.2002f212.js","sourcesContent":["var render, staticRenderFns\nimport script from \"./FeatherIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./FeatherIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FeatherIcon.vue?vue&type=style&index=0&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","\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatherIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatherIcon.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-img',{staticStyle:{\"height\":\"50px\"},attrs:{\"src\":_vm.img,\"alt\":\"logo\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=f917e7ee&\"\nimport script from \"./Logo.vue?vue&type=script&lang=js&\"\nexport * from \"./Logo.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toastification\"},[_c('div',{staticClass:\"d-flex align-items-start\"},[_c('b-avatar',{staticClass:\"mr-75 flex-shrink-0\",attrs:{\"variant\":_vm.variant,\"size\":\"1.8rem\"}},[_c('feather-icon',{attrs:{\"icon\":_vm.icon,\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',[(_vm.title)?_c('h5',{staticClass:\"mb-0 font-weight-bolder toastification-title\",class:(\"text-\" + _vm.variant),domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),(_vm.text)?_c('small',{staticClass:\"d-inline-block text-body\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_vm._e()]),_c('span',{staticClass:\"cursor-pointer toastification-close-icon ml-auto\",on:{\"click\":function($event){return _vm.$emit('close-toast')}}},[(!_vm.hideClose)?_c('feather-icon',{staticClass:\"text-body\",attrs:{\"icon\":\"XIcon\"}}):_vm._e()],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToastificationContent.vue?vue&type=template&id=52d83702&scoped=true&\"\nimport script from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastificationContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ToastificationContent.vue?vue&type=style&index=0&id=52d83702&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 \"52d83702\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastificationContent.vue?vue&type=style&index=0&id=52d83702&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatherIcon.vue?vue&type=style&index=0&lang=scss&\"","import { computed, watch } from \"@vue/composition-api\";\nimport store from \"@/store\";\n\nexport default function usAppConfig() {\n // ------------------------------------------------\n // isVerticalMenuCollapsed\n // ------------------------------------------------\n const isVerticalMenuCollapsed = computed({\n get: () => store.state.verticalMenu.isVerticalMenuCollapsed,\n set: (val) => {\n store.commit(\"verticalMenu/UPDATE_VERTICAL_MENU_COLLAPSED\", val);\n },\n });\n\n // ------------------------------------------------\n // RTL\n // ------------------------------------------------\n const isRTL = computed({\n get: () => store.state.appConfig.layout.isRTL,\n set: (val) => {\n store.commit(\"appConfig/TOGGLE_RTL\", val);\n },\n });\n\n // ------------------------------------------------\n // Skin\n // ------------------------------------------------\n const skin = computed({\n get: () => store.state.appConfig.layout.skin,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_SKIN\", val);\n },\n });\n\n const skinClasses = computed(() => {\n if (skin.value === \"bordered\") return \"bordered-layout\";\n if (skin.value === \"semi-dark\") return \"semi-dark-layout\";\n\n // Do not return any class for dark layout because dark layout updates class in body\n // Do not return any class for light layout as that is default layout\n return null;\n });\n\n // ------------------------------------------------\n // routerTransition\n // ------------------------------------------------\n const routerTransition = computed({\n get: () => store.state.appConfig.layout.routerTransition,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_ROUTER_TRANSITION\", val);\n },\n });\n\n // *===============================================---*\n // *--------- LAYOUT ---------------------------------------*\n // *===============================================---*\n\n // ------------------------------------------------\n // layoutType\n // ------------------------------------------------\n\n const layoutType = computed({\n get: () => store.state.appConfig.layout.type,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_LAYOUT_TYPE\", val);\n },\n });\n\n // Reset skin if skin is semi-dark and move to horizontal layout\n watch(layoutType, (val) => {\n if (val === \"horizontal\" && skin.value === \"semi-dark\")\n skin.value = \"light\";\n });\n\n // ------------------------------------------------\n // Content Width (Full/Boxed)\n // ------------------------------------------------\n const contentWidth = computed({\n get: () => store.state.appConfig.layout.contentWidth,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_CONTENT_WIDTH\", val);\n },\n });\n\n // ------------------------------------------------\n // isNavMenuHidden\n // ------------------------------------------------\n const isNavMenuHidden = computed({\n get: () => store.state.appConfig.layout.menu.hidden,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_NAV_MENU_HIDDEN\", val);\n },\n });\n\n // *===============================================---*\n // *--------- NAVBAR ---------------------------------------*\n // *===============================================---*\n\n const navbarBackgroundColor = computed({\n get: () => store.state.appConfig.layout.navbar.backgroundColor,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_NAVBAR_CONFIG\", { backgroundColor: val });\n },\n });\n\n const navbarType = computed({\n get: () => store.state.appConfig.layout.navbar.type,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_NAVBAR_CONFIG\", { type: val });\n },\n });\n\n // *===============================================---*\n // *--------- FOOTER ---------------------------------------*\n // *===============================================---*\n\n const footerType = computed({\n get: () => store.state.appConfig.layout.footer.type,\n set: (val) => {\n store.commit(\"appConfig/UPDATE_FOOTER_CONFIG\", { type: val });\n },\n });\n\n return {\n isVerticalMenuCollapsed,\n isRTL,\n skin,\n skinClasses,\n routerTransition,\n\n // Navbar\n navbarBackgroundColor,\n navbarType,\n\n // Footer\n footerType,\n\n // Layout\n layoutType,\n contentWidth,\n isNavMenuHidden,\n };\n}\n","export default {\n // Endpoints\n loginEndpoint: \"/Token\",\n registerEndpoint: \"/jwt/register\",\n refreshEndpoint: \"/jwt/refresh-token\",\n logoutEndpoint: \"/jwt/logout\",\n\n // This will be prefixed in authorization header with token\n // e.g. Authorization: Bearer \n tokenType: \"Bearer\",\n\n // Value of this property will be used as key to store JWT token in storage\n storageTokenKeyName: \"token\",\n storageRefreshTokenKeyName: \"refreshToken\",\n};\n","import jwtDefaultConfig from \"./jwtDefaultConfig\";\nimport useJwt from \"./useJwt\";\nimport router from \"@/router\";\nimport Vue from \"vue\";\nimport store from \"@/store\";\n\nimport VueI18n from \"@/libs/i18n\";\nimport { getHomeRouteForLoggedInUser } from \"@/auth/utils\";\n\n// Notification\nimport ToastificationContent from \"@core/components/toastification/ToastificationContent.vue\";\n\n// Notification\nexport default class JwtService {\n // Will be used by this service for making API calls\n axiosIns = null;\n // jwtConfig <= Will be used by this service\n jwtConfig = { ...jwtDefaultConfig };\n\n // For Refreshing Token\n isAlreadyFetchingAccessToken = false;\n j;\n\n // For Refreshing Token\n subscribers = [];\n errorCount = 0;\n firstRequest = true;\n constructor(axiosIns, jwtOverrideConfig) {\n this.axiosIns = axiosIns;\n this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig };\n // Request Interceptor\n this.axiosIns.interceptors.request.use(\n (config) => {\n // Get token from localStorage\n // router.replace(getHomeRouteForLoggedInUser());\n var userData = JSON.parse(localStorage.getItem(\"userData\"));\n\n const accessToken = this.getToken();\n // If token is present add it to request's Authorization Header\n if (accessToken) {\n // eslint-disable-next-line no-param-reassign\n config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`;\n const locale = localStorage.getItem(\"locale\");\n config.headers.plantid = store.state.app.selectedPlantId;\n config.headers.modelid = store.state.app.selectedModelId;\n config.headers.model = store.state.app.selectedModelId;\n config.headers.culinfo = locale;\n config.headers.culture = locale;\n }\n return config;\n },\n (error) => Promise.reject(error)\n );\n\n // Add request/response interceptor\n this.axiosIns.interceptors.response.use(\n (response) => {\n // if (response.data.status === \"ERROR\")\n this.errorCount = 0;\n store.dispatch(\"app/setError\", this.errorCount);\n store.dispatch(\"app/setFirstRequest\", false);\n\n return response;\n },\n (error) => {\n // const { config, response: { status } } = error\n const { config, response } = error;\n const originalRequest = config;\n // if (status === 401) {\n if (response && (response.status === 401 || response.status === 403)) {\n if (!this.isAlreadyFetchingAccessToken) {\n localStorage.removeItem(this.jwtConfig.storageTokenKeyName);\n localStorage.removeItem(this.jwtConfig.storageRefreshTokenKeyName);\n\n // Remove userData from localStorage\n localStorage.removeItem(\"userData\");\n // Reset ability\n this.errorCount += 1;\n if (this.errorCount === 1)\n new Vue().$toast(VueI18n.t(\"sesionExpired\"));\n // Redirect to login page\n\n // this.isAlreadyFetchingAccessToken = true;\n router\n .push({ name: \"auth-login\" })\n .then(() => {\n store.dispatch(\"app/setError\", this.errorCount);\n store.dispatch(\"app/setFirstRequest\", false);\n })\n .catch(() => {});\n // this.$ability.update(initialAbility);\n // this.refreshToken().then((r) => {\n // this.isAlreadyFetchingAccessToken = false;\n\n // // Update accessToken in localStorage\n // this.setToken(r.data.token);\n // this.setRefreshToken(r.data.refreshToken);\n\n // this.onAccessTokenFetched(r.data.token);\n // });\n }\n const retryOriginalRequest = new Promise((resolve) => {\n this.addSubscriber((accessToken) => {\n // Make sure to assign accessToken according to your response.\n // Check: https://pixinvent.ticksy.com/ticket/2413870\n // Change Authorization header\n originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`;\n resolve(this.axiosIns(originalRequest));\n });\n });\n return retryOriginalRequest;\n }\n return Promise.reject(error);\n }\n );\n }\n\n onAccessTokenFetched(accessToken) {\n this.subscribers = this.subscribers.filter((callback) =>\n callback(accessToken)\n );\n }\n\n addSubscriber(callback) {\n this.subscribers.push(callback);\n }\n\n getToken() {\n return localStorage.getItem(this.jwtConfig.storageTokenKeyName);\n }\n\n getRefreshToken() {\n return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName);\n }\n\n setToken(value) {\n localStorage.setItem(this.jwtConfig.storageTokenKeyName, value);\n }\n\n setRefreshToken(value) {\n localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value);\n }\n\n login(args, headers) {\n return this.axiosIns.post(this.jwtConfig.loginEndpoint, args, headers);\n }\n\n register(...args) {\n return this.axiosIns.post(this.jwtConfig.registerEndpoint, ...args);\n }\n\n refreshToken() {\n return this.axiosIns.post(this.jwtConfig.refreshEndpoint, {\n refreshToken: this.getRefreshToken(),\n });\n }\n}\n","import JwtService from \"./jwtService\";\n\nexport default function useJwt(axiosIns, jwtOverrideConfig) {\n const jwt = new JwtService(axiosIns, jwtOverrideConfig);\n\n return {\n jwt,\n };\n}\n"],"sourceRoot":""}