{"version":3,"file":"js/chunk-common.330a5eac.js","mappings":"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","sources":["webpack://legenda/./src/filters/treeFilter.js","webpack://legenda/./src/App.vue","webpack://legenda/./src/App.vue?7ccd","webpack://legenda/./src/plugins/plausible/plausible.js","webpack://legenda/./src/plugins/head/head.js","webpack://legenda/./src/filters/accessViewFilter.js","webpack://legenda/./src/main.js","webpack://legenda/./src/plugins/vuetify/paletteUtils.js","webpack://legenda/./src/plugins/vuetify/vuetify.js","webpack://legenda/./src/router/index.js","webpack://legenda/./src/services/languageService.js","webpack://legenda/./src/plugins/axios/axiosSingleton.js","webpack://legenda/./src/plugins/axios/axiosWrapper.js","webpack://legenda/./src/store/modules/users.js","webpack://legenda/./src/store/modules/pdfs.js","webpack://legenda/./src/store/modules/searches.js","webpack://legenda/./src/store/modules/folders.js","webpack://legenda/./src/store/modules/subscriptions.js","webpack://legenda/./src/store/modules/loading.js","webpack://legenda/./src/store/modules/searchQueries.js","webpack://legenda/./src/store/modules/tree.js","webpack://legenda/./src/store/index.js","webpack://legenda/./src/translations/i18n.js","webpack://legenda/./src/utils/fileUtils.js","webpack://legenda/./src/components/ui/Spinner.vue","webpack://legenda/./src/components/ui/Spinner.vue?15fb","webpack://legenda/./src/translations/locales/ lazy ^\\.\\/.*\\.json$ chunkName: locale-[request] namespace object"],"sourcesContent":["function deepSearch(data, value, key = \"folder_id\", sub = \"children\") {\n if (!data) return false;\n\n for (const node of data) {\n if (node[key] === value) {\n return node;\n }\n const result = deepSearch(node[sub], value, key, sub);\n if (result) {\n return result;\n }\n }\n\n return false;\n}\n\n/**\n * Sorts the folder content (folders and documents)\n * @param {*} pdfList\n * @param {*} folderList\n */\nfunction sortFolderContent(pdfList, folderList) {\n let contentToSort = null;\n\n const pdfs = pdfList ?? [];\n pdfs.forEach((pdf) => (pdf.type = \"document\"));\n\n const subFolders = folderList ?? [];\n subFolders.forEach((folder) => {\n folder.type = \"folder\";\n folder.name = folder.folder_name;\n });\n\n contentToSort = pdfs.concat(subFolders);\n sortTable(contentToSort);\n return contentToSort;\n}\n\n/**\n *\n * @param {*} content\n */\nfunction sortTable(content) {\n if (content) {\n content.sort(function (a, b) {\n return (\n b.type.localeCompare(a.type) ||\n a.name.localeCompare(b.name, undefined, { sensitivity: \"base\" })\n );\n });\n }\n}\n\nexport { deepSearch, sortFolderContent };\n","\n\n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=2e1bc169\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2e1bc169&lang=css\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createPlausible } from \"v-plausible/vue\";\n\nconst plausible = createPlausible({\n init: {\n domain: process.env.VUE_APP_LEGENDA_DOMAIN,\n apiHost: \"https://plausible.io\",\n trackLocalhost: false,\n },\n settings: {\n enableAutoOutboundTracking: true,\n enableAutoPageviews: false,\n },\n partytown: false,\n});\n\nexport { plausible };\n","import { createHead } from \"@vueuse/head\";\n\nconst head = createHead();\n\nexport { head };\n","const groups = {\n admin: [\"legenda@master\", \"olympialex@master\"],\n dev: [\"dev\"],\n legenda: [\"professional\", \"enterprise\"],\n legenda_plus: [\"enterprise\"],\n};\n\nconst views = {\n customerPortalView: {\n groups: [groups.admin, groups.dev, groups.legenda].flat(),\n },\n shareView: {\n groups: [groups.admin, groups.dev, groups.legenda_plus].flat(),\n },\n subscriptionEndView: {\n groups: [groups.admin, groups.dev].flat(),\n },\n};\n\n/**\n *\n * @param {*} view\n * @param {*} tier\n */\nfunction hasView(view, tier) {\n const groups = views[view].groups;\n const isUserAuthorized = groups.includes(tier);\n return isUserAuthorized;\n}\n\nexport { hasView };\n","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\n\n// bootstrap\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport \"@mdi/font/css/materialdesignicons.css\";\n\n// vuetify\nimport { vuetifyInstance } from \"./plugins/vuetify/vuetify.js\";\n// important; load styles after instance has been created\nimport \"./assets/styles/fonts.css\";\nimport \"./assets/styles/global.css\";\nimport \"vue3-tree-vue/dist/style.css\";\n// store\nimport store from \"./store\";\n\n// i18n\nimport { i18nInstance } from \"./translations/i18n.js\";\nimport { languageService } from \"./services/languageService.js\";\n\n// router\nimport router from \"./router\";\n\n// plausible\nimport { plausible } from \"./plugins/plausible/plausible.js\";\n\n// head\nimport { head } from \"./plugins/head/head.js\";\n\n// filters\nimport { hasView } from \"./filters/accessViewFilter\";\nimport { deepSearch, sortFolderContent } from \"./filters/treeFilter\";\n\nimport \"vue3-tree-vue/dist/style.css\";\n// create Legenda application\nconst app = createApp(App);\n\n// global app configuration\napp.config.globalProperties.$filters = {\n hasView,\n deepSearch,\n sortFolderContent,\n};\napp.config.errorHandler = (err, vm, info) => {\n console.debug(\"Error:\", err);\n console.debug(\"Vue component:\", vm);\n console.debug(\"Additional info:\", info);\n};\n\n// use all modules\napp.use(vuetifyInstance);\napp.use(store);\napp.use(i18nInstance);\napp.use(router);\napp.use(plausible);\napp.use(head);\n\n//mount app once the translations have been loaded\nlanguageService\n .loadStartUpMessages(\n i18nInstance,\n i18nInstance.global.locale.value,\n i18nInstance.global.fallbackLocale.value\n )\n .then(() => {\n app.mount(\"#app\");\n })\n .catch(() => {});\n\nexport default app;\n","function getThemes() {\n const legendaTheme = {\n colors: {\n \"checkbox-primary\": \"#3F3442\",\n \"button-primary\": \"#F1FF82\",\n \"button-secondary\": \"#3F3442\",\n \"button-secondary-darken-1\": \"#8ebc6c\",\n \"butoon-secondary-darken-2\": \"#7ca45e\",\n \"button-ternary\": \"#FCFFE0\",\n \"button-contrast\": \"#3F3442\",\n \"icon-primary\": \"#3F3442\",\n \"icon-secondary\": \"#B2EB87\",\n \"typo-primary\": \"#3F3442\",\n \"typo-secondary\": \"#F8F5ED\",\n \"typo-ternary\": \"#B2EB87\",\n \"component-primary\": \"#ffffff\",\n \"input-primary\": \"#3F3442\",\n \"visual-primary\": \"#B2EB87\",\n \"table-primary\": \"#ffffff\",\n \"modal-primary\": \"#ffffff\",\n \"page-primary\": \"#F5F5F5\",\n \"page-secondary\": \"#F5F5F5\",\n \"toolbar-primary\": \"#ffffff\",\n \"footer-primary\": \"#292929\",\n \"footer-secondary\": \"#F8FFC1\",\n\n // neutral will be used as a neutral background, surface is the default color\n //to be shown inside components, eg the color of an input (actual color of input, not the font color in the input)\n neutral: \"#F5F5F5\",\n \"neutral-lighten-1\": \"#fafafa\",\n \"neutral-darken-1\": \"#d3d3d3\",\n \"neutral-darken-2\": \"#939393\",\n surface: \"#ffffff\",\n\n primary: \"#F1FF82\",\n \"primary-lighten-1\": \"#F5FFA1\",\n \"primary-lighten-2\": \"#F8FFC1\",\n \"primary-lighten-3\": \"#FCFFE0\",\n \"primary-lighten-4\": \"#FEFFF3\",\n \"primary-darken-1\": \"#bcc571\",\n \"primary-darken-2\": \"#B5BF62\",\n\n secondary: \"#B2EB87\",\n \"secondary-lighten-1\": \"#C5F0A5\",\n \"secondary-lighten-2\": \"#D9F5C3\",\n \"secondary-lighten-3\": \"#ECFAE1\",\n \"secondary-darken-1\": \"#8ebc6c\",\n \"secondary-darken-2\": \"#7ca45e\",\n\n contrast: \"#3F3442\",\n \"contrast-lighten-1\": \"#78707A\",\n \"contrast-lighten-2\": \"#F8F5ED\",\n \"contrast-lighten-3\": \"#D8D6D9\",\n\n error: \"#FDB0AB\",\n info: \"#90CAF9\",\n success: \"#D9F5C3\",\n warning: \"#FCFFE0\",\n \"custom-warning\": \"#F2E7DD\",\n border: \"#0d47a1\",\n danger: \"#3F3442\",\n dark: \"#3F3442\",\n\n // search results\n \"search-high\": \"#B2EB87\",\n \"search-high-lighten-1\": \"#ECFAE1\",\n \"search-high-darken-1\": \"#597644\",\n\n \"search-mid\": \"#F3B781\",\n \"search-mid-lighten-1\": \"#F2E7DD\",\n \"search-mid-darken-1\": \"#795717\",\n\n \"search-low\": \"#FDB0AB\",\n \"search-low-lighten-1\": \"#FEECEB\",\n \"search-low-darken-1\": \"#7F4239\",\n\n // upload progress\n \"status-empty\": \"#808080\",\n \"status-searchable\": \"#B2EB87\",\n \"status-in-progress\": \"#F3B781\",\n \"status-in-progress-ocr\": \"#CFB0FA\",\n \"status-failed\": \"#FDB0AB\",\n \"status-pdf-conversion\": \"#69D1F5\",\n },\n };\n\n const olympialexTheme = {\n colors: {\n \"checkbox-primary\": \"#3F3442\",\n \"button-primary\": \"#425951\",\n \"button-secondary\": \"#3F3442\",\n \"button-ternary\": \"#FCFFE0\",\n \"button-contrast\": \"#092116\",\n \"icon-primary\": \"#AC9731\",\n \"typo-primary\": \"#3F3442\",\n \"typo-secondary\": \"#3b8044\",\n \"typo-ternary\": \"#AC9731\",\n \"component-primary\": \"#ffffff\",\n \"input-primary\": \"#3F3442\",\n \"visual-primary\": \"#3b8044\",\n \"table-primary\": \"#ffffff\",\n \"modal-primary\": \"#ffffff\",\n \"page-primary\": \"#F5F5F5\",\n \"page-secondary\": \"#F5F5F5\",\n \"toolbar-primary\": \"#092116\",\n\n // neutral will be used as a neutral background, surface is the default color\n //to be shown inside components, eg the color of an input (actual color of input, not the font color in the input)\n neutral: \"#F5F5F5\",\n surface: \"#ffffff\",\n\n primary: \"#3b8044\",\n \"primary-lighten-1\": \"#9dbfa1\",\n \"primary-lighten-2\": \"#ebf2ec\",\n \"primary-darken-1\": \"#234c28\",\n \"primary-darken-2\": \"#234c28\",\n\n secondary: \"#425951\",\n contrast: \"#092116\",\n \"contrast-lighten-1\": \"#75736E\",\n \"contrast-lighten-2\": \"#B2AFA8\",\n\n error: \"#8b0000\",\n info: \"#90CAF9\",\n success: \"#D9F5C3\",\n warning: \"#FCFFE0\",\n border: \"#0d47a1\",\n danger: \"#3F3442\",\n dark: \"#3F3442\",\n\n \"search-high\": \"#689F38\",\n \"search-high-lighten-1\": \"#c2d8af\",\n \"search-high-darken-1\": \"#5d8f32\",\n\n \"search-mid\": \"#AEEA00\",\n \"search-mid-lighten-1\": \"#cef266\",\n \"search-mid-darken-1\": \"#9cd200\",\n\n \"search-low\": \"#FFB300\",\n \"search-low-lighten-1\": \"#ffd166\",\n \"search-low-darken-1\": \"#e5a100\",\n },\n };\n return { legendaTheme, olympialexTheme };\n}\n\nexport { getThemes };\n","import \"vuetify/styles\";\nimport \"../../assets/styles/global.css\";\nimport { createVuetify } from \"vuetify\";\n\nimport * as components from \"vuetify/components\";\nimport * as directives from \"vuetify/directives\";\n\nimport { getThemes } from \"./paletteUtils.js\";\n\nconst defaultTheme = localStorage.getItem(\"appTheme\") || \"legendaTheme\";\n\nconst vuetifyInstance = createVuetify({\n theme: {\n defaultTheme: defaultTheme,\n themes: getThemes(),\n options: {\n customProperties: true,\n },\n typography: {\n font: {\n family: {\n base: \"Satoshi, sans-serif\",\n heading: \"Satoshi, sans-serif\",\n },\n },\n },\n },\n options: {\n customProperties: true, // Enable CSS variables for custom themes\n },\n components,\n directives,\n});\n\nexport { vuetifyInstance };\n","import store from \"@/store\";\n\nimport { createRouter, createWebHistory } from \"vue-router\";\nimport seoTranslations from \"@/translations/seo/seoTranslations.json\";\n\nconst baseRoutes = [\n {\n path: \"/\",\n redirect: { path: \"/hello_legenda\" }, // redirect property\n },\n\n {\n path: \"/:pathMatch([a-z]{2})\", //the two digit language code\n redirect: (to) => {\n // Extract the language from the route parameters\n const { language } = to.params;\n if (Object.keys(seoTranslations).includes(language)) {\n // Redirect to the desired route, passing the language parameter\n return `hello_legenda/${language}`;\n } else {\n // take back to \"/\" ( -> hello_legenda )\n return \"\";\n }\n },\n },\n // navbar if authed , general if not\n {\n path: \"/hello_legenda/:language?\",\n name: \"LandingPage\",\n components: {\n default: () => import('../views/landingPage/LandingPageView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n Footer: () => import('../views/landingPage/components/FooterComponent.vue')\n },\n props: true,\n },\n {\n path: \"/olympiaLex/:token\",\n name: \"OlympiaLexLogin\",\n components: {\n default: () => import('../views/auth/olympiaLex/OlympiaLexLogin.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n props: true,\n },\n {\n path: \"/login\",\n name: \"Login\",\n components: {\n default: () => import('../views/auth/legenda/LoginView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n meta: { requiresGuest: true },\n },\n {\n path: \"/privacy_policy\",\n name: \"Privacy\",\n components: {\n default: () => import('../views/legal/PrivacyView.vue'),\n Navbar: () => getNavBar()\n },\n meta: { theme: \"legendaTheme\" },\n },\n {\n path: \"/terms_conditions\",\n name: \"TermsConditions\",\n components: {\n default: () => import('../views/legal/TermsConditionsView.vue'),\n Navbar: () => getNavBar()\n },\n meta: { theme: \"legendaTheme\" },\n },\n {\n path: \"/contact\",\n name: \"Contact\",\n components: {\n default: () => import('../views/legal/ContactView.vue'),\n Navbar: () => getNavBar()\n },\n meta: { theme: \"legendaTheme\" },\n },\n {\n path: \"/:pathMatch(.*)*\",\n components: {\n default: () => import('../views/PageNotFound.vue'),\n Navbar: () => getNavBar()\n },\n name: \"PageNotFound\",\n },\n];\n\nconst legendaRoutes = [\n {\n path: \"/register/:token\",\n name: \"Register\",\n components: {\n default: () => import('../views/auth/legenda/RegisterView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n props: true,\n },\n\n {\n path: \"/profile\",\n name: \"Profile\",\n components: {\n default: () => import('../views/ProfileView.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: { requiresAuth: true },\n },\n\n {\n path: \"/pdf_explorer/:folder_id/:doc_metadata_id\",\n name: \"DocumentExplorer\",\n components: {\n default: () => import('../views/document/DocumentExplorer.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: { requiresAuth: true },\n props: (route) => ({\n folder_id: Number(route.params.folder_id),\n doc_metadata_id: route.params.doc_metadata_id,\n }),\n },\n {\n path: \"/search/:search_query_id/search_results/\",\n name: \"SearchResults\",\n components: {\n default: () => import('../views/search/SearchResults.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: { requiresAuth: true },\n },\n {\n path: \"/forgot_password\",\n components: {\n default: () => import('../views/auth/legenda/ForgotPasswordView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n },\n {\n path: \"/update_password/:token\",\n components: {\n default: () => import('../views/auth/legenda/UpdatePassword.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n props: true,\n },\n {\n path: \"/subscriptions\",\n name: \"Subscriptions\",\n components: {\n default: () => import('../views/signup/SubscriptionView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n },\n {\n path: \"/checkout_confirmation/:sessionId\",\n name: \"CheckoutConfirmation\",\n components: {\n default: () => import('../views/signup/CheckoutView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n props: true,\n },\n {\n path: \"/changelog\",\n name: \"Changelog\",\n props: true,\n components: {\n default: () => import('../views/ChangelogView.vue'),\n Navbar: () => getNavBar()\n }\n },\n {\n path: \"/guide\",\n name: \"Guide\",\n components: {\n default: () => import('../views/GuideView.vue'),\n Navbar: () => import('../components/navbar/GeneralNavBarComponent.vue'),\n },\n },\n];\n\nconst legendaDashboardRoutes = [\n {\n path: \"/dashboard\",\n name: \"Dashboard\",\n components: {\n default: () => import('../views/dashboard/legenda/DashboardView.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: {\n requiresAuth: true,\n breadCrumb: [\n {\n title: \"Dashboard\",\n },\n ],\n },\n },\n {\n path: \"/content/:folder_id?\",\n name: \"Content\",\n components: {\n default: () => import('../views/dashboard/legenda/DashboardView.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: {\n requiresAuth: true,\n meta: {\n breadCrumb(route) {\n const folder_id = route.params.folder_id;\n return [\n {\n title: folder_id,\n },\n ];\n },\n },\n },\n props: (route) => ({ folder_id: Number(route.params.folder_id) }),\n },\n {\n path: \"/\",\n redirect: { name: \"Dashboard\" },\n },\n];\n\nconst olympialexDashboardRoutes = [\n {\n path: \"/olympialex/dashboard\",\n name: \"olympialexDashboard\",\n components: {\n default: () => import('../views/dashboard/olympialex/OlympialexDashboardView.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: {\n requiresAuth: true,\n breadCrumb: [\n {\n title: \"olympialexDashboard\",\n },\n ],\n },\n },\n {\n path: \"/olympialex/content/:folder_id?\",\n name: \"olympialexContent\",\n components: {\n default: () => import('../views/dashboard/olympialex/OlympialexDashboardView.vue'),\n Navbar: () => import('../components/navbar/AuthNavBarComponent.vue'),\n },\n meta: {\n requiresAuth: true,\n meta: {\n breadCrumb(route) {\n const folder_id = route.params.folder_id;\n return [\n {\n title: folder_id,\n },\n ];\n },\n },\n },\n props: (route) => ({ folder_id: Number(route.params.folder_id) }),\n },\n {\n path: \"/\",\n redirect: { name: \"olympialexDashboard\" },\n },\n];\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes: baseRoutes\n .concat(legendaRoutes)\n .concat(legendaDashboardRoutes)\n .concat(olympialexDashboardRoutes),\n // ...\n});\n// Navigation Guard: redirect to the /login route if not authenticated\nrouter.beforeEach((to, from, next) => {\n const requiresAuth = to.matched.some((record) => record.meta.requiresAuth);\n const requiresGuest = to.matched.some((record) => record.meta.requiresGuest);\n const isUserLoggedIn = store.getters.isAuthenticated;\n\n const isOlympialexView = store.getters.olympiaLexView;\n const searchScope = store.getters.stateSearchScope;\n\n const olympialexUserRoutes = legendaRoutes.concat(olympialexDashboardRoutes);\n const legendaUserRoutes = legendaRoutes.concat(legendaDashboardRoutes);\n if (requiresAuth) {\n if (isUserLoggedIn) {\n if (\n // olympialex user routes\n (isOlympialexView &&\n olympialexUserRoutes.map((x) => x.name).includes(to.name)) ||\n //legenda user routes\n (!isOlympialexView &&\n legendaUserRoutes.map((x) => x.name).includes(to.name))\n ) {\n next();\n } else {\n next({ name: \"PageNotFound\" });\n }\n } else {\n next(\"/login\");\n }\n } else if (requiresGuest) {\n if (isUserLoggedIn) {\n if (isOlympialexView) {\n if (searchScope.length > 0) {\n next(`/olympialex/content/${searchScope[0].itemId}`);\n } else {\n next(\"/olympialex/dashboard\");\n }\n } else {\n if (searchScope.length > 0) {\n next(`/content/${searchScope[0].itemId}`);\n } else {\n next(\"/dashboard\");\n }\n }\n } else {\n next();\n }\n } else {\n next();\n }\n});\n\nconst getNavBar = () => {\n const isUserLoggedIn = store.getters.isAuthenticated;\n\n return isUserLoggedIn ?\n import('../components/navbar/AuthNavBarComponent.vue')\n : import('../components/navbar/GeneralNavBarComponent.vue')\n}\n\nexport default router;\n","import store from \"../store\";\nimport { useHead } from \"@vueuse/head\";\nimport seoTranslations from \"../translations/seo/seoTranslations.json\";\nimport { nextTick } from \"vue\";\n\nclass LanguageService {\n /**\n *\n * @param {*} locale\n * @param {*} i18nInstance\n * @param {*} i18nRoot\n */\n async setLocale(locale, i18nInstance, i18nRoot) {\n // update store and local storage\n store.commit(\"setLanguage\", locale);\n localStorage.setItem(\"language\", locale);\n\n // load trasnlations and set the new locale\n await this.loadLocaleMessages(i18nInstance, locale);\n i18nRoot.locale = locale;\n }\n /**\n *\n * @param {*} i18nInstance\n * @param {*} locale\n * @returns\n */\n async loadLocaleMessages(i18nInstance, locale) {\n // load locale messages with dynamic import\n const messages = await import(\n /* webpackChunkName: \"locale-[request]\" */ `../translations/locales/${locale}.json`\n );\n\n // set locale and locale message\n i18nInstance.global.setLocaleMessage(locale, messages.default);\n\n // update the head\n this.setI18nLanguage(i18nInstance, locale);\n\n return nextTick();\n }\n /**\n *\n * @param {*} i18nInstance\n * @param {*} locale\n * @param {*} fallbackLocale\n */\n async loadStartUpMessages(i18nInstance, locale, fallbackLocale) {\n // load the fallback messages no matter what (in case some translations are missing)\n await this.loadLocaleMessages(i18nInstance, fallbackLocale);\n\n // if the browser locale is different from the fallback, load it\n // (otherwise the user will load it dynamicall when they will change it from the dropdown menu)\n if (locale !== fallbackLocale)\n await this.loadLocaleMessages(i18nInstance, locale);\n }\n\n /**\n *\n * @param {*} i18n\n * @param {*} locale\n */\n setI18nLanguage(i18n, locale) {\n i18n.global.locale.value = locale;\n\n /**\n * NOTE:\n * If you need to specify the language setting for headers, such as the `fetch` API, set it here.\n * The following is an example for axios.\n *\n * axios.defaults.headers.common['Accept-Language'] = locale\n */\n\n // here do the meta thingy\n const { title, description } = seoTranslations[locale];\n\n useHead({\n title: title,\n meta: [\n {\n name: \"description\",\n content: description,\n },\n ],\n });\n }\n\n constructor() {}\n}\n\nconst languageService = new LanguageService();\nexport { languageService };\n","import axios from \"axios\";\nimport router from \"../../router/index\";\nimport store from \"../../store\";\n\nclass AxiosSingleton {\n /**\n * private members\n */\n static #instance;\n\n /**\n *\n * @returns\n */\n\n constructor() {\n // return instance if exists\n if (AxiosSingleton.#instance) return AxiosSingleton.#instance;\n\n // create instance\n AxiosSingleton.#instance = this;\n\n // init and configure axios\n this.initAxios();\n }\n /**\n *\n * @returns the instance of the class\n */\n static instance() {\n if (!AxiosSingleton.#instance) return new AxiosSingleton();\n\n return AxiosSingleton.#instance;\n }\n /**\n *\n * @returns\n */\n getAxiosInstance() {\n return this.axiosInstance;\n }\n /**\n *\n */\n initAxios() {\n this.axiosInstance = axios.create({\n withCredentials: true,\n baseURL: process.env.VUE_APP_API_URL,\n });\n\n this.configureAxios();\n }\n /**\n * Configure interceptors\n */\n configureAxios() {\n this.axiosInstance.interceptors.request.use((config) => {\n if (!config.url) {\n return config;\n }\n\n if (this.useSpinner(config.url, config.method)) {\n store.commit(\"setLoading\", true);\n }\n\n const currentUrl = new URL(config.url, config.baseURL);\n // parse pathName to implement variables\n Object.entries(config.urlParams || {}).forEach(([k, v]) => {\n currentUrl.pathname = currentUrl.pathname.replace(\n `:${k}`,\n encodeURIComponent(v)\n );\n });\n return {\n ...config,\n url: currentUrl.pathname,\n };\n });\n\n // redirect to the /login route once the access token expires\n this.axiosInstance.interceptors.response.use(\n (response) => {\n response.baseURL;\n store.commit(\"setLoading\", false);\n return response;\n },\n\n async (error) => {\n if (error) {\n const originalRequest = error.config;\n store.commit(\"setLoading\", false);\n\n if (error.response && error.response.status === 401) {\n if (!originalRequest._retry) {\n originalRequest._retry = true;\n try {\n await this.axiosInstance.post(\n `/refresh`,\n {},\n { withCredentials: true }\n );\n\n // Retry the original request\n return this.axiosInstance(originalRequest);\n } catch (refreshError) {\n // do nothing\n }\n\n const user = { ...store.getters.stateUser };\n if (user) {\n if (user.subscription_tier === \"olympialex_review\") {\n // go back to olympialex\n store.commit(\"resetState\");\n window.location.href =\n \"https://www.olympialex.com/olympialex_review.php\";\n } else {\n // normal user, redirect to login\n store.commit(\"resetState\");\n return router.push(\"/login\");\n }\n }\n } else {\n return router.push(\"/login\");\n }\n } else {\n throw error;\n }\n }\n }\n );\n }\n\n useSpinner(url, method) {\n const urlsToOmit = [\n { url: \"/pdf_binary/poll\", method: \"get\" },\n { url: \"/login/\", method: \"post\" },\n { url: \"/pdf_binary/all\", method: \"get\" },\n { url: \"/pdf_binary/\", method: \"post\" },\n { url: \"/pdf_binary/\", method: \"get\" },\n { url: \"/folder/\", method: \"get\" },\n { url: \"/search_query/all\", method: \"get\" },\n { url: \"/search_results\", method: \"get\" },\n { url: \"/llm_answer\", method: \"get\" },\n { url: \"/search/highlighted_pdf/\", method: \"post\" },\n { url: \"/refresh\", method: \"post\" },\n { url: \"/search\", method: \"post\" },\n { url: \"/search\", method: \"post\" },\n { url: \"/subscription/checkout_complete\", method: \"get\" },\n ];\n const found = urlsToOmit.some(\n (element) => url.includes(element.url) && element.method.includes(method)\n );\n return !found;\n }\n}\n\nexport default AxiosSingleton;\n","import AxiosSingleton from \"./axiosSingleton\";\n\nclass AxiosWrapper {\n /** */\n constructor() {\n const singleton = new AxiosSingleton();\n this.axiosInstance = singleton.getAxiosInstance();\n }\n /**\n *\n * @param {*} url\n * @param {*} parameters\n * @param {*} headers\n * @returns\n */\n async get(url, urlParameters, searchParameters, headers, responseType) {\n let searchParams = null;\n // build search params if any\n if (searchParameters) {\n // encodes properly the parameters\n searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(searchParameters)) {\n searchParams.append(key, value);\n }\n }\n\n return await this.axiosInstance.get(url, {\n urlParams: urlParameters,\n params: searchParams,\n headers: headers,\n responseType: responseType,\n });\n }\n /**\n *\n * @param {*} url\n * @param {*} parameters\n * @param {*} headers\n * @returns\n */\n async post(url, payloadData, parameters, responseType) {\n return await this.axiosInstance.post(url, payloadData, {\n urlParams: parameters,\n headers: { \"Content-Type\": \"application/json\" },\n responseType: responseType,\n });\n }\n\n /**\n *\n * @param {*} url\n * @param {*} parameters\n * @param {*} headers\n * @returns\n */\n async postForm(url, formData, parameters, responseType) {\n return await this.axiosInstance.postForm(url, formData, {\n urlParams: parameters,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n responseType: responseType,\n });\n }\n /**\n *\n * @param {*} url\n * @param {*} payloadData\n * @param {*} parameters\n * @param {*} responseType\n * @returns\n */\n async put(url, payloadData, parameters, responseType) {\n return await this.axiosInstance.put(url, payloadData, {\n urlParams: parameters,\n headers: { \"Content-Type\": \"application/json\" },\n responseType: responseType,\n });\n }\n /**\n *\n * @param {*} url\n * @param {*} parameters\n * @param {*} headers\n * @returns\n */\n async putForm(url, formData, parameters, responseType) {\n return await this.axiosInstance.putForm(url, formData, {\n urlParams: parameters,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n responseType: responseType,\n });\n }\n /**\n *\n * @param {*} url\n * @param {*} parameters\n * @param {*} headers\n * @returns\n */\n async delete(url, urlParameters, searchParameters, headers) {\n let searchParams = null;\n // build search params if any\n if (searchParameters) {\n // encodes properly the parameters\n searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(searchParameters)) {\n searchParams.append(key, value);\n }\n }\n return await this.axiosInstance.delete(url, {\n urlParams: urlParameters,\n params: searchParams,\n headers: headers,\n });\n }\n}\n\nconst axiosWrapper = new AxiosWrapper();\nexport default axiosWrapper;\n","import axiosWrapper from \"../../plugins/axios/axiosWrapper\";\nimport { vuetifyInstance } from \"../../plugins/vuetify/vuetify\";\n\nconst getDefaultUserState = () => {\n return {\n user: null,\n freeSpace: null,\n olympiaLexView: false,\n language: null,\n clickedTab: null,\n llmSearchOption: true,\n };\n};\n\n// initial state\nconst state = getDefaultUserState();\n\nconst getters = {\n isAuthenticated: (state) => !!state.user,\n stateUser: (state) => state.user,\n freeSpace: (state) => state.freeSpace,\n olympiaLexView: (state) => state.olympiaLexView,\n language: (state) => state.language,\n clickedTab: (state) => state.clickedTab,\n llmSearchOption: (state) => state.llmSearchOption,\n};\n\nconst actions = {\n /**\n *\n * @param {*} param0\n * @param {*} token\n */\n // eslint-disable-next-line no-empty-pattern\n async register({ }, { token, user, legal, marketing, profiling, training }) {\n const formData = {\n password: user.password,\n token: token,\n legal: legal,\n marketing: marketing,\n profiling: profiling,\n training: training,\n };\n\n return await axiosWrapper.postForm(\"/register\", formData);\n },\n /**\n *\n * @param {*} param0\n * @param {*} user\n * @returns\n */\n async logIn({ dispatch, commit }, user) {\n commit(\"resetState\");\n const formData = {\n username: user.username,\n password: user.password,\n client_app_name: 'legenda'\n };\n\n const loginResponse = await axiosWrapper.postForm(\"/login\", formData);\n\n if (loginResponse.status == 200) {\n await dispatch(\"viewMe\");\n }\n\n return this.state.users.user;\n },\n /**\n *\n * @param {*} param0\n */\n async viewMe({ commit }) {\n let { data } = await axiosWrapper.get(\"/user/whoami\");\n\n commit(\"setUser\", data);\n commit(\"setOlympiaLexView\", data);\n commit(\n \"setLlmSearchOption\",\n JSON.parse(localStorage.getItem(\"llmOption\")) ?? state.llmSearchOption\n );\n },\n /**\n *\n * @param {*} param0\n */\n // eslint-disable-next-line no-empty-pattern\n async logOut({ }) {\n //reset state\n //reset auth token\n await axiosWrapper.get(\"/:username/logout\", { username: this.state.user });\n\n },\n /**\n *\n * @param {*} param0\n * @param {*} username\n */\n async getFreeSpace({ commit }, username) {\n const data = await axiosWrapper.get(`/user/:username/free_space`, {\n username: username,\n });\n\n commit(\"setFreeSpace\", data.data);\n },\n /**\n *\n */\n // eslint-disable-next-line no-empty-pattern\n async preUpdatePassword({ }, user) {\n return await axiosWrapper.post(\"/pre_update_password\", {\n username: user.username,\n });\n },\n /**\n *\n * @param {*} param0\n * @param {*} token\n * @returns\n */\n // eslint-disable-next-line no-empty-pattern\n async updatePassword({ }, { token, user }) {\n const payload = {\n password: user.password,\n token: token,\n };\n\n return await axiosWrapper.post(\"/update_password\", payload);\n },\n\n async changePassword(\n // eslint-disable-next-line no-empty-pattern\n { },\n { currentPassword, newPassword, confirmNewPassword }\n ) {\n const payload = {\n currentPassword,\n newPassword,\n confirmNewPassword,\n };\n\n return await axiosWrapper.post(\"/me/change-password\", payload);\n },\n /**\n *\n * @param {*} param0\n * @param {*} user\n * @returns\n */\n // eslint-disable-next-line no-empty-pattern\n async preRegisterUser({ }, user) {\n const payload = {\n username: user.username,\n password: user.password,\n };\n\n return await axiosWrapper.post(\"/pre_register\", payload);\n },\n /**\n *\n * @param {*} param0\n * @param {*} token\n */\n async olympiaLexLogin({ dispatch, commit }, token) {\n commit(\"resetState\");\n const payload = {\n token: token,\n client_app_name: 'olympialex'\n };\n\n const loginResponse = await axiosWrapper.post(\"/ol_login\", payload);\n\n if (loginResponse.status == 200) {\n await dispatch(\"viewMe\");\n }\n return this.state.users.user;\n },\n};\n\nconst mutations = {\n /**\n *\n * @param {*} state\n * @param {*} user\n */\n setUser(state, user) {\n state.user = user;\n },\n /**\n *\n * @param {*} state\n * @param {*} user\n */\n setOlympiaLexView(state, user) {\n state.olympiaLexView = user.subscription_tier === \"olympialex_review\";\n\n if (state.olympiaLexView) {\n vuetifyInstance.theme.global.name.value = \"olympialexTheme\";\n localStorage.setItem(\"appTheme\", \"olympialexTheme\");\n }\n },\n /**\n *\n * @param {*} state\n * @param {*} user\n */\n resetUserState(state, user) {\n state.user = user;\n },\n /**\n *\n * @param {*} state\n * @param {*} responseData\n */\n setFreeSpace(state, responseData) {\n state.freeSpace = responseData.free_space;\n },\n /**\n *\n * @param {*} state\n */\n setLanguage(state, language) {\n state.language = language;\n },\n /**\n *\n * @param {*} state\n * @param {*} clickedTab\n */\n setClickedTab(state, clickedTab) {\n state.clickedTab = clickedTab;\n },\n /**\n *\n * @param {*} state\n * @param {*} llmSearchOption\n */\n setLlmSearchOption(state, llmSearchOption) {\n state.llmSearchOption = llmSearchOption;\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import axiosWrapper from \"../../plugins/axios/axiosWrapper\";\nimport { getFileSize } from \"../../utils/fileUtils\";\n\nconst getters = {\n statePdfs: (state) => state.pdfs,\n statePdfBinary: (state) => state.pdfBinary,\n stateFilesToUpload: (state) => state.filesToUpload,\n stateScopedFilesToUpload: (state) => state.scopedFilesToUpload,\n stateProgress: (state) => state.progress,\n statePolling: (state) => state.polling,\n};\n\nconst getDefaultPdfState = () => {\n return {\n pdfs: null,\n pdfBinary: new ArrayBuffer(0),\n filesToUpload: [],\n scopedFilesToUpload: null,\n progress: [],\n polling: null,\n };\n};\n\n// initial state\nconst state = getDefaultPdfState();\n\nconst actions = {\n /***\n *\n */\n async getPdfs({ commit }, folder_id) {\n let data = await axiosWrapper.get(\n \"/pdf_binary/all\",\n null,\n { folder_id: folder_id },\n { \"Content-Type\": \"application/json\" }\n );\n\n commit(\"setPdfs\", data);\n },\n\n /***\n *\n */\n async getPdfsByBatchId({ commit }, batchId) {\n let data = await axiosWrapper.get(\n \"/pdf_binary/poll\",\n null,\n { batch_id: batchId },\n { \"Content-Type\": \"application/json\" }\n );\n commit(\"setProgress\", data);\n },\n\n /**\n *\n * @param {*} param0\n * @param {*} data\n */\n async getPdf({ commit }, documentId) {\n const response = await axiosWrapper.get(\n `/pdf_binary/`,\n null,\n { document_id: documentId },\n null,\n \"arraybuffer\"\n );\n const pdfBinaryArray = response.data;\n commit(\"setPdfBinary\", pdfBinaryArray);\n },\n\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async deletePdf({}, { folder_id, document_id }) {\n await axiosWrapper.delete(\n `/pdf_binary/`,\n null,\n {\n folder_id: folder_id,\n document_id: document_id,\n },\n { \"Content-Type\": \"application/json\" }\n );\n },\n\n /***\n *\n */\n // eslint-disable-next-line no-empty-pattern\n async storePdf({}, { folder_id, file, permissions }) {\n let formData = {\n file: file.file,\n folder_id: folder_id,\n //append the file path because the fastApi Upload file uses as file name the original one\n name: file.filePath,\n permissions: permissions,\n };\n\n const response = await axiosWrapper.postForm(`/pdf_binary/`, formData);\n return response.data.message;\n },\n\n /***\n *\n */\n // eslint-disable-next-line no-empty-pattern\n async shareDocument({}, { source_document_id, to_user_username }) {\n await axiosWrapper.post(`/pdf_binary/share_document`, {\n source_document_id: source_document_id,\n to_user_username: to_user_username,\n });\n },\n\n /***\n *\n */\n // eslint-disable-next-line no-empty-pattern\n async renameDocument({}, { documentId, newName }) {\n let formData = {\n new_name: newName,\n };\n const response = await axiosWrapper.putForm(\n `/pdf_binary/:document_id/rename`,\n formData,\n {\n document_id: encodeURIComponent(documentId),\n }\n );\n return response.data.document_metadata.name;\n },\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async moveDocument({}, { documentId, folderId }) {\n await axiosWrapper.put(`/pdf_binary/move`, {\n document_id: documentId,\n folder_id: folderId,\n });\n },\n};\n\nconst mutations = {\n /**\n *\n * @param {*} state\n * @param {*} data\n */\n setPdfs(state, data) {\n if (data) {\n state.pdfs = data.data.elements;\n // set the size for the dashboard table\n state.pdfs.forEach((file) => {\n const fileSizeObj = getFileSize(file.size, null, 0);\n file.byteSize = file.size;\n file.size = fileSizeObj.completeSize;\n });\n }\n },\n /**\n *\n * @param {*} state\n * @param {*} pdfBinary\n */\n setPdfBinary(state, pdfBinary) {\n state.pdfBinary = pdfBinary;\n },\n /**\n *\n * @param {*} state\n * @param {*} files\n */\n setScopedFilesToUpload(state, files) {\n state.scopedFilesToUpload = files;\n state.filesToUpload.push(...files);\n },\n\n /**\n *\n * @param {*} state\n * @param {*} data\n */\n setProgress(state, data) {\n // here map in the filesToUpload the state of the upload\n if (data.data) {\n state.progress = data.data.elements;\n }\n },\n /**\n *\n * @param {*} state\n * @param {*} polling\n */\n setPolling(state, polling) {\n state.polling = polling;\n },\n /**\n *\n * @param {*} state\n */\n resetPdfState(state) {\n Object.assign(state, getDefaultPdfState());\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import axiosWrapper from \"../../plugins/axios/axiosWrapper\";\n\nconst getDefaultSearchState = () => {\n return {\n searchResults: null,\n searchQuery: null,\n llmSearchQueryId: null,\n llmSearchInProgress: false,\n searchMode: null,\n };\n};\n\n// initial state\nconst state = getDefaultSearchState();\n\nconst getters = {\n stateSearchResults: (state) => state.searchResults,\n stateSearchQuery: (state) => state.searchQuery,\n stateLLMSearchQueryId: (state) => state.llmSearchQueryId,\n stateLLMSearchInProgress: (state) => state.llmSearchInProgress,\n stateSearchMode: (state) => state.searchMode,\n};\n\nconst actions = {\n /**\n *\n * @param {*} param0\n * @param {*} param1\n * @returns\n */\n // eslint-disable-next-line no-empty-pattern\n async submitRating({}, { search_result_id, rating }) {\n let payload = {\n search_result_id: search_result_id,\n rating: rating,\n };\n\n return await axiosWrapper.post(\"/search/rate\", payload);\n },\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n async search({ commit }, { parentFolderId, documentId, key, llmSearch }) {\n const payload = {\n folder_id: parentFolderId,\n document_id: documentId,\n searchKey: key,\n llm_search: llmSearch,\n };\n\n const response = await axiosWrapper.post(`/search/`, payload);\n\n commit(\"setSearchResults\", response.data);\n },\n\n async queryLLM({ commit }, { searchQueryId }) {\n try {\n commit(\"setLLMScope\", {\n queryId: searchQueryId,\n llmSearchInProgress: true,\n });\n\n const response = await longPolling(\n () =>\n axiosWrapper.get(\n `/search_query/:search_query_id/llm_answer`,\n { search_query_id: searchQueryId },\n null,\n { \"Content-Type\": \"application/json\" }\n ),\n 2000,\n 30\n );\n\n commit(\"setLLMAnswer\", response.data);\n commit(\"setLLMScope\", { queryId: null, llmSearchInProgress: false });\n } catch (error) {\n // Do nothing?\n }\n },\n\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async highlightedPdf({}, { documentId, keyElements }) {\n const payload = {\n document_id: documentId,\n key_elements: keyElements,\n };\n\n return await axiosWrapper.post(\n `/search/highlighted_pdf/`,\n payload,\n null,\n \"arraybuffer\"\n );\n },\n /**\n *\n * @param {*} param0\n * @returns\n */\n // eslint-disable-next-line no-empty-pattern\n async reportIssue({}, { name, folderId, issueType, issueInfo }) {\n const payloadData = {\n name: name,\n folder_id: folderId,\n issue_type: issueType,\n issue_info: issueInfo,\n };\n\n try {\n return await axiosWrapper.post(\"/reported_issue/\", payloadData);\n } catch (error) {\n return false;\n }\n },\n};\n\nconst mutations = {\n /**\n *\n * @param {*} state\n * @param {*} payload\n */\n setSearchResults(state, payload) {\n state.searchResults = payload;\n },\n /**\n *\n * @param {*} state\n * @param {*} payload\n * @returns\n */\n setLLMAnswer(state, payload) {\n if (!state.searchResults) {\n return;\n }\n\n // this can be any llm answer\n // update the value only if the current loaded values\n // belong to the same llm search query\n if (state.llmSearchQueryId === state.searchResults.search_query_id) {\n state.searchResults.rag = payload;\n }\n },\n /**\n *\n * @param {*} state\n * @param {*} searchQuery\n */\n setSearchQueryObject(state, searchQueryObject) {\n state.searchQuery = searchQueryObject.searchQuery?.trim();\n state.searchMode = searchQueryObject.searchMode;\n },\n /**\n *\n * @param {*} state\n * @param {*} param1\n */\n setLLMScope(state, { queryId, llmSearchInProgress }) {\n state.llmSearchQueryId = queryId;\n state.llmSearchInProgress = llmSearchInProgress;\n },\n\n /**\n *\n * @param {*} state\n */\n resetSearchState(state) {\n Object.assign(state, getDefaultSearchState());\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n\nconst longPolling = async (axiosCallFunc, interval = 2000, maxRetries = 10) => {\n let count = 0;\n while (count <= maxRetries) {\n count++;\n\n try {\n const response = await axiosCallFunc();\n return response;\n } catch (error) {\n // Do nothing\n } finally {\n await new Promise((r) => setTimeout(r, interval));\n }\n }\n\n throw new Error(\"Polling finished unsuccessfully\");\n};\n","import axiosWrapper from \"../../plugins/axios/axiosWrapper\";\n\nconst getDefaultFolderState = () => {\n return {\n homeId: null,\n subFolders: null,\n currentFolderId: null,\n breadcrumbs: [],\n };\n};\n\n// initial state\nconst state = getDefaultFolderState();\n\nconst getters = {\n stateHomeId: (state) => state.homeId,\n stateSubFolders: (state) => state.subFolders,\n stateCurrentFolderId: (state) => state.currentFolderId,\n stateBreadcrumbs: (state) => state.breadcrumbs,\n};\n\nconst actions = {\n /**\n *\n */\n async home({ commit, state }) {\n let data = await axiosWrapper.get(\"/folder/home\", null, null, {\n \"Content-Type\": \"application/json\",\n });\n\n commit(\"setHomeId\", data.data.elements[0].folder_id);\n commit(\"setCurrentFolderId\", state.homeId);\n return data.data.elements[0];\n },\n\n /***\n *\n */\n async getFolders({ commit }, parent_folder_id) {\n let data = await axiosWrapper.get(\n \"/folder/\",\n null,\n { parent_folder_id: parent_folder_id },\n { \"Content-Type\": \"application/json\" }\n );\n\n commit(\"setSubFolders\", data.data.elements);\n },\n\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async deleteFolder({}, { folderId }) {\n await axiosWrapper.delete(\n `/folder/`,\n null,\n { folder_id: folderId },\n { \"Content-Type\": \"application/json\" }\n );\n },\n\n /***\n *\n */\n async storeFolder(\n // eslint-disable-next-line no-empty-pattern\n {},\n { parentFolderId, folderName, permissions, folderType, folderStatus }\n ) {\n const newFolderPayload = {\n parent_folder_id: parentFolderId,\n folder_name: folderName,\n permissions: permissions,\n folder_type: folderType,\n status: folderStatus,\n };\n\n const response = await axiosWrapper.post(`/folder/`, newFolderPayload);\n return response.data.message;\n },\n /***\n *\n */\n async shareFolder({ rootState }, { source_folder_id, to_user_username }) {\n return await axiosWrapper.post(\n `/folder/:user/share_folder`,\n {\n source_folder_id: source_folder_id,\n to_user_username: to_user_username,\n },\n { user: rootState.users.user.username }\n );\n },\n\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async renameFolder({}, { folderId, newName }) {\n let formData = {\n new_name: newName,\n };\n await axiosWrapper.putForm(`/folder/:folder_id/rename`, formData, {\n folder_id: folderId,\n });\n },\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async moveFolder({}, { folderId, targetFolderId }) {\n await axiosWrapper.put(`/folder/move`, {\n folder_id: folderId,\n target_folder_id: targetFolderId,\n });\n },\n};\n\nconst mutations = {\n /**\n *\n * @param {*} state\n */\n setHomeId(state, folderId) {\n state.homeId = folderId;\n },\n /**\n *\n * @param {*} state\n * @param {*} data\n */\n setSubFolders(state, data) {\n state.subFolders = data;\n },\n\n /**\n *\n * @param {*} state\n * @param {*} folderId\n */\n setCurrentFolderId(state, folderId) {\n state.currentFolderId = folderId;\n },\n /**\n *\n * @param {*} state\n * @param {*} breadcrumbs\n */\n setBreadcrumbs(state, breadcrumbs) {\n if (breadcrumbs instanceof Array) {\n state.breadcrumbs = breadcrumbs;\n } else {\n if (state.breadcrumbs) {\n state.breadcrumbs.push(breadcrumbs);\n } else {\n state.breadcrumbs = new Array(breadcrumbs);\n }\n }\n },\n\n /**\n *\n * @param {*} state\n * @param {*} breadcrumbs\n */\n resetBreadcrumb(state, breadcrumbs) {\n state.breadcrumbs = breadcrumbs;\n },\n\n /**\n *\n * @param {*} state\n */\n resetFolderState(state) {\n Object.assign(state, getDefaultFolderState());\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import axiosWrapper from \"../../plugins/axios/axiosWrapper\";\n\nconst actions = {\n // eslint-disable-next-line no-empty-pattern\n async checkoutComplete({}, checkoutSessionId) {\n return await axiosWrapper.get(\n `/subscription/checkout_complete/:checkoutSessionId`,\n { checkoutSessionId: checkoutSessionId }\n );\n },\n};\n\nexport default {\n actions,\n};\n","\n\nconst getters = {\n stateIsLoading: state => state.isLoading,\n};\n\n\nconst getDefaultLoadingState = () => {\n return {\n isLoading: false,\n }\n}\n\n// initial state\nconst state = getDefaultLoadingState();\n\n\n\nconst mutations = {\n setLoading(state, val) {\n state.isLoading = val;\n },}\n\n\nexport default {\n state, \n mutations,\n getters\n \n};","import axiosWrapper from \"../../plugins/axios/axiosWrapper\";\n\nconst getDefaultSearchQueryState = () => {\n return {\n searchQueryList: null,\n querySearchResults: null,\n };\n};\n\n// initial state\nconst state = getDefaultSearchQueryState();\n\nconst getters = {\n stateSearchQueryList: (state) => state.searchQueryList,\n stateQuerySearchResults: (state) => state.querySearchResults,\n};\n\nconst actions = {\n /**\n *\n * @param {*} param0\n */\n async getSearchQueries({ commit }) {\n let data = await axiosWrapper.get(`/search_query/all`, null, null, {\n \"Content-Type\": \"application/json\",\n });\n\n commit(\"setSearchQueries\", data);\n },\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n // eslint-disable-next-line no-empty-pattern\n async deleteSearchQuery({}, searchQueryId) {\n await axiosWrapper.delete(\n `/search_query/:search_query_id`,\n { search_query_id: searchQueryId },\n null,\n { \"Content-Type\": \"application/json\" }\n );\n },\n\n /**\n *\n * @param {*} param0\n * @param {*} param1\n */\n async getSearchResultsByQuery({ commit }, searchQueryId) {\n let data = await axiosWrapper.get(\n `/search_query/:search_query_id/search_results`,\n { search_query_id: searchQueryId },\n null,\n { \"Content-Type\": \"application/json\" }\n );\n\n commit(\"setQuerySearchResults\", data.data);\n },\n};\n\nconst mutations = {\n /**\n *\n * @param {*} state\n * @param {*} payload\n */\n setSearchQueries(state, payload) {\n // construct the stringified search scope\n payload.data.elements.forEach((searchQuery) => {\n const folderScope = searchQuery.search_scope.folder_hierarchy\n .map((el) => el.folder_name)\n .join(\"/\");\n\n searchQuery.search_scope_str = searchQuery.document_id\n ? folderScope + \"/\" + searchQuery.search_scope.document_name\n : folderScope;\n });\n state.searchQueryList = payload.data.elements;\n },\n /**\n *\n * @param {*} state\n * @param {*} payload\n */\n setQuerySearchResults(state, payload) {\n state.querySearchResults = payload;\n },\n\n resetSearchQueryState(state) {\n Object.assign(state, getDefaultSearchQueryState());\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","export class TreeViewItem {\n constructor(\n name,\n id,\n itemId,\n dbItemId,\n parentId,\n type,\n status,\n icon,\n permissions,\n children = [],\n selected = false,\n expanded = false,\n disabled = false,\n meta = {}\n ) {\n this.name = name;\n this.id = id;\n this.itemId = itemId;\n this.dbItemId = dbItemId;\n this.parentId = parentId;\n this.type = type;\n this.status = status;\n this.permissions = permissions;\n this.icon = icon;\n this.children = children;\n this.selected = selected;\n this.expanded = expanded;\n this.disabled = disabled;\n this.meta = meta;\n }\n}\n\nconst getDefaultTreeState = () => {\n return { searchScope: [], tree: [], cache: {}, nodesInProgress: [] };\n};\n\n// initial state\nconst state = getDefaultTreeState();\n\nconst getters = {\n stateSearchScope: (state) => state.searchScope,\n stateTree: (state) => state.tree,\n stateCache: (state) => state.cache,\n stateNodesInProgress: (state) => state.nodesInProgress,\n};\n\nconst actions = {\n initTree({ state, commit }, { itemId, status }) {\n if (state.tree.length == 0) {\n const treeNode = new TreeViewItem(\n \"home\",\n \"1\",\n itemId,\n itemId,\n null,\n \"folder\",\n status,\n \"mdi-folder-outline\",\n \"write\",\n [],\n true,\n true,\n false,\n {\n hierarchicalParents: [\n {\n folder_id: itemId,\n folder_name: \"home\",\n },\n ],\n }\n );\n state.tree.push(treeNode);\n state.searchScope = [treeNode];\n } else {\n commit(\"setSearchScope\", state.tree[0]);\n }\n },\n};\nconst mutations = {\n /**\n *\n * @param {*} state\n * @param {*} itemId\n */\n\n /**\n *\n * @param {*} state\n * @param {*} searchScope\n */\n setSearchScope(state, newScope) {\n // from the\n newScope.selected = true;\n if (state.searchScope[0].id !== newScope.id) {\n state.searchScope[0].selected = false;\n }\n\n state.searchScope[0] = newScope;\n },\n /**\n *\n * @param {*} state\n * @param {*} breadcrumbs\n */\n // eslint-disable-next-line no-empty-pattern\n setChildNodes({}, { parentNode, nodes }) {\n parentNode.children = [];\n // create one node for each item in nodes\n let idCounter = 1;\n const generateId = () => idCounter++;\n nodes.forEach((node) => {\n const itemId =\n node.type === \"document\" ? node.document_id : node.folder_id;\n const children =\n node.type === \"document\" || node.status === 210\n ? []\n : [new TreeViewItem(\" \", -1, -1, null, \"folder\")];\n const icon =\n node.type === \"document\" ? \"mdi-file-outline\" : \"mdi-folder-outline\";\n\n parentNode.children.push(\n new TreeViewItem(\n node.name,\n parentNode.id + \"_\" + generateId(),\n itemId,\n node.type == \"document\" ? node.document_metadata_id : node.folder_id,\n parentNode.itemId,\n node.type,\n node.status,\n icon,\n node.permissions,\n children,\n false,\n false,\n false,\n {\n hierarchicalParents:\n node.type == \"document\"\n ? parentNode.meta.hierarchicalParents\n : parentNode.meta.hierarchicalParents.concat({\n folder_id: itemId,\n folder_name: node.name,\n }),\n }\n )\n );\n });\n },\n /**\n *\n * @param {*} state\n * @param {*} param1\n */\n setCache(state, { folderId, content }) {\n state.cache[folderId] = content;\n },\n /**\n *\n * @param {*} state\n * @param {*} nodes\n */\n setNodesInProgress(state, nodes) {\n state.nodesInProgress = nodes;\n },\n /**\n *\n * @param {*} state\n * @param {*} param1\n */\n removeFromCache(state, { folderId }) {\n delete state.cache[folderId];\n },\n /**\n *\n * @param {*} state\n */\n resetTreeState(state) {\n Object.assign(state, getDefaultTreeState());\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import { createStore } from \"vuex\";\nimport createPersistedState from \"vuex-persistedstate\";\n\nimport users from \"./modules/users\";\nimport pdfs from \"./modules/pdfs\";\nimport searches from \"./modules/searches\";\nimport folders from \"./modules/folders\";\nimport subscriptions from \"./modules/subscriptions\";\nimport loading from \"./modules/loading\";\nimport searchQueries from \"./modules/searchQueries\";\nimport tree from \"./modules/tree\";\n\nimport _ from \"lodash\";\n\nexport const initialStoreModules = {\n users,\n pdfs,\n searches,\n folders,\n subscriptions,\n loading,\n searchQueries,\n tree,\n};\n\nconst store = createStore({\n modules: _.cloneDeep(initialStoreModules),\n mutations: {\n // reset default state modules by looping around the initialStoreModules\n resetState(state) {\n _.forOwn(initialStoreModules, (value, key) => {\n if (state[key] !== \"language\") {\n state[key] = _.cloneDeep(value.state);\n } else {\n console.log(state[key]);\n }\n });\n store.commit(\"setLoading\", false);\n },\n },\n plugins: [createPersistedState({ storage: window.sessionStorage })],\n});\n\nexport default store;\n","import { createI18n } from \"vue-i18n\";\nimport seoTranslations from \"./seo/seoTranslations.json\";\n\nconst SUPPORTED_LOCALES = Object.keys(seoTranslations);\n\nclass I18nSigleton {\n static #i18nInstance;\n\n constructor() {\n // return instance if exists\n if (I18nSigleton.#i18nInstance) return I18nSigleton.#i18nInstance;\n\n // create instance\n I18nSigleton.#i18nInstance = this;\n this.initI18n();\n }\n\n /**\n *\n * @returns\n */\n getInstance() {\n return this.i18nInstance;\n }\n\n /**\n *\n * @param {*} options\n * @returns\n */\n initI18n(\n options = {\n fallbackLocale: \"en\",\n legacy: false,\n }\n ) {\n options.locale = this.setupLocale(options.fallbackLocale);\n\n // create the module\n const i18nInstance = createI18n(options);\n\n this.i18nInstance = i18nInstance;\n }\n /**\n *\n * @param {*} fallbackLocale\n * @returns\n */\n setupLocale(fallbackLocale) {\n //language from local storage\n const language = localStorage.getItem(\"language\");\n\n // get the browser locale\n const userLanguage = language\n ? language\n : window.navigator.language ||\n navigator.userLanguage ||\n navigator.language;\n\n // check if it belongs to the supported locales\n const strippedLanguageCode = userLanguage.split(\"-\")[0].toLowerCase();\n\n // if it doesn't belong, use as default the fallback locale, which is english\n const locale = SUPPORTED_LOCALES.includes(strippedLanguageCode)\n ? strippedLanguageCode\n : fallbackLocale;\n\n return locale;\n }\n}\n\nconst i18nSingleton = new I18nSigleton();\nconst i18nInstance = i18nSingleton.getInstance();\n\nexport { i18nInstance, SUPPORTED_LOCALES };\n","\n /**\n * Method to get a file size object based on the original size in bytes.\n * \n * @param {*} sizeInBytes \n * @param {*} metric : If optional paramter metric is passed, we get the size in the desired metric (Bytes, KB, etc.)\n * @param {*} decimalPoint: decimal point accurracy\n * @returns \n */\n function getFileSize(sizeInBytes, metric, decimalPoint=2) {\n if(sizeInBytes == 0) return '0 Bytes';\n\n const k = 1024,\n sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n \n let i = Math.floor(Math.log(sizeInBytes) / Math.log(k));\n\n if(metric){\n i = sizes.findIndex( size => size.toLowerCase() === metric.toLowerCase());\n }\n\n const exactSize = parseFloat((sizeInBytes / Math.pow(k, i)).toFixed(decimalPoint)); \n\n // format the result \n const completeSize = exactSize + ' ' + sizes[i];\n const fileSizeObject = {\n size: exactSize,\n metric: sizes[i],\n completeSize: completeSize,\n };\n return fileSizeObject; \n }\n\n export {getFileSize}","\n\n\n\n\n","import { render } from \"./Spinner.vue?vue&type=template&id=2d1dd440&scoped=true\"\nimport script from \"./Spinner.vue?vue&type=script&lang=js\"\nexport * from \"./Spinner.vue?vue&type=script&lang=js\"\n\nimport \"./Spinner.vue?vue&type=style&index=0&id=2d1dd440&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2d1dd440\"]])\n\nexport default __exports__","var map = {\n\t\"./en.json\": [\n\t\t2161,\n\t\t1990\n\t],\n\t\"./it.json\": [\n\t\t9139,\n\t\t7996\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 621;\nmodule.exports = webpackAsyncContext;"],"names":["deepSearch","data","value","key","sub","node","result","sortFolderContent","pdfList","folderList","contentToSort","pdfs","forEach","pdf","type","subFolders","folder","name","folder_name","concat","sortTable","content","sort","a","b","localeCompare","undefined","sensitivity","_createBlock","_component_v_app","default","_withCtx","_createVNode","_component_spinner","_component_router_view","_component_v_main","class","_ctx","$route","fullPath","_","components","spinner","Spinner","credentialPaths","computed","isAuthenticated","this","$store","getters","checkContentPath","methods","$router","currentRoute","contentPath","filter","element","includes","length","mounted","__exports__","render","plausible","createPlausible","init","domain","process","apiHost","trackLocalhost","settings","enableAutoOutboundTracking","enableAutoPageviews","partytown","head","createHead","groups","admin","dev","legenda","legenda_plus","views","customerPortalView","flat","shareView","subscriptionEndView","hasView","view","tier","isUserAuthorized","app","createApp","App","config","globalProperties","$filters","errorHandler","err","vm","info","console","debug","use","vuetifyInstance","store","i18nInstance","router","languageService","loadStartUpMessages","global","locale","fallbackLocale","then","mount","catch","getThemes","legendaTheme","colors","neutral","surface","primary","secondary","contrast","error","success","warning","border","danger","dark","olympialexTheme","defaultTheme","localStorage","getItem","createVuetify","theme","themes","options","customProperties","typography","font","family","base","heading","directives","baseRoutes","path","redirect","to","language","params","Object","keys","seoTranslations","Navbar","Footer","props","meta","requiresGuest","getNavBar","legendaRoutes","requiresAuth","route","folder_id","Number","doc_metadata_id","legendaDashboardRoutes","breadCrumb","title","olympialexDashboardRoutes","createRouter","history","createWebHistory","routes","beforeEach","from","next","matched","some","record","isUserLoggedIn","isOlympialexView","olympiaLexView","searchScope","stateSearchScope","olympialexUserRoutes","legendaUserRoutes","map","x","itemId","LanguageService","setLocale","i18nRoot","commit","setItem","loadLocaleMessages","messages","setLocaleMessage","setI18nLanguage","nextTick","i18n","description","useHead","constructor","AxiosSingleton","_instance","initAxios","instance","getAxiosInstance","axiosInstance","axios","create","withCredentials","baseURL","configureAxios","interceptors","request","url","useSpinner","method","currentUrl","URL","entries","urlParams","k","v","pathname","replace","encodeURIComponent","response","async","originalRequest","status","_retry","push","post","refreshError","user","stateUser","subscription_tier","window","location","href","urlsToOmit","found","AxiosWrapper","singleton","get","urlParameters","searchParameters","headers","responseType","searchParams","URLSearchParams","append","payloadData","parameters","postForm","formData","put","putForm","delete","axiosWrapper","getDefaultUserState","freeSpace","clickedTab","llmSearchOption","state","actions","register","token","legal","marketing","profiling","training","password","logIn","dispatch","username","client_app_name","loginResponse","users","viewMe","JSON","parse","logOut","getFreeSpace","preUpdatePassword","updatePassword","payload","changePassword","currentPassword","newPassword","confirmNewPassword","preRegisterUser","olympiaLexLogin","mutations","setUser","setOlympiaLexView","resetUserState","setFreeSpace","responseData","free_space","setLanguage","setClickedTab","setLlmSearchOption","statePdfs","statePdfBinary","pdfBinary","stateFilesToUpload","filesToUpload","stateScopedFilesToUpload","scopedFilesToUpload","stateProgress","progress","statePolling","polling","getDefaultPdfState","ArrayBuffer","getPdfs","getPdfsByBatchId","batchId","batch_id","getPdf","documentId","document_id","pdfBinaryArray","deletePdf","storePdf","file","permissions","filePath","message","shareDocument","source_document_id","to_user_username","renameDocument","newName","new_name","document_metadata","moveDocument","folderId","setPdfs","elements","fileSizeObj","getFileSize","size","byteSize","completeSize","setPdfBinary","setScopedFilesToUpload","files","setProgress","setPolling","resetPdfState","assign","getDefaultSearchState","searchResults","searchQuery","llmSearchQueryId","llmSearchInProgress","searchMode","stateSearchResults","stateSearchQuery","stateLLMSearchQueryId","stateLLMSearchInProgress","stateSearchMode","submitRating","search_result_id","rating","search","parentFolderId","llmSearch","searchKey","llm_search","queryLLM","searchQueryId","queryId","longPolling","search_query_id","highlightedPdf","keyElements","key_elements","reportIssue","issueType","issueInfo","issue_type","issue_info","setSearchResults","setLLMAnswer","rag","setSearchQueryObject","searchQueryObject","trim","setLLMScope","resetSearchState","axiosCallFunc","interval","maxRetries","count","Promise","r","setTimeout","Error","getDefaultFolderState","homeId","currentFolderId","breadcrumbs","stateHomeId","stateSubFolders","stateCurrentFolderId","stateBreadcrumbs","home","getFolders","parent_folder_id","deleteFolder","storeFolder","folderName","folderType","folderStatus","newFolderPayload","folder_type","shareFolder","rootState","source_folder_id","renameFolder","moveFolder","targetFolderId","target_folder_id","setHomeId","setSubFolders","setCurrentFolderId","setBreadcrumbs","Array","resetBreadcrumb","resetFolderState","checkoutComplete","checkoutSessionId","stateIsLoading","isLoading","getDefaultLoadingState","setLoading","val","getDefaultSearchQueryState","searchQueryList","querySearchResults","stateSearchQueryList","stateQuerySearchResults","getSearchQueries","deleteSearchQuery","getSearchResultsByQuery","setSearchQueries","folderScope","search_scope","folder_hierarchy","el","join","search_scope_str","document_name","setQuerySearchResults","resetSearchQueryState","TreeViewItem","id","dbItemId","parentId","icon","children","selected","expanded","disabled","getDefaultTreeState","tree","cache","nodesInProgress","stateTree","stateCache","stateNodesInProgress","initTree","treeNode","hierarchicalParents","setSearchScope","newScope","setChildNodes","parentNode","nodes","idCounter","generateId","document_metadata_id","setCache","setNodesInProgress","removeFromCache","resetTreeState","initialStoreModules","searches","folders","subscriptions","loading","searchQueries","createStore","modules","resetState","log","plugins","createPersistedState","storage","sessionStorage","SUPPORTED_LOCALES","I18nSigleton","_i18nInstance","initI18n","getInstance","legacy","setupLocale","createI18n","userLanguage","navigator","strippedLanguageCode","split","toLowerCase","i18nSingleton","sizeInBytes","metric","decimalPoint","sizes","i","Math","floor","findIndex","exactSize","parseFloat","pow","toFixed","fileSizeObject","_createElementBlock","_hoisted_1","_createElementVNode","_component_v_progress_circular","width","indeterminate","color","_createCommentVNode","mapGetters","webpackAsyncContext","req","__webpack_require__","o","resolve","e","code","ids","t","module","exports"],"sourceRoot":""}