1 |
- {"version":3,"file":"settings-apps-view-4529.js?v=2b4445567a90b3000029","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/constants/AppsConstants.js","webpack:///nextcloud/apps/settings/src/service/rebuild-navigation.js","webpack:///nextcloud/apps/settings/src/mixins/AppManagement.js","webpack:///nextcloud/apps/settings/src/constants/AppstoreCategoryIcons.ts","webpack:///nextcloud/apps/settings/src/store/apps-store.ts","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=008124b4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=25b36460&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=5ee601b2&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=bb597eea&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=cf0a1ae6&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=533705fa&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=9c32407e&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=72285f1b&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=2f300fa2&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=2193f4e0&prod&scoped=true&lang=css","webpack:///nextcloud/apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=f9073bbe&prod&scoped=true&lang=css","webpack:///nextcloud/apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=1e611b27&prod&scoped=true&lang=css","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?af1e","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/SvgFilterMixin.vue?5bcd","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?6605","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?a9a1","webpack:///nextcloud/apps/settings/src/components/AppList/AppLevelBadge.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppList/AppLevelBadge.vue?8473","webpack://nextcloud/./apps/settings/src/components/AppList/AppLevelBadge.vue?74e8","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?fc42","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?26fd","webpack:///nextcloud/apps/settings/src/views/AppStore.vue","webpack:///nextcloud/node_modules/yocto-queue/index.js","webpack:///nextcloud/node_modules/p-limit/index.js","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/AppList.vue?5484","webpack://nextcloud/./apps/settings/src/components/AppList.vue?8acf","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ee21","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue","webpack:///nextcloud/apps/settings/src/utils/appDiscoverParser.ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?9ef0","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?0759","webpack:///nextcloud/apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/AppStore.vue?a414","webpack://nextcloud/./apps/settings/src/views/AppStore.vue?47b2","webpack:///nextcloud/apps/settings/src/views/AppStoreNavigation.vue","webpack:///nextcloud/apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/AppStoreNavigation.vue?3bdc","webpack://nextcloud/./apps/settings/src/views/AppStoreNavigation.vue?6e6f","webpack:///nextcloud/apps/settings/src/views/AppStoreSidebar.vue","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?9109","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?26cf","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?d299","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?cd04","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?311d","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?9ed4","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?98a6","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?d4df","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?88c0","webpack://nextcloud/./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?d492","webpack:///nextcloud/apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/settings/src/composables/useAppIcon.ts","webpack://nextcloud/./apps/settings/src/views/AppStoreSidebar.vue?264a","webpack://nextcloud/./apps/settings/src/views/AppStoreSidebar.vue?5373"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/** Enum of verification constants, according to Apps */\nexport const APPS_SECTION_ENUM = Object.freeze({\n\tdiscover: t('settings', 'Discover'),\n\tinstalled: t('settings', 'Your apps'),\n\tenabled: t('settings', 'Active apps'),\n\tdisabled: t('settings', 'Disabled apps'),\n\tupdates: t('settings', 'Updates'),\n\t'app-bundles': t('settings', 'App bundles'),\n\tfeatured: t('settings', 'Featured apps'),\n\tsupported: t('settings', 'Supported apps'), // From subscription\n})\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default () => {\n\treturn axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\t.then(({ data }) => {\n\t\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\temit('nextcloud:app-menu.refresh', { apps: data.ocs.data })\n\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport rebuildNavigation from '../service/rebuild-navigation.js'\n\nexport default {\n\tcomputed: {\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map(group => { return { id: group, name: group } })\n\t\t},\n\t\tinstalling() {\n\t\t\treturn this.$store.getters.loading('install')\n\t\t},\n\t\tisLoading() {\n\t\t\treturn this.app && this.$store.getters.loading(this.app.id)\n\t\t},\n\t\tenableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Download and enable')\n\t\t\t}\n\t\t\treturn t('settings', 'Enable')\n\t\t},\n\t\tforceEnableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Allow untested app')\n\t\t\t}\n\t\t\treturn t('settings', 'Allow untested app')\n\t\t},\n\t\tenableButtonTooltip() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tforceEnableButtonTooltip() {\n\t\t\tconst base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn base + ' ' + t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn base\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tif (this.app && this.app.groups && this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasyncFindGroup(query) {\n\t\t\treturn this.$store.dispatch('getGroups', { search: query, limit: 5, offset: 0 })\n\t\t},\n\t\tisLimitedToGroups(app) {\n\t\t\tif (this.app.groups.length || this.groupCheckedAppsData) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tsetGroupLimit() {\n\t\t\tif (!this.groupCheckedAppsData) {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: [] })\n\t\t\t}\n\t\t},\n\t\tcanLimitToGroups(app) {\n\t\t\tif ((app.types && app.types.includes('filesystem'))\n\t\t\t\t\t|| app.types.includes('prelogin')\n\t\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t\t|| app.types.includes('prevent_group_restriction')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\taddGroupLimitation(groupArray) {\n\t\t\tconst group = groupArray.pop()\n\t\t\tconst groups = this.app.groups.concat([]).concat([group.id])\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tconst currentGroups = this.app.groups.concat([])\n\t\t\tconst index = currentGroups.indexOf(group.id)\n\t\t\tif (index > -1) {\n\t\t\t\tcurrentGroups.splice(index, 1)\n\t\t\t}\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tthis.$store.dispatch('forceEnableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tenable(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tdisable(appId) {\n\t\t\tthis.$store.dispatch('disableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tremove(appId) {\n\t\t\tthis.$store.dispatch('uninstallApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tinstall(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tupdate(appId) {\n\t\t\tthis.$store.dispatch('updateApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { mdiAccount, mdiAccountMultiple, mdiArchive, mdiCheck, mdiClipboardFlow, mdiClose, mdiCog, mdiControllerClassic, mdiDownload, mdiFileDocumentEdit, mdiFolder, mdiKey, mdiMagnify, mdiMonitorEye, mdiMultimedia, mdiOfficeBuilding, mdiOpenInApp, mdiSecurity, mdiStar, mdiStarCircleOutline, mdiStarShooting, mdiTools, mdiViewDashboard, } from '@mdi/js';\n/**\n * SVG paths used for appstore category icons\n */\nexport default Object.freeze({\n // system special categories\n discover: mdiStarCircleOutline,\n installed: mdiAccount,\n enabled: mdiCheck,\n disabled: mdiClose,\n bundles: mdiArchive,\n supported: mdiStarShooting,\n featured: mdiStar,\n updates: mdiDownload,\n // generic categories\n auth: mdiKey,\n customization: mdiCog,\n dashboard: mdiViewDashboard,\n files: mdiFolder,\n games: mdiControllerClassic,\n integration: mdiOpenInApp,\n monitoring: mdiMonitorEye,\n multimedia: mdiMultimedia,\n office: mdiFileDocumentEdit,\n organization: mdiOfficeBuilding,\n search: mdiMagnify,\n security: mdiSecurity,\n social: mdiAccountMultiple,\n tools: mdiTools,\n workflow: mdiClipboardFlow,\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showError } from '@nextcloud/dialogs';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport axios from '@nextcloud/axios';\nimport logger from '../logger';\nimport APPSTORE_CATEGORY_ICONS from '../constants/AppstoreCategoryIcons.ts';\nconst showApiError = () => showError(t('settings', 'An error occurred during the request. Unable to proceed.'));\nexport const useAppsStore = defineStore('settings-apps', {\n state: () => ({\n apps: [],\n categories: [],\n updateCount: loadState('settings', 'appstoreUpdateCount', 0),\n loading: {\n apps: false,\n categories: false,\n },\n loadingList: false,\n gettingCategoriesPromise: null,\n }),\n actions: {\n async loadCategories(force = false) {\n if (this.categories.length > 0 && !force) {\n return;\n }\n try {\n this.loading.categories = true;\n const { data: categories } = await axios.get(generateUrl('settings/apps/categories'));\n for (const category of categories) {\n category.icon = APPSTORE_CATEGORY_ICONS[category.id] ?? '';\n }\n this.$patch({\n categories,\n });\n }\n catch (error) {\n logger.error(error);\n showApiError();\n }\n finally {\n this.loading.categories = false;\n }\n },\n async loadApps(force = false) {\n if (this.apps.length > 0 && !force) {\n return;\n }\n try {\n this.loading.apps = true;\n const { data } = await axios.get(generateUrl('settings/apps/list'));\n this.$patch({\n apps: data.apps,\n });\n }\n catch (error) {\n logger.error(error);\n showApiError();\n }\n finally {\n this.loading.apps = false;\n }\n },\n getCategoryById(categoryId) {\n return this.categories.find(({ id }) => id === categoryId) ?? null;\n },\n getAppById(appId) {\n return this.apps.find(({ id }) => id === appId) ?? null;\n },\n },\n});\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.apps-list[data-v-008124b4]{display:flex;flex-wrap:wrap;align-content:flex-start}.apps-list--move[data-v-008124b4]{transition:transform 1s}.apps-list #app-list-update-all[data-v-008124b4]{margin-left:10px}.apps-list__toolbar[data-v-008124b4]{height:60px;padding:8px;padding-left:60px;width:100%;background-color:var(--color-main-background);position:sticky;top:0;z-index:1;display:flex;align-items:center}.apps-list--list-view[data-v-008124b4]{margin-bottom:100px;position:relative}.apps-list__list-container[data-v-008124b4]{width:100%}.apps-list__store-container[data-v-008124b4]{display:flex;flex-wrap:wrap}.apps-list__bundle-heading[data-v-008124b4]{display:flex;align-items:center;margin:20px 10px 20px 0}.apps-list__bundle-header[data-v-008124b4]{margin:0 10px 0 50px;font-weight:bold;font-size:20px;line-height:30px;color:var(--color-text-light)}#apps-list-search .app-item h2[data-v-008124b4]{margin-bottom:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList.vue\"],\"names\":[],\"mappings\":\"AAIA,4BACC,YAAA,CACA,cAAA,CACA,wBAAA,CAGA,kCACC,uBAAA,CAGD,iDACC,gBAAA,CAGD,qCACC,WAjBe,CAkBf,WAnBgB,CAqBhB,iBApBe,CAqBf,UAAA,CACA,6CAAA,CACA,eAAA,CACA,KAAA,CACA,SAAA,CACA,YAAA,CACA,kBAAA,CAGD,uCACC,mBAAA,CAEA,iBAAA,CAGD,4CACC,UAAA,CAGD,6CACC,YAAA,CACA,cAAA,CAGD,4CACC,YAAA,CACA,kBAAA,CACA,uBAAA,CAGD,2CACC,oBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,6BAAA,CAMA,gDACC,eAAA\",\"sourcesContent\":[\"\\n$toolbar-padding: 8px;\\n$toolbar-height: 44px + $toolbar-padding * 2;\\n\\n.apps-list {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\talign-content: flex-start;\\n\\n\\t// For transition group\\n\\t&--move {\\n\\t\\ttransition: transform 1s;\\n\\t}\\n\\n\\t#app-list-update-all {\\n\\t\\tmargin-left: 10px;\\n\\t}\\n\\n\\t&__toolbar {\\n\\t\\theight: $toolbar-height;\\n\\t\\tpadding: $toolbar-padding;\\n\\t\\t// Leave room for app-navigation-toggle\\n\\t\\tpadding-left: $toolbar-height;\\n\\t\\twidth: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tposition: sticky;\\n\\t\\ttop: 0;\\n\\t\\tz-index: 1;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&--list-view {\\n\\t\\tmargin-bottom: 100px;\\n\\t\\t// For positioning link overlay on rows\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__list-container {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__store-container {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t}\\n\\n\\t&__bundle-heading {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmargin: 20px 10px 20px 0;\\n\\t}\\n\\n\\t&__bundle-header {\\n\\t\\tmargin: 0 10px 0 50px;\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 20px;\\n\\t\\tline-height: 30px;\\n\\t\\tcolor: var(--color-text-light);\\n\\t}\\n}\\n\\n#apps-list-search {\\n\\t.app-item {\\n\\t\\th2 {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-item[data-v-25b36460]{position:relative}.app-item[data-v-25b36460]:hover{background-color:var(--color-background-dark)}.app-item--list-view[data-v-25b36460]{--app-item-padding: calc(var(--default-grid-baseline) * 2);--app-item-height: calc(var(--default-clickable-area) + var(--app-item-padding) * 2)}.app-item--list-view.app-item--selected[data-v-25b36460]{background-color:var(--color-background-dark)}.app-item--list-view>*[data-v-25b36460]{vertical-align:middle;border-bottom:1px solid var(--color-border);padding:var(--app-item-padding);height:var(--app-item-height)}.app-item--list-view .app-image[data-v-25b36460]{width:var(--default-clickable-area);height:auto;text-align:right}.app-item--list-view .app-image-icon svg[data-v-25b36460],.app-item--list-view .app-image-icon .icon-settings-dark[data-v-25b36460]{margin-top:5px;width:20px;height:20px;opacity:.5;background-size:cover;display:inline-block}.app-item--list-view .app-name[data-v-25b36460]{padding:0 var(--app-item-padding)}.app-item--list-view .app-name--link[data-v-25b36460]{height:var(--app-item-height);display:flex;align-items:center}.app-item--list-view .app-name--link[data-v-25b36460]::after{content:\"\";position:absolute;left:0;right:0;height:var(--app-item-height)}.app-item--list-view .app-actions[data-v-25b36460]{display:flex;gap:var(--app-item-padding);flex-wrap:wrap;justify-content:end}.app-item--list-view .app-actions .icon-loading-small[data-v-25b36460]{display:inline-block;top:4px;margin-right:10px}@media only screen and (max-width: 900px){.app-item--list-view .app-version[data-v-25b36460],.app-item--list-view .app-level[data-v-25b36460]{display:none}}@media only screen and (max-width: 512px){.app-item--list-view .app-actions[data-v-25b36460]{display:none}}.app-item--store-view[data-v-25b36460]{padding:30px}.app-item--store-view .app-image-icon .icon-settings-dark[data-v-25b36460]{width:100%;height:150px;background-size:45px;opacity:.5}.app-item--store-view .app-image-icon svg[data-v-25b36460]{position:absolute;bottom:43px;width:64px;height:64px;opacity:.1}.app-item--store-view .app-name[data-v-25b36460]{margin:5px 0}.app-item--store-view .app-name--link[data-v-25b36460]::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0}.app-item--store-view .app-actions[data-v-25b36460]{margin:10px 0}@media only screen and (min-width: 1601px){.app-item--store-view[data-v-25b36460]{width:25%}.app-item--store-view.app-item--with-sidebar[data-v-25b36460]{width:33%}}@media only screen and (max-width: 1600px){.app-item--store-view[data-v-25b36460]{width:25%}.app-item--store-view.app-item--with-sidebar[data-v-25b36460]{width:33%}}@media only screen and (max-width: 1400px){.app-item--store-view[data-v-25b36460]{width:33%}.app-item--store-view.app-item--with-sidebar[data-v-25b36460]{width:50%}}@media only screen and (max-width: 900px){.app-item--store-view[data-v-25b36460]{width:50%}.app-item--store-view.app-item--with-sidebar[data-v-25b36460]{width:100%}}@media only screen and (max-width: 1024px){.app-item--store-view[data-v-25b36460]{width:50%}}@media only screen and (max-width: 480px){.app-item--store-view[data-v-25b36460]{width:100%}}.app-icon[data-v-25b36460]{filter:var(--background-invert-if-bright)}.app-image[data-v-25b36460]{position:relative;height:150px;opacity:1;overflow:hidden}.app-image img[data-v-25b36460]{width:100%}.app-version[data-v-25b36460]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppItem.vue\"],\"names\":[],\"mappings\":\"AAIA,2BACC,iBAAA,CAEA,iCACC,6CAAA,CAGD,sCACC,0DAAA,CACA,oFAAA,CAEA,yDACC,6CAAA,CAGD,wCACC,qBAAA,CACA,2CAAA,CACA,+BAAA,CACA,6BAAA,CAGD,iDACC,mCAAA,CACA,WAAA,CACA,gBAAA,CAGD,oIAEC,cAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,qBAAA,CACA,oBAAA,CAGD,gDACC,iCAAA,CAGD,sDACC,6BAAA,CACA,YAAA,CACA,kBAAA,CAMD,6DACC,UAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,6BAAA,CAGD,mDACC,YAAA,CACA,2BAAA,CACA,cAAA,CACA,mBAAA,CAEA,uEACC,oBAAA,CACA,OAAA,CACA,iBAAA,CAKF,0CACC,oGAEC,YAAA,CAAA,CAKF,0CACC,mDACC,YAAA,CAAA,CAKH,uCACC,YAAA,CAEA,2EACC,UAAA,CACA,YAAA,CACA,oBAAA,CACA,UAAA,CAGD,2DACC,iBAAA,CACA,WAAA,CAEA,UAAA,CACA,WAAA,CACA,UAAA,CAGD,iDACC,YAAA,CAGD,8DACC,UAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA,CAGD,oDACC,aAAA,CAGD,2CApCD,uCAqCE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,2CA5CD,uCA6CE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,2CApDD,uCAqDE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,0CA5DD,uCA6DE,SAAA,CAEA,8DACC,UAAA,CAAA,CAIF,2CApED,uCAqEE,SAAA,CAAA,CAGD,0CAxED,uCAyEE,UAAA,CAAA,CAKH,2BACC,yCAAA,CAGD,4BACC,iBAAA,CACA,YAAA,CACA,SAAA,CACA,eAAA,CAEA,gCACC,UAAA,CAIF,8BACC,mCAAA\",\"sourcesContent\":[\"\\n@use '../../../../../core/css/variables.scss' as variables;\\n@use 'sass:math';\\n\\n.app-item {\\n\\tposition: relative;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&--list-view {\\n\\t\\t--app-item-padding: calc(var(--default-grid-baseline) * 2);\\n\\t\\t--app-item-height: calc(var(--default-clickable-area) + var(--app-item-padding) * 2);\\n\\n\\t\\t&.app-item--selected {\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t}\\n\\n\\t\\t> * {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\t\\tpadding: var(--app-item-padding);\\n\\t\\t\\theight: var(--app-item-height);\\n\\t\\t}\\n\\n\\t\\t.app-image {\\n\\t\\t\\twidth: var(--default-clickable-area);\\n\\t\\t\\theight: auto;\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\n\\t\\t.app-image-icon svg,\\n\\t\\t.app-image-icon .icon-settings-dark {\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\topacity: .5;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\n\\t\\t.app-name {\\n\\t\\t\\tpadding: 0 var(--app-item-padding);\\n\\t\\t}\\n\\n\\t\\t.app-name--link {\\n\\t\\t\\theight: var(--app-item-height);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t}\\n\\n\\t\\t// Note: because of Safari bug, we cannot position link overlay relative to the table row\\n\\t\\t// So we need to manually position it relative to the table container and cell\\n\\t\\t// See: https://bugs.webkit.org/show_bug.cgi?id=240961\\n\\t\\t.app-name--link::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\theight: var(--app-item-height);\\n\\t\\t}\\n\\n\\t\\t.app-actions {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: var(--app-item-padding);\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\tjustify-content: end;\\n\\n\\t\\t\\t.icon-loading-small {\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\ttop: 4px;\\n\\t\\t\\t\\tmargin-right: 10px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* hide app version and level on narrower screens */\\n\\t\\t@media only screen and (max-width: 900px) {\\n\\t\\t\\t.app-version,\\n\\t\\t\\t.app-level {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Hide actions on a small screen. Click on app opens fill-screen sidebar with the buttons */\\n\\t\\t@media only screen and (max-width: math.div(variables.$breakpoint-mobile, 2)) {\\n\\t\\t\\t.app-actions {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--store-view {\\n\\t\\tpadding: 30px;\\n\\n\\t\\t.app-image-icon .icon-settings-dark {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 150px;\\n\\t\\t\\tbackground-size: 45px;\\n\\t\\t\\topacity: 0.5;\\n\\t\\t}\\n\\n\\t\\t.app-image-icon svg {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tbottom: 43px;\\n\\t\\t\\t/* position halfway vertically */\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\t\\t\\topacity: .1;\\n\\t\\t}\\n\\n\\t\\t.app-name {\\n\\t\\t\\tmargin: 5px 0;\\n\\t\\t}\\n\\n\\t\\t.app-name--link::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t}\\n\\n\\t\\t.app-actions {\\n\\t\\t\\tmargin: 10px 0;\\n\\t\\t}\\n\\n\\t\\t@media only screen and (min-width: 1601px) {\\n\\t\\t\\twidth: 25%;\\n\\n\\t\\t\\t&.app-item--with-sidebar {\\n\\t\\t\\t\\twidth: 33%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@media only screen and (max-width: 1600px) {\\n\\t\\t\\twidth: 25%;\\n\\n\\t\\t\\t&.app-item--with-sidebar {\\n\\t\\t\\t\\twidth: 33%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@media only screen and (max-width: 1400px) {\\n\\t\\t\\twidth: 33%;\\n\\n\\t\\t\\t&.app-item--with-sidebar {\\n\\t\\t\\t\\twidth: 50%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@media only screen and (max-width: 900px) {\\n\\t\\t\\twidth: 50%;\\n\\n\\t\\t\\t&.app-item--with-sidebar {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@media only screen and (max-width: variables.$breakpoint-mobile) {\\n\\t\\t\\twidth: 50%;\\n\\t\\t}\\n\\n\\t\\t@media only screen and (max-width: 480px) {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n.app-icon {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\\n.app-image {\\n\\tposition: relative;\\n\\theight: 150px;\\n\\topacity: 1;\\n\\toverflow: hidden;\\n\\n\\timg {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.app-version {\\n\\tcolor: var(--color-text-maxcontrast);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-level-badge[data-v-5ee601b2]{color:var(--color-text-maxcontrast);background-color:rgba(0,0,0,0);border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);display:flex;flex-direction:row;gap:6px;padding:3px 6px;width:fit-content}.app-level-badge--supported[data-v-5ee601b2]{border-color:var(--color-success);color:var(--color-success)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppLevelBadge.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,mCAAA,CACA,8BAAA,CACA,8CAAA,CACA,kCAAA,CAEA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CACA,iBAAA,CAEA,6CACC,iCAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.app-level-badge {\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: transparent;\\n\\tborder: 1px solid var(--color-text-maxcontrast);\\n\\tborder-radius: var(--border-radius);\\n\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tgap: 6px;\\n\\tpadding: 3px 6px;\\n\\twidth: fit-content;\\n\\n\\t&--supported {\\n\\t\\tborder-color: var(--color-success);\\n\\t\\tcolor: var(--color-success);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-discover[data-v-bb597eea]{max-width:1008px;margin-inline:auto;padding-inline:54px;padding-block-end:var(--default-clickable-area, 44px);display:flex;flex-direction:column;gap:var(--default-clickable-area, 44px)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,gBAAA,CACA,kBAAA,CACA,mBAAA,CAEA,qDAAA,CAEA,YAAA,CACA,qBAAA,CACA,uCAAA\",\"sourcesContent\":[\"\\n.app-discover {\\n\\tmax-width: 1008px; /* 900px + 2x 54px padding for the carousel controls */\\n\\tmargin-inline: auto;\\n\\tpadding-inline: 54px;\\n\\t/* Padding required to make last element not bound to the bottom */\\n\\tpadding-block-end: var(--default-clickable-area, 44px);\\n\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: var(--default-clickable-area, 44px);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-description[data-v-cf0a1ae6]{padding:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,YAAA\",\"sourcesContent\":[\"\\n.app-description {\\n\\tpadding: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-details[data-v-533705fa]{padding:20px}.app-details__actions-manage[data-v-533705fa]{display:flex}.app-details__actions-manage input[data-v-533705fa]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__authors[data-v-533705fa]{color:var(--color-text-maxcontrast)}.app-details__section[data-v-533705fa]{margin-top:15px}.app-details__section h4[data-v-533705fa]{font-size:16px;font-weight:bold;margin-block-end:5px}.app-details__interact[data-v-533705fa]{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.app-details__documentation a[data-v-533705fa]{text-decoration:underline}.app-details__documentation li[data-v-533705fa]{padding-inline-start:20px}.app-details__documentation li[data-v-533705fa]::before{width:5px;height:5px;border-radius:100%;background-color:var(--color-main-text);content:\"\";float:inline-start;margin-inline-start:-13px;position:relative;top:10px}.force[data-v-533705fa]{color:var(--color-error);border-color:var(--color-error);background:var(--color-main-background)}.force[data-v-533705fa]:hover,.force[data-v-533705fa]:active{color:var(--color-main-background);border-color:var(--color-error) !important;background:var(--color-error)}.missing-dependencies[data-v-533705fa]{list-style:initial;list-style-type:initial;list-style-position:inside}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,oDACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAIH,uCACC,mCAAA,CAGD,uCACC,eAAA,CAEA,0CACC,cAAA,CACA,gBAAA,CACA,oBAAA,CAIF,wCACC,YAAA,CACA,kBAAA,CACA,cAAA,CACA,QAAA,CAIA,+CACC,yBAAA,CAED,gDACC,yBAAA,CAEA,wDACC,SAAA,CACA,UAAA,CACA,kBAAA,CACA,uCAAA,CACA,UAAA,CACA,kBAAA,CACA,yBAAA,CACA,iBAAA,CACA,QAAA,CAMJ,wBACC,wBAAA,CACA,+BAAA,CACA,uCAAA,CAED,6DAEC,kCAAA,CACA,0CAAA,CACA,6BAAA,CAGD,uCACC,kBAAA,CACA,uBAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.app-details {\\n\\tpadding: 20px;\\n\\n\\t&__actions {\\n\\t\\t// app management\\n\\t\\t&-manage {\\n\\t\\t\\t// if too many, shrink them and ellipsis\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\tflex: 0 1 auto;\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t&__authors {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__section {\\n\\t\\tmargin-top: 15px;\\n\\n\\t\\th4 {\\n\\t\\t\\tfont-size: 16px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-block-end: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__interact {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tgap: 12px;\\n\\t}\\n\\n\\t&__documentation {\\n\\t\\ta {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t\\tli {\\n\\t\\t\\tpadding-inline-start: 20px;\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\twidth: 5px;\\n\\t\\t\\t\\theight: 5px;\\n\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\tbackground-color: var(--color-main-text);\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\tfloat: inline-start;\\n\\t\\t\\t\\tmargin-inline-start: -13px;\\n\\t\\t\\t\\tposition: relative;\\n\\t\\t\\t\\ttop: 10px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.force {\\n\\tcolor: var(--color-error);\\n\\tborder-color: var(--color-error);\\n\\tbackground: var(--color-main-background);\\n}\\n.force:hover,\\n.force:active {\\n\\tcolor: var(--color-main-background);\\n\\tborder-color: var(--color-error) !important;\\n\\tbackground: var(--color-error);\\n}\\n\\n.missing-dependencies {\\n\\tlist-style: initial;\\n\\tlist-style-type: initial;\\n\\tlist-style-position: inside;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar-tabs__release h2[data-v-9c32407e]{border-bottom:1px solid var(--color-border);font-size:24px}.app-sidebar-tabs__release-text[data-v-9c32407e] h3{font-size:20px}.app-sidebar-tabs__release-text[data-v-9c32407e] h4{font-size:17px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue\"],\"names\":[],\"mappings\":\"AAEC,+CACC,2CAAA,CACA,cAAA,CAKA,oDACC,cAAA,CAED,oDACC,cAAA\",\"sourcesContent\":[\"\\n.app-sidebar-tabs__release {\\n\\th2 {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\tfont-size: 24px;\\n\\t}\\n\\n\\t&-text {\\n\\t\\t// Overwrite changelog heading styles\\n\\t\\t:deep(h3) {\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t}\\n\\t\\t:deep(h4) {\\n\\t\\t\\tfont-size: 17px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.settings-markdown[data-v-72285f1b] h1,.settings-markdown[data-v-72285f1b] h2,.settings-markdown[data-v-72285f1b] h3,.settings-markdown[data-v-72285f1b] h4,.settings-markdown[data-v-72285f1b] h5,.settings-markdown[data-v-72285f1b] h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.settings-markdown[data-v-72285f1b] h1{font-size:36px;margin-top:48px}.settings-markdown[data-v-72285f1b] h2{font-size:28px;margin-top:48px}.settings-markdown[data-v-72285f1b] h3{font-size:24px}.settings-markdown[data-v-72285f1b] h4{font-size:21px}.settings-markdown[data-v-72285f1b] h5{font-size:17px}.settings-markdown[data-v-72285f1b] h6{font-size:var(--default-font-size)}.settings-markdown[data-v-72285f1b] pre{white-space:pre;overflow-x:auto;background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:1em 1.3em;margin-bottom:1em}.settings-markdown[data-v-72285f1b] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-72285f1b] li{position:relative}.settings-markdown[data-v-72285f1b] ul,.settings-markdown[data-v-72285f1b] ol{padding-left:10px;margin-left:10px}.settings-markdown[data-v-72285f1b] ul li{list-style-type:disc}.settings-markdown[data-v-72285f1b] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-72285f1b] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-72285f1b] blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Markdown.vue\"],\"names\":[],\"mappings\":\"AAGA,0OAMC,eAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,4BAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,kCAAA,CAGD,wCACC,eAAA,CACA,eAAA,CACA,6CAAA,CACA,kCAAA,CACA,iBAAA,CACA,iBAAA,CAGD,2CACC,6CAAA,CACA,kCAAA,CACA,iBAAA,CAGD,uCACC,iBAAA,CAGD,8EACC,iBAAA,CACA,gBAAA,CAGD,0CACC,oBAAA,CAGD,gDACC,sBAAA,CAGD,sDACC,sBAAA,CAGD,+CACC,gBAAA,CACA,kDAAA,CACA,mCAAA,CACA,aAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.settings-markdown::v-deep {\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n\\tfont-weight: 600;\\n\\tline-height: 120%;\\n\\tmargin-top: 24px;\\n\\tmargin-bottom: 12px;\\n\\tcolor: var(--color-main-text);\\n}\\n\\nh1 {\\n\\tfont-size: 36px;\\n\\tmargin-top: 48px;\\n}\\n\\nh2 {\\n\\tfont-size: 28px;\\n\\tmargin-top: 48px;\\n}\\n\\nh3 {\\n\\tfont-size: 24px;\\n}\\n\\nh4 {\\n\\tfont-size: 21px;\\n}\\n\\nh5 {\\n\\tfont-size: 17px;\\n}\\n\\nh6 {\\n\\tfont-size: var(--default-font-size);\\n}\\n\\npre {\\n\\twhite-space: pre;\\n\\toverflow-x: auto;\\n\\tbackground-color: var(--color-background-dark);\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: 1em 1.3em;\\n\\tmargin-bottom: 1em;\\n}\\n\\np code {\\n\\tbackground-color: var(--color-background-dark);\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: .1em .3em;\\n}\\n\\nli {\\n\\tposition: relative;\\n}\\n\\nul, ol {\\n\\tpadding-left: 10px;\\n\\tmargin-left: 10px;\\n}\\n\\nul li {\\n\\tlist-style-type: disc;\\n}\\n\\nul > li > ul > li {\\n\\tlist-style-type: circle;\\n}\\n\\nul > li > ul > li ul li {\\n\\tlist-style-type: square;\\n}\\n\\nblockquote {\\n\\tpadding-left: 1em;\\n\\tborder-left: 4px solid var(--color-primary-element);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar--with-screenshot[data-v-2f300fa2] .app-sidebar-header__figure{background-size:cover}.app-sidebar__fallback-icon[data-v-2f300fa2]{width:100%;height:100%}.app-sidebar__badges[data-v-2f300fa2]{display:flex;flex-direction:row;gap:12px}.app-sidebar__version[data-v-2f300fa2]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/AppStoreSidebar.vue\"],\"names\":[],\"mappings\":\"AAIE,2EACC,qBAAA,CAIF,6CAEC,UAAA,CACA,WAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,QAAA,CAGD,uCACC,mCAAA\",\"sourcesContent\":[\"\\n.app-sidebar {\\n\\t// If a screenshot is available it should cover the whole figure\\n\\t&--with-screenshot {\\n\\t\\t:deep(.app-sidebar-header__figure) {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__fallback-icon {\\n\\t\\t// both 100% to center the icon\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__badges {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: 12px;\\n\\t}\\n\\n\\t&__version {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.app-score__wrapper[data-v-2193f4e0] {\n\tdisplay: inline-flex;\n\tcolor: var(--color-favorite, #a08b00);\n> *[data-v-2193f4e0] {\n\t\tvertical-align: text-bottom;\n}\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppScore.vue\"],\"names\":[],\"mappings\":\";AA+DA;CACA,oBAAA;CACA,qCAAA;AAEA;EACA,2BAAA;AACA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n\\n<template>\\n\\t<span role=\\\"img\\\"\\n\\t\\t:aria-label=\\\"title\\\"\\n\\t\\t:title=\\\"title\\\"\\n\\t\\tclass=\\\"app-score__wrapper\\\">\\n\\t\\t<NcIconSvgWrapper v-for=\\\"index in fullStars\\\"\\n\\t\\t\\t:key=\\\"`full-star-${index}`\\\"\\n\\t\\t\\t:path=\\\"mdiStar\\\"\\n\\t\\t\\tinline />\\n\\t\\t<NcIconSvgWrapper v-if=\\\"hasHalfStar\\\" :path=\\\"mdiStarHalfFull\\\" inline />\\n\\t\\t<NcIconSvgWrapper v-for=\\\"index in emptyStars\\\"\\n\\t\\t\\t:key=\\\"`empty-star-${index}`\\\"\\n\\t\\t\\t:path=\\\"mdiStarOutline\\\"\\n\\t\\t\\tinline />\\n\\t</span>\\n</template>\\n<script lang=\\\"ts\\\">\\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\\nimport { mdiStar, mdiStarHalfFull, mdiStarOutline } from '@mdi/js'\\nimport { translate as t } from '@nextcloud/l10n'\\nimport { defineComponent } from 'vue'\\n\\nexport default defineComponent({\\n\\tname: 'AppScore',\\n\\tcomponents: {\\n\\t\\tNcIconSvgWrapper,\\n\\t},\\n\\tprops: {\\n\\t\\tscore: {\\n\\t\\t\\ttype: Number,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tsetup() {\\n\\t\\treturn {\\n\\t\\t\\tmdiStar,\\n\\t\\t\\tmdiStarHalfFull,\\n\\t\\t\\tmdiStarOutline,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\ttitle() {\\n\\t\\t\\tconst appScore = (this.score * 5).toFixed(1)\\n\\t\\t\\treturn t('settings', 'Community rating: {score}/5', { score: appScore })\\n\\t\\t},\\n\\t\\tfullStars() {\\n\\t\\t\\treturn Math.floor(this.score * 5 + 0.25)\\n\\t\\t},\\n\\t\\temptyStars() {\\n\\t\\t\\treturn Math.min(Math.floor((1 - this.score) * 5 + 0.25), 5 - this.fullStars)\\n\\t\\t},\\n\\t\\thasHalfStar() {\\n\\t\\t\\treturn (this.fullStars + this.emptyStars) < 5\\n\\t\\t},\\n\\t},\\n})\\n</script>\\n<style scoped>\\n.app-score__wrapper {\\n\\tdisplay: inline-flex;\\n\\tcolor: var(--color-favorite, #a08b00);\\n\\n\\t> * {\\n\\t\\tvertical-align: text-bottom;\\n\\t}\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.empty-content__loading[data-v-f9073bbe] {\n\theight: 100%;\n}\n.app-settings-content__label[data-v-f9073bbe] {\n\tmargin-block-start: var(--app-navigation-padding);\n\tmargin-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\n\tmin-height: var(--default-clickable-area);\n\tline-height: var(--default-clickable-area);\n\tvertical-align: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/AppStore.vue\"],\"names\":[],\"mappings\":\";AAkEA;CACA,YAAA;AACA;AAEA;CACA,iDAAA;CACA,4FAAA;CACA,yCAAA;CACA,0CAAA;CACA,sBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n\\n<template>\\n\\t<!-- Apps list -->\\n\\t<NcAppContent class=\\\"app-settings-content\\\"\\n\\t\\t:page-heading=\\\"appStoreLabel\\\">\\n\\t\\t<h2 class=\\\"app-settings-content__label\\\" v-text=\\\"viewLabel\\\" />\\n\\n\\t\\t<AppStoreDiscoverSection v-if=\\\"currentCategory === 'discover'\\\" />\\n\\t\\t<NcEmptyContent v-else-if=\\\"isLoading\\\"\\n\\t\\t\\tclass=\\\"empty-content__loading\\\"\\n\\t\\t\\t:name=\\\"t('settings', 'Loading app list')\\\">\\n\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t<NcLoadingIcon :size=\\\"64\\\" />\\n\\t\\t\\t</template>\\n\\t\\t</NcEmptyContent>\\n\\t\\t<AppList v-else :category=\\\"currentCategory\\\" />\\n\\t</NcAppContent>\\n</template>\\n\\n<script setup lang=\\\"ts\\\">\\nimport { translate as t } from '@nextcloud/l10n'\\nimport { computed, getCurrentInstance, onBeforeMount, watchEffect } from 'vue'\\nimport { useRoute } from 'vue-router/composables'\\n\\nimport { useAppsStore } from '../store/apps-store'\\nimport { APPS_SECTION_ENUM } from '../constants/AppsConstants'\\n\\nimport NcAppContent from '@nextcloud/vue/dist/Components/NcAppContent.js'\\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\\nimport AppList from '../components/AppList.vue'\\nimport AppStoreDiscoverSection from '../components/AppStoreDiscover/AppStoreDiscoverSection.vue'\\n\\nconst route = useRoute()\\nconst store = useAppsStore()\\n\\n/**\\n * ID of the current active category, default is `discover`\\n */\\nconst currentCategory = computed(() => route.params?.category ?? 'discover')\\n\\nconst appStoreLabel = t('settings', 'App Store')\\nconst viewLabel = computed(() => APPS_SECTION_ENUM[currentCategory.value] ?? store.getCategoryById(currentCategory.value)?.displayName ?? appStoreLabel)\\n\\nwatchEffect(() => {\\n\\twindow.document.title = `${viewLabel.value} - ${appStoreLabel} - Nextcloud`\\n})\\n\\n// TODO this part should be migrated to pinia\\nconst instance = getCurrentInstance()\\n/** Is the app list loading */\\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\\nconst isLoading = computed(() => (instance?.proxy as any).$store.getters.loading('list'))\\nonBeforeMount(() => {\\n\\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\\n\\t(instance?.proxy as any).$store.dispatch('getCategories', { shouldRefetchCategories: true });\\n\\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\\n\\t(instance?.proxy as any).$store.dispatch('getAllApps')\\n})\\n</script>\\n\\n<style scoped>\\n.empty-content__loading {\\n\\theight: 100%;\\n}\\n\\n.app-settings-content__label {\\n\\tmargin-block-start: var(--app-navigation-padding);\\n\\tmargin-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\\n\\tmin-height: var(--default-clickable-area);\\n\\tline-height: var(--default-clickable-area);\\n\\tvertical-align: center;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n/* The categories-loading indicator */\n.categories--loading[data-v-1e611b27] {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/AppStoreNavigation.vue\"],\"names\":[],\"mappings\":\";AA0IA,qCAAA;AACA;CACA,OAAA;CACA,aAAA;CACA,mBAAA;CACA,uBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<template>\\n\\t<!-- Categories & filters -->\\n\\t<NcAppNavigation :aria-label=\\\"t('settings', 'Apps')\\\">\\n\\t\\t<template #list>\\n\\t\\t\\t<NcAppNavigationItem id=\\\"app-category-discover\\\"\\n\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'discover'} }\\\"\\n\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.discover\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.discover\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t<NcAppNavigationItem id=\\\"app-category-installed\\\"\\n\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'installed'} }\\\"\\n\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.installed\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.installed\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t<NcAppNavigationItem id=\\\"app-category-enabled\\\"\\n\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'enabled' } }\\\"\\n\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.enabled\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.enabled\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t<NcAppNavigationItem id=\\\"app-category-disabled\\\"\\n\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'disabled' } }\\\"\\n\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.disabled\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.disabled\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t<NcAppNavigationItem v-if=\\\"updateCount > 0\\\"\\n\\t\\t\\t\\tid=\\\"app-category-updates\\\"\\n\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'updates' } }\\\"\\n\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.updates\\\">\\n\\t\\t\\t\\t<template #counter>\\n\\t\\t\\t\\t\\t<NcCounterBubble>{{ updateCount }}</NcCounterBubble>\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.updates\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t<NcAppNavigationItem id=\\\"app-category-your-bundles\\\"\\n\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'app-bundles' } }\\\"\\n\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM['app-bundles']\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.bundles\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcAppNavigationItem>\\n\\n\\t\\t\\t<NcAppNavigationSpacer />\\n\\n\\t\\t\\t<!-- App store categories -->\\n\\t\\t\\t<li v-if=\\\"appstoreEnabled && categoriesLoading\\\" class=\\\"categories--loading\\\">\\n\\t\\t\\t\\t<NcLoadingIcon :size=\\\"20\\\" :aria-label=\\\"t('settings', 'Loading categories')\\\" />\\n\\t\\t\\t</li>\\n\\t\\t\\t<template v-else-if=\\\"appstoreEnabled && !categoriesLoading\\\">\\n\\t\\t\\t\\t<NcAppNavigationItem v-if=\\\"isSubscribed\\\"\\n\\t\\t\\t\\t\\tid=\\\"app-category-supported\\\"\\n\\t\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'supported' } }\\\"\\n\\t\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.supported\\\">\\n\\t\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.supported\\\" />\\n\\t\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t\\t<NcAppNavigationItem id=\\\"app-category-featured\\\"\\n\\t\\t\\t\\t\\t:to=\\\"{ name: 'apps-category', params: { category: 'featured' } }\\\"\\n\\t\\t\\t\\t\\t:name=\\\"APPS_SECTION_ENUM.featured\\\">\\n\\t\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"APPSTORE_CATEGORY_ICONS.featured\\\" />\\n\\t\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t</NcAppNavigationItem>\\n\\n\\t\\t\\t\\t<NcAppNavigationItem v-for=\\\"category in categories\\\"\\n\\t\\t\\t\\t\\t:id=\\\"`app-category-${category.id}`\\\"\\n\\t\\t\\t\\t\\t:key=\\\"category.id\\\"\\n\\t\\t\\t\\t\\t:name=\\\"category.displayName\\\"\\n\\t\\t\\t\\t\\t:to=\\\"{\\n\\t\\t\\t\\t\\t\\tname: 'apps-category',\\n\\t\\t\\t\\t\\t\\tparams: { category: category.id },\\n\\t\\t\\t\\t\\t}\\\">\\n\\t\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t\\t<NcIconSvgWrapper :path=\\\"category.icon\\\" />\\n\\t\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t</NcAppNavigationItem>\\n\\t\\t\\t</template>\\n\\n\\t\\t\\t<NcAppNavigationItem id=\\\"app-developer-docs\\\"\\n\\t\\t\\t\\t:name=\\\"t('settings', 'Developer documentation ↗')\\\"\\n\\t\\t\\t\\t:href=\\\"developerDocsUrl\\\" />\\n\\t\\t</template>\\n\\t</NcAppNavigation>\\n</template>\\n\\n<script setup lang=\\\"ts\\\">\\nimport { loadState } from '@nextcloud/initial-state'\\nimport { translate as t } from '@nextcloud/l10n'\\nimport { computed, onBeforeMount } from 'vue'\\nimport { APPS_SECTION_ENUM } from '../constants/AppsConstants'\\nimport { useAppsStore } from '../store/apps-store'\\n\\nimport NcAppNavigation from '@nextcloud/vue/dist/Components/NcAppNavigation.js'\\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\\nimport NcAppNavigationSpacer from '@nextcloud/vue/dist/Components/NcAppNavigationSpacer.js'\\nimport NcCounterBubble from '@nextcloud/vue/dist/Components/NcCounterBubble.js'\\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\\n\\nimport APPSTORE_CATEGORY_ICONS from '../constants/AppstoreCategoryIcons.ts'\\n\\nconst updateCount = loadState<number>('settings', 'appstoreUpdateCount', 0)\\nconst appstoreEnabled = loadState<boolean>('settings', 'appstoreEnabled', true)\\nconst developerDocsUrl = loadState<string>('settings', 'appstoreDeveloperDocs', '')\\n\\nconst store = useAppsStore()\\nconst categories = computed(() => store.categories)\\nconst categoriesLoading = computed(() => store.loading.categories)\\n\\n/**\\n * Check if the current instance has a support subscription from the Nextcloud GmbH\\n *\\n * For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription\\n */\\nconst isSubscribed = computed(() => store.apps.find(({ level }) => level === 300) !== undefined)\\n\\n// load categories when component is mounted\\nonBeforeMount(() => {\\n\\tstore.loadCategories()\\n\\tstore.loadApps()\\n})\\n</script>\\n\\n<style scoped>\\n/* The categories-loading indicator */\\n.categories--loading {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.listView ? 'tr' : (_vm.inline ? 'article' : 'li'),{tag:\"component\",staticClass:\"app-item\",class:{\n\t\t'app-item--list-view': _vm.listView,\n\t\t'app-item--store-view': !_vm.listView,\n\t\t'app-item--selected': _vm.isSelected,\n\t\t'app-item--with-sidebar': _vm.withSidebar,\n\t}},[_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-image app-image-icon\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-icon`)}},[((_vm.listView && !_vm.app.preview) || (!_vm.listView && !_vm.screenshotLoaded))?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.listView && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\" \"),(!_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"alt\":\"\"}}):_vm._e()]),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-name\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-name`)}},[_c('router-link',{staticClass:\"app-name--link\",attrs:{\"to\":{\n\t\t\t\tname: 'apps-details',\n\t\t\t\tparams: {\n\t\t\t\t\tcategory: _vm.category,\n\t\t\t\t\tid: _vm.app.id\n\t\t\t\t},\n\t\t\t},\"aria-label\":_vm.t('settings', 'Show details for {appName} app', { appName:_vm.app.name })}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(!_vm.listView)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-summary\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-version`)}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.summary)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.listView)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-version\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-version`)}},[(_vm.app.version)?_c('span',[_vm._v(_vm._s(_vm.app.version))]):(_vm.app.appstoreData.releases[0].version)?_c('span',[_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-level\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-level`)}},[_c('AppLevelBadge',{attrs:{\"level\":_vm.app.level}}),_vm._v(\" \"),(_vm.hasRating && !_vm.listView)?_c('AppScore',{attrs:{\"score\":_vm.app.score}}):_vm._e()],1),_vm._v(\" \"),(!_vm.inline)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-actions\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-actions`)}},[(_vm.app.error)?_c('div',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.error)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('div',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),(_vm.app.update)?_c('NcButton',{attrs:{\"type\":\"primary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.update(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Update to {update}', {update:_vm.app.update}))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('NcButton',{staticClass:\"uninstall\",attrs:{\"type\":\"tertiary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.remove(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Remove'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('NcButton',{attrs:{\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.disable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings','Disable'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('NcButton',{attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"type\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.enable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.enableButtonText)+\"\\n\\t\\t\")]):(!_vm.app.active)?_c('NcButton',{attrs:{\"title\":_vm.forceEnableButtonTooltip,\"aria-label\":_vm.forceEnableButtonTooltip,\"type\":\"secondary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.forceEnable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.forceEnableButtonText)+\"\\n\\t\\t\")]):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script>\nexport default {\n\tname: 'SvgFilterMixin',\n\tdata() {\n\t\treturn {\n\t\t\tfilterId: '',\n\t\t}\n\t},\n\tcomputed: {\n\t\tfilterUrl() {\n\t\t\treturn `url(#${this.filterId})`\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.filterId = 'invertIconApps-' + Math.random().toString(36).substring(2)\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./SvgFilterMixin.vue?vue&type=script&lang=js\"\nexport * from \"./SvgFilterMixin.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<component :is=\"listView ? 'tr' : (inline ? 'article' : 'li')\"\n\t\tclass=\"app-item\"\n\t\t:class=\"{\n\t\t\t'app-item--list-view': listView,\n\t\t\t'app-item--store-view': !listView,\n\t\t\t'app-item--selected': isSelected,\n\t\t\t'app-item--with-sidebar': withSidebar,\n\t\t}\">\n\t\t<component :is=\"dataItemTag\"\n\t\t\tclass=\"app-image app-image-icon\"\n\t\t\t:headers=\"getDataItemHeaders(`app-table-col-icon`)\">\n\t\t\t<div v-if=\"(listView && !app.preview) || (!listView && !screenshotLoaded)\" class=\"icon-settings-dark\" />\n\n\t\t\t<svg v-else-if=\"listView && app.preview\"\n\t\t\t\twidth=\"32\"\n\t\t\t\theight=\"32\"\n\t\t\t\tviewBox=\"0 0 32 32\">\n\t\t\t\t<image x=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"32\"\n\t\t\t\t\theight=\"32\"\n\t\t\t\t\tpreserveAspectRatio=\"xMinYMin meet\"\n\t\t\t\t\t:xlink:href=\"app.preview\"\n\t\t\t\t\tclass=\"app-icon\" />\n\t\t\t</svg>\n\n\t\t\t<img v-if=\"!listView && app.screenshot && screenshotLoaded\" :src=\"app.screenshot\" alt=\"\">\n\t\t</component>\n\t\t<component :is=\"dataItemTag\"\n\t\t\tclass=\"app-name\"\n\t\t\t:headers=\"getDataItemHeaders(`app-table-col-name`)\">\n\t\t\t<router-link class=\"app-name--link\"\n\t\t\t\t:to=\"{\n\t\t\t\t\tname: 'apps-details',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tcategory: category,\n\t\t\t\t\t\tid: app.id\n\t\t\t\t\t},\n\t\t\t\t}\"\n\t\t\t\t:aria-label=\"t('settings', 'Show details for {appName} app', { appName:app.name })\">\n\t\t\t\t{{ app.name }}\n\t\t\t</router-link>\n\t\t</component>\n\t\t<component :is=\"dataItemTag\"\n\t\t\tv-if=\"!listView\"\n\t\t\tclass=\"app-summary\"\n\t\t\t:headers=\"getDataItemHeaders(`app-version`)\">\n\t\t\t{{ app.summary }}\n\t\t</component>\n\t\t<component :is=\"dataItemTag\"\n\t\t\tv-if=\"listView\"\n\t\t\tclass=\"app-version\"\n\t\t\t:headers=\"getDataItemHeaders(`app-table-col-version`)\">\n\t\t\t<span v-if=\"app.version\">{{ app.version }}</span>\n\t\t\t<span v-else-if=\"app.appstoreData.releases[0].version\">{{ app.appstoreData.releases[0].version }}</span>\n\t\t</component>\n\n\t\t<component :is=\"dataItemTag\" :headers=\"getDataItemHeaders(`app-table-col-level`)\" class=\"app-level\">\n\t\t\t<AppLevelBadge :level=\"app.level\" />\n\t\t\t<AppScore v-if=\"hasRating && !listView\" :score=\"app.score\" />\n\t\t</component>\n\t\t<component :is=\"dataItemTag\"\n\t\t\tv-if=\"!inline\"\n\t\t\t:headers=\"getDataItemHeaders(`app-table-col-actions`)\"\n\t\t\tclass=\"app-actions\">\n\t\t\t<div v-if=\"app.error\" class=\"warning\">\n\t\t\t\t{{ app.error }}\n\t\t\t</div>\n\t\t\t<div v-if=\"isLoading\" class=\"icon icon-loading-small\" />\n\t\t\t<NcButton v-if=\"app.update\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t@click.stop=\"update(app.id)\">\n\t\t\t\t{{ t('settings', 'Update to {update}', {update:app.update}) }}\n\t\t\t</NcButton>\n\t\t\t<NcButton v-if=\"app.canUnInstall\"\n\t\t\t\tclass=\"uninstall\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t@click.stop=\"remove(app.id)\">\n\t\t\t\t{{ t('settings', 'Remove') }}\n\t\t\t</NcButton>\n\t\t\t<NcButton v-if=\"app.active\"\n\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t@click.stop=\"disable(app.id)\">\n\t\t\t\t{{ t('settings','Disable') }}\n\t\t\t</NcButton>\n\t\t\t<NcButton v-if=\"!app.active && (app.canInstall || app.isCompatible)\"\n\t\t\t\t:title=\"enableButtonTooltip\"\n\t\t\t\t:aria-label=\"enableButtonTooltip\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\t:disabled=\"!app.canInstall || installing || isLoading\"\n\t\t\t\t@click.stop=\"enable(app.id)\">\n\t\t\t\t{{ enableButtonText }}\n\t\t\t</NcButton>\n\t\t\t<NcButton v-else-if=\"!app.active\"\n\t\t\t\t:title=\"forceEnableButtonTooltip\"\n\t\t\t\t:aria-label=\"forceEnableButtonTooltip\"\n\t\t\t\ttype=\"secondary\"\n\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t@click.stop=\"forceEnable(app.id)\">\n\t\t\t\t{{ forceEnableButtonText }}\n\t\t\t</NcButton>\n\t\t</component>\n\t</component>\n</template>\n\n<script>\nimport AppScore from './AppScore.vue'\nimport AppLevelBadge from './AppLevelBadge.vue'\nimport AppManagement from '../../mixins/AppManagement.js'\nimport SvgFilterMixin from '../SvgFilterMixin.vue'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'AppItem',\n\tcomponents: {\n\t\tAppLevelBadge,\n\t\tAppScore,\n\t\tNcButton,\n\t},\n\tmixins: [AppManagement, SvgFilterMixin],\n\tprops: {\n\t\tapp: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tcategory: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlistView: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tuseBundleView: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\theaders: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisSelected: false,\n\t\t\tscrolled: false,\n\t\t\tscreenshotLoaded: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasRating() {\n\t\t\treturn this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5\n\t\t},\n\t\tdataItemTag() {\n\t\t\treturn this.listView ? 'td' : 'div'\n\t\t},\n\t\twithSidebar() {\n\t\t\treturn !!this.$route.params.id\n\t\t},\n\t},\n\twatch: {\n\t\t'$route.params.id'(id) {\n\t\t\tthis.isSelected = (this.app.id === id)\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.isSelected = (this.app.id === this.$route.params.id)\n\t\tif (this.app.releases && this.app.screenshot) {\n\t\t\tconst image = new Image()\n\t\t\timage.onload = () => {\n\t\t\t\tthis.screenshotLoaded = true\n\t\t\t}\n\t\t\timage.src = this.app.screenshot\n\t\t}\n\t},\n\twatchers: {\n\n\t},\n\tmethods: {\n\t\tprefix(prefix, content) {\n\t\t\treturn prefix + '_' + content\n\t\t},\n\n\t\tgetDataItemHeaders(columnName) {\n\t\t\treturn this.useBundleView ? [this.headers, columnName].join(' ') : null\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@use '../../../../../core/css/variables.scss' as variables;\n@use 'sass:math';\n\n.app-item {\n\tposition: relative;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&--list-view {\n\t\t--app-item-padding: calc(var(--default-grid-baseline) * 2);\n\t\t--app-item-height: calc(var(--default-clickable-area) + var(--app-item-padding) * 2);\n\n\t\t&.app-item--selected {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t}\n\n\t\t> * {\n\t\t\tvertical-align: middle;\n\t\t\tborder-bottom: 1px solid var(--color-border);\n\t\t\tpadding: var(--app-item-padding);\n\t\t\theight: var(--app-item-height);\n\t\t}\n\n\t\t.app-image {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: auto;\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t.app-image-icon svg,\n\t\t.app-image-icon .icon-settings-dark {\n\t\t\tmargin-top: 5px;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\topacity: .5;\n\t\t\tbackground-size: cover;\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t.app-name {\n\t\t\tpadding: 0 var(--app-item-padding);\n\t\t}\n\n\t\t.app-name--link {\n\t\t\theight: var(--app-item-height);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t// Note: because of Safari bug, we cannot position link overlay relative to the table row\n\t\t// So we need to manually position it relative to the table container and cell\n\t\t// See: https://bugs.webkit.org/show_bug.cgi?id=240961\n\t\t.app-name--link::after {\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\theight: var(--app-item-height);\n\t\t}\n\n\t\t.app-actions {\n\t\t\tdisplay: flex;\n\t\t\tgap: var(--app-item-padding);\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: end;\n\n\t\t\t.icon-loading-small {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\ttop: 4px;\n\t\t\t\tmargin-right: 10px;\n\t\t\t}\n\t\t}\n\n\t\t/* hide app version and level on narrower screens */\n\t\t@media only screen and (max-width: 900px) {\n\t\t\t.app-version,\n\t\t\t.app-level {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t/* Hide actions on a small screen. Click on app opens fill-screen sidebar with the buttons */\n\t\t@media only screen and (max-width: math.div(variables.$breakpoint-mobile, 2)) {\n\t\t\t.app-actions {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--store-view {\n\t\tpadding: 30px;\n\n\t\t.app-image-icon .icon-settings-dark {\n\t\t\twidth: 100%;\n\t\t\theight: 150px;\n\t\t\tbackground-size: 45px;\n\t\t\topacity: 0.5;\n\t\t}\n\n\t\t.app-image-icon svg {\n\t\t\tposition: absolute;\n\t\t\tbottom: 43px;\n\t\t\t/* position halfway vertically */\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\t\t\topacity: .1;\n\t\t}\n\n\t\t.app-name {\n\t\t\tmargin: 5px 0;\n\t\t}\n\n\t\t.app-name--link::after {\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t.app-actions {\n\t\t\tmargin: 10px 0;\n\t\t}\n\n\t\t@media only screen and (min-width: 1601px) {\n\t\t\twidth: 25%;\n\n\t\t\t&.app-item--with-sidebar {\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t}\n\n\t\t@media only screen and (max-width: 1600px) {\n\t\t\twidth: 25%;\n\n\t\t\t&.app-item--with-sidebar {\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t}\n\n\t\t@media only screen and (max-width: 1400px) {\n\t\t\twidth: 33%;\n\n\t\t\t&.app-item--with-sidebar {\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\n\t\t@media only screen and (max-width: 900px) {\n\t\t\twidth: 50%;\n\n\t\t\t&.app-item--with-sidebar {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\n\t\t@media only screen and (max-width: variables.$breakpoint-mobile) {\n\t\t\twidth: 50%;\n\t\t}\n\n\t\t@media only screen and (max-width: 480px) {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n}\n\n.app-icon {\n\tfilter: var(--background-invert-if-bright);\n}\n\n.app-image {\n\tposition: relative;\n\theight: 150px;\n\topacity: 1;\n\toverflow: hidden;\n\n\timg {\n\t\twidth: 100%;\n\t}\n}\n\n.app-version {\n\tcolor: var(--color-text-maxcontrast);\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=25b36460&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=25b36460&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppItem.vue?vue&type=template&id=25b36460&scoped=true\"\nimport script from \"./AppItem.vue?vue&type=script&lang=js\"\nexport * from \"./AppItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppItem.vue?vue&type=style&index=0&id=25b36460&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25b36460\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.isSupported || _setup.isFeatured)?_c('span',{staticClass:\"app-level-badge\",class:{ 'app-level-badge--supported': _setup.isSupported },attrs:{\"title\":_setup.badgeTitle}},[_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.badgeIcon,\"size\":20,\"inline\":\"\"}}),_vm._v(\"\\n\\t\"+_vm._s(_setup.badgeText)+\"\\n\")],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=5ee601b2&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=5ee601b2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppLevelBadge.vue?vue&type=template&id=5ee601b2&scoped=true\"\nimport script from \"./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppLevelBadge.vue?vue&type=style&index=0&id=5ee601b2&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ee601b2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"app-score__wrapper\",attrs:{\"role\":\"img\",\"aria-label\":_vm.title,\"title\":_vm.title}},[_vm._l((_vm.fullStars),function(index){return _c('NcIconSvgWrapper',{key:`full-star-${index}`,attrs:{\"path\":_vm.mdiStar,\"inline\":\"\"}})}),_vm._v(\" \"),(_vm.hasHalfStar)?_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiStarHalfFull,\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.emptyStars),function(index){return _c('NcIconSvgWrapper',{key:`empty-star-${index}`,attrs:{\"path\":_vm.mdiStarOutline,\"inline\":\"\"}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=2193f4e0&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=2193f4e0&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=2193f4e0&scoped=true\"\nimport script from \"./AppScore.vue?vue&type=script&lang=ts\"\nexport * from \"./AppScore.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppScore.vue?vue&type=style&index=0&id=2193f4e0&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2193f4e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppContent,{staticClass:\"app-settings-content\",attrs:{\"page-heading\":_setup.appStoreLabel}},[_c('h2',{staticClass:\"app-settings-content__label\",domProps:{\"textContent\":_vm._s(_setup.viewLabel)}}),_vm._v(\" \"),(_setup.currentCategory === 'discover')?_c(_setup.AppStoreDiscoverSection):(_setup.isLoading)?_c(_setup.NcEmptyContent,{staticClass:\"empty-content__loading\",attrs:{\"name\":_setup.t('settings', 'Loading app list')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcLoadingIcon,{attrs:{\"size\":64}})]},proxy:true}])}):_c(_setup.AppList,{attrs:{\"category\":_setup.currentCategory}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div id=\"app-content-inner\">\n\t\t<div id=\"apps-list\"\n\t\t\tclass=\"apps-list\"\n\t\t\t:class=\"{\n\t\t\t\t'apps-list--list-view': (useBundleView || useListView),\n\t\t\t\t'apps-list--store-view': useAppStoreView,\n\t\t\t}\">\n\t\t\t<template v-if=\"useListView\">\n\t\t\t\t<div v-if=\"showUpdateAll\" class=\"apps-list__toolbar\">\n\t\t\t\t\t{{ n('settings', '%n app has an update available', '%n apps have an update available', counter) }}\n\t\t\t\t\t<NcButton v-if=\"showUpdateAll\"\n\t\t\t\t\t\tid=\"app-list-update-all\"\n\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t@click=\"updateAll\">\n\t\t\t\t\t\t{{ n('settings', 'Update', 'Update all', counter) }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"!showUpdateAll\" class=\"apps-list__toolbar\">\n\t\t\t\t\t{{ t('settings', 'All apps are up-to-date.') }}\n\t\t\t\t</div>\n\n\t\t\t\t<TransitionGroup name=\"apps-list\" tag=\"table\" class=\"apps-list__list-container\">\n\t\t\t\t\t<tr key=\"app-list-view-header\">\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Icon') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Name') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Version') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Level') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Actions') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<AppItem v-for=\"app in apps\"\n\t\t\t\t\t\t:key=\"app.id\"\n\t\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t\t:category=\"category\" />\n\t\t\t\t</TransitionGroup>\n\t\t\t</template>\n\n\t\t\t<table v-if=\"useBundleView\"\n\t\t\t\tclass=\"apps-list__list-container\">\n\t\t\t\t<tr key=\"app-list-view-header\">\n\t\t\t\t\t<th id=\"app-table-col-icon\">\n\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Icon') }}</span>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th id=\"app-table-col-name\">\n\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Name') }}</span>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th id=\"app-table-col-version\">\n\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Version') }}</span>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th id=\"app-table-col-level\">\n\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Level') }}</span>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th id=\"app-table-col-actions\">\n\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Actions') }}</span>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t\t<template v-for=\"bundle in bundles\">\n\t\t\t\t\t<tr :key=\"bundle.id\">\n\t\t\t\t\t\t<th :id=\"`app-table-rowgroup-${bundle.id}`\" colspan=\"5\" scope=\"rowgroup\">\n\t\t\t\t\t\t\t<div class=\"apps-list__bundle-heading\">\n\t\t\t\t\t\t\t\t<span class=\"apps-list__bundle-header\">\n\t\t\t\t\t\t\t\t\t{{ bundle.name }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<NcButton type=\"secondary\" @click=\"toggleBundle(bundle.id)\">\n\t\t\t\t\t\t\t\t\t{{ t('settings', bundleToggleText(bundle.id)) }}\n\t\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<AppItem v-for=\"app in bundleApps(bundle.id)\"\n\t\t\t\t\t\t:key=\"bundle.id + app.id\"\n\t\t\t\t\t\t:use-bundle-view=\"true\"\n\t\t\t\t\t\t:headers=\"`app-table-rowgroup-${bundle.id}`\"\n\t\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t\t:category=\"category\" />\n\t\t\t\t</template>\n\t\t\t</table>\n\t\t\t<ul v-if=\"useAppStoreView\" class=\"apps-list__store-container\">\n\t\t\t\t<AppItem v-for=\"app in apps\"\n\t\t\t\t\t:key=\"app.id\"\n\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t:category=\"category\"\n\t\t\t\t\t:list-view=\"false\" />\n\t\t\t</ul>\n\t\t</div>\n\n\t\t<div id=\"apps-list-search\" class=\"apps-list apps-list--list-view\">\n\t\t\t<div class=\"apps-list__list-container\">\n\t\t\t\t<table v-if=\"search !== '' && searchApps.length > 0\" class=\"apps-list__list-container\">\n\t\t\t\t\t<caption class=\"apps-list__bundle-header\">\n\t\t\t\t\t\t{{ t('settings', 'Results from other categories') }}\n\t\t\t\t\t</caption>\n\t\t\t\t\t<tr key=\"app-list-view-header\">\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Icon') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Name') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Version') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Level') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">{{ t('settings', 'Actions') }}</span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<AppItem v-for=\"app in searchApps\"\n\t\t\t\t\t\t:key=\"app.id\"\n\t\t\t\t\t\t:app=\"app\"\n\t\t\t\t\t\t:category=\"category\" />\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div v-if=\"search !== '' && !loading && searchApps.length === 0 && apps.length === 0\" id=\"apps-list-empty\" class=\"emptycontent emptycontent-search\">\n\t\t\t<div id=\"app-list-empty-icon\" class=\"icon-settings-dark\" />\n\t\t\t<h2>{{ t('settings', 'No apps found for your version') }}</h2>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport AppItem from './AppList/AppItem.vue'\nimport pLimit from 'p-limit'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'AppList',\n\tcomponents: {\n\t\tAppItem,\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\tcategory: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsearch: '',\n\t\t}\n\t},\n\tcomputed: {\n\t\tcounter() {\n\t\t\treturn this.apps.filter(app => app.update).length\n\t\t},\n\t\tloading() {\n\t\t\treturn this.$store.getters.loading('list')\n\t\t},\n\t\thasPendingUpdate() {\n\t\t\treturn this.apps.filter(app => app.update).length > 0\n\t\t},\n\t\tshowUpdateAll() {\n\t\t\treturn this.hasPendingUpdate && this.useListView\n\t\t},\n\t\tapps() {\n\t\t\tconst apps = this.$store.getters.getAllApps\n\t\t\t\t.filter(app => app.name.toLowerCase().search(this.search.toLowerCase()) !== -1)\n\t\t\t\t.sort(function(a, b) {\n\t\t\t\t\tconst sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name\n\t\t\t\t\tconst sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name\n\t\t\t\t\treturn OC.Util.naturalSortCompare(sortStringA, sortStringB)\n\t\t\t\t})\n\n\t\t\tif (this.category === 'installed') {\n\t\t\t\treturn apps.filter(app => app.installed)\n\t\t\t}\n\t\t\tif (this.category === 'enabled') {\n\t\t\t\treturn apps.filter(app => app.active && app.installed)\n\t\t\t}\n\t\t\tif (this.category === 'disabled') {\n\t\t\t\treturn apps.filter(app => !app.active && app.installed)\n\t\t\t}\n\t\t\tif (this.category === 'app-bundles') {\n\t\t\t\treturn apps.filter(app => app.bundles)\n\t\t\t}\n\t\t\tif (this.category === 'updates') {\n\t\t\t\treturn apps.filter(app => app.update)\n\t\t\t}\n\t\t\tif (this.category === 'supported') {\n\t\t\t\t// For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription\n\t\t\t\treturn apps.filter(app => app.level === 300)\n\t\t\t}\n\t\t\tif (this.category === 'featured') {\n\t\t\t\t// An app level of `200` will be set for apps featured on the app store\n\t\t\t\treturn apps.filter(app => app.level === 200)\n\t\t\t}\n\n\t\t\t// filter app store categories\n\t\t\treturn apps.filter(app => {\n\t\t\t\treturn app.appstore && app.category !== undefined\n\t\t\t\t\t&& (app.category === this.category || app.category.indexOf(this.category) > -1)\n\t\t\t})\n\t\t},\n\t\tbundles() {\n\t\t\treturn this.$store.getters.getAppBundles.filter(bundle => this.bundleApps(bundle.id).length > 0)\n\t\t},\n\t\tbundleApps() {\n\t\t\treturn function(bundle) {\n\t\t\t\treturn this.$store.getters.getAllApps\n\t\t\t\t\t.filter(app => {\n\t\t\t\t\t\treturn app.bundleIds !== undefined && app.bundleIds.includes(bundle)\n\t\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tsearchApps() {\n\t\t\tif (this.search === '') {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn this.$store.getters.getAllApps\n\t\t\t\t.filter(app => {\n\t\t\t\t\tif (app.name.toLowerCase().search(this.search.toLowerCase()) !== -1) {\n\t\t\t\t\t\treturn (!this.apps.find(_app => _app.id === app.id))\n\t\t\t\t\t}\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t},\n\t\tuseAppStoreView() {\n\t\t\treturn !this.useListView && !this.useBundleView\n\t\t},\n\t\tuseListView() {\n\t\t\treturn (this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured' || this.category === 'supported')\n\t\t},\n\t\tuseBundleView() {\n\t\t\treturn (this.category === 'app-bundles')\n\t\t},\n\t\tallBundlesEnabled() {\n\t\t\treturn (id) => {\n\t\t\t\treturn this.bundleApps(id).filter(app => !app.active).length === 0\n\t\t\t}\n\t\t},\n\t\tbundleToggleText() {\n\t\t\treturn (id) => {\n\t\t\t\tif (this.allBundlesEnabled(id)) {\n\t\t\t\t\treturn t('settings', 'Disable all')\n\t\t\t\t}\n\t\t\t\treturn t('settings', 'Download and enable all')\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('nextcloud:unified-search.search', this.setSearch)\n\t\tunsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\t},\n\n\tmounted() {\n\t\tsubscribe('nextcloud:unified-search.search', this.setSearch)\n\t\tsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\t},\n\n\tmethods: {\n\t\tsetSearch({ query }) {\n\t\t\tthis.search = query\n\t\t},\n\t\tresetSearch() {\n\t\t\tthis.search = ''\n\t\t},\n\t\ttoggleBundle(id) {\n\t\t\tif (this.allBundlesEnabled(id)) {\n\t\t\t\treturn this.disableBundle(id)\n\t\t\t}\n\t\t\treturn this.enableBundle(id)\n\t\t},\n\t\tenableBundle(id) {\n\t\t\tconst apps = this.bundleApps(id).map(app => app.id)\n\t\t\tthis.$store.dispatch('enableApp', { appId: apps, groups: [] })\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t\tOC.Notification.show(error)\n\t\t\t\t})\n\t\t},\n\t\tdisableBundle(id) {\n\t\t\tconst apps = this.bundleApps(id).map(app => app.id)\n\t\t\tthis.$store.dispatch('disableApp', { appId: apps, groups: [] })\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tOC.Notification.show(error)\n\t\t\t\t})\n\t\t},\n\t\tupdateAll() {\n\t\t\tconst limit = pLimit(1)\n\t\t\tthis.apps\n\t\t\t\t.filter(app => app.update)\n\t\t\t\t.map(app => limit(() => this.$store.dispatch('updateApp', { appId: app.id })),\n\t\t\t\t)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$toolbar-padding: 8px;\n$toolbar-height: 44px + $toolbar-padding * 2;\n\n.apps-list {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-content: flex-start;\n\n\t// For transition group\n\t&--move {\n\t\ttransition: transform 1s;\n\t}\n\n\t#app-list-update-all {\n\t\tmargin-left: 10px;\n\t}\n\n\t&__toolbar {\n\t\theight: $toolbar-height;\n\t\tpadding: $toolbar-padding;\n\t\t// Leave room for app-navigation-toggle\n\t\tpadding-left: $toolbar-height;\n\t\twidth: 100%;\n\t\tbackground-color: var(--color-main-background);\n\t\tposition: sticky;\n\t\ttop: 0;\n\t\tz-index: 1;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t&--list-view {\n\t\tmargin-bottom: 100px;\n\t\t// For positioning link overlay on rows\n\t\tposition: relative;\n\t}\n\n\t&__list-container {\n\t\twidth: 100%;\n\t}\n\n\t&__store-container {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\t&__bundle-heading {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmargin: 20px 10px 20px 0;\n\t}\n\n\t&__bundle-header {\n\t\tmargin: 0 10px 0 50px;\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 30px;\n\t\tcolor: var(--color-text-light);\n\t}\n}\n\n#apps-list-search {\n\t.app-item {\n\t\th2 {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=008124b4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=008124b4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppList.vue?vue&type=template&id=008124b4&scoped=true\"\nimport script from \"./AppList.vue?vue&type=script&lang=js\"\nexport * from \"./AppList.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppList.vue?vue&type=style&index=0&id=008124b4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"008124b4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app-content-inner\"}},[_c('div',{staticClass:\"apps-list\",class:{\n\t\t\t'apps-list--list-view': (_vm.useBundleView || _vm.useListView),\n\t\t\t'apps-list--store-view': _vm.useAppStoreView,\n\t\t},attrs:{\"id\":\"apps-list\"}},[(_vm.useListView)?[(_vm.showUpdateAll)?_c('div',{staticClass:\"apps-list__toolbar\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.n('settings', '%n app has an update available', '%n apps have an update available', _vm.counter))+\"\\n\\t\\t\\t\\t\"),(_vm.showUpdateAll)?_c('NcButton',{attrs:{\"id\":\"app-list-update-all\",\"type\":\"primary\"},on:{\"click\":_vm.updateAll}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('settings', 'Update', 'Update all', _vm.counter))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.showUpdateAll)?_c('div',{staticClass:\"apps-list__toolbar\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'All apps are up-to-date.'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('TransitionGroup',{staticClass:\"apps-list__list-container\",attrs:{\"name\":\"apps-list\",\"tag\":\"table\"}},[_c('tr',{key:\"app-list-view-header\"},[_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.apps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})})],2)]:_vm._e(),_vm._v(\" \"),(_vm.useBundleView)?_c('table',{staticClass:\"apps-list__list-container\"},[_c('tr',{key:\"app-list-view-header\"},[_c('th',{attrs:{\"id\":\"app-table-col-icon\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-name\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-version\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-level\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-actions\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.bundles),function(bundle){return [_c('tr',{key:bundle.id},[_c('th',{attrs:{\"id\":`app-table-rowgroup-${bundle.id}`,\"colspan\":\"5\",\"scope\":\"rowgroup\"}},[_c('div',{staticClass:\"apps-list__bundle-heading\"},[_c('span',{staticClass:\"apps-list__bundle-header\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(bundle.name)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){return _vm.toggleBundle(bundle.id)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', _vm.bundleToggleText(bundle.id)))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])]),_vm._v(\" \"),_vm._l((_vm.bundleApps(bundle.id)),function(app){return _c('AppItem',{key:bundle.id + app.id,attrs:{\"use-bundle-view\":true,\"headers\":`app-table-rowgroup-${bundle.id}`,\"app\":app,\"category\":_vm.category}})})]})],2):_vm._e(),_vm._v(\" \"),(_vm.useAppStoreView)?_c('ul',{staticClass:\"apps-list__store-container\"},_vm._l((_vm.apps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category,\"list-view\":false}})}),1):_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"apps-list apps-list--list-view\",attrs:{\"id\":\"apps-list-search\"}},[_c('div',{staticClass:\"apps-list__list-container\"},[(_vm.search !== '' && _vm.searchApps.length > 0)?_c('table',{staticClass:\"apps-list__list-container\"},[_c('caption',{staticClass:\"apps-list__bundle-header\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Results from other categories'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('tr',{key:\"app-list-view-header\"},[_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.searchApps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})})],2):_vm._e()])]),_vm._v(\" \"),(_vm.search !== '' && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0)?_c('div',{staticClass:\"emptycontent emptycontent-search\",attrs:{\"id\":\"apps-list-empty\"}},[_c('div',{staticClass:\"icon-settings-dark\",attrs:{\"id\":\"app-list-empty-icon\"}}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'No apps found for your version')))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"app-discover\"},[(_setup.hasError)?_c(_setup.NcEmptyContent,{attrs:{\"name\":_setup.t('settings', 'Nothing to show'),\"description\":_setup.t('settings', 'Could not load section content from app store.')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiEyeOff,\"size\":64}})]},proxy:true}],null,false,638098482)}):(_setup.elements.length === 0)?_c(_setup.NcEmptyContent,{attrs:{\"name\":_setup.t('settings', 'Loading'),\"description\":_setup.t('settings', 'Fetching the latest news…')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcLoadingIcon,{attrs:{\"size\":64}})]},proxy:true}])}):_vm._l((_setup.elements),function(entry,index){return _c(_setup.getComponent(entry.type),_vm._b({key:entry.id ?? index,tag:\"component\"},'component',entry,false))})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Helper to transform the JSON API results to proper frontend objects (app discover section elements)\n *\n * @param element The JSON API element to transform\n */\nexport const parseApiResponse = (element) => {\n const appElement = { ...element };\n if (appElement.date) {\n appElement.date = Date.parse(appElement.date);\n }\n if (appElement.expiryDate) {\n appElement.expiryDate = Date.parse(appElement.expiryDate);\n }\n if (appElement.type === 'post') {\n return appElement;\n }\n else if (appElement.type === 'showcase') {\n return appElement;\n }\n else if (appElement.type === 'carousel') {\n return appElement;\n }\n throw new Error(`Invalid argument, app discover element with type ${element.type ?? 'unknown'} is unknown`);\n};\n/**\n * Filter outdated or upcoming elements\n * @param element Element to check\n */\nexport const filterElements = (element) => {\n const now = Date.now();\n // Element not yet published\n if (element.date && element.date > now) {\n return false;\n }\n // Element expired\n if (element.expiryDate && element.expiryDate < now) {\n return false;\n }\n return true;\n};\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=bb597eea&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=bb597eea&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppStoreDiscoverSection.vue?vue&type=template&id=bb597eea&scoped=true\"\nimport script from \"./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=bb597eea&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bb597eea\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=f9073bbe&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=f9073bbe&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppStore.vue?vue&type=template&id=f9073bbe&scoped=true\"\nimport script from \"./AppStore.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStore.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppStore.vue?vue&type=style&index=0&id=f9073bbe&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f9073bbe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{attrs:{\"aria-label\":_setup.t('settings', 'Apps')},scopedSlots:_vm._u([{key:\"list\",fn:function(){return [_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-discover\",\"to\":{ name: 'apps-category', params: { category: 'discover'} },\"name\":_setup.APPS_SECTION_ENUM.discover},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.discover}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-installed\",\"to\":{ name: 'apps-category', params: { category: 'installed'} },\"name\":_setup.APPS_SECTION_ENUM.installed},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.installed}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-enabled\",\"to\":{ name: 'apps-category', params: { category: 'enabled' } },\"name\":_setup.APPS_SECTION_ENUM.enabled},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.enabled}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-disabled\",\"to\":{ name: 'apps-category', params: { category: 'disabled' } },\"name\":_setup.APPS_SECTION_ENUM.disabled},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.disabled}})]},proxy:true}])}),_vm._v(\" \"),(_setup.updateCount > 0)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-updates\",\"to\":{ name: 'apps-category', params: { category: 'updates' } },\"name\":_setup.APPS_SECTION_ENUM.updates},scopedSlots:_vm._u([{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,[_vm._v(_vm._s(_setup.updateCount))])]},proxy:true},{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.updates}})]},proxy:true}],null,false,2824895104)}):_vm._e(),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-your-bundles\",\"to\":{ name: 'apps-category', params: { category: 'app-bundles' } },\"name\":_setup.APPS_SECTION_ENUM['app-bundles']},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.bundles}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationSpacer),_vm._v(\" \"),(_setup.appstoreEnabled && _setup.categoriesLoading)?_c('li',{staticClass:\"categories--loading\"},[_c(_setup.NcLoadingIcon,{attrs:{\"size\":20,\"aria-label\":_setup.t('settings', 'Loading categories')}})],1):(_setup.appstoreEnabled && !_setup.categoriesLoading)?[(_setup.isSubscribed)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-supported\",\"to\":{ name: 'apps-category', params: { category: 'supported' } },\"name\":_setup.APPS_SECTION_ENUM.supported},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.supported}})]},proxy:true}],null,false,613663011)}):_vm._e(),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-category-featured\",\"to\":{ name: 'apps-category', params: { category: 'featured' } },\"name\":_setup.APPS_SECTION_ENUM.featured},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.featured}})]},proxy:true}])}),_vm._v(\" \"),_vm._l((_setup.categories),function(category){return _c(_setup.NcAppNavigationItem,{key:category.id,attrs:{\"id\":`app-category-${category.id}`,\"name\":category.displayName,\"to\":{\n\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\tparams: { category: category.id },\n\t\t\t\t}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":category.icon}})]},proxy:true}],null,true)})})]:_vm._e(),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"app-developer-docs\",\"name\":_setup.t('settings', 'Developer documentation ↗'),\"href\":_setup.developerDocsUrl}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=1e611b27&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=1e611b27&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppStoreNavigation.vue?vue&type=template&id=1e611b27&scoped=true\"\nimport script from \"./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppStoreNavigation.vue?vue&type=style&index=0&id=1e611b27&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e611b27\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.showSidebar)?_c(_setup.NcAppSidebar,{staticClass:\"app-sidebar\",class:{ 'app-sidebar--with-screenshot': _setup.hasScreenshot },attrs:{\"active\":_setup.activeTab,\"background\":_setup.hasScreenshot ? _setup.app.screenshot : undefined,\"compact\":!_setup.hasScreenshot,\"name\":_setup.app.name,\"title\":_setup.app.name,\"subname\":_setup.licenseText,\"subtitle\":_setup.licenseText},on:{\"update:active\":function($event){_setup.activeTab=$event},\"close\":_setup.hideAppDetails},scopedSlots:_vm._u([(!_setup.hasScreenshot)?{key:\"header\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{staticClass:\"app-sidebar__fallback-icon\",attrs:{\"svg\":_setup.appIcon ?? '',\"size\":64}})]},proxy:true}:null,{key:\"description\",fn:function(){return [_c('div',{staticClass:\"app-sidebar__badges\"},[_c(_setup.AppLevelBadge,{attrs:{\"level\":_setup.app.level}}),_vm._v(\" \"),(_setup.hasRating)?_c(_setup.AppScore,{attrs:{\"score\":_setup.rating}}):_vm._e()],1)]},proxy:true}],null,true)},[_vm._v(\" \"),_vm._v(\" \"),_c(_setup.AppDescriptionTab,{attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppDetailsTab,{attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppReleasesTab,{attrs:{\"app\":_setup.app}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"settings-markdown\" v-html=\"renderMarkdown\" />\n</template>\n\n<script>\nimport { marked } from 'marked'\nimport dompurify from 'dompurify'\n\nexport default {\n\tname: 'Markdown',\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tminHeading: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1,\n\t\t},\n\t},\n\tcomputed: {\n\t\trenderMarkdown() {\n\t\t\tconst renderer = new marked.Renderer()\n\t\t\trenderer.link = function(href, title, text) {\n\t\t\t\tlet prot\n\t\t\t\ttry {\n\t\t\t\t\tprot = decodeURIComponent(unescape(href))\n\t\t\t\t\t\t.replace(/[^\\w:]/g, '')\n\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\n\t\t\t\tif (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\n\t\t\t\tlet out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"'\n\t\t\t\tif (title) {\n\t\t\t\t\tout += ' title=\"' + title + '\"'\n\t\t\t\t}\n\t\t\t\tout += '>' + text + '</a>'\n\t\t\t\treturn out\n\t\t\t}\n\t\t\trenderer.heading = (text, level) => {\n\t\t\t\tlevel = Math.min(6, level + (this.minHeading - 1))\n\t\t\t\treturn `<h${level}>${text}</h${level}>`\n\t\t\t}\n\t\t\trenderer.image = function(href, title, text) {\n\t\t\t\tif (text) {\n\t\t\t\t\treturn text\n\t\t\t\t}\n\t\t\t\treturn title\n\t\t\t}\n\t\t\trenderer.blockquote = function(quote) {\n\t\t\t\treturn quote\n\t\t\t}\n\t\t\treturn dompurify.sanitize(\n\t\t\t\tmarked(this.text.trim(), {\n\t\t\t\t\trenderer,\n\t\t\t\t\tgfm: false,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttables: false,\n\t\t\t\t\tbreaks: false,\n\t\t\t\t\tpedantic: false,\n\t\t\t\t\tsanitize: true,\n\t\t\t\t\tsmartLists: true,\n\t\t\t\t\tsmartypants: false,\n\t\t\t\t}),\n\t\t\t\t{\n\t\t\t\t\tSAFE_FOR_JQUERY: true,\n\t\t\t\t\tALLOWED_TAGS: [\n\t\t\t\t\t\t'h1',\n\t\t\t\t\t\t'h2',\n\t\t\t\t\t\t'h3',\n\t\t\t\t\t\t'h4',\n\t\t\t\t\t\t'h5',\n\t\t\t\t\t\t'h6',\n\t\t\t\t\t\t'strong',\n\t\t\t\t\t\t'p',\n\t\t\t\t\t\t'a',\n\t\t\t\t\t\t'ul',\n\t\t\t\t\t\t'ol',\n\t\t\t\t\t\t'li',\n\t\t\t\t\t\t'em',\n\t\t\t\t\t\t'del',\n\t\t\t\t\t\t'blockquote',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.settings-markdown::v-deep {\n\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6 {\n\t\tfont-weight: 600;\n\t\tline-height: 120%;\n\t\tmargin-top: 24px;\n\t\tmargin-bottom: 12px;\n\t\tcolor: var(--color-main-text);\n\t}\n\n\th1 {\n\t\tfont-size: 36px;\n\t\tmargin-top: 48px;\n\t}\n\n\th2 {\n\t\tfont-size: 28px;\n\t\tmargin-top: 48px;\n\t}\n\n\th3 {\n\t\tfont-size: 24px;\n\t}\n\n\th4 {\n\t\tfont-size: 21px;\n\t}\n\n\th5 {\n\t\tfont-size: 17px;\n\t}\n\n\th6 {\n\t\tfont-size: var(--default-font-size);\n\t}\n\n\tpre {\n\t\twhite-space: pre;\n\t\toverflow-x: auto;\n\t\tbackground-color: var(--color-background-dark);\n\t\tborder-radius: var(--border-radius);\n\t\tpadding: 1em 1.3em;\n\t\tmargin-bottom: 1em;\n\t}\n\n\tp code {\n\t\tbackground-color: var(--color-background-dark);\n\t\tborder-radius: var(--border-radius);\n\t\tpadding: .1em .3em;\n\t}\n\n\tli {\n\t\tposition: relative;\n\t}\n\n\tul, ol {\n\t\tpadding-left: 10px;\n\t\tmargin-left: 10px;\n\t}\n\n\tul li {\n\t\tlist-style-type: disc;\n\t}\n\n\tul > li > ul > li {\n\t\tlist-style-type: circle;\n\t}\n\n\tul > li > ul > li ul li {\n\t\tlist-style-type: square;\n\t}\n\n\tblockquote {\n\t\tpadding-left: 1em;\n\t\tborder-left: 4px solid var(--color-primary-element);\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=72285f1b&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=72285f1b&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=72285f1b&scoped=true\"\nimport script from \"./Markdown.vue?vue&type=script&lang=js\"\nexport * from \"./Markdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=72285f1b&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72285f1b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"settings-markdown\",domProps:{\"innerHTML\":_vm._s(_vm.renderMarkdown)}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSidebarTab,{attrs:{\"id\":\"desc\",\"name\":_setup.t('settings', 'Description'),\"order\":0},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiTextShort}})]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"app-description\"},[_c(_setup.Markdown,{attrs:{\"text\":_vm.app.description,\"min-heading\":4}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=cf0a1ae6&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=cf0a1ae6&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDescriptionTab.vue?vue&type=template&id=cf0a1ae6&scoped=true\"\nimport script from \"./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppDescriptionTab.vue?vue&type=style&index=0&id=cf0a1ae6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf0a1ae6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSidebarTab',{attrs:{\"id\":\"details\",\"name\":_vm.t('settings', 'Details'),\"order\":1},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiTextBox}})]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"app-details\"},[_c('div',{staticClass:\"app-details__actions\"},[(_vm.app.active && _vm.canLimitToGroups(_vm.app))?_c('div',{staticClass:\"app-details__actions-groups\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.groupCheckedAppsData),expression:\"groupCheckedAppsData\"}],staticClass:\"groups-enable__checkbox checkbox\",attrs:{\"id\":`groups_enable_${_vm.app.id}`,\"type\":\"checkbox\"},domProps:{\"value\":_vm.app.id,\"checked\":Array.isArray(_vm.groupCheckedAppsData)?_vm._i(_vm.groupCheckedAppsData,_vm.app.id)>-1:(_vm.groupCheckedAppsData)},on:{\"change\":[function($event){var $$a=_vm.groupCheckedAppsData,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.app.id,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.groupCheckedAppsData=$$a.concat([$$v]))}else{$$i>-1&&(_vm.groupCheckedAppsData=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.groupCheckedAppsData=$$c}},_vm.setGroupLimit]}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":`groups_enable_${_vm.app.id}`}},[_vm._v(_vm._s(_vm.t('settings', 'Limit to groups')))]),_vm._v(\" \"),_c('input',{staticClass:\"group_select\",attrs:{\"type\":\"hidden\",\"title\":_vm.t('settings', 'All'),\"value\":\"\"}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"limitToGroups\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Limit app usage to groups')))])]),_vm._v(\" \"),(_vm.isLimitedToGroups(_vm.app))?_c('NcSelect',{attrs:{\"input-id\":\"limitToGroups\",\"options\":_vm.groups,\"value\":_vm.appGroups,\"limit\":5,\"label\":\"name\",\"multiple\":true,\"close-on-select\":false},on:{\"option:selected\":_vm.addGroupLimitation,\"option:deselected\":_vm.removeGroupLimitation,\"search\":_vm.asyncFindGroup}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings', 'No results')))])]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-details__actions-manage\"},[(_vm.app.update)?_c('input',{staticClass:\"update primary\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Update to {version}', { version: _vm.app.update }),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.update(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('input',{staticClass:\"uninstall\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Remove'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.remove(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings','Disable'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.disable(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('input',{staticClass:\"enable primary\",attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"type\":\"button\",\"value\":_vm.enableButtonText,\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.enable(_vm.app.id)}}}):(!_vm.app.active && !_vm.app.canInstall)?_c('input',{staticClass:\"enable force\",attrs:{\"title\":_vm.forceEnableButtonTooltip,\"aria-label\":_vm.forceEnableButtonTooltip,\"type\":\"button\",\"value\":_vm.forceEnableButtonText,\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.forceEnable(_vm.app.id)}}}):_vm._e()])]),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__dependencies\"},[(_vm.app.missingMinOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.missingMaxOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.canInstall)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:'))+\"\\n\\t\\t\\t\\t\"),_c('ul',{staticClass:\"missing-dependencies\"},_vm._l((_vm.app.missingDependencies),function(dep,index){return _c('li',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(dep)+\"\\n\\t\\t\\t\\t\\t\")])}),0)]):_vm._e()]),_vm._v(\" \"),(_vm.lastModified)?_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Latest updated'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.lastModified}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Author'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"app-details__authors\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.appAuthors)+\"\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Categories'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.appCategories)+\"\\n\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.externalResources.length > 0)?_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(_vm._s(_vm.t('settings', 'Resources')))]),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__documentation\",attrs:{\"aria-label\":_vm.t('settings', 'Documentation')}},_vm._l((_vm.externalResources),function(resource){return _c('li',{key:resource.id},[_c('a',{staticClass:\"appslink\",attrs:{\"href\":resource.href,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(resource.label)+\" ↗\\n\\t\\t\\t\\t\\t\")])])}),0)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(_vm._s(_vm.t('settings', 'Interact')))]),_vm._v(\" \"),_c('div',{staticClass:\"app-details__interact\"},[_c('NcButton',{attrs:{\"disabled\":!_vm.app.bugs,\"href\":_vm.app.bugs ?? '#',\"aria-label\":_vm.t('settings', 'Report a bug'),\"title\":_vm.t('settings', 'Report a bug')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiBug}})]},proxy:true}])}),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":!_vm.app.bugs,\"href\":_vm.app.bugs ?? '#',\"aria-label\":_vm.t('settings', 'Request feature'),\"title\":_vm.t('settings', 'Request feature')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiFeatureSearch}})]},proxy:true}])}),_vm._v(\" \"),(_vm.app.appstoreData?.discussion)?_c('NcButton',{attrs:{\"href\":_vm.app.appstoreData.discussion,\"aria-label\":_vm.t('settings', 'Ask questions or discuss'),\"title\":_vm.t('settings', 'Ask questions or discuss')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiTooltipQuestion}})]},proxy:true}],null,false,1288192462)}):_vm._e(),_vm._v(\" \"),(!_vm.app.internal)?_c('NcButton',{attrs:{\"href\":_vm.rateAppUrl,\"aria-label\":_vm.t('settings', 'Rate the app'),\"title\":_vm.t('settings', 'Rate')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiStar}})]},proxy:true}],null,false,422450625)}):_vm._e()],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppSidebarTab id=\"details\"\n\t\t:name=\"t('settings', 'Details')\"\n\t\t:order=\"1\">\n\t\t<template #icon>\n\t\t\t<NcIconSvgWrapper :path=\"mdiTextBox\" />\n\t\t</template>\n\t\t<div class=\"app-details\">\n\t\t\t<div class=\"app-details__actions\">\n\t\t\t\t<div v-if=\"app.active && canLimitToGroups(app)\" class=\"app-details__actions-groups\">\n\t\t\t\t\t<input :id=\"`groups_enable_${app.id}`\"\n\t\t\t\t\t\tv-model=\"groupCheckedAppsData\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t:value=\"app.id\"\n\t\t\t\t\t\tclass=\"groups-enable__checkbox checkbox\"\n\t\t\t\t\t\t@change=\"setGroupLimit\">\n\t\t\t\t\t<label :for=\"`groups_enable_${app.id}`\">{{ t('settings', 'Limit to groups') }}</label>\n\t\t\t\t\t<input type=\"hidden\"\n\t\t\t\t\t\tclass=\"group_select\"\n\t\t\t\t\t\t:title=\"t('settings', 'All')\"\n\t\t\t\t\t\tvalue=\"\">\n\t\t\t\t\t<br>\n\t\t\t\t\t<label for=\"limitToGroups\">\n\t\t\t\t\t\t<span>{{ t('settings', 'Limit app usage to groups') }}</span>\n\t\t\t\t\t</label>\n\t\t\t\t\t<NcSelect v-if=\"isLimitedToGroups(app)\"\n\t\t\t\t\t\tinput-id=\"limitToGroups\"\n\t\t\t\t\t\t:options=\"groups\"\n\t\t\t\t\t\t:value=\"appGroups\"\n\t\t\t\t\t\t:limit=\"5\"\n\t\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t\t@option:selected=\"addGroupLimitation\"\n\t\t\t\t\t\t@option:deselected=\"removeGroupLimitation\"\n\t\t\t\t\t\t@search=\"asyncFindGroup\">\n\t\t\t\t\t\t<span slot=\"noResult\">{{ t('settings', 'No results') }}</span>\n\t\t\t\t\t</NcSelect>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"app-details__actions-manage\">\n\t\t\t\t\t<input v-if=\"app.update\"\n\t\t\t\t\t\tclass=\"update primary\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t:value=\"t('settings', 'Update to {version}', { version: app.update })\"\n\t\t\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t\t\t@click=\"update(app.id)\">\n\t\t\t\t\t<input v-if=\"app.canUnInstall\"\n\t\t\t\t\t\tclass=\"uninstall\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t:value=\"t('settings', 'Remove')\"\n\t\t\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t\t\t@click=\"remove(app.id)\">\n\t\t\t\t\t<input v-if=\"app.active\"\n\t\t\t\t\t\tclass=\"enable\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t:value=\"t('settings','Disable')\"\n\t\t\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t\t\t@click=\"disable(app.id)\">\n\t\t\t\t\t<input v-if=\"!app.active && (app.canInstall || app.isCompatible)\"\n\t\t\t\t\t\t:title=\"enableButtonTooltip\"\n\t\t\t\t\t\t:aria-label=\"enableButtonTooltip\"\n\t\t\t\t\t\tclass=\"enable primary\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t:value=\"enableButtonText\"\n\t\t\t\t\t\t:disabled=\"!app.canInstall || installing || isLoading\"\n\t\t\t\t\t\t@click=\"enable(app.id)\">\n\t\t\t\t\t<input v-else-if=\"!app.active && !app.canInstall\"\n\t\t\t\t\t\t:title=\"forceEnableButtonTooltip\"\n\t\t\t\t\t\t:aria-label=\"forceEnableButtonTooltip\"\n\t\t\t\t\t\tclass=\"enable force\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t:value=\"forceEnableButtonText\"\n\t\t\t\t\t\t:disabled=\"installing || isLoading\"\n\t\t\t\t\t\t@click=\"forceEnable(app.id)\">\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<ul class=\"app-details__dependencies\">\n\t\t\t\t<li v-if=\"app.missingMinOwnCloudVersion\">\n\t\t\t\t\t{{ t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.') }}\n\t\t\t\t</li>\n\t\t\t\t<li v-if=\"app.missingMaxOwnCloudVersion\">\n\t\t\t\t\t{{ t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.') }}\n\t\t\t\t</li>\n\t\t\t\t<li v-if=\"!app.canInstall\">\n\t\t\t\t\t{{ t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:') }}\n\t\t\t\t\t<ul class=\"missing-dependencies\">\n\t\t\t\t\t\t<li v-for=\"(dep, index) in app.missingDependencies\" :key=\"index\">\n\t\t\t\t\t\t\t{{ dep }}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t</ul>\n\n\t\t\t<div v-if=\"lastModified\" class=\"app-details__section\">\n\t\t\t\t<h4>\n\t\t\t\t\t{{ t('settings', 'Latest updated') }}\n\t\t\t\t</h4>\n\t\t\t\t<NcDateTime :timestamp=\"lastModified\" />\n\t\t\t</div>\n\n\t\t\t<div class=\"app-details__section\">\n\t\t\t\t<h4>\n\t\t\t\t\t{{ t('settings', 'Author') }}\n\t\t\t\t</h4>\n\t\t\t\t<p class=\"app-details__authors\">\n\t\t\t\t\t{{ appAuthors }}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<div class=\"app-details__section\">\n\t\t\t\t<h4>\n\t\t\t\t\t{{ t('settings', 'Categories') }}\n\t\t\t\t</h4>\n\t\t\t\t<p>\n\t\t\t\t\t{{ appCategories }}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"externalResources.length > 0\" class=\"app-details__section\">\n\t\t\t\t<h4>{{ t('settings', 'Resources') }}</h4>\n\t\t\t\t<ul class=\"app-details__documentation\" :aria-label=\"t('settings', 'Documentation')\">\n\t\t\t\t\t<li v-for=\"resource of externalResources\" :key=\"resource.id\">\n\t\t\t\t\t\t<a class=\"appslink\"\n\t\t\t\t\t\t\t:href=\"resource.href\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t\t\t{{ resource.label }} ↗\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\n\t\t\t<div class=\"app-details__section\">\n\t\t\t\t<h4>{{ t('settings', 'Interact') }}</h4>\n\t\t\t\t<div class=\"app-details__interact\">\n\t\t\t\t\t<NcButton :disabled=\"!app.bugs\"\n\t\t\t\t\t\t:href=\"app.bugs ?? '#'\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Report a bug')\"\n\t\t\t\t\t\t:title=\"t('settings', 'Report a bug')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiBug\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton :disabled=\"!app.bugs\"\n\t\t\t\t\t\t:href=\"app.bugs ?? '#'\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Request feature')\"\n\t\t\t\t\t\t:title=\"t('settings', 'Request feature')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiFeatureSearch\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-if=\"app.appstoreData?.discussion\"\n\t\t\t\t\t\t:href=\"app.appstoreData.discussion\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Ask questions or discuss')\"\n\t\t\t\t\t\t:title=\"t('settings', 'Ask questions or discuss')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiTooltipQuestion\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-if=\"!app.internal\"\n\t\t\t\t\t\t:href=\"rateAppUrl\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Rate the app')\"\n\t\t\t\t\t\t:title=\"t('settings', 'Rate')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiStar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</NcAppSidebarTab>\n</template>\n\n<script>\nimport NcAppSidebarTab from '@nextcloud/vue/dist/Components/NcAppSidebarTab.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcDateTime from '@nextcloud/vue/dist/Components/NcDateTime.js'\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport AppManagement from '../../mixins/AppManagement.js'\nimport { mdiBug, mdiFeatureSearch, mdiStar, mdiTextBox, mdiTooltipQuestion } from '@mdi/js'\nimport { useAppsStore } from '../../store/apps-store'\n\nexport default {\n\tname: 'AppDetailsTab',\n\n\tcomponents: {\n\t\tNcAppSidebarTab,\n\t\tNcButton,\n\t\tNcDateTime,\n\t\tNcIconSvgWrapper,\n\t\tNcSelect,\n\t},\n\tmixins: [AppManagement],\n\n\tprops: {\n\t\tapp: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst store = useAppsStore()\n\n\t\treturn {\n\t\t\tstore,\n\n\t\t\tmdiBug,\n\t\t\tmdiFeatureSearch,\n\t\t\tmdiStar,\n\t\t\tmdiTextBox,\n\t\t\tmdiTooltipQuestion,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tlastModified() {\n\t\t\treturn (this.app.appstoreData?.releases ?? [])\n\t\t\t\t.map(({ lastModified }) => Date.parse(lastModified))\n\t\t\t\t.sort()\n\t\t\t\t.at(0) ?? null\n\t\t},\n\t\t/**\n\t\t * App authors as comma separated string\n\t\t */\n\t\tappAuthors() {\n\t\t\tconsole.warn(this.app)\n\t\t\tif (!this.app) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tconst authorName = (xmlNode) => {\n\t\t\t\tif (xmlNode['@value']) {\n\t\t\t\t\t// Complex node (with email or homepage attribute)\n\t\t\t\t\treturn xmlNode['@value']\n\t\t\t\t}\n\t\t\t\t// Simple text node\n\t\t\t\treturn xmlNode\n\t\t\t}\n\n\t\t\tconst authors = Array.isArray(this.app.author)\n\t\t\t\t? this.app.author.map(authorName)\n\t\t\t\t: [authorName(this.app.author)]\n\n\t\t\treturn authors\n\t\t\t\t.sort((a, b) => a.split(' ').at(-1).localeCompare(b.split(' ').at(-1)))\n\t\t\t\t.join(', ')\n\t\t},\n\n\t\tappstoreUrl() {\n\t\t\treturn `https://apps.nextcloud.com/apps/${this.app.id}`\n\t\t},\n\n\t\t/**\n\t\t * Further external resources (e.g. website)\n\t\t */\n\t\texternalResources() {\n\t\t\tconst resources = []\n\t\t\tif (!this.app.internal) {\n\t\t\t\tresources.push({\n\t\t\t\t\tid: 'appstore',\n\t\t\t\t\thref: this.appstoreUrl,\n\t\t\t\t\tlabel: t('settings', 'View in store'),\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (this.app.website) {\n\t\t\t\tresources.push({\n\t\t\t\t\tid: 'website',\n\t\t\t\t\thref: this.app.website,\n\t\t\t\t\tlabel: t('settings', 'Visit website'),\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (this.app.documentation) {\n\t\t\t\tif (this.app.documentation.user) {\n\t\t\t\t\tresources.push({\n\t\t\t\t\t\tid: 'doc-user',\n\t\t\t\t\t\thref: this.app.documentation.user,\n\t\t\t\t\t\tlabel: t('settings', 'Usage documentation'),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.app.documentation.admin) {\n\t\t\t\t\tresources.push({\n\t\t\t\t\t\tid: 'doc-admin',\n\t\t\t\t\t\thref: this.app.documentation.admin,\n\t\t\t\t\t\tlabel: t('settings', 'Admin documentation'),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.app.documentation.developer) {\n\t\t\t\t\tresources.push({\n\t\t\t\t\t\tid: 'doc-developer',\n\t\t\t\t\t\thref: this.app.documentation.developer,\n\t\t\t\t\t\tlabel: t('settings', 'Developer documentation'),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn resources\n\t\t},\n\n\t\tappCategories() {\n\t\t\treturn [this.app.category].flat()\n\t\t\t\t.map((id) => this.store.getCategoryById(id)?.displayName ?? id)\n\t\t\t\t.join(', ')\n\t\t},\n\n\t\trateAppUrl() {\n\t\t\treturn `${this.appstoreUrl}#comments`\n\t\t},\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map(group => { return { id: group, name: group } })\n\t\t},\n\t\tgroups() {\n\t\t\treturn this.$store.getters.getGroups\n\t\t\t\t.filter(group => group.id !== 'disabled')\n\t\t\t\t.sort((a, b) => a.name.localeCompare(b.name))\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-details {\n\tpadding: 20px;\n\n\t&__actions {\n\t\t// app management\n\t\t&-manage {\n\t\t\t// if too many, shrink them and ellipsis\n\t\t\tdisplay: flex;\n\t\t\tinput {\n\t\t\t\tflex: 0 1 auto;\n\t\t\t\tmin-width: 0;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t}\n\t}\n\t&__authors {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__section {\n\t\tmargin-top: 15px;\n\n\t\th4 {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-block-end: 5px;\n\t\t}\n\t}\n\n\t&__interact {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t\tgap: 12px;\n\t}\n\n\t&__documentation {\n\t\ta {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\tli {\n\t\t\tpadding-inline-start: 20px;\n\n\t\t\t&::before {\n\t\t\t\twidth: 5px;\n\t\t\t\theight: 5px;\n\t\t\t\tborder-radius: 100%;\n\t\t\t\tbackground-color: var(--color-main-text);\n\t\t\t\tcontent: \"\";\n\t\t\t\tfloat: inline-start;\n\t\t\t\tmargin-inline-start: -13px;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: 10px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.force {\n\tcolor: var(--color-error);\n\tborder-color: var(--color-error);\n\tbackground: var(--color-main-background);\n}\n.force:hover,\n.force:active {\n\tcolor: var(--color-main-background);\n\tborder-color: var(--color-error) !important;\n\tbackground: var(--color-error);\n}\n\n.missing-dependencies {\n\tlist-style: initial;\n\tlist-style-type: initial;\n\tlist-style-position: inside;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=533705fa&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=533705fa&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDetailsTab.vue?vue&type=template&id=533705fa&scoped=true\"\nimport script from \"./AppDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./AppDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppDetailsTab.vue?vue&type=style&index=0&id=533705fa&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"533705fa\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.hasChangelog)?_c(_setup.NcAppSidebarTab,{attrs:{\"id\":\"changelog\",\"name\":_setup.t('settings', 'Changelog'),\"order\":2},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClockFast,\"size\":24}})]},proxy:true}],null,false,1849836872)},[_vm._v(\" \"),_vm._l((_vm.app.releases),function(release){return _c('div',{key:release.version,staticClass:\"app-sidebar-tabs__release\"},[_c('h2',[_vm._v(_vm._s(release.version))]),_vm._v(\" \"),_c(_setup.Markdown,{staticClass:\"app-sidebar-tabs__release-text\",attrs:{\"text\":_setup.createChangelogFromRelease(release)}})],1)})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=9c32407e&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=9c32407e&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppReleasesTab.vue?vue&type=template&id=9c32407e&scoped=true\"\nimport script from \"./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppReleasesTab.vue?vue&type=style&index=0&id=9c32407e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9c32407e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts\"","import { mdiCog } from '@mdi/js';\nimport { computed, ref, watchEffect } from 'vue';\nimport AppstoreCategoryIcons from '../constants/AppstoreCategoryIcons.ts';\nimport logger from '../logger.ts';\n/**\n * Get the app icon raw SVG for use with `NcIconSvgWrapper` (do never use without sanitizing)\n * It has a fallback to the categroy icon.\n *\n * @param app The app to get the icon for\n */\nexport function useAppIcon(app) {\n const appIcon = ref(null);\n /**\n * Fallback value if no app icon available\n */\n const categoryIcon = computed(() => {\n const path = [app.value?.category ?? []].flat()\n .map((name) => AppstoreCategoryIcons[name])\n .filter((icon) => !!icon)\n .at(0)\n ?? mdiCog;\n return path ? `<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"${path}\" /></svg>` : null;\n });\n watchEffect(async () => {\n // Note: Only variables until the first `await` will be watched!\n if (!app.value?.preview) {\n appIcon.value = categoryIcon.value;\n }\n else {\n appIcon.value = null;\n // Now try to load the real app icon\n try {\n const response = await window.fetch(app.value.preview);\n const blob = await response.blob();\n const rawSvg = await blob.text();\n appIcon.value = rawSvg.replaceAll(/fill=\"#(fff|ffffff)([a-z0-9]{1,2})?\"/ig, 'fill=\"currentColor\"');\n }\n catch (error) {\n appIcon.value = categoryIcon.value;\n logger.error('Could not load app icon', { error });\n }\n }\n });\n return {\n appIcon,\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=2f300fa2&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=2f300fa2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppStoreSidebar.vue?vue&type=template&id=2f300fa2&scoped=true\"\nimport script from \"./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppStoreSidebar.vue?vue&type=style&index=0&id=2f300fa2&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f300fa2\",\n null\n \n)\n\nexport default component.exports"],"names":["APPS_SECTION_ENUM","Object","freeze","discover","t","installed","enabled","disabled","updates","featured","supported","axios","get","generateOcsUrl","then","_ref","data","ocs","meta","statuscode","emit","apps","window","dispatchEvent","Event","computed","appGroups","this","app","groups","map","group","id","name","installing","$store","getters","loading","isLoading","enableButtonText","needsDownload","forceEnableButtonText","enableButtonTooltip","forceEnableButtonTooltip","base","groupCheckedAppsData","mounted","length","methods","asyncFindGroup","query","dispatch","search","limit","offset","isLimitedToGroups","setGroupLimit","appId","canLimitToGroups","types","includes","addGroupLimitation","groupArray","pop","concat","removeGroupLimitation","currentGroups","index","indexOf","splice","forceEnable","response","rebuildNavigation","catch","error","showError","enable","disable","remove","install","update","mdiStarCircleOutline","mdiAccount","mdiCheck","mdiClose","bundles","mdiArchive","mdiStarShooting","mdiStar","mdiDownload","auth","mdiKey","customization","mdiCog","dashboard","mdiViewDashboard","files","mdiFolder","games","mdiControllerClassic","integration","mdiOpenInApp","monitoring","mdiMonitorEye","multimedia","mdiMultimedia","office","mdiFileDocumentEdit","organization","mdiOfficeBuilding","mdiMagnify","security","mdiSecurity","social","mdiAccountMultiple","tools","mdiTools","workflow","mdiClipboardFlow","showApiError","useAppsStore","defineStore","state","categories","updateCount","loadState","loadingList","gettingCategoriesPromise","actions","loadCategories","force","arguments","undefined","generateUrl","category","_APPSTORE_CATEGORY_IC","icon","APPSTORE_CATEGORY_ICONS","$patch","logger","loadApps","getCategoryById","categoryId","_this$categories$find","find","getAppById","_this$apps$find","_ref2","___CSS_LOADER_EXPORT___","push","module","filterId","filterUrl","Math","random","toString","substring","components","AppLevelBadge","AppScore","NcButton","mixins","AppManagement","SvgFilterMixin","props","type","required","String","listView","Boolean","default","useBundleView","headers","inline","isSelected","scrolled","screenshotLoaded","hasRating","appstoreData","ratingNumOverall","dataItemTag","withSidebar","$route","params","watch","releases","screenshot","image","Image","onload","src","watchers","prefix","content","getDataItemHeaders","columnName","join","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_c","_self","tag","staticClass","class","attrs","preview","_e","_v","appName","_s","summary","version","level","score","on","$event","stopPropagation","canUnInstall","active","canInstall","isCompatible","_defineComponent","__name","setup","__props","isSupported","isFeatured","badgeIcon","value","badgeText","badgeTitle","__sfc","NcIconSvgWrapper","_setup","_setupProxy","defineComponent","Number","mdiStarHalfFull","mdiStarOutline","title","appScore","toFixed","fullStars","floor","emptyStars","min","hasHalfStar","_l","key","Node","constructor","_defineProperty","_head","WeakMap","_tail","_size","_Symbol$iterator","Symbol","iterator","Queue","_classPrivateFieldInitSpec","writable","clear","enqueue","_this$size","node","_classPrivateFieldGet","next","_classPrivateFieldSet","dequeue","_this$size3","current","size","pLimit","concurrency","isInteger","POSITIVE_INFINITY","TypeError","queue","activeCount","run","async","fn","resolve","args","result","generator","_len","Array","_key","Promise","bind","defineProperties","pendingCount","clearQueue","AppItem","counter","filter","hasPendingUpdate","showUpdateAll","useListView","getAllApps","toLowerCase","sort","a","b","sortStringA","sortStringB","OC","Util","naturalSortCompare","appstore","getAppBundles","bundle","bundleApps","bundleIds","searchApps","_app","useAppStoreView","allBundlesEnabled","bundleToggleText","beforeDestroy","unsubscribe","setSearch","resetSearch","subscribe","toggleBundle","disableBundle","enableBundle","console","Notification","show","updateAll","n","parseApiResponse","element","_element$type","appElement","date","Date","parse","expiryDate","Error","filterElements","now","PostType","defineAsyncComponent","CarouselType","ShowcaseType","hasError","ref","elements","shuffleArray","array","i","j","onBeforeMount","info","parsedElements","shuffledElements","_a$order","_b$order","order","Infinity","getComponent","render","h","mdiEyeOff","NcEmptyContent","NcLoadingIcon","scopedSlots","_u","proxy","entry","_entry$id","_b","route","useRoute","store","currentCategory","_route$params$categor","_route$params","appStoreLabel","viewLabel","_APPS_SECTION_ENUM$cu","_store$getCategoryByI","displayName","watchEffect","document","instance","getCurrentInstance","shouldRefetchCategories","NcAppContent","AppList","AppStoreDiscoverSection","domProps","appstoreEnabled","developerDocsUrl","categoriesLoading","isSubscribed","NcAppNavigation","NcAppNavigationItem","NcAppNavigationSpacer","NcCounterBubble","text","minHeading","renderMarkdown","renderer","marked","Renderer","link","href","prot","decodeURIComponent","unescape","replace","e","out","heading","blockquote","quote","dompurify","trim","gfm","highlight","tables","breaks","pedantic","sanitize","smartLists","smartypants","SAFE_FOR_JQUERY","ALLOWED_TAGS","mdiTextShort","NcAppSidebarTab","Markdown","description","NcDateTime","NcSelect","mdiBug","mdiFeatureSearch","mdiTextBox","mdiTooltipQuestion","lastModified","_map$sort$at","_this$app$appstoreDat","_this$app$appstoreDat2","at","appAuthors","warn","authorName","xmlNode","isArray","author","split","localeCompare","appstoreUrl","externalResources","resources","internal","label","website","documentation","user","admin","developer","appCategories","flat","_this$store$getCatego","_this$store$getCatego2","rateAppUrl","getGroups","_vm$app$bugs","_vm$app$bugs2","_vm$app$appstoreData","directives","rawName","expression","_i","$$a","$$el","target","$$c","checked","$$v","$$i","slice","slot","missingMinOwnCloudVersion","missingMaxOwnCloudVersion","missingDependencies","dep","resource","bugs","discussion","hasChangelog","_props$app$releases$","_props$app$releases","values","translations","some","changelog","createChangelogFromRelease","release","_release$translations","_release$translations2","_release$translations3","getLanguage","en","mdiClockFast","router","useRouter","_route$params$id","_app$value$appstoreDa","rating","_app$value$appstoreDa2","_app$value$appstoreDa3","_app$value$appstoreDa4","ratingNumRecent","ratingRecent","ratingOverall","showSidebar","appIcon","categoryIcon","_flat$map$filter$at","_app$value$category","_app$value","path","AppstoreCategoryIcons","_app$value2","fetch","blob","rawSvg","replaceAll","useAppIcon","licenseText","license","licence","toUpperCase","activeTab","hasScreenshot","loadScreenshot","_app$value3","onMounted","hideAppDetails","NcAppSidebar","AppDescriptionTab","AppDetailsTab","AppReleasesTab","_setup$appIcon"],"sourceRoot":""}
|