{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Profile.vue?fbb9","webpack:///./src/assets/images/default-avatar.png","webpack:///./src/components/ThemeSelector.vue?deed","webpack:///./src/App.vue?c650","webpack:///./src/components/SubmissionForm.vue?5cc8","webpack:///./src/components/Topbar.vue?1b02","webpack:///./src/constants/index.ts","webpack:///./src/services/auth.ts","webpack:///./src/store/modules/auth-types.ts","webpack:///./src/services/api/magh-api.ts","webpack:///./src/kernel/index.ts","webpack:///./src/views/HomeView.vue?eb9e","webpack:///./src/components/ThemeSelector.vue?4f95","webpack:///./src/components/ThemeSelector.vue","webpack:///./src/components/ThemeSelector.vue?3015","webpack:///./src/components/ThemeSelector.vue?bff8","webpack:///./src/components/Masonry.vue?4bc3","webpack:///./src/mixins/authorGetterMixin.ts","webpack:///./src/mixins/refreshPageMixin.ts","webpack:///./src/components/Masonry.vue","webpack:///./src/components/Masonry.vue?1655","webpack:///./src/components/Masonry.vue?e2b3","webpack:///./src/views/HomeView.vue","webpack:///./src/views/HomeView.vue?cf46","webpack:///./src/views/HomeView.vue?165e","webpack:///./src/views/PublicationView.vue?de98","webpack:///./src/components/PageDetail.vue?599d","webpack:///./src/components/PageDetail.vue","webpack:///./src/components/PageDetail.vue?1ca3","webpack:///./src/components/PageDetail.vue?3b73","webpack:///./src/helpers/friendly-url-helper.ts","webpack:///./src/helpers/browser-helper.ts","webpack:///./src/views/PublicationView.vue","webpack:///./src/views/PublicationView.vue?f850","webpack:///./src/views/PublicationView.vue?9190","webpack:///./src/views/ProfileView.vue?d9e9","webpack:///./src/components/Profile.vue?55af","webpack:///./src/components/Profile.vue","webpack:///./src/components/Profile.vue?8d3e","webpack:///./src/components/Profile.vue?b881","webpack:///./src/views/ProfileView.vue","webpack:///./src/views/ProfileView.vue?fd23","webpack:///./src/views/ProfileView.vue?e15b","webpack:///./src/views/SubmitView.vue?ad01","webpack:///./src/components/SubmissionForm.vue?fcdb","webpack:///./src/components/SubmissionForm.vue","webpack:///./src/components/SubmissionForm.vue?5d80","webpack:///./src/components/SubmissionForm.vue?825a","webpack:///./src/views/SubmitView.vue","webpack:///./src/views/SubmitView.vue?0368","webpack:///./src/views/SubmitView.vue?7672","webpack:///./src/router/index.ts","webpack:///./src/store/modules/auth.ts","webpack:///./src/store/index.ts","webpack:///./src/App.vue?9fdb","webpack:///./src/components/Topbar.vue?e44b","webpack:///./src/components/Topbar.vue","webpack:///./src/components/Topbar.vue?775f","webpack:///./src/components/Topbar.vue?e17f","webpack:///./src/components/TabHistory.vue?61c4","webpack:///./src/components/TabHistory.vue","webpack:///./src/components/TabHistory.vue?c042","webpack:///./src/components/TabHistory.vue?7471","webpack:///./src/components/Footer.vue?75c7","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?b3e0","webpack:///./src/components/Footer.vue?9652","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/filters/index.ts","webpack:///./src/main.ts","webpack:///./src/components/TabHistory.vue?0c4b","webpack:///./src/components/Masonry.vue?1527","webpack:///./src/components/PageDetail.vue?a9fe","webpack:///./src/components/Footer.vue?4e75"],"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","constants","LOCAL_USER_KEY","MAHG_API_PUBLICATIONS_LIST_ENDPOINT","MAHG_API_PUBLICATION_DETAILS_ENDPOINT","MAHG_API_SUBMIT_PUBLICATION_ENDPOINT","MAHG_API_ALTER_PUBLICATION_ENDPOINT","MAHG_API_ALTER_PUBLICATION_LIKE_ENDPOINT","MAHG_API_THEMES_LIST_ENDPOINT","MAHG_API_AUTHOR_DETAILS_ENDPOINT","MAHG_API_ACCOUNT_IS_ADMIN_ENDPOINT","ROUTE_HOME","ROUTE_PUBLICATION_DETAILS","storedUser","localStorage","getItem","JSON","parse","user","setItem","stringify","removeItem","backUrl","concat","location","href","this","getLoginUrl","getLogoutUrl","getUser","Date","getTime","expires","AuthActionsIdentifiers","LOGIN","LOGOUT","CHECK_AUTH","AuthMutationsIdentifiers","SET_AUTH","PURGE_AUTH","SET_IS_ADMIN","axiosInstance","a","baseURL","interceptors","response","use","error","status","message","console","warn","dispatch","_authService","login","defaults","headers","common","accessToken","publicationListReq","post","publicationId","replace","toString","submitPublicationReq","alterPublicationReq","PublicationId","authorId","registerServices","Promise","resolve","addSingleton","_vm","_h","$createElement","_c","_self","attrs","isLoading","themes","on","onThemeSelected","_e","selectedTheme","publications","staticRenderFns","staticClass","_l","theme","id","class","selectedThemeId","$event","selectTheme","pictureUrl","_v","_s","directives","rawName","modifiers","defaultThemeId","beforeEl","afterEl","targetEl","find","x","Error","targetIndex","indexOf","beforeElStart","beforeElEnd","isBeforeElEndNeg","_beforeEl","Math","abs","afterElStart","afterElEnd","isAfterElOverflow","themesLgSummary","findIndex","themesSmSummary","themeId","$emit","$root","required","component","_m","wallOptions","scopedSlots","_u","fn","ref","item","thumbnailUrl","getAuthorPictureUrlByPublication","authorFullName","likesCount","title","themeName","publication","authorPictureUrl","profile","currentHash","newVersion","newHash","VUE_APP_CHECK_VERSION_FILE","frequency","setInterval","checkVersion","origin","checkVersionFile","fileResponse","hash","hasHashChanged","debug","reload","width","padding","2","default","components","VueMasonryWall","defaultTheme","loadPublications","_mahgApiService","getThemes","_themes","getPublications","onlyPending","$route","_publications","ThemeSelector","Masonry","onBackClick","staticStyle","attachment","statusBadgeVariant","onApproveClick","onRejectClick","onLikeBtnClick","isLikeLoading","isLiked","description","_f","publicationDate","authorCountry","history","hasHistory","$router","go","likeOrUnlikePublication","then","res","alterPublication","publicationStatus","catch","State","extractEntityId","furl","furlSplit","split","Number","parseInt","getBaseUrl","publicationFurl","getPublicationDetails","PageDetail","getAuthorPictureUrlByProfile","fullName","biography","country","authorFurl","getAuthorDetails","_profile","Profile","postStatus","onSubmit","onReset","isFileSelectorLoading","handleFilesValidated","handleFilesChanged","slot","validateFiles","files","img","index","onFileClick","src","formatNumber","size","validateState","model","$v","callback","$$v","$set","trim","expression","ariaDescribedby","showForm","input","vState","$dirty","$error","event","preventDefault","touchImages","$touch","$invalid","attachments","Array","file","mimeType","base64","submitPublication","err","finally","scrollTo","$nextTick","valid","list","from","loadImgAsDataUrl","imgSrc","reader","FileReader","readAsDataURL","onload","e","target","url","num","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","mixins","validations","minLength","maxLength","filter","SubmissionForm","buildRouter","authService","routes","path","alias","props","SubmitView","router","base","beforeEach","to","next","urlParams","URLSearchParams","search","has","expired","hasExpired","targetRoute","restrictedRoutes","loggedIn","state","Auth","includes","fullPath","afterEach","query","token","hpa","nextQuery","assign","escId","email","firstName","lastName","buildAuthModule","mahgApiService","setHeader","initialState","isAdmin","getters","actions","commit","_escId","_email","_title","_firstName","_lastName","_token","_expires","atob","saveUser","destroyUser","mutations","namespaced","buildStore","store","loginUrl","proxy","logoutUrl","returnUrl","Getter","$store","Topbar","ThemeListing","TabHistory","Footer","DateTimeFormat","hour","minute","hour12","month","day","year","config","productionTip","gtmId","log","start","render","h","$mount"],"mappings":"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","file":"js/app.cd6cf852.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","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!./Profile.vue?vue&type=style&index=0&id=cab4cc72&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/default-avatar.16fcd2ea.png\";","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!./ThemeSelector.vue?vue&type=style&index=0&id=8e328abe&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!./App.vue?vue&type=style&index=0&lang=scss&\"","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!./SubmissionForm.vue?vue&type=style&index=0&id=eebeacb0&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!./Topbar.vue?vue&type=style&index=0&id=433a9e83&lang=scss&scoped=true&\"","export interface Constants {\r\n LOCAL_USER_KEY: string;\r\n\r\n MAHG_API_PUBLICATIONS_LIST_ENDPOINT: string;\r\n MAHG_API_PUBLICATION_DETAILS_ENDPOINT: string;\r\n MAHG_API_SUBMIT_PUBLICATION_ENDPOINT: string;\r\n MAHG_API_ALTER_PUBLICATION_ENDPOINT: string;\r\n MAHG_API_ALTER_PUBLICATION_LIKE_ENDPOINT: string;\r\n MAHG_API_THEMES_LIST_ENDPOINT: string;\r\n MAHG_API_AUTHOR_DETAILS_ENDPOINT: string;\r\n MAHG_API_ACCOUNT_IS_ADMIN_ENDPOINT: string;\r\n\r\n ROUTE_HOME: string;\r\n ROUTE_PUBLICATION_DETAILS: string;\r\n}\r\n\r\nexport const constants: Constants = {\r\n // LocalStorage\r\n LOCAL_USER_KEY: \"user\",\r\n\r\n // MediaAPI\r\n MAHG_API_PUBLICATIONS_LIST_ENDPOINT: \"Publications/List\",\r\n MAHG_API_PUBLICATION_DETAILS_ENDPOINT: \"Publications/{PublicationId}\",\r\n MAHG_API_SUBMIT_PUBLICATION_ENDPOINT: \"Publications/Submit\",\r\n MAHG_API_ALTER_PUBLICATION_ENDPOINT: \"Publications/Alter\",\r\n\r\n MAHG_API_ALTER_PUBLICATION_LIKE_ENDPOINT: \"Likes/Alter\",\r\n\r\n MAHG_API_THEMES_LIST_ENDPOINT: \"Themes/List\",\r\n\r\n MAHG_API_AUTHOR_DETAILS_ENDPOINT: \"Authors/{AuthorId}\",\r\n\r\n MAHG_API_ACCOUNT_IS_ADMIN_ENDPOINT: \"Account/IsAdmin\",\r\n\r\n // Named Routes\r\n ROUTE_HOME: \"home\",\r\n ROUTE_PUBLICATION_DETAILS: \"publications/:publicationId\"\r\n};\r\n","import { constants } from \"@/constants\";\r\n\r\nexport interface User {\r\n escId: number;\r\n email: string;\r\n title: string;\r\n firstName: string;\r\n lastName: string;\r\n accessToken: string;\r\n expires: number;\r\n}\r\n\r\nexport class AuthService {\r\n public getUser(): User | null {\r\n const storedUser = window.localStorage.getItem(constants.LOCAL_USER_KEY);\r\n if (!storedUser) return null;\r\n\r\n return JSON.parse(storedUser);\r\n }\r\n\r\n public saveUser(user: User): void {\r\n window.localStorage.setItem(constants.LOCAL_USER_KEY, JSON.stringify(user));\r\n }\r\n\r\n public destroyUser(): void {\r\n window.localStorage.removeItem(constants.LOCAL_USER_KEY);\r\n }\r\n\r\n public getLoginUrl(backUrl: string): string {\r\n return process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${backUrl}`);\r\n }\r\n\r\n public getLogoutUrl(backUrl: string): string {\r\n return process.env.VUE_APP_SLO_URL.concat(`?ReturnUrl=${backUrl}`);\r\n }\r\n\r\n public login(backUrl: string = window.location.href): void {\r\n window.location.href = this.getLoginUrl(backUrl);\r\n }\r\n\r\n public logout(backUrl: string = window.location.href): void {\r\n window.location.href = this.getLogoutUrl(backUrl);\r\n }\r\n\r\n public hasExpired(): boolean {\r\n const user = this.getUser();\r\n return !user || new Date().getTime() / 1000 >= user.expires - 300;\r\n }\r\n}\r\n","export interface AuthActions {\r\n LOGIN: string;\r\n LOGOUT: string;\r\n CHECK_AUTH: string;\r\n}\r\n\r\nexport const AuthActionsIdentifiers: AuthActions = {\r\n LOGIN: \"login\",\r\n LOGOUT: \"logout\",\r\n CHECK_AUTH: \"checkAuth\"\r\n};\r\n\r\nexport interface AuthMutations {\r\n SET_AUTH: string;\r\n PURGE_AUTH: string;\r\n SET_IS_ADMIN: string;\r\n}\r\n\r\nexport const AuthMutationsIdentifiers: AuthMutations = {\r\n SET_AUTH: \"setAuth\",\r\n PURGE_AUTH: \"purgeAuth\",\r\n SET_IS_ADMIN: \"setIsAdmin\"\r\n};\r\n","// import * as rax from \"retry-axios\";\r\nimport axios, { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { inject } from \"inversify-props\";\r\nimport { constants } from \"@/constants\";\r\nimport { AuthService } from \"@/services/auth\";\r\nimport { store } from \"@/main\";\r\nimport { AuthorDetails, IsAdminResponse, LikesAlterPublicationResult, PublicationDetails, PublicationSummary, ThemeDetails } from \"./magh-api-res-types\";\r\nimport { AuthActionsIdentifiers } from \"@/store/modules/auth-types\";\r\nimport { AlterPublicationResource, PublicationsListResource, SubmitPublicationsResource } from \"./magh-api-req-types\";\r\n\r\nexport class MahgApiService {\r\n @inject(\"AuthService\")\r\n private readonly _authService!: AuthService;\r\n\r\n private axiosInstance: AxiosInstance;\r\n\r\n constructor() {\r\n this.axiosInstance = axios.create({\r\n baseURL: process.env.VUE_APP_MAHG_API_BASE_URL\r\n });\r\n\r\n this.axiosInstance.interceptors.response.use(\r\n response => response,\r\n async error => {\r\n if (error.response) {\r\n const status = error.response?.status;\r\n const message = error.response?.data?.message;\r\n\r\n if (status == 401 && message == \"Unauthorized\") {\r\n const backUrl = window.location.href;\r\n console.warn(\"Force relogin due to unauthorized api call\");\r\n\r\n await store.dispatch(\"Auth/\" + AuthActionsIdentifiers.LOGOUT);\r\n this._authService.login(backUrl);\r\n }\r\n }\r\n throw error;\r\n }\r\n );\r\n }\r\n\r\n public setHeader(): void {\r\n const user = this._authService.getUser();\r\n if (user) this.axiosInstance.defaults.headers.common[\"Authorization\"] = `Token ${user.accessToken}`;\r\n }\r\n\r\n //#region Account\r\n\r\n public isAdmin(): Promise> {\r\n return this.axiosInstance.get(constants.MAHG_API_ACCOUNT_IS_ADMIN_ENDPOINT);\r\n }\r\n\r\n ////#endregion\r\n\r\n //#region Publications\r\n\r\n public getPublications(publicationListReq: PublicationsListResource): Promise>> {\r\n return this.axiosInstance.post>(constants.MAHG_API_PUBLICATIONS_LIST_ENDPOINT, publicationListReq);\r\n }\r\n\r\n public getPublicationDetails(publicationId: number): Promise> {\r\n return this.axiosInstance.get(constants.MAHG_API_PUBLICATION_DETAILS_ENDPOINT.replace(\"{PublicationId}\", publicationId.toString()));\r\n }\r\n\r\n public submitPublication(submitPublicationReq: SubmitPublicationsResource): Promise {\r\n return this.axiosInstance.post(constants.MAHG_API_SUBMIT_PUBLICATION_ENDPOINT, submitPublicationReq);\r\n }\r\n\r\n public alterPublication(alterPublicationReq: AlterPublicationResource): Promise {\r\n return this.axiosInstance.post(constants.MAHG_API_ALTER_PUBLICATION_ENDPOINT, alterPublicationReq);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Likes\r\n\r\n public likeOrUnlikePublication(publicationId: number): Promise> {\r\n return this.axiosInstance.post(constants.MAHG_API_ALTER_PUBLICATION_LIKE_ENDPOINT, {\r\n PublicationId: publicationId\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Themes\r\n\r\n public getThemes(): Promise>> {\r\n return this.axiosInstance.get>(constants.MAHG_API_THEMES_LIST_ENDPOINT);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Authors\r\n\r\n public getAuthorDetails(authorId: number): Promise> {\r\n return this.axiosInstance.get(constants.MAHG_API_AUTHOR_DETAILS_ENDPOINT.replace(\"{AuthorId}\", authorId.toString()));\r\n }\r\n\r\n //#endregion\r\n}\r\n","import \"reflect-metadata\";\r\nimport { container } from \"inversify-props\";\r\nimport { AuthService } from \"@/services/auth\";\r\nimport { MahgApiService } from \"@/services/api/magh-api\";\r\n\r\nexport default async function registerServices(): Promise {\r\n return new Promise(resolve => {\r\n container.addSingleton(AuthService, \"AuthService\");\r\n container.addSingleton(MahgApiService, \"MahgApiService\");\r\n resolve();\r\n });\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"rounded\":\"sm\"}},[(_vm.themes && _vm.themes.length > 0)?_c('ThemeSelector',{attrs:{\"themes\":_vm.themes,\"defaultThemeId\":0},on:{\"theme-selected\":_vm.onThemeSelected}}):_vm._e(),_c('Masonry',{attrs:{\"theme\":_vm.selectedTheme,\"publications\":_vm.publications}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{staticClass:\"navigationBar\"},[_c('div',{staticClass:\"navigationBar-container d-none d-lg-block\"},[_c('ul',_vm._l((_vm.themesLgSummary),function(theme){return _c('li',{key:theme.id},[_c('a',{staticClass:\"theme-category\",class:theme.id == _vm.selectedThemeId && 'selected',attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.selectTheme(theme.id)}}},[_c('div',{staticClass:\"tab-root\"},[_c('div',{staticClass:\"tab-container\"},[_c('div',{staticClass:\"tab-bg\"},[_c('img',{staticClass:\"tab-bg-img\",attrs:{\"src\":theme.pictureUrl}})]),_c('div',{staticClass:\"bg-overlay\"}),_c('h3',[_vm._v(_vm._s(theme.name))])])])])])}),0),_c('div',{staticClass:\"showAll-themes\"},[_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-theme-lg\",modifiers:{\"modal-theme-lg\":true}}]},[_c('i',{staticClass:\"las la-filter\"}),_vm._v(\" More \")]),_c('b-modal',{attrs:{\"id\":\"modal-theme-lg\",\"hide-footer\":\"\",\"title\":\"Select a theme\"}},[_c('div',{staticClass:\"navigationModal-container\"},[_c('ul',_vm._l((_vm.themes),function(theme){return _c('li',{key:theme.id},[_c('a',{staticClass:\"theme-category\",class:theme.id == _vm.selectedThemeId && 'selected',attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.selectTheme(theme.id)}}},[_c('div',{staticClass:\"tab-root\"},[_c('div',{staticClass:\"tab-container\"},[_c('div',{staticClass:\"tab-bg\"},[_c('img',{staticClass:\"tab-bg-img\",attrs:{\"src\":theme.pictureUrl}})]),_c('div',{staticClass:\"bg-overlay\"}),_c('h3',[_vm._v(_vm._s(theme.name))])])])])])}),0)])])],1)]),_c('div',{staticClass:\"themeListingSm d-block d-lg-none px-4\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"theme-content\"},_vm._l((_vm.themesSmSummary),function(theme){return _c('button',{key:theme.id,class:_vm.selectedThemeId == theme.id && 'active',on:{\"click\":function($event){return _vm.selectTheme(theme.id)}}},[_c('span',[_vm._v(_vm._s(theme.name))])])}),0),_c('div',{staticClass:\"allThemes\"},[_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-theme-sm\",modifiers:{\"modal-theme-sm\":true}}]},[_c('i',{staticClass:\"las la-filter\"}),_vm._v(\" More \")])],1),_c('b-modal',{attrs:{\"id\":\"modal-theme-sm\",\"hide-footer\":\"\",\"title\":\"Select a theme\"}},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"theme_content\"},_vm._l((_vm.themes),function(theme){return _c('button',{key:theme.id,class:_vm.selectedThemeId == theme.id && 'active',on:{\"click\":function($event){return _vm.selectTheme(theme.id)}}},[_c('span',[_vm._v(_vm._s(theme.name))])])}),0)])])])])],1)])])]),_c('div',{staticClass:\"mt-4 mb-5\"},[_c('h1',{staticClass:\"mb-24\"},[_vm._v(_vm._s(_vm.selectedTheme.name))]),_c('p',[_vm._v(\"Discover what your peers do outside work\")]),_c('b-link',{staticClass:\"btn btn-dark\",attrs:{\"to\":\"/submit\"}},[_vm._v(\"Share your talent\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { ThemeDetails } from \"@/services/api/magh-api-res-types\";\nimport { inject } from \"inversify-props\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class ThemeSelector extends Vue {\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n @Prop({ required: true })\n readonly themes!: Array;\n\n @Prop({ required: true })\n readonly defaultThemeId!: number;\n\n private selectedThemeId = this.defaultThemeId;\n\n get themesLgSummary(): Array {\n let beforeEl: Array = [];\n let afterEl: Array = [];\n\n const targetEl = this.themes.find(x => x.id == this.selectedThemeId);\n if (targetEl == null) throw new Error(\"Unable to find selected theme\");\n\n const targetIndex = this.themes.indexOf(targetEl);\n\n const beforeElStart = targetIndex;\n const beforeElEnd = beforeElStart - 4;\n const isBeforeElEndNeg = beforeElEnd < 0;\n\n if (!isBeforeElEndNeg) {\n beforeEl = this.themes.slice(beforeElEnd, beforeElStart);\n } else {\n const _beforeEl = this.themes.slice(0, beforeElStart);\n beforeEl = this.themes.slice(-Math.abs(4 - _beforeEl.length));\n beforeEl = beforeEl.concat(_beforeEl);\n }\n\n const afterElStart = targetIndex + 1;\n const afterElEnd = afterElStart + 4;\n const isAfterElOverflow = afterElEnd > this.themes.length - 1;\n if (!isAfterElOverflow) {\n afterEl = this.themes.slice(afterElStart, afterElEnd);\n } else {\n afterEl = this.themes.slice(afterElStart, this.themes.length);\n afterEl = afterEl.concat(this.themes.slice(0, 4 - afterEl.length));\n }\n\n const themesLgSummary = beforeEl.concat(targetEl).concat(afterEl);\n return themesLgSummary;\n }\n\n get themesSmSummary(): Array {\n const targetIndex = this.themes.findIndex(x => x.id == this.selectedThemeId);\n\n const beforeEl = this.themes.slice(0, targetIndex);\n const afterEl = this.themes.slice(targetIndex, this.themes.length);\n\n const themesSmSummary = afterEl.concat(beforeEl);\n return themesSmSummary;\n }\n\n get selectedTheme() {\n return this.themes.find(x => x.id == this.selectedThemeId);\n }\n\n mounted(): void {\n // If needed...\n }\n\n selectTheme(themeId: number): void {\n if (this.selectedThemeId !== themeId) {\n this.selectedThemeId = themeId;\n this.$emit(\"theme-selected\", this.selectedTheme);\n\n this.$root.$emit('bv::hide::modal', 'modal-theme-lg');\n this.$root.$emit('bv::hide::modal', 'modal-theme-sm');\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThemeSelector.vue?vue&type=template&id=8e328abe&scoped=true&\"\nimport script from \"./ThemeSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThemeSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThemeSelector.vue?vue&type=style&index=0&id=8e328abe&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 \"8e328abe\",\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('section',[_c('div',{staticClass:\"col-12\"},[(_vm.theme && (!_vm.publications || _vm.publications.length == 0))?_c('div',{staticClass:\"container text-left\"},[_c('div',{staticClass:\"error-msg d-md-flex d-block mb-5\"},[_vm._m(0),_c('div',{staticClass:\"col-md-7 col-12\"},[_c('h3',[_vm._v(\"Oh no ! There are no publications for \"+_vm._s(_vm.theme.name)+\" yet\")]),_c('p',[_vm._v(\"Be the first to post something for \"+_vm._s(_vm.theme.name)+\" !\")]),_c('p',[_c('b-link',{staticClass:\"btn btn-dark\",attrs:{\"to\":\"/submit\"}},[_vm._v(\"Post now\")])],1)])])]):_vm._e(),(_vm.publications.length > 0)?_c('vue-masonry-wall',{attrs:{\"items\":_vm.publications,\"options\":_vm.wallOptions},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"Item\"},[_c('b-link',{attrs:{\"to\":(\"/publications/\" + (item.furl))}},[_c('img',{attrs:{\"src\":item.thumbnailUrl}}),_c('div',{staticClass:\"Content\"},[_c('div',{staticClass:\"userAndStats\"},[_c('span',[_c('img',{attrs:{\"src\":_vm.getAuthorPictureUrlByPublication(item)}}),_vm._v(\" \"+_vm._s(item.authorFullName)+\" \")]),_c('div',{staticClass:\"stats\"},[_c('i',{staticClass:\"las la-heart\"}),_vm._v(\" \"+_vm._s(item.likesCount)+\" \")])]),_c('h5',{staticClass:\"text-ellipsis-1l publicationTitle\"},[_vm._v(_vm._s(item.title))]),_c('p',{staticClass:\"publicationTag\"},[_c('small',[_vm._v(_vm._s(item.themeName))])])])])],1)]}}],null,false,2279890550)}):_vm._e()],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-md-4 col-12\"},[_c('img',{attrs:{\"src\":\"https://media0.giphy.com/media/YpmVBNubONoqs/giphy.gif\"}})])}]\n\nexport { render, staticRenderFns }","import { Component, Vue } from \"vue-property-decorator\";\r\nimport DefaultAvatar from \"@/assets/images/default-avatar.png\";\r\nimport { AuthorDetails, PublicationDetails } from \"@/services/api/magh-api-res-types\";\r\n\r\n@Component\r\nclass AuthorGetterMixin extends Vue {\r\n getAuthorPictureUrlByPublication(publication: PublicationDetails): string {\r\n return publication?.authorPictureUrl ? publication.authorPictureUrl : DefaultAvatar;\r\n }\r\n \r\n getAuthorPictureUrlByProfile(profile: AuthorDetails): string {\r\n return profile?.pictureUrl ? profile.pictureUrl : DefaultAvatar;\r\n }\r\n}\r\n\r\nexport { AuthorGetterMixin };\r\n","import axios from \"axios\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nclass RefreshPageMixin extends Vue {\r\n private currentHash = \"{{POST_BUILD_ENTERS_HASH_HERE}}\";\r\n private newVersion = false;\r\n private newHash = \"\";\r\n\r\n get checkVersionFile(): string {\r\n return process.env.VUE_APP_CHECK_VERSION_FILE;\r\n }\r\n\r\n public initVersionCheck(frequency: number): void {\r\n setInterval(() => {\r\n this.checkVersion();\r\n }, frequency);\r\n }\r\n\r\n public async checkVersion(): Promise {\r\n try {\r\n const fileResponse = await axios\r\n .create({\r\n baseURL: `${window.location.origin}`,\r\n headers: {\r\n \"Content-type\": \"application/json\"\r\n }\r\n })\r\n .get(\"/\" + this.checkVersionFile + \"?t=\" + new Date().getTime());\r\n\r\n this.newHash = fileResponse.data.hash;\r\n\r\n this.newVersion = this.hasHashChanged(this.currentHash, this.newHash);\r\n if (this.newVersion) console.debug(`NewVersion: ${JSON.stringify({ currentHash: this.currentHash, newHash: this.newHash })}`);\r\n } catch (error) {\r\n if (!error.response) {\r\n console.error(\"Error: Network Error\");\r\n } else {\r\n console.error(error.response.data.message);\r\n }\r\n }\r\n }\r\n\r\n public hasHashChanged(currentHash: string, newHash: string): boolean {\r\n if (!currentHash || currentHash === \"{{POST_BUILD_ENTERS_HASH_HERE}}\") {\r\n return true;\r\n }\r\n\r\n return currentHash !== newHash;\r\n }\r\n\r\n public reloadApp(): void {\r\n this.currentHash = this.newHash;\r\n window.location.reload();\r\n }\r\n}\r\n\r\nexport { RefreshPageMixin };\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, Prop, Vue } from \"vue-property-decorator\";\nimport VueMasonryWall from \"vue-masonry-wall\";\nimport { PublicationSummary, ThemeDetails } from \"@/services/api/magh-api-res-types\";\nimport { AuthorGetterMixin } from \"@/mixins\";\n\n@Component({\n components: {\n VueMasonryWall\n }\n})\nexport default class Mansory extends Mixins(AuthorGetterMixin) {\n @Prop({ required: true })\n readonly publications!: Array;\n\n @Prop({ required: false })\n readonly theme!: ThemeDetails | null;\n\n private wallOptions: Record = {\n width: 300,\n padding: {\n 2: 8,\n default: 12\n }\n };\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Masonry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Masonry.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Masonry.vue?vue&type=template&id=05d394ed&scoped=true&\"\nimport script from \"./Masonry.vue?vue&type=script&lang=ts&\"\nexport * from \"./Masonry.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Masonry.vue?vue&type=style&index=0&id=05d394ed&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 \"05d394ed\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport ThemeSelector from \"@/components/ThemeSelector.vue\";\nimport Masonry from \"@/components/Masonry.vue\";\nimport { inject } from \"inversify-props\";\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { PublicationSummary, ThemeDetails } from \"@/services/api/magh-api-res-types\";\n\n@Component({\n components: {\n ThemeSelector,\n Masonry\n }\n})\nexport default class HomeView extends Vue {\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n private isLoading = true;\n\n private themes: Array = [];\n private defaultTheme: ThemeDetails | null = null;\n private selectedTheme: ThemeDetails | null = null;\n\n private publications: Array = [];\n\n @Watch(\"$route\")\n onRouteChanged() {\n this.loadPublications();\n }\n\n async mounted(): Promise {\n const { data: _themes } = await this._mahgApiService.getThemes();\n this.themes = _themes;\n\n this.defaultTheme = this.themes.find(x => x.name == \"All\") ?? null;\n if (this.defaultTheme == null) throw new Error(\"Cannot find default theme\");\n\n this.loadPublications();\n }\n\n async loadPublications(): Promise {\n this.isLoading = true;\n\n const { data: _publications } = await this._mahgApiService.getPublications({ themeId: this.defaultTheme?.id, onlyPending: this.$route.name == \"Admin\" });\n this.publications = _publications;\n\n this.isLoading = false;\n }\n\n async onThemeSelected(theme: ThemeDetails): Promise {\n this.isLoading = true;\n this.publications = [];\n\n this.selectedTheme = theme;\n\n const { data: _publications } = await this._mahgApiService.getPublications({ themeId: theme.id });\n this.publications = _publications;\n\n this.isLoading = false;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeView.vue?vue&type=template&id=19aa067e&\"\nimport script from \"./HomeView.vue?vue&type=script&lang=ts&\"\nexport * from \"./HomeView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"rounded\":\"sm\"}},[(_vm.publication)?_c('PageDetail',{attrs:{\"publication\":_vm.publication}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-4 mb-5\"},[_c('b-link',{staticClass:\"back\",on:{\"click\":_vm.onBackClick}},[_c('i',{staticClass:\"las la-arrow-left\"}),_vm._v(\" Back \")]),_c('b-container',[_c('b-row',[_c('b-col',{staticClass:\"order-1 left-side\",attrs:{\"cols\":\"12\",\"lg\":\"7\"}},[_c('div',{staticClass:\"authorAndTitle d-block d-sm-none text-left\"},[_c('h3',[_vm._v(_vm._s(_vm.publication.authorFullName))]),_c('p',[_vm._v(_vm._s(_vm.publication.title))])]),_c('div',{staticClass:\"carouselContainer\"},[_c('b-carousel',{staticStyle:{\"text-shadow\":\"1px 1px 2px #333\"},attrs:{\"id\":\"carousel-attachments\",\"interval\":4000,\"controls\":\"\",\"indicators\":\"\",\"background\":\"#ababab\",\"img-width\":\"1024\",\"img-height\":\"480\"}},_vm._l((_vm.publication.attachments),function(attachment){return _c('b-carousel-slide',{key:attachment.id,attrs:{\"img-src\":attachment.pictureUrl}})}),1)],1)]),_c('b-col',{staticClass:\"order-1 order-sm-2 text-left zoneAuthor\",attrs:{\"cols\":\"12\",\"lg\":\"5\"}},[(_vm.isAdmin)?_c('div',{staticClass:\"admin mb-4\"},[_c('h4',[_vm._v(\"Administration\")]),_c('div',{staticClass:\"d-block mb-2\"},[_vm._v(\" Status: \"),_c('b-badge',{attrs:{\"variant\":_vm.statusBadgeVariant}},[_vm._v(_vm._s(_vm.publication.status))])],1),_c('b-button',{attrs:{\"variant\":\"success\",\"disabled\":_vm.publication.status == 'Approved'},on:{\"click\":_vm.onApproveClick}},[_vm._v(\"Approve\")]),_vm._v(_vm._s(\" \")+\" \"),_c('b-button',{attrs:{\"variant\":\"outline-danger\",\"disabled\":_vm.publication.status == 'Rejected'},on:{\"click\":_vm.onRejectClick}},[_vm._v(\"Reject\")])],1):_vm._e(),_c('div',{staticClass:\"authorAndTitle d-none d-sm-block\"},[_c('h3',[_vm._v(_vm._s(_vm.publication.authorFullName))]),_c('p',[_vm._v(_vm._s(_vm.publication.title))])]),_c('div',{staticClass:\"interaction my-3\"},[_c('b-button',{attrs:{\"variant\":\"outline-dark\"},on:{\"click\":_vm.onLikeBtnClick}},[(_vm.isLikeLoading)?_c('i',{staticClass:\"las la-circle-notch la-spin\"}):_vm._e(),(!_vm.isLikeLoading && !_vm.isLiked)?_c('i',{staticClass:\"lar la-heart\"}):_vm._e(),(!_vm.isLikeLoading && _vm.isLiked)?_c('i',{staticClass:\"las la-heart\"}):_vm._e(),_vm._v(\" Like \")]),_c('small',[_c('span',[_vm._v(_vm._s(_vm.likesCount))]),_vm._v(\" likes\")])],1),_c('div',{staticClass:\"aboutPublication mt-5\"},[_c('h4',[_vm._v(\"About the publication\")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.publication.description)+\" \")]),_c('ul',{staticClass:\"infoTab\"},[_c('li',{staticClass:\"clearfix\"},[_c('p',{staticClass:\"float-left\"},[_vm._v(\"Author\")]),_c('p',{staticClass:\"float-right\"},[_vm._v(_vm._s(_vm.publication.authorFullName))])]),_c('li',{staticClass:\"clearfix\"},[_c('p',{staticClass:\"float-left\"},[_vm._v(\"Theme\")]),_c('p',{staticClass:\"float-right\"},[_vm._v(_vm._s(_vm.publication.themeName))])]),_c('li',{staticClass:\"clearfix\"},[_c('p',{staticClass:\"float-left\"},[_vm._v(\"Published\")]),_c('p',{staticClass:\"float-right\"},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.publication.publicationDate)))])])])]),_c('div',{staticClass:\"aboutAuthor mt-5\"},[_c('h4',[_vm._v(\"About the author\")]),_c('b-row',[_c('b-col',{staticClass:\"userPicture\",attrs:{\"cols\":\"2\"}},[_c('img',{attrs:{\"src\":_vm.getAuthorPictureUrlByPublication(_vm.publication)}})]),_c('b-col',{staticClass:\"userIntro text-left\",attrs:{\"cols\":\"10\"}},[_c('h5',[_vm._v(_vm._s(_vm.publication.authorFullName))]),_c('div',{staticClass:\"userLinks mb-4\"},[_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"mr-3\"},[_c('i',{staticClass:\"las la-map-marker\"}),_vm._v(\" \"+_vm._s(_vm.publication.authorCountry)+\" \")])]),_c('div',{staticClass:\"contact my-3\"},[_c('b-button',{attrs:{\"to\":(\"/authors/\" + (_vm.publication.authorFurl)),\"variant\":\"outline-dark\"}},[_vm._v(\"View the profile\")])],1)])])],1)],1)])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AuthorGetterMixin } from \"@/mixins\";\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { PublicationDetails } from \"@/services/api/magh-api-res-types\";\nimport { inject } from \"inversify-props\";\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\nimport { namespace } from \"vuex-class\";\n\nconst Auth = namespace(\"Auth\");\n\n@Component\nexport default class PageDetail extends Mixins(AuthorGetterMixin) {\n @Auth.State\n public isAdmin!: boolean;\n\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n @Prop({ required: true })\n private readonly publication!: PublicationDetails;\n\n private likesCount = 0;\n private isLiked = false;\n\n private isLikeLoading = false;\n\n get hasHistory(): boolean {\n return window.history.length > 1;\n }\n\n get statusBadgeVariant(): string {\n if (this.publication.status == \"Approved\") return \"success\";\n else if (this.publication.status == \"Pending\") return \"warning\";\n else if (this.publication.status == \"Rejected\") return \"danger\";\n else return \"secondary\";\n }\n\n mounted(): void {\n this.likesCount = this.publication.likesCount;\n this.isLiked = this.publication.isLiked;\n }\n\n onBackClick(): void {\n if (this.hasHistory) this.$router.go(-1);\n else this.$router.push(\"/\");\n }\n\n onLikeBtnClick(): void {\n this.isLikeLoading = true;\n\n this._mahgApiService.likeOrUnlikePublication(this.publication.id).then(res => {\n this.isLiked = res.data?.isLiked;\n\n if (this.isLiked) this.likesCount += 1;\n else this.likesCount -= 1;\n\n this.isLikeLoading = false;\n });\n }\n\n onApproveClick(): void {\n this._mahgApiService\n .alterPublication({ publicationId: this.publication.id, publicationStatus: \"Approved\" })\n .then(({ data }) => {\n this.publication.status = data.status ?? \"Unknown\";\n })\n .catch(() => {\n this.publication.status = \"Unknown\";\n });\n }\n\n onRejectClick(): void {\n this._mahgApiService\n .alterPublication({ publicationId: this.publication.id, publicationStatus: \"Rejected\" })\n .then(({ data }) => {\n this.publication.status = data.status ?? \"Unknown\";\n })\n .catch(() => {\n this.publication.status = \"Unknown\";\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageDetail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageDetail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageDetail.vue?vue&type=template&id=26355cfa&scoped=true&\"\nimport script from \"./PageDetail.vue?vue&type=script&lang=ts&\"\nexport * from \"./PageDetail.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PageDetail.vue?vue&type=style&index=0&id=26355cfa&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 \"26355cfa\",\n null\n \n)\n\nexport default component.exports","export function extractEntityId(furl: string) {\r\n const furlSplit = furl.split(\"-\");\r\n return Number.parseInt(furlSplit[0]);\r\n}\r\n","export function getBaseUrl() {\r\n return window.location.origin;\r\n }\r\n ","\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport PageDetail from \"@/components/PageDetail.vue\";\nimport { inject } from \"inversify-props\";\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { PublicationDetails } from \"@/services/api/magh-api-res-types\";\nimport { extractEntityId } from \"@/helpers\";\n\n@Component({\n components: {\n PageDetail\n }\n})\nexport default class PublicationView extends Vue {\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n @Prop({ required: true })\n private readonly publicationFurl!: string;\n\n private isLoading = true;\n\n private publication: PublicationDetails | null = null;\n\n mounted(): void {\n const publicationId = extractEntityId(this.publicationFurl);\n if (!publicationId || publicationId <= 0) throw new Error(\"Unable to extract publication id\");\n\n this._mahgApiService.getPublicationDetails(publicationId).then(res => {\n this.publication = res.data;\n this.isLoading = false;\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicationView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicationView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PublicationView.vue?vue&type=template&id=77dcb8d5&\"\nimport script from \"./PublicationView.vue?vue&type=script&lang=ts&\"\nexport * from \"./PublicationView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"rounded\":\"sm\"}},[(_vm.profile)?_c('Profile',{attrs:{\"profile\":_vm.profile}}):_vm._e(),_c('Masonry',{attrs:{\"publications\":_vm.publications}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-4 mb-5\"},[_c('b-container',[_c('b-row',[_c('b-col',{staticClass:\"userPicture\",attrs:{\"cols\":\"2\"}},[_c('img',{attrs:{\"src\":_vm.getAuthorPictureUrlByProfile(_vm.profile)}})]),_c('b-col',{staticClass:\"userIntro text-left pt-2\",attrs:{\"cols\":\"10\"}},[_c('h3',[_vm._v(_vm._s(_vm.profile.fullName))]),_c('p',[_vm._v(\" \"+_vm._s(_vm.profile.biography)+\" \")]),_c('div',{staticClass:\"userLinks mb-4\"},[_c('span',{staticClass:\"mr-3\"},[_c('i',{staticClass:\"las la-map-marker\"}),_vm._v(\" \"+_vm._s(_vm.profile.country))])])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AuthorGetterMixin } from \"@/mixins\";\nimport { AuthorDetails } from \"@/services/api/magh-api-res-types\";\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class Profile extends Mixins(AuthorGetterMixin) {\n @Prop({ required: true })\n private readonly profile!: AuthorDetails;\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=cab4cc72&scoped=true&\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts&\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Profile.vue?vue&type=style&index=0&id=cab4cc72&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 \"cab4cc72\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Mixins } from \"vue-property-decorator\";\nimport Profile from \"@/components/Profile.vue\";\nimport Masonry from \"@/components/Masonry.vue\";\nimport { inject } from \"inversify-props\";\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { AuthorDetails, PublicationSummary } from \"@/services/api/magh-api-res-types\";\nimport { extractEntityId } from \"@/helpers\";\nimport { AuthorGetterMixin } from \"@/mixins\"\n\n@Component({\n components: {\n Profile,\n Masonry\n }\n})\nexport default class ProfileView extends Vue {\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n @Prop({ required: true })\n private readonly authorFurl!: string;\n\n private isLoading = true;\n\n private profile: AuthorDetails | null = null;\n private publications: Array = [];\n\n async mounted(): Promise {\n const authorId = extractEntityId(this.authorFurl);\n if (!authorId || authorId <= 0) throw new Error(\"Unable to extract author id\");\n\n const { data: _profile } = await this._mahgApiService.getAuthorDetails(authorId);\n this.profile = _profile;\n\n const { data: _publications } = await this._mahgApiService.getPublications({ authorId: authorId });\n this.publications = _publications;\n\n this.isLoading = false;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProfileView.vue?vue&type=template&id=c58b4d0e&\"\nimport script from \"./ProfileView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProfileView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"rounded\":\"sm\"}},[_c('SubmissionForm',{attrs:{\"themes\":_vm.themes}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container mt-4 mb-5\"},[_c('h2',{staticClass:\"mb-5\"},[_vm._v(\"Publish your shot\")]),(_vm.postStatus == 'Published')?_c('b-alert',{attrs:{\"variant\":\"success\",\"show\":\"\"}},[_c('b',[_vm._v(\"Your post has been published successfully!\")]),_c('br'),_c('i',[_vm._v(\"It may take few minutes before being available.\")])]):_vm._e(),(_vm.postStatus == 'Errored')?_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":\"\"}},[_c('b',[_vm._v(\"An error occurred while publishing your post.\")]),_c('br'),_c('i',[_vm._v(\"If the problem persists, please contact us.\")])]):_vm._e(),_c('b-overlay',{attrs:{\"show\":_vm.isLoading}},[((_vm.postStatus == 'Draft') | (_vm.postStatus == 'Errored'))?_c('b-form',{on:{\"submit\":_vm.onSubmit,\"reset\":_vm.onReset}},[_c('div',{staticClass:\"row mb-5\"},[_c('div',{staticClass:\"col-md-6\"},[_c('div',[_c('label',{staticClass:\"text-left d-block\"},[_vm._v(\"Upload your image(s)\")]),_c('file-selector',{attrs:{\"accept-extensions\":\".gif,.jpg,.jpeg,.png\",\"multiple\":true,\"is-loading\":_vm.isFileSelectorLoading,\"max-file-size\":10 * 1024 * 1024},on:{\"validated\":_vm.handleFilesValidated,\"changed\":_vm.handleFilesChanged}},[_vm._v(\" Select image files \"),_c('div',{staticClass:\"section-top\",attrs:{\"slot\":\"top\"},slot:\"top\"},[_c('h4',[_c('i',{staticClass:\"las la-cloud-upload-alt d-block\",staticStyle:{\"font-size\":\"4rem\"}}),_vm._v(\" Drag and drop an image\")]),_vm._v(\" Max file size allowed: \"),_c('b',[_vm._v(\"10 MB\")]),_vm._v(\".\"),_c('br'),_vm._v(\" File extensions: \"),_c('b',[_vm._v(\"JPG, JPEG, PNG, GIF\")]),_vm._v(\". \")]),_c('div',{staticClass:\"section-loader\",attrs:{\"slot\":\"loader\"},slot:\"loader\"},[_vm._v(\" Processing files\"),_c('br'),_vm._v(\" please wait... \")])])],1),_c('b-form-invalid-feedback',{attrs:{\"id\":\"files-live-feedback\",\"state\":_vm.validateFiles()}},[_vm._v(\" You must add at least 1 image and at most 5 images. \")]),(_vm.files && _vm.files.length)?_c('div',{staticClass:\"selectedFiles\"},_vm._l((_vm.files),function(img,index){return _c('div',{key:index,staticClass:\"gallery-item\",on:{\"click\":function($event){return _vm.onFileClick(index)}}},[_c('div',{staticClass:\"img\"},[_c('img',{attrs:{\"src\":img.src}})]),_c('div',{staticClass:\"img-info\"},[_c('div',{staticClass:\"img-name\",attrs:{\"title\":img.name}},[_vm._v(_vm._s(img.name))]),_c('div',{staticClass:\"img-size\"},[_vm._v(_vm._s(_vm.formatNumber(img.size))+\" bytes\")])])])}),0):_vm._e()],1),_c('div',{staticClass:\"col-md-6 text-left\"},[_c('b-form-group',{attrs:{\"id\":\"input-group-title\",\"label\":\"Title\",\"label-for\":\"input-title\"}},[_c('b-form-input',{attrs:{\"id\":\"input-title\",\"state\":_vm.validateState('title'),\"type\":\"text\",\"placeholder\":\"Enter the title of your post\",\"required\":\"\"},model:{value:(_vm.$v.title.$model),callback:function ($$v) {_vm.$set(_vm.$v.title, \"$model\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"$v.title.$model\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":\"input-title-live-feedback\"}},[_vm._v(\" This is a required field and must be 4 characters minimum and 65 characters maximum. \")])],1),_c('b-form-group',{attrs:{\"id\":\"input-group-desc\",\"label\":\"Description\",\"label-for\":\"input-desc\"}},[_c('b-form-textarea',{attrs:{\"id\":\"input-desc\",\"trim\":\"\",\"state\":_vm.validateState('description'),\"placeholder\":\"Briefly describe your post\",\"rows\":\"4\",\"max-rows\":\"4\",\"no-resize\":\"\"},model:{value:(_vm.$v.description.$model),callback:function ($$v) {_vm.$set(_vm.$v.description, \"$model\", $$v)},expression:\"$v.description.$model\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":\"input-desc-live-feedback\"}},[_vm._v(\" This is an optional field, if filled, it must be 12 characters minimum and 255 characters maximum. \")])],1),_c('b-form-group',{attrs:{\"label\":\"Choose a theme\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar ariaDescribedby = ref.ariaDescribedby;\nreturn [_c('b-form-radio-group',{attrs:{\"id\":\"radio-group-theme\",\"aria-describedby\":ariaDescribedby,\"required\":\"\"},model:{value:(_vm.$v.themeId.$model),callback:function ($$v) {_vm.$set(_vm.$v.themeId, \"$model\", $$v)},expression:\"$v.themeId.$model\"}},_vm._l((_vm.themes),function(theme){return _c('b-form-radio',{key:theme.id,attrs:{\"value\":theme.id},model:{value:(_vm.$v.themeId.$model),callback:function ($$v) {_vm.$set(_vm.$v.themeId, \"$model\", $$v)},expression:\"$v.themeId.$model\"}},[_vm._v(_vm._s(theme.name))])}),1)]}}],null,false,3516488054)})],1)]),_c('b-button',{staticClass:\"mr-3\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"}},[_vm._v(\"Submit\")]),_c('b-button',{attrs:{\"type\":\"reset\",\"variant\":\"outline-secondary\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { SubmitPublicationsResourceAttachment } from \"@/services/api/magh-api-req-types\";\nimport { ThemeDetails } from \"@/services/api/magh-api-res-types\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { inject } from \"inversify-props\";\nimport { validationMixin } from \"vuelidate\";\nimport { required, minLength, maxLength } from \"vuelidate/lib/validators\";\n\n@Component({\n mixins: [validationMixin],\n validations: {\n title: {\n required,\n minLength: minLength(4),\n maxLength: maxLength(65)\n },\n description: {\n minLength: minLength(12),\n maxLength: maxLength(255)\n },\n themeId: {\n required\n }\n }\n})\nexport default class SubmissionForm extends Vue {\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n @Prop({ required: true })\n readonly themes!: Array;\n\n private showForm = true;\n private isFileSelectorLoading = false;\n\n private isLoading = false;\n private postStatus = \"Draft\";\n\n private title = \"\";\n private description = \"\";\n private themeId: number | null = null;\n private files: Array | null = null;\n\n mounted(): void {\n // If needed...\n }\n\n validateState(input: string): any {\n const vState = this.$v[input];\n return vState?.$dirty ? !vState.$error : null;\n }\n\n validateFiles(): any {\n if (!this.files) return null;\n if (this.files.length == 0) return false;\n return true;\n }\n\n onSubmit(event: any): void {\n event.preventDefault();\n\n this.touchImages();\n if ((this.files as Array)?.length == 0) return;\n\n this.$v.$touch();\n if (this.$v.$invalid) return;\n\n const attachments = new Array();\n for (const file of this.files as Array) {\n const src: string = file.src;\n\n const mimeType = src.split(\"data:\")[1].split(\";\")[0];\n const base64 = src.split(\"base64,\")[1];\n\n if (!mimeType || !base64) continue;\n\n attachments.push({\n mimeType,\n base64\n });\n }\n\n this.isLoading = true;\n\n this._mahgApiService\n .submitPublication({\n title: this.title,\n description: this.description.trim() !== \"\" ? this.description : null,\n themeId: this.themeId as number,\n attachments: attachments\n })\n .then(res => {\n if (res?.status == 200) this.postStatus = \"Published\";\n else this.postStatus = \"Errored\";\n })\n .catch(err => {\n this.postStatus = \"Errored\";\n console.error(\"An error has occurred\", err);\n })\n .finally(() => {\n window.scrollTo(0, 0);\n this.isLoading = false;\n });\n }\n\n onReset(event: any): void {\n event.preventDefault();\n\n this.title = \"\";\n this.description = \"\";\n this.themeId = null;\n this.files = [];\n\n // Trick to reset/clear native browser form validation state\n this.showForm = false;\n\n this.$nextTick(() => {\n this.showForm = true;\n });\n }\n\n touchImages(): void {\n if (!this.files) this.files = [];\n }\n\n onFileClick(index: number): void {\n (this.files as Array).splice(index, 1);\n }\n\n handleFilesValidated(valid: boolean, files: Array): void {\n // If needed...\n }\n\n async handleFilesChanged(files: Array): Promise {\n this.isFileSelectorLoading = true;\n this.touchImages();\n\n const list = Array.from(files);\n for (const file of list) {\n const imgSrc = await this.loadImgAsDataUrl(file);\n (this.files as Array).push({\n name: file.name,\n size: file.size,\n src: imgSrc\n });\n }\n\n this.isFileSelectorLoading = false;\n }\n\n async loadImgAsDataUrl(file: Blob): Promise {\n const url = await new Promise(resolve => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = e => resolve(e?.target?.result ?? \"\");\n });\n return url;\n }\n\n formatNumber(num: number): string {\n return new Intl.NumberFormat(\"en\", {\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }).format(num);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionForm.vue?vue&type=template&id=eebeacb0&scoped=true&\"\nimport script from \"./SubmissionForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubmissionForm.vue?vue&type=style&index=0&id=eebeacb0&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 \"eebeacb0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport SubmissionForm from \"@/components/SubmissionForm.vue\";\nimport { inject } from \"inversify-props\";\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { ThemeDetails } from \"@/services/api/magh-api-res-types\";\n\n@Component({\n components: {\n SubmissionForm\n }\n})\nexport default class PublicationView extends Vue {\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n private isLoading = true;\n\n private themes: Array = [];\n\n async mounted(): Promise {\n const { data: _themes } = await this._mahgApiService.getThemes();\n this.themes = _themes.filter(x => x.name !== 'All');\n\n this.isLoading = false;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmitView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmitView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmitView.vue?vue&type=template&id=7c599742&\"\nimport script from \"./SubmitView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmitView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { constants } from \"@/constants\";\r\nimport Vue from \"vue\";\r\nimport VueRouter, { RouteConfig } from \"vue-router\";\r\nimport HomeView from \"../views/HomeView.vue\";\r\nimport PublicationView from \"../views/PublicationView.vue\";\r\nimport ProfileView from \"../views/ProfileView.vue\";\r\nimport SubmitView from \"../views/SubmitView.vue\";\r\nimport { store } from \"@/main\";\r\nimport { AuthService } from \"@/services/auth\";\r\nimport { container } from \"inversify-props\";\r\nimport { AuthActionsIdentifiers } from \"@/store/modules/auth-types\";\r\nimport { getBaseUrl } from \"@/helpers\";\r\n\r\nVue.use(VueRouter);\r\n\r\nexport function buildRouter(): VueRouter {\r\n const authService = container.get(\"AuthService\");\r\n\r\n const routes: Array = [\r\n {\r\n path: \"/\",\r\n alias: constants.ROUTE_HOME,\r\n name: \"Home\",\r\n component: HomeView\r\n },\r\n {\r\n path: \"/admin\",\r\n name: \"Admin\",\r\n component: HomeView\r\n },\r\n {\r\n path: \"/publications/:publicationFurl\",\r\n props: true,\r\n name: \"Publication\",\r\n component: PublicationView\r\n },\r\n {\r\n path: \"/submit\",\r\n name: \"Submit\",\r\n component: SubmitView\r\n },\r\n {\r\n path: \"/authors/:authorFurl\",\r\n props: true,\r\n name: \"Profile\",\r\n component: ProfileView\r\n }\r\n ];\r\n\r\n const router = new VueRouter({\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes\r\n });\r\n\r\n router.beforeEach(async (to, from, next) => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has(\"token\")) {\r\n // If a token is in query string, dispatch login action\r\n await store.dispatch(\"Auth/\" + AuthActionsIdentifiers.LOGIN, urlParams);\r\n }\r\n\r\n const expired = authService.hasExpired();\r\n if (expired) await store.dispatch(\"Auth/\" + AuthActionsIdentifiers.LOGOUT);\r\n\r\n const targetRoute = to.name ?? \"\";\r\n const restrictedRoutes = [\"Submit\", \"Admin\"];\r\n\r\n const loggedIn = store.state.Auth.loggedIn;\r\n\r\n if (restrictedRoutes.includes(targetRoute) && !loggedIn) {\r\n const backUrl = `${getBaseUrl()}${to.fullPath}`;\r\n authService.login(backUrl);\r\n return;\r\n }\r\n\r\n return next();\r\n });\r\n\r\n router.afterEach(to => {\r\n const query = to.query;\r\n if (query.token || query.hpa) {\r\n const nextQuery = Object.assign({}, query);\r\n delete nextQuery.token;\r\n delete nextQuery.expires;\r\n delete nextQuery.escId;\r\n delete nextQuery.email;\r\n delete nextQuery.title;\r\n delete nextQuery.title;\r\n delete nextQuery.firstName;\r\n delete nextQuery.lastName;\r\n\r\n return router.replace({\r\n path: to.path,\r\n query: nextQuery\r\n });\r\n }\r\n });\r\n\r\n return router;\r\n}\r\n","import { AuthService, User } from \"@/services/auth\";\r\nimport { ActionTree, GetterTree, Module, MutationTree } from \"vuex\";\r\nimport { cid, container } from \"inversify-props\";\r\nimport { AuthActionsIdentifiers, AuthMutationsIdentifiers } from \"./auth-types\";\r\nimport { MahgApiService } from \"@/services/api/magh-api\";\r\n\r\nexport interface AuthState {\r\n loggedIn: boolean;\r\n user: User | null;\r\n isAdmin: boolean;\r\n}\r\n\r\nexport function buildAuthModule(): Module {\r\n const authService = container.get(\"AuthService\");\r\n const mahgApiService = container.get(\"MahgApiService\");\r\n\r\n const user = authService.getUser() ?? null;\r\n if (user) mahgApiService.setHeader();\r\n\r\n const initialState: AuthState = {\r\n loggedIn: user !== null,\r\n user: user,\r\n isAdmin: false\r\n };\r\n\r\n const getters: GetterTree = {\r\n fullName(state): string {\r\n return `${state.user?.firstName} ${state.user?.lastName}`;\r\n },\r\n firstName(state): string {\r\n return `${state.user?.firstName}`;\r\n }\r\n };\r\n\r\n const actions: ActionTree = {\r\n [AuthActionsIdentifiers.LOGIN]({ commit }, urlParams: URLSearchParams): void {\r\n const _escId = urlParams.get(\"escId\");\r\n const _email = urlParams.get(\"email\");\r\n const _title = urlParams.get(\"title\");\r\n const _firstName = urlParams.get(\"firstName\");\r\n const _lastName = urlParams.get(\"lastName\");\r\n const _token = urlParams.get(\"token\");\r\n const _expires = urlParams.get(\"expires\");\r\n\r\n if (!_escId || !_email || !_title || !_firstName || !_lastName || !_token || !_expires) return;\r\n\r\n const escId = parseInt(window.atob(_escId));\r\n const email = window.atob(_email);\r\n const title = window.atob(_title);\r\n const firstName = window.atob(_firstName);\r\n const lastName = window.atob(_lastName);\r\n const expires = parseInt(_expires);\r\n\r\n if (!escId || !email || !title || !firstName || !lastName || !expires) return;\r\n\r\n const user: User = {\r\n escId,\r\n email,\r\n title,\r\n firstName,\r\n lastName,\r\n accessToken: _token,\r\n expires\r\n };\r\n\r\n authService.saveUser(user);\r\n mahgApiService.setHeader();\r\n\r\n commit(AuthMutationsIdentifiers.SET_AUTH, user);\r\n },\r\n [AuthActionsIdentifiers.LOGOUT]({ commit }): void {\r\n authService.destroyUser();\r\n commit(AuthMutationsIdentifiers.PURGE_AUTH);\r\n }\r\n };\r\n\r\n const mutations: MutationTree = {\r\n [AuthMutationsIdentifiers.SET_AUTH](state, user: User): void {\r\n state.loggedIn = true;\r\n state.user = user;\r\n },\r\n [AuthMutationsIdentifiers.PURGE_AUTH](state): void {\r\n state.loggedIn = false;\r\n state.user = null;\r\n },\r\n [AuthMutationsIdentifiers.SET_IS_ADMIN](state, isAdmin: boolean): void {\r\n state.isAdmin = isAdmin;\r\n }\r\n };\r\n\r\n const Auth: Module = {\r\n namespaced: true,\r\n state: initialState,\r\n getters: getters,\r\n actions,\r\n mutations\r\n };\r\n\r\n return Auth;\r\n}\r\n","import Vue from \"vue\";\r\nimport Vuex, { StoreOptions } from \"vuex\";\r\nimport { Store } from \"vuex\";\r\nimport { buildAuthModule } from \"@/store/modules/auth\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport function buildStore(): Store {\r\n const initialState: any = {};\r\n\r\n const store: StoreOptions = {\r\n state: initialState,\r\n modules: {\r\n Auth: buildAuthModule()\r\n }\r\n };\r\n\r\n return new Store(store);\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Topbar'),_c('router-view'),_c('Footer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"topBar px-4 py-3\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-8 text-left\"},[_c('h1',[_c('b-link',{attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"mr-3\",attrs:{\"src\":\"https://esc365.escardio.org/static-resources/ESC365/images/picto/logo_esc.svg\"}}),_c('span',[_vm._v(\"Member Art & Hobby Gallery\")])])],1)]),_c('div',{staticClass:\"col-4 text-right\"},[_c('a',{attrs:{\"href\":!_vm.loggedIn ? _vm.loginUrl : '#'}},[(!_vm.loggedIn)?[_c('span',{staticClass:\"mr-1\"},[_vm._v(\"Sign in\")]),_c('i',{staticClass:\"las la-2x la-t-plus la-t-plus-6 la-user-circle\"})]:_vm._e(),(_vm.loggedIn)?[_c('span',{staticClass:\"mr-1\"},[_vm._v(\"Welcome \"),_c('b',[_vm._v(_vm._s(_vm.firstName))])]),_c('b-dropdown',{staticClass:\"p-0\",attrs:{\"id\":\"dropdown-right\",\"right\":\"\",\"text\":\" \",\"size\":\"lg\",\"variant\":\"link\",\"toggle-class\":\"text-decoration-none\",\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('i',{staticClass:\"las la-2x la-t-plus-3 la-user-circle\"}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Menu\")])]},proxy:true}],null,false,1876260768)},[_c('b-dropdown-item',{attrs:{\"href\":_vm.logoutUrl}},[_c('i',{staticClass:\"las la-sign-out-alt\"}),_vm._v(\" Logout\")])],1)]:_vm._e()],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AuthService } from \"@/services/auth\";\nimport { inject } from \"inversify-props\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { namespace } from \"vuex-class\";\n\nconst Auth = namespace(\"Auth\");\n\n@Component\nexport default class Topbar extends Vue {\n @Auth.State\n public loggedIn!: boolean;\n\n @Auth.Getter\n public firstName!: string;\n\n @Auth.Getter\n public fullName!: string;\n\n private loginUrl = \"#\";\n private logoutUrl = \"#\";\n\n @inject(\"AuthService\")\n private readonly _authService!: AuthService;\n\n get returnUrl(): string {\n return window.location.origin + this.$route.fullPath;\n }\n\n mounted(): void {\n this.loginUrl = this._authService.getLoginUrl(this.returnUrl);\n this.logoutUrl = this._authService.getLogoutUrl(this.returnUrl);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Topbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Topbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Topbar.vue?vue&type=template&id=433a9e83&scoped=true&\"\nimport script from \"./Topbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Topbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Topbar.vue?vue&type=style&index=0&id=433a9e83&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 \"433a9e83\",\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('section',[_c('div',{staticClass:\"mt-4 mb-5\"},[_c('h1',{staticClass:\"mb-24\"},[_vm._v(\"My History\")]),_c('b-tabs',{attrs:{\"content-class\":\"mt-3\"}},[_c('b-tab',{attrs:{\"title\":\"My likes\",\"active\":\"\"}},[_c('p',[_vm._v(\"Publications user liked\")])]),_c('b-tab',{attrs:{\"title\":\"My Favourites members\"}},[_c('p',[_vm._v(\"Members added as favourites by the user\")])])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class TabHistory extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabHistory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabHistory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabHistory.vue?vue&type=template&id=067a2393&scoped=true&\"\nimport script from \"./TabHistory.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabHistory.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TabHistory.vue?vue&type=style&index=0&id=067a2393&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 \"067a2393\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"mt-4\"},[_c('div',{staticClass:\"copyright\"},[_c('span',[_vm._v(\"© European Society of Cardiology\")])]),_c('div',{staticClass:\"logo\"},[_c('img',{attrs:{\"data-v-458ce5ce\":\"\",\"src\":\"https://esc365.escardio.org/static-resources/ESC365/images/picto/logo_esc.svg\"}})])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class Footer extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=288870ee&scoped=true&\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts&\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=288870ee&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 \"288870ee\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport Topbar from \"@/components/Topbar.vue\";\nimport ThemeListing from \"@/components/ThemeSelector.vue\";\nimport Masonry from \"@/components/Masonry.vue\";\nimport Profile from \"@/components/Profile.vue\";\nimport PageDetail from \"@/components/PageDetail.vue\";\nimport TabHistory from \"@/components/TabHistory.vue\";\nimport Footer from \"@/components/Footer.vue\";\nimport { MahgApiService } from \"@/services/api/magh-api\";\nimport { inject } from \"inversify-props\";\nimport { namespace } from \"vuex-class\";\nimport { AuthMutationsIdentifiers } from \"./store/modules/auth-types\";\n\nconst Auth = namespace(\"Auth\");\n\n@Component({\n components: {\n Topbar,\n ThemeListing,\n Masonry,\n Profile,\n PageDetail,\n TabHistory,\n Footer\n }\n})\nexport default class App extends Vue {\n @Auth.State\n public loggedIn!: boolean;\n\n @inject(\"MahgApiService\")\n private readonly _mahgApiService!: MahgApiService;\n\n async mounted(): Promise {\n let isAdmin = false;\n if (this.loggedIn) {\n const { data } = await this._mahgApiService.isAdmin();\n if (data.isAdmin) isAdmin = true;\n }\n\n this.$store.commit(\"Auth/\" + AuthMutationsIdentifiers.SET_IS_ADMIN, isAdmin);\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=5c0567ed&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.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","import Vue from \"vue\";\r\n\r\nVue.filter(\"formatUnixEpocTimePart\", (value: Date) => {\r\n if (value) return Intl.DateTimeFormat(\"en-GB\", { hour: \"numeric\", minute: \"numeric\", hour12: false }).format(new Date(value));\r\n});\r\n\r\nVue.filter(\"formatUnixEpocDayPart\", (value: Date) => {\r\n if (value) return Intl.DateTimeFormat(\"en-GB\", { month: \"long\", day: \"numeric\", year: \"numeric\" }).format(new Date(value));\r\n});\r\n","import Vue from \"vue\";\r\nimport { BootstrapVue, IconsPlugin } from \"bootstrap-vue\";\r\nimport { Plugin } from \"vue-fragment\";\r\nimport VueRouter from \"vue-router\";\r\nimport { Store } from \"vuex\";\r\n\r\nimport VueTagManager from \"vue-tag-manager\";\r\n// import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\n// import VueAppInsights from \"vue-application-insights\";\r\nimport FileSelector from \"vue-file-selector\";\r\n\r\nimport { container } from \"inversify-props\";\r\nimport registerServices from \"./kernel\";\r\nimport { buildRouter } from \"./router\";\r\nimport { buildStore } from \"./store\";\r\n\r\nimport App from \"./App.vue\";\r\n\r\nimport \"@/filters\";\r\n\r\nimport \"../node_modules/line-awesome/dist/line-awesome/css/line-awesome.min.css\";\r\nimport \"./styles/app.scss\";\r\n\r\nVue.config.productionTip = false;\r\n\r\n// BootstrapVue\r\nVue.use(BootstrapVue);\r\nVue.use(IconsPlugin);\r\n\r\n// VueFragment\r\nVue.use(Plugin);\r\n\r\n// VueTagManager\r\nVue.use(VueTagManager, {\r\n gtmId: process.env.VUE_APP_GTM_ID\r\n});\r\n\r\n// VueFileSelector\r\nVue.use(FileSelector);\r\n\r\nlet router: VueRouter;\r\nlet store: Store;\r\n\r\nclass AppWrapper {\r\n constructor() {\r\n registerServices().then(() => {\r\n console.log(\"Services registered\");\r\n console.debug(\"Container\", container);\r\n router = buildRouter();\r\n store = buildStore();\r\n this.start();\r\n });\r\n }\r\n\r\n private async start(): Promise {\r\n return new Vue({\r\n router: router,\r\n store: store,\r\n render: h => h(App)\r\n }).$mount(\"#app\");\r\n }\r\n}\r\n\r\nnew AppWrapper();\r\n\r\nexport { store, router };\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabHistory.vue?vue&type=style&index=0&id=067a2393&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Masonry.vue?vue&type=style&index=0&id=05d394ed&scoped=true&lang=css&\"","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!./PageDetail.vue?vue&type=style&index=0&id=26355cfa&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!./Footer.vue?vue&type=style&index=0&id=288870ee&lang=scss&scoped=true&\""],"sourceRoot":""}