diff --git a/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue b/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue index 2f1669f835084..c21063d850b4a 100644 --- a/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue +++ b/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue @@ -12,103 +12,6 @@
-
-
- - - -
- - - {{ t('appstore', 'No results') }} - -
-
- - - - - - - - {{ t('appstore', 'Deploy options') }} - -
-

- {{ t('appstore', 'Default Deploy daemon is not accessible') }} -

- - {{ t('appstore', 'Delete data on remove') }} - -
-
- group.id !== 'disabled') - .sort((a, b) => a.name.localeCompare(b.name)) - }, }, beforeUnmount() { @@ -409,29 +293,10 @@ export default { }, methods: { - toggleRemoveData() { - this.removeData = !this.removeData - }, - showSelectionModal(deployOptions = null) { this.deployOptions = deployOptions this.showSelectDaemonModal = true }, - - async enableButtonAction() { - if (!this.app?.app_api) { - this.enable(this.app.id) - return - } - await this.appApiStore.fetchDockerDaemons() - if (this.appApiStore.dockerDaemons.length === 1 && this.app.needsDownload) { - this.enable(this.app.id, this.appApiStore.dockerDaemons[0]) - } else if (this.app.needsDownload) { - this.showSelectionModal() - } else { - this.enable(this.app.id, this.app.daemon) - } - }, }, } @@ -440,21 +305,6 @@ export default { .app-details { padding: 20px; - &__actions { - // app management - &-manage { - // if too many, shrink them and ellipsis - display: flex; - align-items: center; - input { - flex: 0 1 auto; - min-width: 0; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - } - } - } &__authors { color: var(--color-text-maxcontrast); } diff --git a/apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue b/apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue new file mode 100644 index 0000000000000..60cf14d482680 --- /dev/null +++ b/apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue @@ -0,0 +1,219 @@ + + + + + + + diff --git a/apps/appstore/src/views/AppStoreSidebar.vue b/apps/appstore/src/views/AppStoreSidebar.vue index 4c874e36a36b9..d2ca20a0d8f50 100644 --- a/apps/appstore/src/views/AppStoreSidebar.vue +++ b/apps/appstore/src/views/AppStoreSidebar.vue @@ -25,11 +25,16 @@ @@ -54,6 +59,7 @@ import AppDeployDaemonTab from '../components/AppStoreSidebar/AppDeployDaemonTab import AppDescriptionTab from '../components/AppStoreSidebar/AppDescriptionTab.vue' import AppDetailsTab from '../components/AppStoreSidebar/AppDetailsTab.vue' import AppReleasesTab from '../components/AppStoreSidebar/AppReleasesTab.vue' +import AppStoreSidebarActions from '../components/AppStoreSidebar/AppStoreSidebarActions.vue' import { useAppIcon } from '../composables/useAppIcon.ts' import { useAppApiStore } from '../store/app-api-store.ts' import { useAppsStore } from '../store/apps-store.ts' @@ -149,12 +155,24 @@ onMounted(loadScreenshot) height: 100%; } + &__description { + display: flex; + flex-direction: column; + gap: 12px; + } + &__badges { display: flex; flex-direction: row; + flex-wrap: wrap; gap: 12px; } + &__score { + display: flex; + align-items: center; + } + &__version { color: var(--color-text-maxcontrast); } diff --git a/dist/appstore-main.js b/dist/appstore-main.js index aaceb039dde73..96a4901f82862 100644 --- a/dist/appstore-main.js +++ b/dist/appstore-main.js @@ -1,2 +1,2 @@ -(()=>{var e,a,r,o={3057(e,t,a){"use strict";a.d(t,{A:()=>s});var r=a(19051),o=a(77690);function p(e){return e.replace(/\/$/,"")}(0,o.IF)(r.Ay);const s={requireAdmin:()=>(0,o.C5)(),get:(e,t)=>r.Ay.get(p(e),t),post:(e,t,a)=>r.Ay.post(p(e),t,a),patch:(e,t)=>r.Ay.patch(p(e),t),put:(e,t)=>r.Ay.put(p(e),t),delete:(e,t)=>r.Ay.delete(p(e),{params:t})}},72135(e,a,r){"use strict";r.d(a,{P:()=>v});var o=r(85168),p=r(95353),s=r(11615),n=r(19051),i=r(81222),d=r(77690),c=r(63814),l=r(85471),u=r(3057);const m={apps:[],bundles:(0,i.C)("appstore","appstoreBundles",[]),categories:[],updateCount:(0,i.C)("appstore","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,i.C)("appstore","appApiEnabled",!1)},g={APPS_API_FAILURE(e,a){(0,o.Qg)(t("appstore","An error occurred during the request. Unable to proceed.")+"
"+a.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:a})},initCategories(e,{categories:t,updateCount:a}){e.categories=t,e.updateCount=a},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:a}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=a})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:a}){const r=e.apps.find(e=>e.id===t);r.active=!0,l.Ay.set(r,"groups",[...a]),"app_api"===r.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:a}){const r=e.apps.find(e=>e.id===t);r&&(r.canInstall=!0===a)},disableApp(e,t){const a=e.apps.find(e=>e.id===t);a.active=!1,a.groups=[],a.removable&&(a.canUnInstall=!0),"app_api"===a.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const a=e.apps.find(e=>e.id===t),r=a.update;a.update=null,a.version=r,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{l.Ay.set(e.loading,t,!0)}):l.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{l.Ay.set(e.loading,t,!1)}):l.Ay.set(e.loading,t,!1)}},A={enableApp(e,{appId:a,groups:r}){let p;p=Array.isArray(a)?a:[a],e.commit("startLoading",p),e.commit("startLoading","install");const s={};p.forEach(t=>{const a=e.state.apps.find(e=>e.id===t);a&&(s[t]={active:a.active,groups:[...a.groups||[]]},e.commit("enableApp",{appId:t,groups:r}))});const i=(0,c.KT)("apps/appstore/api/v1/apps/enable");return Promise.all(p.map(a=>u.A.post(i,{appId:a,groups:r},{confirmPassword:d.mH.Strict}).then(r=>(e.commit("stopLoading",p),e.commit("stopLoading","install"),n.Ay.get((0,c.Jv)("apps/files/")).then(()=>{r.data.update_required&&((0,o.cf)(t("appstore","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(a)||((0,o.Qg)(t("appstore","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:p,error:t("appstore","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:a}))}))).catch(t=>{e.commit("stopLoading",p),e.commit("stopLoading","install"),p.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))});const r=t.response?.data?.data?.message;r&&(e.commit("setError",{appId:p,error:r}),e.commit("APPS_API_FAILURE",{appId:a,error:t}))})))},forceEnableApp(e,{appId:t}){let a;return a=Array.isArray(t)?t:[t],u.A.requireAdmin().then(()=>{e.commit("startLoading",a),e.commit("startLoading","install");const r=(0,c.KT)("apps/appstore/api/v1/apps/enable");return u.A.post(r,{appId:t,force:!0},{confirmPassword:d.mH.Strict}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(r=>{e.commit("stopLoading",a),e.commit("stopLoading","install"),e.commit("setError",{appId:a,error:r.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:r})}).finally(()=>{e.commit("stopLoading",a),e.commit("stopLoading","install")})}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a}))},disableApp(e,{appId:t}){let a;return a=Array.isArray(t)?t:[t],u.A.requireAdmin().then(()=>{e.commit("startLoading",a);const t=(0,c.KT)("apps/appstore/api/v1/apps/disable");return Promise.all(a.map(r=>u.A.post(t,{appId:r}).then(()=>(e.commit("stopLoading",a),a.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(t=>{e.commit("stopLoading",a),e.commit("APPS_API_FAILURE",{appId:r,error:t})})))}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a}))},uninstallApp:(e,{appId:t})=>u.A.requireAdmin().then(()=>{e.commit("startLoading",t);const a=(0,c.KT)("apps/appstore/api/v1/apps/uninstall");return u.A.post(a,{appId:t}).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(a=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:a})})}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a})),updateApp:(e,{appId:t})=>u.A.requireAdmin().then(()=>{e.commit("startLoading",t),e.commit("startLoading","install");const a=(0,c.KT)("apps/appstore/api/v1/apps/update");return u.A.post(a,{appId:t},{confirmPassword:d.mH.Strict}).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(a=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:a})})}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a})),getAllApps(e){e.commit("startLoading","list");const t=(0,c.KT)("apps/appstore/api/v1/apps");return u.A.get(t).then(t=>{const a=t.data.ocs.data;return e.commit("setAllApps",a),e.commit("stopLoading","list"),!0}).catch(t=>e.commit("API_FAILURE",t))},async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=u.A.get((0,c.KT)("apps/appstore/api/v1/apps/categories"));e.commit("updateCategories",t);const a=(await t).data.ocs;return a.data.length>0?(e.commit("appendCategories",a.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},h={state:m,mutations:g,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:A},f={API_FAILURE(e,a){try{const e=a.error.response.data.ocs.meta.message;(0,o.Qg)(t("appstore","An error occurred during the request. Unable to proceed.")+"
"+e,{isHTML:!0})}catch{(0,o.Qg)(t("appstore","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:a})}};let b=null;function v(){return null===b&&(b=new p.il({modules:{apps:h},strict:!1,mutations:f})),b}},60792(e,t,a){"use strict";var r=a(21777),o=a(53334),p=a(10810),s=a(80284),n=a(85471),i=a(95353),d=a(58723),c=a(22378);const l=(0,n.pM)({__name:"App",setup:e=>({__sfc:!0,NcContent:c.A})}),u=(0,a(14486).A)(l,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var m=a(63814),g=a(40173);const A=[{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,a(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([a.e(4208),a.e(4529)]).then(a.bind(a,84020)),navigation:()=>Promise.all([a.e(4208),a.e(4529)]).then(a.bind(a,67276)),sidebar:()=>Promise.all([a.e(4208),a.e(4529)]).then(a.bind(a,55309))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];n.Ay.use(g.Ay);const h=new g.Ay({mode:"history",base:(0,m.Jv)(""),linkActiveClass:"active",routes:A});var f=a(72135);a.nc=(0,r.aV)(),n.Ay.prototype.t=o.t,n.Ay.prototype.n=o.n,n.Ay.use(p.R2),n.Ay.use(s.Ay,{defaultHtml:!1}),n.Ay.use(i.Ay);const b=(0,f.P)();(0,d.O)(b,h);const v=(0,p.Ey)();new n.Ay({router:h,store:b,pinia:v,render:e=>e(u),el:"#content"})},11615(e,t,a){"use strict";a.d(t,{A:()=>r});const r=(0,a(35947).YK)().setApp("appstore").detectUser().build()},58723(e,t){function a(e,t){var r={name:e.name,path:e.path,hash:e.hash,query:e.query,params:e.params,fullPath:e.fullPath,meta:e.meta};return t&&(r.from=a(t)),Object.freeze(r)}t.O=function(e,t,r){var o=(r||{}).moduleName||"route";e.registerModule(o,{namespaced:!0,state:a(t.currentRoute),mutations:{ROUTE_CHANGED:function(t,r){e.state[o]=a(r.to,r.from)}}});var p,s=!1,n=e.watch(function(e){return e[o]},function(e){var a=e.fullPath;a!==p&&(null!=p&&(s=!0,t.push(e)),p=a)},{sync:!0}),i=t.afterEach(function(t,a){s?s=!1:(p=t.fullPath,e.commit(o+"/ROUTE_CHANGED",{to:t,from:a}))});return function(){null!=i&&i(),null!=n&&n(),e.unregisterModule(o)}}}},p={};function s(e){var t=p[e];if(void 0!==t)return t.exports;var a=p[e]={id:e,loaded:!1,exports:{}};return o[e].call(a.exports,a,a.exports,s),a.loaded=!0,a.exports}s.m=o,e=[],s.O=(t,a,r,o)=>{if(!a){var p=1/0;for(c=0;c=o)&&Object.keys(s.O).every(e=>s.O[e](a[i]))?a.splice(i--,1):(n=!1,o0&&e[c-1][2]>o;c--)e[c]=e[c-1];e[c]=[a,r,o]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,a)=>(s.f[a](e,t),t),[])),s.u=e=>(4529===e?"settings-apps-view":e)+"-"+e+".js?v="+{55:"680212f4ff82f0f08ba9",1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",4529:"712c0bec6b23bc0b194f",5448:"71cfe268d6f1213c4735",6015:"ebcb6885c1fc8c461988",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8394:"afffd43f559fd65e2a14",8815:"9a5c507c75429c9c04e4",9849:"cf17f23d4655df0fe9a4"}[e],s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},r="nextcloud-ui-legacy:",s.l=(e,t,o,p)=>{if(a[e])a[e].push(t);else{var n,i;if(void 0!==o)for(var d=document.getElementsByTagName("script"),c=0;c{n.onerror=n.onload=null,clearTimeout(m);var o=a[e];if(delete a[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(e=>e(r)),t)return t(r)},m=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),i&&document.head.appendChild(n)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=1303,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var a=t.getElementsByTagName("script");if(a.length)for(var r=a.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=a[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={1303:0};s.f.j=(t,a)=>{var r=s.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else{var o=new Promise((a,o)=>r=e[t]=[a,o]);a.push(r[2]=o);var p=s.p+s.u(t),n=new Error;s.l(p,a=>{if(s.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),p=a&&a.target&&a.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+p+")",n.name="ChunkLoadError",n.type=o,n.request=p,r[1](n)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,[p,n,i]=a,d=0;if(p.some(t=>0!==e[t])){for(r in n)s.o(n,r)&&(s.m[r]=n[r]);if(i)var c=i(s)}for(t&&t(a);ds(60792));n=s.O(n)})(); -//# sourceMappingURL=appstore-main.js.map?v=e7cfdc2229bfd596dc2f \ No newline at end of file +(()=>{var e,a,r,o={3057(e,t,a){"use strict";a.d(t,{A:()=>s});var r=a(19051),o=a(77690);function p(e){return e.replace(/\/$/,"")}(0,o.IF)(r.Ay);const s={requireAdmin:()=>(0,o.C5)(),get:(e,t)=>r.Ay.get(p(e),t),post:(e,t,a)=>r.Ay.post(p(e),t,a),patch:(e,t)=>r.Ay.patch(p(e),t),put:(e,t)=>r.Ay.put(p(e),t),delete:(e,t)=>r.Ay.delete(p(e),{params:t})}},72135(e,a,r){"use strict";r.d(a,{P:()=>v});var o=r(85168),p=r(95353),s=r(11615),n=r(19051),i=r(81222),d=r(77690),c=r(63814),l=r(85471),u=r(3057);const m={apps:[],bundles:(0,i.C)("appstore","appstoreBundles",[]),categories:[],updateCount:(0,i.C)("appstore","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,i.C)("appstore","appApiEnabled",!1)},g={APPS_API_FAILURE(e,a){(0,o.Qg)(t("appstore","An error occurred during the request. Unable to proceed.")+"
"+a.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:a})},initCategories(e,{categories:t,updateCount:a}){e.categories=t,e.updateCount=a},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:a}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=a})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:a}){const r=e.apps.find(e=>e.id===t);r.active=!0,l.Ay.set(r,"groups",[...a]),"app_api"===r.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:a}){const r=e.apps.find(e=>e.id===t);r&&(r.canInstall=!0===a)},disableApp(e,t){const a=e.apps.find(e=>e.id===t);a.active=!1,a.groups=[],a.removable&&(a.canUnInstall=!0),"app_api"===a.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const a=e.apps.find(e=>e.id===t),r=a.update;a.update=null,a.version=r,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{l.Ay.set(e.loading,t,!0)}):l.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{l.Ay.set(e.loading,t,!1)}):l.Ay.set(e.loading,t,!1)}},A={enableApp(e,{appId:a,groups:r}){let p;p=Array.isArray(a)?a:[a],e.commit("startLoading",p),e.commit("startLoading","install");const s={};p.forEach(t=>{const a=e.state.apps.find(e=>e.id===t);a&&(s[t]={active:a.active,groups:[...a.groups||[]]},e.commit("enableApp",{appId:t,groups:r}))});const i=(0,c.KT)("apps/appstore/api/v1/apps/enable");return Promise.all(p.map(a=>u.A.post(i,{appId:a,groups:r},{confirmPassword:d.mH.Strict}).then(r=>(e.commit("stopLoading",p),e.commit("stopLoading","install"),n.Ay.get((0,c.Jv)("apps/files/")).then(()=>{r.data.update_required&&((0,o.cf)(t("appstore","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(a)||((0,o.Qg)(t("appstore","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:p,error:t("appstore","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:a}))}))).catch(t=>{e.commit("stopLoading",p),e.commit("stopLoading","install"),p.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))});const r=t.response?.data?.data?.message;r&&(e.commit("setError",{appId:p,error:r}),e.commit("APPS_API_FAILURE",{appId:a,error:t}))})))},forceEnableApp(e,{appId:t}){let a;return a=Array.isArray(t)?t:[t],u.A.requireAdmin().then(()=>{e.commit("startLoading",a),e.commit("startLoading","install");const r=(0,c.KT)("apps/appstore/api/v1/apps/enable");return u.A.post(r,{appId:t,force:!0},{confirmPassword:d.mH.Strict}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(r=>{e.commit("stopLoading",a),e.commit("stopLoading","install"),e.commit("setError",{appId:a,error:r.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:r})}).finally(()=>{e.commit("stopLoading",a),e.commit("stopLoading","install")})}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a}))},disableApp(e,{appId:t}){let a;return a=Array.isArray(t)?t:[t],u.A.requireAdmin().then(()=>{e.commit("startLoading",a);const t=(0,c.KT)("apps/appstore/api/v1/apps/disable");return Promise.all(a.map(r=>u.A.post(t,{appId:r}).then(()=>(e.commit("stopLoading",a),a.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(t=>{e.commit("stopLoading",a),e.commit("APPS_API_FAILURE",{appId:r,error:t})})))}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a}))},uninstallApp:(e,{appId:t})=>u.A.requireAdmin().then(()=>{e.commit("startLoading",t);const a=(0,c.KT)("apps/appstore/api/v1/apps/uninstall");return u.A.post(a,{appId:t}).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(a=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:a})})}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a})),updateApp:(e,{appId:t})=>u.A.requireAdmin().then(()=>{e.commit("startLoading",t),e.commit("startLoading","install");const a=(0,c.KT)("apps/appstore/api/v1/apps/update");return u.A.post(a,{appId:t},{confirmPassword:d.mH.Strict}).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(a=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:a})})}).catch(a=>e.commit("API_FAILURE",{appId:t,error:a})),getAllApps(e){e.commit("startLoading","list");const t=(0,c.KT)("apps/appstore/api/v1/apps");return u.A.get(t).then(t=>{const a=t.data.ocs.data;return e.commit("setAllApps",a),e.commit("stopLoading","list"),!0}).catch(t=>e.commit("API_FAILURE",t))},async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=u.A.get((0,c.KT)("apps/appstore/api/v1/apps/categories"));e.commit("updateCategories",t);const a=(await t).data.ocs;return a.data.length>0?(e.commit("appendCategories",a.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},h={state:m,mutations:g,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:A},f={API_FAILURE(e,a){try{const e=a.error.response.data.ocs.meta.message;(0,o.Qg)(t("appstore","An error occurred during the request. Unable to proceed.")+"
"+e,{isHTML:!0})}catch{(0,o.Qg)(t("appstore","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:a})}};let b=null;function v(){return null===b&&(b=new p.il({modules:{apps:h},strict:!1,mutations:f})),b}},60792(e,t,a){"use strict";var r=a(21777),o=a(53334),p=a(10810),s=a(80284),n=a(85471),i=a(95353),d=a(58723),c=a(22378);const l=(0,n.pM)({__name:"App",setup:e=>({__sfc:!0,NcContent:c.A})}),u=(0,a(14486).A)(l,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var m=a(63814),g=a(40173);const A=[{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,a(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([a.e(4208),a.e(4529)]).then(a.bind(a,84020)),navigation:()=>Promise.all([a.e(4208),a.e(4529)]).then(a.bind(a,67276)),sidebar:()=>Promise.all([a.e(4208),a.e(4529)]).then(a.bind(a,19859))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];n.Ay.use(g.Ay);const h=new g.Ay({mode:"history",base:(0,m.Jv)(""),linkActiveClass:"active",routes:A});var f=a(72135);a.nc=(0,r.aV)(),n.Ay.prototype.t=o.t,n.Ay.prototype.n=o.n,n.Ay.use(p.R2),n.Ay.use(s.Ay,{defaultHtml:!1}),n.Ay.use(i.Ay);const b=(0,f.P)();(0,d.O)(b,h);const v=(0,p.Ey)();new n.Ay({router:h,store:b,pinia:v,render:e=>e(u),el:"#content"})},11615(e,t,a){"use strict";a.d(t,{A:()=>r});const r=(0,a(35947).YK)().setApp("appstore").detectUser().build()},58723(e,t){function a(e,t){var r={name:e.name,path:e.path,hash:e.hash,query:e.query,params:e.params,fullPath:e.fullPath,meta:e.meta};return t&&(r.from=a(t)),Object.freeze(r)}t.O=function(e,t,r){var o=(r||{}).moduleName||"route";e.registerModule(o,{namespaced:!0,state:a(t.currentRoute),mutations:{ROUTE_CHANGED:function(t,r){e.state[o]=a(r.to,r.from)}}});var p,s=!1,n=e.watch(function(e){return e[o]},function(e){var a=e.fullPath;a!==p&&(null!=p&&(s=!0,t.push(e)),p=a)},{sync:!0}),i=t.afterEach(function(t,a){s?s=!1:(p=t.fullPath,e.commit(o+"/ROUTE_CHANGED",{to:t,from:a}))});return function(){null!=i&&i(),null!=n&&n(),e.unregisterModule(o)}}}},p={};function s(e){var t=p[e];if(void 0!==t)return t.exports;var a=p[e]={id:e,loaded:!1,exports:{}};return o[e].call(a.exports,a,a.exports,s),a.loaded=!0,a.exports}s.m=o,e=[],s.O=(t,a,r,o)=>{if(!a){var p=1/0;for(c=0;c=o)&&Object.keys(s.O).every(e=>s.O[e](a[i]))?a.splice(i--,1):(n=!1,o0&&e[c-1][2]>o;c--)e[c]=e[c-1];e[c]=[a,r,o]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,a)=>(s.f[a](e,t),t),[])),s.u=e=>(4529===e?"settings-apps-view":e)+"-"+e+".js?v="+{55:"680212f4ff82f0f08ba9",1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",4529:"86d8d135dabd6320195a",5448:"71cfe268d6f1213c4735",6015:"ebcb6885c1fc8c461988",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8394:"afffd43f559fd65e2a14",8815:"9a5c507c75429c9c04e4",9849:"cf17f23d4655df0fe9a4"}[e],s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},r="nextcloud-ui-legacy:",s.l=(e,t,o,p)=>{if(a[e])a[e].push(t);else{var n,i;if(void 0!==o)for(var d=document.getElementsByTagName("script"),c=0;c{n.onerror=n.onload=null,clearTimeout(m);var o=a[e];if(delete a[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(e=>e(r)),t)return t(r)},m=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),i&&document.head.appendChild(n)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=1303,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var a=t.getElementsByTagName("script");if(a.length)for(var r=a.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=a[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={1303:0};s.f.j=(t,a)=>{var r=s.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else{var o=new Promise((a,o)=>r=e[t]=[a,o]);a.push(r[2]=o);var p=s.p+s.u(t),n=new Error;s.l(p,a=>{if(s.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),p=a&&a.target&&a.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+p+")",n.name="ChunkLoadError",n.type=o,n.request=p,r[1](n)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,[p,n,i]=a,d=0;if(p.some(t=>0!==e[t])){for(r in n)s.o(n,r)&&(s.m[r]=n[r]);if(i)var c=i(s)}for(t&&t(a);ds(60792));n=s.O(n)})(); +//# sourceMappingURL=appstore-main.js.map?v=6e144fe36ef3e8d3591a \ No newline at end of file diff --git a/dist/appstore-main.js.map b/dist/appstore-main.js.map index ee638530754a1..ccd9e53c71730 100644 --- a/dist/appstore-main.js.map +++ b/dist/appstore-main.js.map @@ -1 +1 @@ -{"version":3,"file":"appstore-main.js?v=e7cfdc2229bfd596dc2f","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/appstore/src/store/api.js","webpack:///nextcloud/apps/appstore/src/store/apps.js","webpack:///nextcloud/apps/appstore/src/store/index.js","webpack:///nextcloud/apps/appstore/src/views/App.vue","webpack:///nextcloud/apps/appstore/src/views/App.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/views/App.vue?ffda","webpack:///nextcloud/apps/appstore/src/router/routes.ts","webpack:///nextcloud/apps/appstore/src/router/index.ts","webpack:///nextcloud/apps/appstore/src/main.ts","webpack:///nextcloud/apps/appstore/src/utils/logger.ts","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { addPasswordConfirmationInterceptors, confirmPassword } from '@nextcloud/password-confirmation'\n\naddPasswordConfirmationInterceptors(axios)\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport logger from '../utils/logger.ts'\nimport api from './api.js'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('appstore', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('appstore', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n\tappApiEnabled: loadState('appstore', 'appApiEnabled', false),\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('appstore', 'An error occurred during the request. Unable to proceed.') + '
' + error.error.response.data.data.message, { isHTML: true })\n\t\tlogger.error('An error occurred during the request. Unable to proceed.', { state, error })\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find((app) => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = true\n\t\tVue.set(app, 'groups', [...groups])\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = true\n\t\t}\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find((app) => app.id === appId).active = false\n\t\tstate.apps.find((app) => app.id === appId).groups = []\n\t\tstate.apps.find((app) => app.id === appId).needsDownload = true\n\t\tstate.apps.find((app) => app.id === appId).installed = false\n\t\tstate.apps.find((app) => app.id === appId).canUnInstall = false\n\t\tstate.apps.find((app) => app.id === appId).canInstall = true\n\t\tif (appId === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tisAppApiEnabled(state) {\n\t\treturn state.appApiEnabled\n\t},\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\tcontext.commit('startLoading', apps)\n\t\tcontext.commit('startLoading', 'install')\n\n\t\tconst previousState = {}\n\t\tapps.forEach((_appId) => {\n\t\t\tconst app = context.state.apps.find((app) => app.id === _appId)\n\t\t\tif (app) {\n\t\t\t\tpreviousState[_appId] = {\n\t\t\t\t\tactive: app.active,\n\t\t\t\t\tgroups: [...(app.groups || [])],\n\t\t\t\t}\n\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t}\n\t\t})\n\n\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/enable')\n\t\treturn Promise.all(apps.map((appId) => api\n\t\t\t.post(url, { appId, groups }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t// check for server health\n\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t'appstore',\n\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\tshowError(t('appstore', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\terror: t('appstore', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\tif (previousState[_appId]) {\n\t\t\t\t\t\tcontext.commit('enableApp', {\n\t\t\t\t\t\t\tappId: _appId,\n\t\t\t\t\t\t\tgroups: previousState[_appId].groups,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!previousState[_appId].active) {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tconst message = error.response?.data?.data?.message\n\t\t\t\tif (message) {\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t}\n\t\t\t})))\n\t},\n\tforceEnableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/enable')\n\t\t\treturn api.post(url, { appId, force: true }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/disable')\n\t\t\treturn Promise.all(apps.map((appId) => {\n\t\t\t\treturn api.post(url, { appId })\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn true\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t\t})\n\t\t\t}))\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/uninstall')\n\t\t\treturn api.post(url, { appId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/update')\n\t\t\treturn api.post(url, { appId }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps')\n\t\treturn api.get(url)\n\t\t\t.then((response) => {\n\t\t\t\tconst apps = response.data.ocs.data\n\t\t\t\tcontext.commit('setAllApps', apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateOcsUrl('apps/appstore/api/v1/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = (await categoriesPromise).data.ocs\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../utils/logger.js'\nimport apps from './apps.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('appstore', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('appstore', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tapps,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=30acb651\"\nimport script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst routes = [\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { n, t } from '@nextcloud/l10n';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport App from './views/App.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\nexport default new Vue({\n router,\n store,\n pinia,\n render: (h) => h(App),\n el: '#content',\n});\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('appstore')\n .detectUser()\n .build();\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + (chunkId === 4529 ? \"settings-apps-view\" : chunkId) + \"-\" + chunkId + \".js?v=\" + {\"55\":\"680212f4ff82f0f08ba9\",\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"4529\":\"712c0bec6b23bc0b194f\",\"5448\":\"71cfe268d6f1213c4735\",\"6015\":\"ebcb6885c1fc8c461988\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8394\":\"afffd43f559fd65e2a14\",\"8815\":\"9a5c507c75429c9c04e4\",\"9849\":\"cf17f23d4655df0fe9a4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1303;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1303: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(60792)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","addPasswordConfirmationInterceptors","axios","requireAdmin","confirmPassword","get","options","post","data","patch","put","delete","params","state","apps","bundles","loadState","categories","updateCount","loading","gettingCategoriesPromise","appApiEnabled","mutations","APPS_API_FAILURE","error","showError","t","response","message","isHTML","logger","initCategories","updateCategories","categoriesPromise","setUpdateCount","addCategory","category","push","appendCategories","categoriesArray","setAllApps","setError","appId","Array","isArray","forEach","_id","find","app","id","clearError","enableApp","groups","active","Vue","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","stopLoading","actions","context","commit","previousState","_appId","generateOcsUrl","Promise","all","map","api","PwdConfirmationMode","Strict","then","generateUrl","update_required","showInfo","onClick","window","location","reload","close","setTimeout","catch","dispatch","forceEnableApp","force","finally","getAllApps","ocs","getCategories","shouldRefetchCategories","categoriesPromiseResponse","length","getters","isAppApiEnabled","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","API_FAILURE","meta","store","useStore","Store","modules","strict","_defineComponent","__name","setup","__props","__sfc","NcContent","_vm","this","_c","_self","_setupProxy","attrs","_v","path","name","redirect","components","default","AppStore","navigation","AppStoreNavigation","sidebar","AppStoreSidebar","children","use","Router","mode","base","linkActiveClass","routes","__webpack_nonce__","getCSPNonce","prototype","n","PiniaVuePlugin","VTooltipPlugin","defaultHtml","Vuex","sync","router","pinia","createPinia","render","h","App","el","getLoggerBuilder","setApp","detectUser","build","cloneRoute","to","from","clone","hash","query","fullPath","Object","freeze","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","afterEach","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","key","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","e","chunkId","reduce","promises","u","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","scriptUrl","globalThis","importScripts","currentScript","tagName","toUpperCase","test","Error","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"appstore-main.js?v=6e144fe36ef3e8d3591a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/appstore/src/store/api.js","webpack:///nextcloud/apps/appstore/src/store/apps.js","webpack:///nextcloud/apps/appstore/src/store/index.js","webpack:///nextcloud/apps/appstore/src/views/App.vue","webpack:///nextcloud/apps/appstore/src/views/App.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/views/App.vue?ffda","webpack:///nextcloud/apps/appstore/src/router/routes.ts","webpack:///nextcloud/apps/appstore/src/router/index.ts","webpack:///nextcloud/apps/appstore/src/main.ts","webpack:///nextcloud/apps/appstore/src/utils/logger.ts","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { addPasswordConfirmationInterceptors, confirmPassword } from '@nextcloud/password-confirmation'\n\naddPasswordConfirmationInterceptors(axios)\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport logger from '../utils/logger.ts'\nimport api from './api.js'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('appstore', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('appstore', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n\tappApiEnabled: loadState('appstore', 'appApiEnabled', false),\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('appstore', 'An error occurred during the request. Unable to proceed.') + '
' + error.error.response.data.data.message, { isHTML: true })\n\t\tlogger.error('An error occurred during the request. Unable to proceed.', { state, error })\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find((app) => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = true\n\t\tVue.set(app, 'groups', [...groups])\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = true\n\t\t}\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find((app) => app.id === appId).active = false\n\t\tstate.apps.find((app) => app.id === appId).groups = []\n\t\tstate.apps.find((app) => app.id === appId).needsDownload = true\n\t\tstate.apps.find((app) => app.id === appId).installed = false\n\t\tstate.apps.find((app) => app.id === appId).canUnInstall = false\n\t\tstate.apps.find((app) => app.id === appId).canInstall = true\n\t\tif (appId === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tisAppApiEnabled(state) {\n\t\treturn state.appApiEnabled\n\t},\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\tcontext.commit('startLoading', apps)\n\t\tcontext.commit('startLoading', 'install')\n\n\t\tconst previousState = {}\n\t\tapps.forEach((_appId) => {\n\t\t\tconst app = context.state.apps.find((app) => app.id === _appId)\n\t\t\tif (app) {\n\t\t\t\tpreviousState[_appId] = {\n\t\t\t\t\tactive: app.active,\n\t\t\t\t\tgroups: [...(app.groups || [])],\n\t\t\t\t}\n\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t}\n\t\t})\n\n\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/enable')\n\t\treturn Promise.all(apps.map((appId) => api\n\t\t\t.post(url, { appId, groups }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t// check for server health\n\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t'appstore',\n\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\tshowError(t('appstore', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\terror: t('appstore', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\tif (previousState[_appId]) {\n\t\t\t\t\t\tcontext.commit('enableApp', {\n\t\t\t\t\t\t\tappId: _appId,\n\t\t\t\t\t\t\tgroups: previousState[_appId].groups,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!previousState[_appId].active) {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tconst message = error.response?.data?.data?.message\n\t\t\t\tif (message) {\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t}\n\t\t\t})))\n\t},\n\tforceEnableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/enable')\n\t\t\treturn api.post(url, { appId, force: true }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/disable')\n\t\t\treturn Promise.all(apps.map((appId) => {\n\t\t\t\treturn api.post(url, { appId })\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn true\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t\t})\n\t\t\t}))\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/uninstall')\n\t\t\treturn api.post(url, { appId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps/update')\n\t\t\treturn api.post(url, { appId }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\tconst url = generateOcsUrl('apps/appstore/api/v1/apps')\n\t\treturn api.get(url)\n\t\t\t.then((response) => {\n\t\t\t\tconst apps = response.data.ocs.data\n\t\t\t\tcontext.commit('setAllApps', apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateOcsUrl('apps/appstore/api/v1/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = (await categoriesPromise).data.ocs\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../utils/logger.js'\nimport apps from './apps.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('appstore', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('appstore', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tapps,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=30acb651\"\nimport script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst routes = [\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { n, t } from '@nextcloud/l10n';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport App from './views/App.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\nexport default new Vue({\n router,\n store,\n pinia,\n render: (h) => h(App),\n el: '#content',\n});\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('appstore')\n .detectUser()\n .build();\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + (chunkId === 4529 ? \"settings-apps-view\" : chunkId) + \"-\" + chunkId + \".js?v=\" + {\"55\":\"680212f4ff82f0f08ba9\",\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"4529\":\"86d8d135dabd6320195a\",\"5448\":\"71cfe268d6f1213c4735\",\"6015\":\"ebcb6885c1fc8c461988\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8394\":\"afffd43f559fd65e2a14\",\"8815\":\"9a5c507c75429c9c04e4\",\"9849\":\"cf17f23d4655df0fe9a4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1303;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1303: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(60792)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","addPasswordConfirmationInterceptors","axios","requireAdmin","confirmPassword","get","options","post","data","patch","put","delete","params","state","apps","bundles","loadState","categories","updateCount","loading","gettingCategoriesPromise","appApiEnabled","mutations","APPS_API_FAILURE","error","showError","t","response","message","isHTML","logger","initCategories","updateCategories","categoriesPromise","setUpdateCount","addCategory","category","push","appendCategories","categoriesArray","setAllApps","setError","appId","Array","isArray","forEach","_id","find","app","id","clearError","enableApp","groups","active","Vue","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","stopLoading","actions","context","commit","previousState","_appId","generateOcsUrl","Promise","all","map","api","PwdConfirmationMode","Strict","then","generateUrl","update_required","showInfo","onClick","window","location","reload","close","setTimeout","catch","dispatch","forceEnableApp","force","finally","getAllApps","ocs","getCategories","shouldRefetchCategories","categoriesPromiseResponse","length","getters","isAppApiEnabled","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","API_FAILURE","meta","store","useStore","Store","modules","strict","_defineComponent","__name","setup","__props","__sfc","NcContent","_vm","this","_c","_self","_setupProxy","attrs","_v","path","name","redirect","components","default","AppStore","navigation","AppStoreNavigation","sidebar","AppStoreSidebar","children","use","Router","mode","base","linkActiveClass","routes","__webpack_nonce__","getCSPNonce","prototype","n","PiniaVuePlugin","VTooltipPlugin","defaultHtml","Vuex","sync","router","pinia","createPinia","render","h","App","el","getLoggerBuilder","setApp","detectUser","build","cloneRoute","to","from","clone","hash","query","fullPath","Object","freeze","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","afterEach","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","key","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","e","chunkId","reduce","promises","u","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","scriptUrl","globalThis","importScripts","currentScript","tagName","toUpperCase","test","Error","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-apps-view-4529.js b/dist/settings-apps-view-4529.js index 680d107568c74..ada4c465b360e 100644 --- a/dist/settings-apps-view-4529.js +++ b/dist/settings-apps-view-4529.js @@ -1,2 +1,2 @@ -"use strict";(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[4529],{81720(t,e,n){n.d(e,{l:()=>i});var a=n(53334);const i=Object.freeze({discover:(0,a.Tl)("settings","Discover"),installed:(0,a.Tl)("settings","Your apps"),enabled:(0,a.Tl)("settings","Active apps"),disabled:(0,a.Tl)("settings","Disabled apps"),updates:(0,a.Tl)("settings","Updates"),"app-bundles":(0,a.Tl)("settings","App bundles"),featured:(0,a.Tl)("settings","Featured apps"),supported:(0,a.Tl)("settings","Supported apps")})},54143(e,n,a){a.d(n,{A:()=>c});var i=a(85168),o=a(19051),s=a(61338),r=a(63814);async function p(){const{data:t}=await o.Ay.get((0,r.KT)("core/navigation/apps?format=json"));200===t.ocs.meta.statuscode&&((0,s.Ic)("nextcloud:app-menu.refresh",{apps:t.ocs.data}),window.dispatchEvent(new Event("resize")))}const l=window.OC.theme.productName,c={computed:{appGroups(){return this.app.groups.map(t=>({id:t,name:t}))},installing(){return this.app?.app_api?this.app&&!0===this?.appApiStore.getLoading("install"):this.$store.getters.loading("install")},isLoading(){return this.app?.app_api?this.app&&!0===this?.appApiStore.getLoading(this.app.id):this.app&&this.$store.getters.loading(this.app.id)},isInitializing(){return!!this.app?.app_api&&this.app&&("init"===this.app?.status?.action||"healthcheck"===this.app?.status?.action)},isDeploying(){return!!this.app?.app_api&&this.app&&"deploy"===this.app?.status?.action},isManualInstall(){return!!this.app?.app_api&&"manual-install"===this.app?.daemon?.accepts_deploy_id},updateButtonText(){return this.app?.app_api&&"manual-install"===this.app?.daemon?.accepts_deploy_id?t("settings","Manually installed apps cannot be updated"):t("settings","Update to {version}",{version:this.app?.update})},enableButtonText(){return this.app?.app_api?this.app&&this.app?.status?.action&&"deploy"===this.app?.status?.action?t("settings","{progress}% Deploying …",{progress:this.app?.status?.deploy??0}):this.app&&this.app?.status?.action&&"init"===this.app?.status?.action?t("settings","{progress}% Initializing …",{progress:this.app?.status?.init??0}):this.app&&this.app?.status?.action&&"healthcheck"===this.app?.status?.action?t("settings","Health checking"):this.app.needsDownload?t("settings","Deploy and Enable"):t("settings","Enable"):this.app.needsDownload?t("settings","Download and enable"):t("settings","Enable")},disableButtonText(){if(this.app?.app_api){if(this.app&&this.app?.status?.action&&"deploy"===this.app?.status?.action)return t("settings","{progress}% Deploying …",{progress:this.app?.status?.deploy});if(this.app&&this.app?.status?.action&&"init"===this.app?.status?.action)return t("settings","{progress}% Initializing …",{progress:this.app?.status?.init});if(this.app&&this.app?.status?.action&&"healthcheck"===this.app?.status?.action)return t("settings","Health checking")}return t("settings","Disable")},forceEnableButtonText(){return this.app.needsDownload,t("settings","Allow untested app")},enableButtonTooltip(){return!this.app?.app_api&&this.app.needsDownload?t("settings","The app will be downloaded from the App Store"):null},forceEnableButtonTooltip(){const e=t("settings","This app is not marked as compatible with your {productName} version.",{productName:l})+" "+t("settings","If you continue you will still be able to install the app. Note that the app might not work as expected.");return this.app.needsDownload?e+" "+t("settings","The app will be downloaded from the App Store"):e},defaultDeployDaemonAccessible(){return!this.app?.app_api||!(!this.app?.daemon||"manual-install"!==this.app?.daemon?.accepts_deploy_id)||("docker-install"===this.app?.daemon?.accepts_deploy_id&&this.appApiStore.getDefaultDaemon?.name===this.app?.daemon?.name?!0===this?.appApiStore.getDaemonAccessible:this?.appApiStore.getDaemonAccessible)}},data:()=>({groupCheckedAppsData:!1}),mounted(){this.app&&this.app.groups&&this.app.groups.length>0&&(this.groupCheckedAppsData=!0)},methods:{asyncFindGroup(t){return this.$store.dispatch("getGroups",{search:t,limit:5,offset:0})},isLimitedToGroups(){return!this.app?.app_api&&(this.app.groups.length||this.groupCheckedAppsData)},setGroupLimit(){this.app?.app_api||this.groupCheckedAppsData||this.$store.dispatch("enableApp",{appId:this.app.id,groups:[]})},canLimitToGroups:t=>!(t.types&&t.types.includes("filesystem")||t.types.includes("prelogin")||t.types.includes("authentication")||t.types.includes("logging")||t.types.includes("prevent_group_restriction")||t?.app_api),addGroupLimitation(t){if(this.app?.app_api)return;const e=t.pop(),n=this.app.groups.concat([]).concat([e.id]);this.store&&this.store.updateAppGroups&&this.store.updateAppGroups(this.app.id,n),this.$store.dispatch("enableApp",{appId:this.app.id,groups:n})},removeGroupLimitation(t){if(this.app?.app_api)return;const e=this.app.groups.concat([]),n=e.indexOf(t.id);n>-1&&e.splice(n,1),this.store&&this.store.updateAppGroups&&this.store.updateAppGroups(this.app.id,e),0===e.length&&(this.groupCheckedAppsData=!1),this.$store.dispatch("enableApp",{appId:this.app.id,groups:e})},forceEnable(t){this.app?.app_api?this.appApiStore.forceEnableApp(t).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)}):this.$store.dispatch("forceEnableApp",{appId:t,groups:[]}).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)})},enable(t,e=null,n={}){this.app?.app_api?this.appApiStore.enableApp(t,e,n).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)}):this.$store.dispatch("enableApp",{appId:t,groups:[]}).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)})},disable(t){this.app?.app_api?this.appApiStore.disableApp(t).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)}):this.$store.dispatch("disableApp",{appId:t}).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)})},async remove(t,e=!1){try{this.app?.app_api?await this.appApiStore.uninstallApp(t,e):await this.$store.dispatch("uninstallApp",{appId:t,removeData:e}),await p()}catch(t){(0,i.Qg)(t)}},install(t){this.app?.app_api?this.appApiStore.enableApp(t).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)}):this.$store.dispatch("enableApp",{appId:t}).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)})},update(t){return this.app?.app_api?this.appApiStore.updateApp(t).then(()=>{p()}).catch(t=>{(0,i.Qg)(t)}):this.$store.dispatch("updateApp",{appId:t}).catch(t=>{(0,i.Qg)(t)}).then(()=>{p(),this.store.updateCount=Math.max(this.store.updateCount-1,0)})}}}},50645(t,e,n){n.d(e,{A:()=>i});var a=n(9165);const i=Object.freeze({discover:a.tZc,installed:a.EzL,enabled:a.Tfj,disabled:a.hyP,bundles:a.xR9,supported:a.UD9,featured:a.ZL5,updates:a.XCd,ai:a.aKS,auth:a.Mx_,customization:a.ED,dashboard:a.Knj,files:a.fEr,games:a.v3v,integration:a.bur,monitoring:a.y48,multimedia:a.WI,office:a.Ku3,organization:a.d9V,search:a.U4M,security:a.JiW,social:a.aie,tools:a.QKT,workflow:a.Rt7})},80409(t,e,n){n.d(e,{a:()=>A});var a=n(19051),i=n(85168),o=n(81222),s=n(53334),r=n(77690),p=n(63814),l=n(10810),c=n(85471),d=n(11615),u=n(3057);const A=(0,l.nY)("app-api-apps",{state:()=>({apps:[],updateCount:(0,o.C)("appstore","appstoreExAppUpdateCount",0),loading:{},loadingList:!1,statusUpdater:null,daemonAccessible:(0,o.C)("appstore","defaultDaemonConfigAccessible",!1),defaultDaemon:(0,o.C)("appstore","defaultDaemonConfig",null),dockerDaemons:[]}),getters:{getLoading:t=>e=>t.loading[e]??!1,getAllApps:t=>t.apps,getUpdateCount:t=>t.updateCount,getDaemonAccessible:t=>t.daemonAccessible,getDefaultDaemon:t=>t.defaultDaemon,getAppStatus:t=>e=>t.apps.find(t=>t.id===e)?.status||null,getStatusUpdater:t=>t.statusUpdater,getInitializingOrDeployingApps:t=>t.apps.filter(t=>t?.status?.action&&("deploy"===t?.status?.action||"init"===t.status.action||"healthcheck"===t.status.action)&&""!==t.status.type)},actions:{appsApiFailure(t){(0,i.Qg)((0,s.Tl)("appstore","An error occurred during the request. Unable to proceed.")+"
"+t.error.response.data.data.message,{isHTML:!0}),d.A.error(t)},setLoading(t,e){c.Ay.set(this.loading,t,e)},setError(t,e){(Array.isArray(t)?t:[t]).forEach(t=>{const n=this.apps.find(e=>e.id===t);n&&(n.error=e)})},enableApp(t,e,n){return this.setLoading(t,!0),this.setLoading("install",!0),(0,r.C5)().then(()=>a.Ay.post((0,p.Jv)(`/apps/app_api/apps/enable/${t}/${e.name}`),{deployOptions:n}).then(n=>{this.setLoading(t,!1),this.setLoading("install",!1);const o=this.apps.find(e=>e.id===t);return o&&(o.installed||(o.installed=!0,o.needsDownload=!1,o.daemon=e,o.status={type:"install",action:"deploy",init:0,deploy:0}),o.active=!0,o.canUnInstall=!1,o.removable=!0,o.error=""),this.updateAppsStatus(),a.Ay.get((0,p.Jv)("apps/files")).then(()=>{n.data.update_required&&((0,i.cf)((0,s.Tl)("appstore","The app has been enabled but needs to be updated."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(()=>{location.reload()},5e3))}).catch(()=>{this.setError(t,(0,s.Tl)("appstore","Error: This app cannot be enabled because it makes the server unstable"))})}).catch(e=>{this.setLoading(t,!1),this.setLoading("install",!1),this.setError(t,e.response.data.data.message),this.appsApiFailure({appId:t,error:e})})).catch(()=>{this.setLoading(t,!1),this.setLoading("install",!1)})},forceEnableApp(t){return this.setLoading(t,!0),this.setLoading("install",!0),(0,r.C5)().then(()=>u.A.post((0,p.Jv)("/apps/app_api/apps/force"),{appId:t}).then(()=>{location.reload()}).catch(e=>{this.setLoading(t,!1),this.setLoading("install",!1),this.setError(t,e.response.data.data.message),this.appsApiFailure({appId:t,error:e})})).catch(()=>{this.setLoading(t,!1),this.setLoading("install",!1)})},disableApp(t){return this.setLoading(t,!0),(0,r.C5)().then(()=>u.A.get((0,p.Jv)(`apps/app_api/apps/disable/${t}`)).then(()=>{this.setLoading(t,!1);const e=this.apps.find(e=>e.id===t);return e&&(e.active=!1,e.removable&&(e.canUnInstall=!0)),!0}).catch(e=>{this.setLoading(t,!1),this.appsApiFailure({appId:t,error:e})})).catch(()=>{this.setLoading(t,!1)})},uninstallApp(t,e){return this.setLoading(t,!0),(0,r.C5)().then(()=>u.A.get((0,p.Jv)(`/apps/app_api/apps/uninstall/${t}?removeData=${e}`)).then(()=>{this.setLoading(t,!1);const e=this.apps.find(e=>e.id===t);return e&&(e.active=!1,e.needsDownload=!0,e.installed=!1,e.canUnInstall=!1,e.canInstall=!0,e.daemon=null,e.status={},null!==e.update&&this.updateCount--,e.update=void 0),!0}).catch(e=>{this.setLoading(t,!1),this.appsApiFailure({appId:t,error:e})}))},updateApp(t){return this.setLoading(t,!0),this.setLoading("install",!0),(0,r.C5)().then(()=>u.A.get((0,p.Jv)(`/apps/app_api/apps/update/${t}`)).then(()=>{this.setLoading(t,!1),this.setLoading("install",!1);const e=this.apps.find(e=>e.id===t);if(e){const t=e.update;e.update=void 0,e.version=t||e.version,e.status={type:"update",action:"deploy",init:0,deploy:0},e.error=""}return this.updateCount--,this.updateAppsStatus(),!0}).catch(e=>{this.setLoading(t,!1),this.setLoading("install",!1),this.appsApiFailure({appId:t,error:e})})).catch(()=>{this.setLoading(t,!1),this.setLoading("install",!1)})},async fetchAllApps(){this.loadingList=!0;try{const t=await u.A.get((0,p.Jv)("/apps/app_api/apps/list"));return this.apps=t.data.apps,this.loadingList=!1,!0}catch(t){d.A.error(t),(0,i.Qg)((0,s.Tl)("appstore","An error occurred during the request. Unable to proceed.")),this.loadingList=!1}},async fetchAppStatus(t){return u.A.get((0,p.Jv)(`/apps/app_api/apps/status/${t}`)).then(e=>{const n=this.apps.find(e=>e.id===t);n&&(n.status=e.data);const a=this.getInitializingOrDeployingApps;d.A.debug("initializingOrDeployingApps after setAppStatus",{initializingOrDeployingApps:a}),0===a.length&&(d.A.debug("clearing interval"),clearInterval(this.statusUpdater),this.statusUpdater=null),Object.hasOwn(e.data,"error")&&""!==e.data.error&&1===a.length&&(clearInterval(this.statusUpdater),this.statusUpdater=null)}).catch(e=>{this.appsApiFailure({appId:t,error:e}),this.apps=this.apps.filter(e=>e.id!==t),this.updateAppsStatus()})},async fetchDockerDaemons(){try{const{data:t}=await a.Ay.get((0,p.Jv)("/apps/app_api/daemons"));this.defaultDaemon=t.daemons.find(e=>e.name===t.default_daemon_config),this.dockerDaemons=t.daemons.filter(t=>"docker-install"===t.accepts_deploy_id)}catch(t){return d.A.error("[app-api-store] Failed to fetch Docker daemons",{error:t}),!1}return!0},updateAppsStatus(){clearInterval(this.statusUpdater),0!==this.getInitializingOrDeployingApps.length&&(this.statusUpdater=setInterval(()=>{const t=this.getInitializingOrDeployingApps;d.A.debug("initializingOrDeployingApps",{initializingOrDeployingApps:t}),t.forEach(t=>{this.fetchAppStatus(t.id)})},2e3))}}})},52111(t,e,n){n.d(e,{T:()=>u});var a=n(19051),i=n(85168),o=n(81222),s=n(53334),r=n(63814),p=n(10810),l=n(50645),c=n(11615);const d=()=>(0,i.Qg)((0,s.Tl)("appstore","An error occurred during the request. Unable to proceed.")),u=(0,p.nY)("appstore-apps",{state:()=>({apps:[],categories:[],updateCount:(0,o.C)("appstore","appstoreUpdateCount",0),loading:{apps:!1,categories:!1},loadingList:!1,gettingCategoriesPromise:null}),actions:{async loadCategories(t=!1){if(!(this.categories.length>0)||t)try{this.loading.categories=!0;const t=(0,r.KT)("apps/appstore/api/v1/apps/categories"),{data:e}=await a.Ay.get(t),n=e.ocs.data;for(const t of n)t.icon=l.A[t.id]??"";this.$patch({categories:n})}catch(t){c.A.error(t),d()}finally{this.loading.categories=!1}},async loadApps(t=!1){if(!(this.apps.length>0)||t)try{this.loading.apps=!0;const t=(0,r.KT)("apps/appstore/api/v1/apps"),{data:e}=await a.Ay.get(t);this.$patch({apps:e.ocs.data})}catch(t){c.A.error(t),d()}finally{this.loading.apps=!1}},getCategoryById(t){return this.categories.find(({id:e})=>e===t)??null},getAppById(t){return this.apps.find(({id:e})=>e===t)??null},updateAppGroups(t,e){const n=this.apps.find(({id:e})=>e===t);n&&(n.groups=[...e])}}})},99789(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".daemon-selection-list[data-v-168bc683]{max-height:350px;overflow-y:scroll;padding:2rem}.daemon-selection-list__empty-content[data-v-168bc683]{margin-top:0;text-align:center}","",{version:3,sources:["webpack://./apps/appstore/src/components/AppAPI/DaemonSelectionList.vue"],names:[],mappings:"AACA,wCACC,gBAAA,CACA,iBAAA,CACA,YAAA,CAEA,uDACC,YAAA,CACA,iBAAA",sourcesContent:["\n.daemon-selection-list {\n\tmax-height: 350px;\n\toverflow-y: scroll;\n\tpadding: 2rem;\n\n\t&__empty-content {\n\t\tmargin-top: 0;\n\t\ttext-align: center;\n\t}\n}\n"],sourceRoot:""}]);const r=s},18393(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".apps-list[data-v-ceb5cf46]{display:flex;flex-wrap:wrap;align-content:flex-start}.apps-list--move[data-v-ceb5cf46]{transition:transform 1s}.apps-list #app-list-update-all[data-v-ceb5cf46]{margin-inline-start:10px}.apps-list__toolbar[data-v-ceb5cf46]{height:60px;padding:8px;padding-inline-start: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-ceb5cf46]{margin-bottom:100px;position:relative}.apps-list__list-container[data-v-ceb5cf46]{width:100%}.apps-list__store-container[data-v-ceb5cf46]{display:flex;flex-wrap:wrap}.apps-list__bundle-heading[data-v-ceb5cf46]{display:flex;align-items:center;margin-block:20px;margin-inline:0 10px}.apps-list__bundle-header[data-v-ceb5cf46]{color:var(--color-main-text);margin-block:0;margin-inline:50px 10px;font-weight:bold;font-size:20px;line-height:30px}#apps-list-search .app-item h2[data-v-ceb5cf46]{margin-bottom:0}","",{version:3,sources:["webpack://./apps/appstore/src/components/AppList.vue"],names:[],mappings:"AAIA,4BACC,YAAA,CACA,cAAA,CACA,wBAAA,CAGA,kCACC,uBAAA,CAGD,iDACC,wBAAA,CAGD,qCACC,WAjBe,CAkBf,WAnBgB,CAqBhB,yBApBe,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,iBAAA,CACA,oBAAA,CAGD,2CACC,4BAAA,CACA,cAAA,CACA,uBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,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-inline-start: 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-inline-start: $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-block: 20px;\n\t\tmargin-inline: 0 10px;\n\t}\n\n\t&__bundle-header {\n\t\tcolor: var(--color-main-text);\n\t\tmargin-block: 0;\n\t\tmargin-inline: 50px 10px;\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 30px;\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:""}]);const r=s},3769(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".app-daemon-badge[data-v-5294293a]{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}","",{version:3,sources:["webpack://./apps/appstore/src/components/AppList/AppDaemonBadge.vue"],names:[],mappings:"AACA,mCACC,mCAAA,CACA,8BAAA,CACA,8CAAA,CACA,kCAAA,CAEA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CACA,iBAAA",sourcesContent:["\n.app-daemon-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"],sourceRoot:""}]);const r=s},38998(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,'/*!\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */.app-item[data-v-55e495e8]{position:relative}.app-item[data-v-55e495e8]:hover{background-color:var(--color-background-dark)}.app-item--list-view[data-v-55e495e8]{--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-55e495e8]{background-color:var(--color-background-dark)}.app-item--list-view>*[data-v-55e495e8]{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-55e495e8]{width:var(--default-clickable-area);height:auto;text-align:end}.app-item--list-view .app-image-icon svg[data-v-55e495e8],.app-item--list-view .app-image-icon .icon-settings-dark[data-v-55e495e8]{margin-top:5px;width:20px;height:20px;opacity:.5;background-size:cover;display:inline-block}.app-item--list-view .app-name[data-v-55e495e8]{padding:0 var(--app-item-padding)}.app-item--list-view .app-name--link[data-v-55e495e8]{height:var(--app-item-height);display:flex;align-items:center}.app-item--list-view .app-name--link[data-v-55e495e8]::after{content:"";position:absolute;inset-inline:0;height:var(--app-item-height)}.app-item--list-view .app-actions[data-v-55e495e8]{display:flex;gap:var(--app-item-padding);flex-wrap:wrap;justify-content:end}.app-item--list-view .app-actions .icon-loading-small[data-v-55e495e8]{display:inline-block;top:4px;margin-inline-end:10px}@media only screen and (max-width: 900px){.app-item--list-view .app-version[data-v-55e495e8],.app-item--list-view .app-level[data-v-55e495e8]{display:none}}@media only screen and (max-width: 512px){.app-item--list-view .app-actions[data-v-55e495e8]{display:none}}.app-item--store-view[data-v-55e495e8]{padding:30px}.app-item--store-view .app-image-icon .icon-settings-dark[data-v-55e495e8]{width:100%;height:150px;background-size:45px;opacity:.5}.app-item--store-view .app-image-icon svg[data-v-55e495e8]{position:absolute;bottom:43px;width:64px;height:64px;opacity:.1}.app-item--store-view .app-name[data-v-55e495e8]{margin:5px 0}.app-item--store-view .app-name--link[data-v-55e495e8]::after{content:"";position:absolute;inset-block:0;inset-inline:0}.app-item--store-view .app-actions[data-v-55e495e8]{margin:10px 0}@media only screen and (min-width: 1601px){.app-item--store-view[data-v-55e495e8]{width:25%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:33%}}@media only screen and (max-width: 1600px){.app-item--store-view[data-v-55e495e8]{width:25%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:33%}}@media only screen and (max-width: 1400px){.app-item--store-view[data-v-55e495e8]{width:33%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:50%}}@media only screen and (max-width: 900px){.app-item--store-view[data-v-55e495e8]{width:50%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:100%}}@media only screen and (max-width: 1024px){.app-item--store-view[data-v-55e495e8]{width:50%}}@media only screen and (max-width: 480px){.app-item--store-view[data-v-55e495e8]{width:100%}}.app-icon[data-v-55e495e8]{filter:var(--background-invert-if-bright)}.app-image[data-v-55e495e8]{position:relative;height:150px;opacity:1;overflow:hidden}.app-image img[data-v-55e495e8]{width:100%}.app-version[data-v-55e495e8]{color:var(--color-text-maxcontrast)}',"",{version:3,sources:["webpack://./core/css/variables.scss","webpack://./apps/appstore/src/components/AppList/AppItem.vue"],names:[],mappings:"AAEA;;;EAAA,CCEA,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,cAAA,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,cAAA,CACA,6BAAA,CAGD,mDACC,YAAA,CACA,2BAAA,CACA,cAAA,CACA,mBAAA,CAEA,uEACC,oBAAA,CACA,OAAA,CACA,sBAAA,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,aAAA,CACA,cAAA,CAGD,oDACC,aAAA,CAGD,2CAlCD,uCAmCE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,2CA1CD,uCA2CE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,2CAlDD,uCAmDE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,0CA1DD,uCA2DE,SAAA,CAEA,8DACC,UAAA,CAAA,CAIF,2CAlED,uCAmEE,SAAA,CAAA,CAGD,0CAtED,uCAuEE,UAAA,CAAA,CAKH,2BACC,yCAAA,CAGD,4BACC,iBAAA,CACA,YAAA,CACA,SAAA,CACA,eAAA,CAEA,gCACC,UAAA,CAIF,8BACC,mCAAA",sourcesContent:['@use \'sass:color\';\n\n/*!\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// SCSS darken/lighten function override\n@function nc-darken($color, $value) {\n\t@return color.adjust($color, $lightness: - $value, $space: hsl);\n}\n\n@function nc-lighten($color, $value) {\n\t@return color.adjust($color, $lightness: $value, $space: hsl);\n}\n\n// SCSS variables\n// DEPRECATED, please use CSS4 vars\n$color-main-text: #222 !default; // Not #000 for better readability\n$color-main-background: #fff !default;\n$color-main-background-translucent: rgba($color-main-background, .97) !default;\n\n// used for different active/hover/focus/disabled states\n$color-background-hover: nc-darken($color-main-background, 4%) !default;\n$color-background-dark: nc-darken($color-main-background, 7%) !default;\n$color-background-darker: nc-darken($color-main-background, 14%) !default;\n\n$color-placeholder-light: nc-darken($color-main-background, 10%) !default;\n$color-placeholder-dark: nc-darken($color-main-background, 20%) !default;\n\n$color-primary: #0082c9 !default;\n$color-primary-hover: color.mix($color-primary, $color-main-background, 80%) !default;\n\n$color-primary-light: color.mix($color-primary, $color-main-background, 10%) !default;\n$color-primary-light-text: $color-primary !default;\n$color-primary-light-hover: color.mix($color-primary-light, $color-main-text, 95%) !default;\n\n$color-primary-text: #ffffff !default;\n// do not use nc-darken/lighten in case of overriding because\n// primary-text is independent of color-main-text\n$color-primary-element-text-dark: color.adjust($color-primary-text, $lightness: -7%, $space: hsl) !default;\n$color-primary-element: $color-primary !default;\n$color-primary-element-hover: color.mix($color-primary-element, $color-main-background, 80%) !default;\n$color-primary-element-light: color.adjust($color-primary-element, $lightness: 15%, $space: hsl) !default;\n\n$color-error: #e9322d;\n$color-error-hover: color.mix($color-error, $color-main-background, 80%) !default;\n$color-warning: #eca700;\n$color-warning-hover: color.mix($color-warning, $color-main-background, 80%) !default;\n$color-success: #46ba61;\n$color-success-hover: color.mix($color-success, $color-main-background, 80%) !default;\n// used for svg\n$color-white: #fff;\n$color-black: #000;\n$color-yellow: #FC0;\n\n// rgb(118, 118, 118) / #767676\n// min. color contrast for normal text on white background according to WCAG AA\n// (Works as well: color: #000; opacity: 0.57;)\n$color-text-maxcontrast: nc-lighten($color-main-text, 33%) !default;\n\n$image-logo: url(\'../img/logo/logo.svg?v=1\') !default;\n$image-login-background: url(\'../img/background.png?v=2\') !default;\n$image-logoheader: url(\'../img/logo/logo.svg?v=1\') !default;\n$image-favicon: url(\'../img/logo/logo.svg?v=1\') !default;\n\n$color-loading-light: #ccc !default;\n$color-loading-dark: #444 !default;\n\n$color-box-shadow: color.adjust(nc-darken($color-main-background, 70%), $alpha: -0.5, $space: hsl) !default;\n\n// light border like file table or app-content list\n$color-border: nc-darken($color-main-background, 7%) !default;\n// darker border like inputs or very visible elements\n$color-border-dark: nc-darken($color-main-background, 14%) !default;\n\n$border-radius: 3px !default;\n$border-radius-large: 10px !default;\n// Pill-style button, value is large so big buttons also have correct roundness\n$border-radius-pill: 100px !default;\n\n$font-face: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, Ubuntu, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;\n$default-font-size: 15px;\n\n$default-line-height: 24px;\n\n$animation-quick: 100ms;\n$animation-slow: 300ms;\n\n// various structure data\n$header-height: 50px;\n$navigation-width: 300px;\n$sidebar-min-width: 300px;\n$sidebar-max-width: 500px;\n$list-min-width: 200px;\n$list-max-width: 300px;\n$header-menu-item-height: 44px;\n$header-menu-profile-item-height: 66px;\n\n// mobile. Keep in sync with core/js/js.js\n$breakpoint-mobile: 1024px;\n',"\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: end;\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\tinset-inline: 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-inline-end: 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\tinset-block: 0;\n\t\t\tinset-inline: 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:""}]);const r=s},67314(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".app-level-badge[data-v-96439520]{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-96439520]{background-color:var(--color-success);border-color:var(--color-border-success);color:var(--color-success-text)}","",{version:3,sources:["webpack://./apps/appstore/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,qCAAA,CACA,wCAAA,CACA,+BAAA",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\tbackground-color: var(--color-success);\n\t\tborder-color: var(--color-border-success);\n\t\tcolor: var(--color-success-text);\n\t}\n}\n"],sourceRoot:""}]);const r=s},14158(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,'.office-suite-switcher[data-v-2e094751]{padding:20px;margin-bottom:30px}.office-suite-switcher__aio-message[data-v-2e094751]{background-color:var(--color-background-dark);border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:20px;text-align:center}.office-suite-switcher p[data-v-2e094751]{margin:8px 0}.office-suite-switcher p[data-v-2e094751]:first-child{font-weight:600}.office-suite-cards[data-v-2e094751]{display:flex;gap:20px;max-width:1200px}.office-suite-card[data-v-2e094751]{flex:1;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large);padding:24px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column}.office-suite-card *[data-v-2e094751]{cursor:pointer}.office-suite-card[data-v-2e094751]:hover{border-color:var(--color-primary-element);box-shadow:0 4px 12px rgba(0,0,0,.1)}.office-suite-card--selected[data-v-2e094751]{background:linear-gradient(135deg, var(--color-primary-element-light) 0%, var(--color-main-background) 100%);color:var(--color-main-text);border-color:var(--color-primary-element)}.office-suite-card__header[data-v-2e094751]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.office-suite-card__title[data-v-2e094751]{font-size:24px;font-weight:600;margin:0}.office-suite-card--primary .office-suite-card__check[data-v-2e094751]{color:var(--color-primary-element)}.office-suite-card__features[data-v-2e094751]{list-style:none;padding:0;margin:0 0 20px 0;flex-grow:1}.office-suite-card__features li[data-v-2e094751]{padding:4px 0;padding-inline-start:20px;position:relative;line-height:1.5}.office-suite-card__features li[data-v-2e094751]::before{content:"•";position:absolute;inset-inline-start:0;font-weight:bold}.office-suite-card__link[data-v-2e094751]{display:inline-flex;align-items:center;gap:6px;color:var(--color-main-text);text-decoration:none;font-weight:500;margin-top:auto}.office-suite-card__link[data-v-2e094751]:hover{text-decoration:underline}.office-suite-card--selected .office-suite-card__link[data-v-2e094751]{color:var(--color-main-text)}.office-suite-actions[data-v-2e094751]{margin-top:16px}.office-suite-disable-button[data-v-2e094751]{background:rgba(0,0,0,0);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:8px 12px;font-weight:600;color:var(--color-main-text);cursor:pointer;transition:background .15s ease,border-color .15s ease}.office-suite-disable-button[data-v-2e094751]:disabled{opacity:.5;cursor:default}.office-suite-disable-button[data-v-2e094751]:hover:not(:disabled){border-color:var(--color-primary-element);background:var(--color-background-dark)}@media(max-width: 768px){.office-suite-cards[data-v-2e094751]{flex-direction:column}}',"",{version:3,sources:["webpack://./OfficeSuiteSwitcher.vue","webpack://./apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue"],names:[],mappings:"AAAA,wCCCA,YACC,CAAA,kBACA,CAAA,qDAEA,6CACC,CAAA,oCACA,CAAA,wCACA,CAAA,YACA,CAAA,iBACA,CAAA,0CAGD,YACC,CAAA,sDAEA,eACC,CAAA,qCAKH,YACC,CAAA,QACA,CAAA,gBACA,CAAA,oCAGD,MACC,CAAA,6CACA,CAAA,oCACA,CAAA,wCACA,CAAA,YACA,CAAA,cACA,CAAA,uBACA,CAAA,YACA,CAAA,qBACA,CAAA,sCAEA,cACC,CAAA,0CAGD,yCACC,CAAA,oCACA,CAAA,8CAGD,4GACC,CAAA,4BACA,CAAA,yCACA,CAAA,4CAGD,YACC,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,2CAGD,cACC,CAAA,eACA,CAAA,QACA,CAAA,uEAGD,kCACC,CAAA,8CAGD,eACC,CAAA,SACA,CAAA,iBACA,CAAA,WACA,CAAA,iDAEA,aACC,CAAA,yBACA,CAAA,iBACA,CAAA,eACA,CAAA,yDAEA,WACC,CAAA,iBACA,CAAA,oBACA,CAAA,gBACA,CAAA,0CAKH,mBACC,CAAA,kBACA,CAAA,OACA,CAAA,4BACA,CAAA,oBACA,CAAA,eACA,CAAA,eACA,CAAA,gDAEA,yBACC,CAAA,uEAIF,4BACC,CAAA,uCAIF,eACC,CAAA,8CAGD,wBACC,CAAA,oCACA,CAAA,wCACA,CAAA,gBACA,CAAA,eACA,CAAA,4BACA,CAAA,cACA,CAAA,sDACA,CAAA,uDAGD,UACC,CAAA,cACA,CAAA,mEAGD,yCACC,CAAA,uCACA,CAAA,yBAGD,qCACC,qBACC,CAAA",sourcesContent:['.office-suite-switcher{padding:20px;margin-bottom:30px}.office-suite-switcher__aio-message{background-color:var(--color-background-dark);border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:20px;text-align:center}.office-suite-switcher p{margin:8px 0}.office-suite-switcher p:first-child{font-weight:600}.office-suite-cards{display:flex;gap:20px;max-width:1200px}.office-suite-card{flex:1;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large);padding:24px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column}.office-suite-card *{cursor:pointer}.office-suite-card:hover{border-color:var(--color-primary-element);box-shadow:0 4px 12px rgba(0,0,0,.1)}.office-suite-card--selected{background:linear-gradient(135deg, var(--color-primary-element-light) 0%, var(--color-main-background) 100%);color:var(--color-main-text);border-color:var(--color-primary-element)}.office-suite-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.office-suite-card__title{font-size:24px;font-weight:600;margin:0}.office-suite-card--primary .office-suite-card__check{color:var(--color-primary-element)}.office-suite-card__features{list-style:none;padding:0;margin:0 0 20px 0;flex-grow:1}.office-suite-card__features li{padding:4px 0;padding-inline-start:20px;position:relative;line-height:1.5}.office-suite-card__features li::before{content:"•";position:absolute;inset-inline-start:0;font-weight:bold}.office-suite-card__link{display:inline-flex;align-items:center;gap:6px;color:var(--color-main-text);text-decoration:none;font-weight:500;margin-top:auto}.office-suite-card__link:hover{text-decoration:underline}.office-suite-card--selected .office-suite-card__link{color:var(--color-main-text)}.office-suite-actions{margin-top:16px}.office-suite-disable-button{background:rgba(0,0,0,0);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:8px 12px;font-weight:600;color:var(--color-main-text);cursor:pointer;transition:background .15s ease,border-color .15s ease}.office-suite-disable-button:disabled{opacity:.5;cursor:default}.office-suite-disable-button:hover:not(:disabled){border-color:var(--color-primary-element);background:var(--color-background-dark)}@media(max-width: 768px){.office-suite-cards{flex-direction:column}}',"\n.office-suite-switcher {\n\tpadding: 20px;\n\tmargin-bottom: 30px;\n\n\t&__aio-message {\n\t\tbackground-color: var(--color-background-dark);\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: 20px;\n\t\ttext-align: center;\n\t}\n\n\tp {\n\t\tmargin: 8px 0;\n\n\t\t&:first-child {\n\t\t\tfont-weight: 600;\n\t\t}\n\t}\n}\n\n.office-suite-cards {\n\tdisplay: flex;\n\tgap: 20px;\n\tmax-width: 1200px;\n}\n\n.office-suite-card {\n\tflex: 1;\n\tbackground-color: var(--color-main-background);\n\tborder: 2px solid var(--color-border);\n\tborder-radius: var(--border-radius-large);\n\tpadding: 24px;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& * {\n\t\tcursor: pointer;\n\t}\n\n\t&:hover {\n\t\tborder-color: var(--color-primary-element);\n\t\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n\t}\n\n\t&--selected {\n\t\tbackground: linear-gradient(135deg, var(--color-primary-element-light) 0%, var(--color-main-background) 100%);\n\t\tcolor: var(--color-main-text);\n\t\tborder-color: var(--color-primary-element);\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\t\tmargin-bottom: 16px;\n\t}\n\n\t&__title {\n\t\tfont-size: 24px;\n\t\tfont-weight: 600;\n\t\tmargin: 0;\n\t}\n\n\t.office-suite-card--primary &__check {\n\t\tcolor: var(--color-primary-element);\n\t}\n\n\t&__features {\n\t\tlist-style: none;\n\t\tpadding: 0;\n\t\tmargin: 0 0 20px 0;\n\t\tflex-grow: 1;\n\n\t\tli {\n\t\t\tpadding: 4px 0;\n\t\t\tpadding-inline-start: 20px;\n\t\t\tposition: relative;\n\t\t\tline-height: 1.5;\n\n\t\t\t&::before {\n\t\t\t\tcontent: '•';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__link {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t\tcolor: var(--color-main-text);\n\t\ttext-decoration: none;\n\t\tfont-weight: 500;\n\t\tmargin-top: auto;\n\n\t\t&:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n\n\t.office-suite-card--selected &__link {\n\t\tcolor: var(--color-main-text);\n\t}\n}\n\n.office-suite-actions {\n\tmargin-top: 16px;\n}\n\n.office-suite-disable-button {\n\tbackground: transparent;\n\tborder: 1px solid var(--color-border);\n\tborder-radius: var(--border-radius-small);\n\tpadding: 8px 12px;\n\tfont-weight: 600;\n\tcolor: var(--color-main-text);\n\tcursor: pointer;\n\ttransition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.office-suite-disable-button:disabled {\n\topacity: 0.5;\n\tcursor: default;\n}\n\n.office-suite-disable-button:hover:not(:disabled) {\n\tborder-color: var(--color-primary-element);\n\tbackground: var(--color-background-dark);\n}\n\n@media (max-width: 768px) {\n\t.office-suite-cards {\n\t\tflex-direction: column;\n\t}\n}\n"],sourceRoot:""}]);const r=s},94964(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".app-discover[data-v-277e0eae]{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/appstore/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:""}]);const r=s},31367(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".daemon[data-v-3d6f45e8]{padding:20px}.daemon h4[data-v-3d6f45e8]{font-weight:bold;margin:10px auto}","",{version:3,sources:["webpack://./apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue"],names:[],mappings:"AACA,yBACE,YAAA,CAEA,4BACE,gBAAA,CACA,gBAAA",sourcesContent:["\n.daemon {\n padding: 20px;\n\n h4 {\n font-weight: bold;\n margin: 10px auto;\n }\n}\n"],sourceRoot:""}]);const r=s},62577(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".app-description[data-v-373d80a8]{padding:12px}","",{version:3,sources:["webpack://./apps/appstore/src/components/AppStoreSidebar/AppDescriptionTab.vue"],names:[],mappings:"AACA,kCACC,YAAA",sourcesContent:["\n.app-description {\n\tpadding: 12px;\n}\n"],sourceRoot:""}]);const r=s},51718(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,'.app-details[data-v-2d1d27e2]{padding:20px}.app-details__actions-manage[data-v-2d1d27e2]{display:flex;align-items:center}.app-details__actions-manage input[data-v-2d1d27e2]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__authors[data-v-2d1d27e2]{color:var(--color-text-maxcontrast)}.app-details__section[data-v-2d1d27e2]{margin-top:15px}.app-details__section h4[data-v-2d1d27e2]{font-size:16px;font-weight:bold;margin-block-end:5px}.app-details__interact[data-v-2d1d27e2]{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.app-details__documentation a[data-v-2d1d27e2]{text-decoration:underline}.app-details__documentation li[data-v-2d1d27e2]{padding-inline-start:20px}.app-details__documentation li[data-v-2d1d27e2]::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-2d1d27e2]{color:var(--color-text-error);border-color:var(--color-border-error);background:var(--color-main-background)}.force[data-v-2d1d27e2]:hover,.force[data-v-2d1d27e2]:active{color:var(--color-main-background);border-color:var(--color-border-error) !important;background:var(--color-error)}.missing-dependencies[data-v-2d1d27e2]{list-style:initial;list-style-type:initial;list-style-position:inside}',"",{version:3,sources:["webpack://./apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue"],names:[],mappings:"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,kBAAA,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,6BAAA,CACA,sCAAA,CACA,uCAAA,CAGD,6DAEC,kCAAA,CACA,iDAAA,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\talign-items: center;\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-text-error);\n\tborder-color: var(--color-border-error);\n\tbackground: var(--color-main-background);\n}\n\n.force:hover,\n.force:active {\n\tcolor: var(--color-main-background);\n\tborder-color: var(--color-border-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:""}]);const r=s},78417(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".app-sidebar-tabs__release h2[data-v-2ac4587b]{border-bottom:1px solid var(--color-border);font-size:24px}.app-sidebar-tabs__release-text[data-v-2ac4587b] h3{font-size:20px}.app-sidebar-tabs__release-text[data-v-2ac4587b] h4{font-size:17px}","",{version:3,sources:["webpack://./apps/appstore/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:""}]);const r=s},68160(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,'.settings-markdown[data-v-72fa808e] a{text-decoration:underline}.settings-markdown[data-v-72fa808e] a::after{content:"↗";padding-inline:calc(var(--default-grid-baseline)/2)}.settings-markdown[data-v-72fa808e] 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-72fa808e] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-72fa808e] li{position:relative}.settings-markdown[data-v-72fa808e] ul,.settings-markdown[data-v-72fa808e] ol{padding-inline-start:10px;margin-inline-start:10px}.settings-markdown[data-v-72fa808e] ul li{list-style-type:disc}.settings-markdown[data-v-72fa808e] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-72fa808e] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-72fa808e] blockquote{padding-inline-start:1em;border-inline-start:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-inline:0}',"",{version:3,sources:["webpack://./Markdown.vue","webpack://./apps/appstore/src/components/Markdown.vue"],names:[],mappings:"AAAA,sCCEC,yBACC,CAAA,6CACA,WACC,CAAA,mDACA,CAAA,wCAIF,eACC,CAAA,eACA,CAAA,6CACA,CAAA,kCACA,CAAA,iBACA,CAAA,iBACA,CAAA,2CAGD,6CACC,CAAA,kCACA,CAAA,iBACA,CAAA,uCAGD,iBACC,CAAA,8EAGD,yBACC,CAAA,wBACA,CAAA,0CAGD,oBACC,CAAA,gDAGD,sBACC,CAAA,sDAGD,sBACC,CAAA,+CAGD,wBACC,CAAA,0DACA,CAAA,mCACA,CAAA,eACA",sourcesContent:['.settings-markdown :deep a{text-decoration:underline}.settings-markdown :deep a::after{content:"↗";padding-inline:calc(var(--default-grid-baseline)/2)}.settings-markdown :deep 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 :deep p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown :deep li{position:relative}.settings-markdown :deep ul,.settings-markdown :deep ol{padding-inline-start:10px;margin-inline-start:10px}.settings-markdown :deep ul li{list-style-type:disc}.settings-markdown :deep ul>li>ul>li{list-style-type:circle}.settings-markdown :deep ul>li>ul>li ul li{list-style-type:square}.settings-markdown :deep blockquote{padding-inline-start:1em;border-inline-start:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-inline:0}',"\n.settings-markdown :deep {\n\ta {\n\t\ttext-decoration: underline;\n\t\t&::after {\n\t\t\tcontent: '↗';\n\t\t\tpadding-inline: calc(var(--default-grid-baseline) / 2);\n\t\t}\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-inline-start: 10px;\n\t\tmargin-inline-start: 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-inline-start: 1em;\n\t\tborder-inline-start: 4px solid var(--color-primary-element);\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-inline: 0;\n\t}\n}\n"],sourceRoot:""}]);const r=s},91203(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,".app-sidebar--with-screenshot[data-v-3473b0d0] .app-sidebar-header__figure{background-size:cover}.app-sidebar__fallback-icon[data-v-3473b0d0]{width:100%;height:100%}.app-sidebar__badges[data-v-3473b0d0]{display:flex;flex-direction:row;gap:12px}.app-sidebar__version[data-v-3473b0d0]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/appstore/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:""}]);const r=s},93456(t,e,n){n.d(e,{A:()=>r});var a=n(71354),i=n.n(a),o=n(76314),s=n.n(o)()(i());s.push([t.id,"\n.app-score__wrapper[data-v-ab7c7026] {\n\tdisplay: inline-flex;\n\tcolor: var(--color-favorite, #a08b00);\n> *[data-v-ab7c7026] {\n\t\tvertical-align: text-bottom;\n}\n}\n","",{version:3,sources:["webpack://./apps/appstore/src/components/AppList/AppScore.vue"],names:[],mappings:";AA0EA;CACA,oBAAA;CACA,qCAAA;AAEA;EACA,2BAAA;AACA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\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, `\n.deploy-option[data-v-4d56d87e] {\n\tmargin: calc(var(--default-grid-baseline) * 4) 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n&__hint[data-v-4d56d87e] {\n\t\tmargin-top: 4px;\n\t\tfont-size: 0.8em;\n\t\tcolor: var(--color-text-maxcontrast);\n}\n}\n.envs[data-v-4d56d87e] {\n\twidth: 100%;\n\toverflow: auto;\n\theight: 100%;\n\tmax-height: 300px;\nli[data-v-4d56d87e] {\n\t\tmargin: 10px 0;\n}\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue\"],\"names\":[],\"mappings\":\";AA6TA;CACA,gDAAA;CACA,aAAA;CACA,sBAAA;CACA,uBAAA;AAEA;EACA,eAAA;EACA,gBAAA;EACA,oCAAA;AACA;AACA;AAEA;CACA,WAAA;CACA,cAAA;CACA,YAAA;CACA,iBAAA;AAEA;EACA,cAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\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, `\n.empty-content__loading[data-v-1703e700] {\n\theight: 100%;\n}\n.app-settings-content__label[data-v-1703e700] {\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/appstore/src/views/AppStore.vue\"],\"names\":[],\"mappings\":\";AA2EA;CACA,YAAA;AACA;AAEA;CACA,iDAAA;CACA,4FAAA;CACA,yCAAA;CACA,0CAAA;CACA,sBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\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, `\n/* The categories-loading indicator */\n.categories--loading[data-v-05523d0c] {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/views/AppStoreNavigation.vue\"],\"names\":[],\"mappings\":\";AA4IA,qCAAA;AACA;CACA,OAAA;CACA,aAAA;CACA,mBAAA;CACA,uBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDialog,{attrs:{\"open\":_vm.show,\"name\":_vm.t('settings', 'Choose Deploy Daemon for {appName}', { appName: _vm.app.name }),\"size\":\"normal\"},on:{\"update:open\":_setup.closeModal}},[_c(_setup.DaemonSelectionList,{attrs:{\"app\":_vm.app,\"deploy-options\":_vm.deployOptions},on:{\"close\":_setup.closeModal}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulleted.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulleted.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulleted.vue?vue&type=template&id=5c444520\"\nimport script from \"./FormatListBulleted.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulleted.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon format-list-bulleted-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcListItem',{attrs:{\"name\":_vm.itemTitle,\"details\":_vm.isDefault ? _vm.t('settings', 'Default') : '',\"force-display-actions\":true,\"counter-number\":_vm.daemon.exAppsCount,\"active\":_vm.isDefault,\"counter-type\":\"highlighted\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.selectDaemonAndInstall.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.daemon.accepts_deploy_id)+\"\\n\\t\")]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionEntry.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!./DaemonSelectionEntry.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DaemonSelectionEntry.vue?vue&type=template&id=a627154a\"\nimport script from \"./DaemonSelectionEntry.vue?vue&type=script&lang=js\"\nexport * from \"./DaemonSelectionEntry.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","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"","\n\n\n\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!./DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DaemonSelectionList.vue?vue&type=template&id=168bc683&scoped=true\"\nimport script from \"./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"\nimport style0 from \"./DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&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 \"168bc683\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"daemon-selection-list\"},[(_setup.dockerDaemons.length > 0)?_c('ul',{attrs:{\"aria-label\":_vm.t('settings', 'Registered Deploy daemons list')}},_vm._l((_setup.dockerDaemons),function(daemon){return _c(_setup.DaemonSelectionEntry,{key:daemon.id,attrs:{\"daemon\":daemon,\"is-default\":_setup.defaultDaemon.name === daemon.name,\"app\":_vm.app,\"deploy-options\":_vm.deployOptions},on:{\"close\":_setup.closeModal}})}),1):_c(_setup.NcEmptyContent,{staticClass:\"daemon-selection-list__empty-content\",attrs:{\"name\":_vm.t('settings', 'No Deploy daemons configured'),\"description\":_vm.t('settings', 'Register a custom one or setup from available templates')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.FormatListBullet,{attrs:{\"size\":20}})]},proxy:true},{key:\"action\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"href\":_setup.appApiAdminPage}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Manage Deploy daemons'))+\"\\n\\t\\t\\t\")])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./DaemonSelectionDialog.vue?vue&type=template&id=e3a87a30\"\nimport script from \"./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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.app?.app_api && _vm.shouldDisplayDefaultIcon)?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.app.app_api && _vm.shouldDisplayDefaultIcon)?_c('NcIconSvgWrapper',{staticStyle:{\"min-width\":\"auto\",\"min-height\":\"auto\",\"height\":\"100%\"},attrs:{\"path\":_vm.mdiCogOutline,\"size\":_vm.listView ? 24 : 48}}):(_vm.listView && _vm.app.preview && !_vm.app.app_api)?_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()],1),_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 || _vm.isInitializing)?_c('div',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),(_vm.app.update)?_c('NcButton',{attrs:{\"variant\":\"primary\",\"disabled\":_vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible || _vm.isManualInstall,\"title\":_vm.updateButtonText},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:{\"variant\":\"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 || _vm.isInitializing || _vm.isDeploying},on:{\"click\":function($event){$event.stopPropagation();return _vm.disable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.disableButtonText)+\"\\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,\"variant\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible || _vm.isInitializing || _vm.isDeploying},on:{\"click\":function($event){$event.stopPropagation();return _vm.enableButtonAction.apply(null, arguments)}}},[_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,\"variant\":\"secondary\",\"disabled\":_vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible},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(),_vm._v(\" \"),(_vm.app?.app_api && _vm.showSelectDaemonModal)?_c('DaemonSelectionDialog',{attrs:{\"show\":_vm.showSelectDaemonModal,\"app\":_vm.app},on:{\"update:show\":function($event){_vm.showSelectDaemonModal=$event}}}):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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\n\n\n\n\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=55e495e8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=55e495e8&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=55e495e8&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=55e495e8&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 \"55e495e8\",\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-6.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-6.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=96439520&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=96439520&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=96439520&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=96439520&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 \"96439520\",\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-6.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-6.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=ab7c7026&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=ab7c7026&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=ab7c7026&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=ab7c7026&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 \"ab7c7026\",\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.pageHeading,\"page-title\":_setup.pageTitle}},[_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\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.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\t* drain() {\n\t\twhile (this.#head) {\n\t\t\tyield this.dequeue();\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tlet rejectOnClear = false;\n\n\tif (typeof concurrency === 'object') {\n\t\t({concurrency, rejectOnClear = false} = concurrency);\n\t}\n\n\tvalidateConcurrency(concurrency);\n\n\tif (typeof rejectOnClear !== 'boolean') {\n\t\tthrow new TypeError('Expected `rejectOnClear` to be a boolean');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\t// Process the next queued function if we're under the concurrency limit\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tactiveCount++;\n\t\t\tqueue.dequeue().run();\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\t// Execute the function and capture the result promise\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\t// Resolve immediately with the promise (don't wait for completion)\n\t\tresolve(result);\n\n\t\t// Wait for the function to complete (success or failure)\n\t\t// We catch errors here to prevent unhandled rejections,\n\t\t// but the original promise rejection is preserved for the caller\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\t// Decrement active count and process next queued function\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, reject, arguments_) => {\n\t\tconst queueItem = {reject};\n\n\t\t// Queue the internal resolve function instead of the run function\n\t\t// to preserve the asynchronous execution context.\n\t\tnew Promise(internalResolve => { // eslint-disable-line promise/param-names\n\t\t\tqueueItem.run = internalResolve;\n\t\t\tqueue.enqueue(queueItem);\n\t\t}).then(run.bind(undefined, function_, resolve, arguments_)); // eslint-disable-line promise/prefer-await-to-then\n\n\t\t// Start processing immediately if we haven't reached the concurrency limit\n\t\tif (activeCount < concurrency) {\n\t\t\tresumeNext();\n\t\t}\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise((resolve, reject) => {\n\t\tenqueue(function_, resolve, reject, arguments_);\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\tif (!rejectOnClear) {\n\t\t\t\t\tqueue.clear();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst abortError = AbortSignal.abort().reason;\n\n\t\t\t\twhile (queue.size > 0) {\n\t\t\t\t\tqueue.dequeue().reject(abortError);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\tmap: {\n\t\t\tasync value(iterable, function_) {\n\t\t\t\tconst promises = Array.from(iterable, (value, index) => this(function_, value, index));\n\t\t\t\treturn Promise.all(promises);\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, options) {\n\tconst limit = pLimit(options);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(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","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckCircle.vue?vue&type=template&id=60d94ca3\"\nimport script from \"./CheckCircle.vue?vue&type=script&lang=js\"\nexport * from \"./CheckCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\nexport const OFFICE_SUITES = Object.freeze([\n {\n id: 'nextcloud-office',\n appId: 'richdocuments',\n name: 'Nextcloud Office',\n features: [\n t('settings', 'Best Nextcloud integration'),\n t('settings', 'Open source'),\n t('settings', 'Good performance'),\n t('settings', 'Best security: documents never leave your server'),\n t('settings', 'Best ODF compatibility'),\n t('settings', 'Best support for legacy files'),\n ],\n learnMoreUrl: 'https://nextcloud.com/collaboraonline/',\n isPrimary: true,\n },\n {\n id: 'onlyoffice',\n appId: 'onlyoffice',\n name: 'Onlyoffice',\n features: [\n t('settings', 'Good Nextcloud integration'),\n t('settings', 'Open core'),\n t('settings', 'Best performance'),\n t('settings', 'Limited ODF compatibility'),\n t('settings', 'Best Microsoft compatibility'),\n ],\n learnMoreUrl: 'https://nextcloud.com/onlyoffice/',\n isPrimary: false,\n },\n]);\n/**\n * Get office suite configuration by ID\n *\n * @param id - The suite ID\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteById(id) {\n return OFFICE_SUITES.find((suite) => suite.id === id);\n}\n/**\n * Get office suite configuration by app ID\n *\n * @param appId - The app ID (richdocuments, onlyoffice, etc.)\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteByAppId(appId) {\n return OFFICE_SUITES.find((suite) => suite.appId === appId);\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficeSuiteSwitcher.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficeSuiteSwitcher.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('div',{staticClass:\"office-suite-switcher\"},[(_setup.isAllInOne)?_c('div',{staticClass:\"office-suite-switcher__aio-message\"},[_c('p',[_vm._v(_vm._s(_setup.t('settings', 'Office suite switching is managed through the Nextcloud All-in-One interface.')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_setup.t('settings', 'Please use the AIO interface to switch between office suites.')))])]):[_c('p',[_vm._v(_vm._s(_setup.t('settings', 'Select your preferred office suite. Please note that installing requires manual server setup.')))]),_vm._v(\" \"),_c('div',{staticClass:\"office-suite-cards\"},_vm._l((_setup.OFFICE_SUITES),function(suite){return _c('div',{key:suite.id,staticClass:\"office-suite-card\",class:{\n\t\t\t\t\t'office-suite-card--primary': suite.isPrimary,\n\t\t\t\t\t'office-suite-card--selected': _setup.selectedSuite === suite.id,\n\t\t\t\t},on:{\"click\":function($event){return _setup.selectSuite(suite.id)}}},[_c('div',{staticClass:\"office-suite-card__header\"},[_c('h3',{staticClass:\"office-suite-card__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(suite.name)+\"\\n\\t\\t\\t\\t\\t\\t\"),(_setup.selectedSuite === suite.id)?_c('span',[_vm._v(\"(\"+_vm._s(_setup.t('settings', 'installed'))+\")\")]):_vm._e()]),_vm._v(\" \"),(_setup.selectedSuite === suite.id)?_c(_setup.IconCheckCircle,{staticClass:\"office-suite-card__check\",attrs:{\"size\":24}}):_vm._e()],1),_vm._v(\" \"),_c('ul',{staticClass:\"office-suite-card__features\"},_vm._l((suite.features),function(feature,index){return _c('li',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', feature))+\"\\n\\t\\t\\t\\t\\t\")])}),0),_vm._v(\" \"),_c('a',{staticClass:\"office-suite-card__link\",attrs:{\"href\":suite.learnMoreUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Learn more'))+\"\\n\\t\\t\\t\\t\\t\"),_c(_setup.IconArrowRight,{attrs:{\"size\":20}})],1)])}),0),_vm._v(\" \"),_c('div',{staticClass:\"office-suite-actions\"},[_c('button',{staticClass:\"office-suite-disable-button\",attrs:{\"disabled\":!_setup.selectedSuite},on:{\"click\":_setup.disableSuites}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Disable office suites'))+\"\\n\\t\\t\\t\")])])]],2)\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!./OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OfficeSuiteSwitcher.vue?vue&type=template&id=2e094751&scoped=true\"\nimport script from \"./OfficeSuiteSwitcher.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OfficeSuiteSwitcher.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&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 \"2e094751\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\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=ceb5cf46&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=ceb5cf46&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=ceb5cf46&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=ceb5cf46&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 \"ceb5cf46\",\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\"}},[(_vm.category === 'office')?_c('OfficeSuiteSwitcher',{attrs:{\"installed-apps\":_vm.allApps},on:{\"suite-selected\":_vm.onSuiteSelected}}):_vm._e(),_vm._v(\" \"),_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('appstore', '%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\",\"variant\":\"primary\"},on:{\"click\":_vm.updateAll}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('appstore', '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('appstore', '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('appstore', 'Icon')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Name')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Version')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Level')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', '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('appstore', 'Icon')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-name\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Name')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-version\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Version')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-level\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Level')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-actions\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.bundles),function(bundle){return _c('tbody',{key:bundle.id},[_c('tr',[_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:{\"variant\":\"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('appstore', _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)})],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('appstore', '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('appstore', 'Icon')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Name')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Version')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Level')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', '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('appstore', 'No apps found for your version')))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('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.mdiEyeOffOutline,\"size\":64}})]},proxy:true}],null,false,3626885458)}):(_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 function 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 *\n * @param element Element to check\n */\nexport function 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-6.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-6.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=277e0eae&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=277e0eae&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=277e0eae&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=277e0eae&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 \"277e0eae\",\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-6.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-6.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=1703e700&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=1703e700&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=1703e700&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=1703e700&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 \"1703e700\",\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 [(_setup.appstoreEnabled)?_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}],null,false,1397544286)}):_vm._e(),_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.store.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.store.updateCount))])]},proxy:true},{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.updates}})]},proxy:true}],null,false,3001044337)}):_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()]},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-6.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-6.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=05523d0c&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=05523d0c&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=05523d0c&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=05523d0c&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 \"05523d0c\",\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.app.app_api && _setup.app.daemon)?_c(_setup.AppDaemonBadge,{attrs:{\"daemon\":_setup.app.daemon}}):_vm._e(),_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,{key:_setup.app.id,attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppReleasesTab,{attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppDeployDaemonTab,{attrs:{\"app\":_setup.app}})],1):_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 (_vm.daemon)?_c('span',{staticClass:\"app-daemon-badge\",attrs:{\"title\":_vm.daemon.name}},[_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFileChart,\"size\":20,\"inline\":\"\"}}),_vm._v(\"\\n\\t\"+_vm._s(_vm.daemon.display_name)+\"\\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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDaemonBadge.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDaemonBadge.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!./AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDaemonBadge.vue?vue&type=template&id=5294293a&scoped=true\"\nimport script from \"./AppDaemonBadge.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppDaemonBadge.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&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 \"5294293a\",\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 (_vm.app?.daemon)?_c(_setup.NcAppSidebarTab,{attrs:{\"id\":\"daemon\",\"name\":_vm.t('settings', 'Daemon'),\"order\":3},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFileChart,\"size\":24}})]},proxy:true}],null,false,1746493066)},[_vm._v(\" \"),_c('div',{staticClass:\"daemon\"},[_c('h4',[_vm._v(_vm._s(_vm.t('settings', 'Deploy Daemon')))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Type')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon.accepts_deploy_id))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Name')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon.name))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Display Name')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon.display_name))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'GPUs support')))]),_vm._v(\": \"+_vm._s(_setup.gpuSupport))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Compute device')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon?.deploy_config?.computeDevice?.label))])])]):_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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDeployDaemonTab.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDeployDaemonTab.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!./AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDeployDaemonTab.vue?vue&type=template&id=3d6f45e8&scoped=true\"\nimport script from \"./AppDeployDaemonTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppDeployDaemonTab.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&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 \"3d6f45e8\",\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.NcAppSidebarTab,{attrs:{\"id\":\"desc\",\"name\":_setup.t('appstore', '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\n\n\n\n\n\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=72fa808e&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=72fa808e&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=72fa808e&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=72fa808e&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 \"72fa808e\",\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-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.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!./AppDescriptionTab.vue?vue&type=style&index=0&id=373d80a8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=373d80a8&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=373d80a8&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=373d80a8&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 \"373d80a8\",\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('appstore', 'Details'),\"order\":1},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiTextBoxOutline}})]},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('appstore', 'Limit to groups')))]),_vm._v(\" \"),_c('input',{staticClass:\"group_select\",attrs:{\"type\":\"hidden\",\"title\":_vm.t('appstore', 'All'),\"value\":\"\"}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"limitToGroups\"}},[_c('span',[_vm._v(_vm._s(_vm.t('appstore', 'Limit app usage to groups')))])]),_vm._v(\" \"),(_vm.isLimitedToGroups(_vm.app))?_c('NcSelect',{attrs:{\"input-id\":\"limitToGroups\",\"options\":_vm.groups,\"model-value\":_vm.appGroups,\"limit\":5,\"label\":\"name\",\"multiple\":true,\"keep-open\":\"\"},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('appstore', '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('appstore', 'Update to {version}', { version: _vm.app.update }),\"disabled\":_vm.installing || _vm.isLoading || _vm.isManualInstall},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('appstore', 'Remove'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.remove(_vm.app.id, _vm.removeData)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.disableButtonText,\"disabled\":_vm.installing || _vm.isLoading || _vm.isInitializing || _vm.isDeploying},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 || !_vm.defaultDeployDaemonAccessible || _vm.isInitializing || _vm.isDeploying},on:{\"click\":_vm.enableButtonAction}}):(!_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(\" \"),(_vm.app?.app_api && (_vm.app.canInstall || _vm.app.isCompatible))?_c('NcButton',{attrs:{\"aria-label\":_vm.t('appstore', 'Advanced deploy options'),\"variant\":\"secondary\"},on:{\"click\":() => _vm.showDeployOptionsModal = true},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiToyBrickPlusOutline}})]},proxy:true}],null,false,973660380)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'Deploy options'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),(!_vm.defaultDeployDaemonAccessible)?_c('p',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'Default Deploy daemon is not accessible'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('NcCheckboxRadioSwitch',{attrs:{\"model-value\":_vm.removeData,\"disabled\":_vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible},on:{\"update:modelValue\":_vm.toggleRemoveData}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'Delete data on remove'))+\"\\n\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__dependencies\"},[(_vm.app.missingMinOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'This app has no minimum {productName} version assigned. This will be an error in the future.', { productName: _vm.productName }))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.missingMaxOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'This app has no maximum {productName} version assigned. This will be an error in the future.', { productName: _vm.productName }))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.canInstall)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', '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 && !_vm.app.shipped)?_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', '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('appstore', '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('appstore', '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('appstore', 'Resources')))]),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__documentation\",attrs:{\"aria-label\":_vm.t('appstore', '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('appstore', 'Interact')))]),_vm._v(\" \"),_c('div',{staticClass:\"app-details__interact\"},[_c('NcButton',{attrs:{\"disabled\":!_vm.app.bugs,\"href\":_vm.app.bugs ?? '#',\"aria-label\":_vm.t('appstore', 'Report a bug'),\"title\":_vm.t('appstore', 'Report a bug')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiBugOutline}})]},proxy:true}])}),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":!_vm.app.bugs,\"href\":_vm.app.bugs ?? '#',\"aria-label\":_vm.t('appstore', 'Request feature'),\"title\":_vm.t('appstore', 'Request feature')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiFeatureSearchOutline}})]},proxy:true}])}),_vm._v(\" \"),(_vm.app.appstoreData?.discussion)?_c('NcButton',{attrs:{\"href\":_vm.app.appstoreData.discussion,\"aria-label\":_vm.t('appstore', 'Ask questions or discuss'),\"title\":_vm.t('appstore', 'Ask questions or discuss')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiTooltipQuestionOutline}})]},proxy:true}],null,false,88743630)}):_vm._e(),_vm._v(\" \"),(!_vm.app.internal)?_c('NcButton',{attrs:{\"href\":_vm.rateAppUrl,\"aria-label\":_vm.t('appstore', 'Rate the app'),\"title\":_vm.t('appstore', 'Rate')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiStar}})]},proxy:true}],null,false,422450625)}):_vm._e()],1)]),_vm._v(\" \"),(_vm.app?.app_api)?_c('AppDeployOptionsModal',{attrs:{\"show\":_vm.showDeployOptionsModal,\"app\":_vm.app},on:{\"update:show\":function($event){_vm.showDeployOptionsModal=$event}}}):_vm._e(),_vm._v(\" \"),(_vm.app?.app_api)?_c('DaemonSelectionDialog',{attrs:{\"show\":_vm.showSelectDaemonModal,\"app\":_vm.app,\"deploy-options\":_vm.deployOptions},on:{\"update:show\":function($event){_vm.showSelectDaemonModal=$event}}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDeployOptionsModal.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!./AppDeployOptionsModal.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/vue-loader/lib/index.js??vue-loader-options!./AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDeployOptionsModal.vue?vue&type=template&id=4d56d87e&scoped=true\"\nimport script from \"./AppDeployOptionsModal.vue?vue&type=script&lang=js\"\nexport * from \"./AppDeployOptionsModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&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 \"4d56d87e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{attrs:{\"open\":_vm.show,\"size\":\"normal\",\"name\":_vm.t('settings', 'Advanced deploy options')},on:{\"update:open\":function($event){return _vm.$emit('update:show', $event)}},scopedSlots:_vm._u([(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) && _vm.configuredDeployOptions === null)?{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"variant\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible || _vm.isInitializing || _vm.isDeploying},on:{\"click\":function($event){$event.stopPropagation();return _vm.submitDeployOptions.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.enableButtonText)+\"\\n\\t\\t\")])]},proxy:true}:null],null,true)},[_c('div',{staticClass:\"modal__content\"},[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.configuredDeployOptions === null ? _vm.t('settings', 'Edit ExApp deploy options before installation') : _vm.t('settings', 'Configured ExApp deploy options. Can be set only during installation'))+\".\\n\\t\\t\\t\"),(_vm.deployOptionsDocsUrl)?_c('a',{attrs:{\"href\":_vm.deployOptionsDocsUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Learn more'))+\"\\n\\t\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.environmentVariables.length > 0 || (_vm.configuredDeployOptions !== null && _vm.configuredDeployOptions.environment_variables.length > 0))?_c('h3',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Environment variables'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.configuredDeployOptions === null)?_vm._l((_vm.environmentVariables),function(envVar){return _c('div',{key:envVar.envName,staticClass:\"deploy-option\"},[_c('NcTextField',{attrs:{\"label\":envVar.displayName},model:{value:(_vm.deployOptions.environment_variables[envVar.envName]),callback:function ($$v) {_vm.$set(_vm.deployOptions.environment_variables, envVar.envName, $$v)},expression:\"deployOptions.environment_variables[envVar.envName]\"}}),_vm._v(\" \"),_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(envVar.description)+\"\\n\\t\\t\\t\\t\")])],1)}):(Object.keys(_vm.configuredDeployOptions).length > 0)?_c('fieldset',{staticClass:\"envs\"},[_c('legend',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'ExApp container environment variables'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.configuredDeployOptions.environment_variables),function(value,key){return _c('NcTextField',{key:key,attrs:{\"label\":value.displayName ?? key,\"helper-text\":value.description,\"model-value\":value.value,\"readonly\":\"\"}})})],2):[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'No environment variables defined'))+\"\\n\\t\\t\\t\")])],_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('settings', 'Mounts')))]),_vm._v(\" \"),(_vm.configuredDeployOptions === null)?[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Define host folder mounts to bind to the ExApp container'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Must exist on the Deploy daemon host prior to installing the ExApp')}}),_vm._v(\" \"),_vm._l((_vm.deployOptions.mounts),function(mount){return _c('div',{key:mount.hostPath,staticClass:\"deploy-option\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"space-between\",\"flex-direction\":\"row\"}},[_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Host path')},model:{value:(mount.hostPath),callback:function ($$v) {_vm.$set(mount, \"hostPath\", $$v)},expression:\"mount.hostPath\"}}),_vm._v(\" \"),_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Container path')},model:{value:(mount.containerPath),callback:function ($$v) {_vm.$set(mount, \"containerPath\", $$v)},expression:\"mount.containerPath\"}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(mount.readonly),callback:function ($$v) {_vm.$set(mount, \"readonly\", $$v)},expression:\"mount.readonly\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Read-only'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticStyle:{\"margin-top\":\"6px\"},attrs:{\"aria-label\":_vm.t('settings', 'Remove mount')},on:{\"click\":function($event){return _vm.removeMount(mount)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiDeleteOutline}})]},proxy:true}],null,true)})],1)}),_vm._v(\" \"),(_vm.addingMount)?_c('div',{staticClass:\"deploy-option\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'New mount'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"space-between\",\"flex-direction\":\"row\"}},[_c('NcTextField',{ref:\"newMountHostPath\",attrs:{\"label\":_vm.t('settings', 'Host path'),\"aria-label\":_vm.t('settings', 'Enter path to host folder')},model:{value:(_vm.newMountPoint.hostPath),callback:function ($$v) {_vm.$set(_vm.newMountPoint, \"hostPath\", $$v)},expression:\"newMountPoint.hostPath\"}}),_vm._v(\" \"),_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Container path'),\"aria-label\":_vm.t('settings', 'Enter path to container folder')},model:{value:(_vm.newMountPoint.containerPath),callback:function ($$v) {_vm.$set(_vm.newMountPoint, \"containerPath\", $$v)},expression:\"newMountPoint.containerPath\"}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle read-only mode')},model:{value:(_vm.newMountPoint.readonly),callback:function ($$v) {_vm.$set(_vm.newMountPoint, \"readonly\", $$v)},expression:\"newMountPoint.readonly\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Read-only'))+\"\\n\\t\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"margin-top\":\"4px\"}},[_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Confirm adding new mount')},on:{\"click\":_vm.addMountPoint},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiCheck}})]},proxy:true}],null,false,1018299955)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticStyle:{\"margin-left\":\"4px\"},attrs:{\"aria-label\":_vm.t('settings', 'Cancel adding mount')},on:{\"click\":_vm.cancelAddMountPoint},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiClose}})]},proxy:true}],null,false,2764082467)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\\t\")])],1)]):_vm._e(),_vm._v(\" \"),(!_vm.addingMount)?_c('NcButton',{staticStyle:{\"margin-top\":\"5px\"},attrs:{\"aria-label\":_vm.t('settings', 'Add mount')},on:{\"click\":_vm.startAddingMount},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiPlus}})]},proxy:true}],null,false,103601839)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add mount'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.configuredDeployOptions.mounts.length > 0)?[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'ExApp container mounts'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.configuredDeployOptions.mounts),function(mount){return _c('div',{key:mount.hostPath,staticClass:\"deploy-option\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"space-between\",\"flex-direction\":\"row\"}},[_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Host path'),\"readonly\":\"\"},model:{value:(mount.hostPath),callback:function ($$v) {_vm.$set(mount, \"hostPath\", $$v)},expression:\"mount.hostPath\"}}),_vm._v(\" \"),_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Container path'),\"readonly\":\"\"},model:{value:(mount.containerPath),callback:function ($$v) {_vm.$set(mount, \"containerPath\", $$v)},expression:\"mount.containerPath\"}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":\"\"},model:{value:(mount.readonly),callback:function ($$v) {_vm.$set(mount, \"readonly\", $$v)},expression:\"mount.readonly\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Read-only'))+\"\\n\\t\\t\\t\\t\")])],1)})]:_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'No mounts defined'))+\"\\n\\t\\t\")])],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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\n\n\n\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!./AppDetailsTab.vue?vue&type=style&index=0&id=2d1d27e2&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=2d1d27e2&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=2d1d27e2&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=2d1d27e2&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 \"2d1d27e2\",\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-6.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-6.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('appstore', '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=2ac4587b&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=2ac4587b&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=2ac4587b&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=2ac4587b&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 \"2ac4587b\",\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-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts\"","import { mdiCog, mdiCogOutline } from '@mdi/js';\nimport { computed, ref, watchEffect } from 'vue';\nimport AppstoreCategoryIcons from '../constants/AppstoreCategoryIcons.ts';\nimport logger from '../utils/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 let path;\n if (app.value?.app_api) {\n // Use different default icon for ExApps (AppAPI)\n path = mdiCogOutline;\n }\n else {\n path = [app.value?.category ?? []].flat()\n .map((name) => AppstoreCategoryIcons[name])\n .filter((icon) => !!icon)\n .at(0)\n ?? (!app.value?.app_api ? mdiCog : mdiCogOutline);\n }\n return path ? `` : 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=3473b0d0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=3473b0d0&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=3473b0d0&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=3473b0d0&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 \"3473b0d0\",\n null\n \n)\n\nexport default component.exports"],"names":["APPS_SECTION_ENUM","Object","freeze","discover","t","installed","enabled","disabled","updates","featured","supported","async","rebuildNavigation","data","axios","get","generateOcsUrl","ocs","meta","statuscode","emit","apps","window","dispatchEvent","Event","productName","OC","theme","computed","appGroups","this","app","groups","map","group","id","name","installing","app_api","appApiStore","getLoading","$store","getters","loading","isLoading","isInitializing","status","action","isDeploying","isManualInstall","daemon","accepts_deploy_id","updateButtonText","version","update","enableButtonText","progress","deploy","init","needsDownload","disableButtonText","forceEnableButtonText","enableButtonTooltip","forceEnableButtonTooltip","base","defaultDeployDaemonAccessible","getDefaultDaemon","getDaemonAccessible","groupCheckedAppsData","mounted","length","methods","asyncFindGroup","query","dispatch","search","limit","offset","isLimitedToGroups","setGroupLimit","appId","canLimitToGroups","types","includes","addGroupLimitation","groupArray","pop","concat","store","updateAppGroups","removeGroupLimitation","currentGroups","index","indexOf","splice","forceEnable","forceEnableApp","then","catch","error","showError","enable","deployOptions","enableApp","disable","disableApp","remove","removeData","uninstallApp","install","updateApp","updateCount","Math","max","mdiStarCircleOutline","mdiAccountOutline","mdiCheck","mdiClose","bundles","mdiArchiveOutline","mdiStarShootingOutline","mdiStar","mdiDownload","ai","mdiCreationOutline","auth","mdiKeyOutline","customization","mdiCogOutline","dashboard","mdiViewColumnOutline","files","mdiFolder","games","mdiControllerClassicOutline","integration","mdiOpenInApp","monitoring","mdiMonitorEye","multimedia","mdiMultimedia","office","mdiFileDocumentEdit","organization","mdiOfficeBuildingOutline","mdiMagnify","security","mdiSecurity","social","mdiAccountMultipleOutline","tools","mdiTools","workflow","mdiClipboardFlowOutline","useAppApiStore","defineStore","state","loadState","loadingList","statusUpdater","daemonAccessible","defaultDaemon","dockerDaemons","getAllApps","getUpdateCount","getAppStatus","find","getStatusUpdater","getInitializingOrDeployingApps","filter","type","actions","appsApiFailure","response","message","isHTML","logger","setLoading","value","Vue","setError","Array","isArray","forEach","_id","confirmPassword","post","generateUrl","active","canUnInstall","removable","updateAppsStatus","update_required","showInfo","onClick","location","reload","close","setTimeout","api","canInstall","undefined","fetchAllApps","fetchAppStatus","initializingOrDeployingApps","debug","clearInterval","hasOwn","fetchDockerDaemons","daemons","default_daemon_config","setInterval","showApiError","useAppsStore","categories","gettingCategoriesPromise","loadCategories","force","url","category","icon","APPSTORE_CATEGORY_ICONS","$patch","loadApps","getCategoryById","categoryId","getAppById","___CSS_LOADER_EXPORT___","push","module","emits","props","title","String","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","NcListItem","mixins","AppManagement","required","isDefault","Boolean","setup","itemTitle","display_name","closeModal","selectDaemonAndInstall","exAppsCount","stopPropagation","apply","arguments","scopedSlots","_u","key","fn","proxy","appApiAdminPage","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setup","_setupProxy","_l","DaemonSelectionEntry","NcEmptyContent","FormatListBullet","NcButton","NcDialog","show","appName","DaemonSelectionList","filterId","filterUrl","random","toString","substring","AppLevelBadge","AppScore","NcIconSvgWrapper","DaemonSelectionDialog","SvgFilterMixin","listView","useBundleView","headers","inline","isSelected","scrolled","screenshotLoaded","showSelectDaemonModal","hasRating","appstoreData","ratingNumOverall","dataItemTag","withSidebar","$route","params","shouldDisplayDefaultIcon","preview","watch","releases","screenshot","image","Image","onload","src","watchers","prefix","content","getDataItemHeaders","columnName","join","showSelectionModal","enableButtonAction","tag","class","staticStyle","summary","level","score","isCompatible","_defineComponent","__name","__props","isSupported","isFeatured","badgeIcon","badgeText","badgeTitle","__sfc","defineComponent","mdiStarHalfFull","mdiStarOutline","appScore","toFixed","fullStars","floor","emptyStars","min","hasHalfStar","Node","constructor","_defineProperty","_head","WeakMap","_tail","_size","Queue","_classPrivateFieldInitSpec","clear","enqueue","_this$size","node","_classPrivateFieldGet","next","_classPrivateFieldSet","dequeue","_this$size3","current","peek","Symbol","iterator","drain","pLimit","concurrency","rejectOnClear","validateConcurrency","TypeError","queue","activeCount","resumeNext","run","function_","resolve","arguments_","result","generator","Promise","reject","queueItem","internalResolve","bind","defineProperties","pendingCount","clearQueue","abortError","AbortSignal","abort","reason","set","newConcurrency","queueMicrotask","iterable","promises","from","all","isInteger","POSITIVE_INFINITY","OFFICE_SUITES","features","learnMoreUrl","isPrimary","installedApps","isAllInOne","selectedSuite","shallowRef","getInitialSuite","suite","a","selectSuite","suiteId","disableSuites","IconArrowRight","IconCheckCircle","feature","AppItem","OfficeSuiteSwitcher","counter","hasPendingUpdate","showUpdateAll","useListView","allApps","exApps","isAppApiEnabled","toLowerCase","sort","b","statusA","statusB","Util","naturalSortCompare","appstore","getAppBundles","bundle","bundleApps","bundleIds","searchApps","_app","useAppStoreView","allBundlesEnabled","bundleToggleText","beforeUnmount","unsubscribe","setSearch","resetSearch","subscribe","disableOfficeSuites","suites","disablePromises","onSuiteSelected","info","Notification","showTemporary","otherSuites","toggleBundle","disableBundle","enableBundle","updateAll","updateTasks","n","parseApiResponse","element","appElement","date","Date","parse","expiryDate","Error","filterElements","now","PostType","defineAsyncComponent","CarouselType","ShowcaseType","hasError","ref","elements","shuffleArray","array","i","j","onBeforeMount","shuffledElements","order","Infinity","getComponent","render","h","mdiEyeOffOutline","NcLoadingIcon","entry","route","useRoute","currentCategory","viewLabel","displayName","pageHeading","pageTitle","instance","getCurrentInstance","shouldRefetchCategories","onBeforeUnmount","NcAppContent","AppList","AppStoreDiscoverSection","domProps","appstoreEnabled","categoriesLoading","isSubscribed","NcAppNavigation","NcAppNavigationItem","NcAppNavigationSpacer","NcCounterBubble","mdiFileChart","gpuSupport","deploy_config","computeDevice","NcAppSidebarTab","label","text","minHeading","renderMarkdown","renderer","marked","Renderer","link","href","prot","decodeURIComponent","unescape","replace","out","heading","depth","blockquote","dompurify","sanitize","trim","gfm","highlight","tables","breaks","pedantic","smartLists","smartypants","SAFE_FOR_JQUERY","ALLOWED_TAGS","mdiTextShort","Markdown","description","NcTextField","NcNoteCard","NcCheckboxRadioSwitch","environmentVariables","environment_variables","reduce","acc","envVar","envName","mounts","mdiPlus","mdiDeleteOutline","addingMount","newMountPoint","hostPath","containerPath","readonly","addingPortBinding","configuredDeployOptions","deployOptionsDocsUrl","newShow","fetchExAppDeployOptions","startAddingMount","$nextTick","$refs","newMountHostPath","focus","addMountPoint","cancelAddMountPoint","removeMount","mountToRemove","mount","submitDeployOptions","model","callback","$$v","$set","expression","keys","NcDateTime","NcSelect","AppDeployOptionsModal","mdiBugOutline","mdiFeatureSearchOutline","mdiTextBoxOutline","mdiTooltipQuestionOutline","mdiToyBrickPlusOutline","showDeployOptionsModal","lastModified","at","appAuthors","authorName","xmlNode","author","split","localeCompare","appstoreUrl","externalResources","resources","internal","website","documentation","user","admin","developer","appCategories","flat","rateAppUrl","getGroups","toggleRemoveData","directives","rawName","_i","$$a","$$el","target","$$c","checked","$$i","slice","slot","click","missingMinOwnCloudVersion","missingMaxOwnCloudVersion","missingDependencies","dep","shipped","resource","bugs","discussion","hasChangelog","values","translations","some","changelog","createChangelogFromRelease","release","getLanguage","en","mdiClockFast","router","useRouter","legacyStore","useStore","exApp","rating","ratingNumRecent","ratingRecent","ratingOverall","showSidebar","appIcon","categoryIcon","path","AppstoreCategoryIcons","mdiCog","watchEffect","fetch","blob","rawSvg","replaceAll","useAppIcon","licenseText","license","toUpperCase","activeTab","hasScreenshot","loadScreenshot","onMounted","hideAppDetails","NcAppSidebar","AppDaemonBadge","AppDeployDaemonTab","AppDescriptionTab","AppDetailsTab","AppReleasesTab"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-apps-view-4529.js?v=86d8d135dabd6320195a","mappings":"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","sources":["webpack:///nextcloud/apps/appstore/src/constants/AppsConstants.js","webpack:///nextcloud/apps/appstore/src/service/rebuild-navigation.ts","webpack:///nextcloud/apps/appstore/src/mixins/AppManagement.js","webpack:///nextcloud/apps/appstore/src/constants/AppstoreCategoryIcons.ts","webpack:///nextcloud/apps/appstore/src/store/app-api-store.ts","webpack:///nextcloud/apps/appstore/src/store/apps-store.ts","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppList.vue?vue&type=style&index=0&id=ceb5cf46&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/appstore/src/components/AppList/AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=55e495e8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=96439520&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/appstore/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=277e0eae&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=373d80a8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=499d846c&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2ac4587b&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue?vue&type=style&index=0&id=08e3b856&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/Markdown.vue?vue&type=style&index=0&id=72fa808e&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=066d163c&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/appstore/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=ab7c7026&prod&scoped=true&lang=css","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&prod&scoped=true&lang=css","webpack:///nextcloud/apps/appstore/src/views/AppStore.vue?vue&type=style&index=0&id=1703e700&prod&scoped=true&lang=css","webpack:///nextcloud/apps/appstore/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=05523d0c&prod&scoped=true&lang=css","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionDialog.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulleted.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulleted.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FormatListBulleted.vue?6c50","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulleted.vue?vue&type=template&id=5c444520","webpack://nextcloud/./apps/appstore/src/components/AppAPI/DaemonSelectionEntry.vue?1238","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionEntry.vue","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/AppAPI/DaemonSelectionEntry.vue?2612","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionList.vue?vue&type=script&setup=true&lang=js","webpack:///nextcloud/DaemonSelectionList.vue","webpack://nextcloud/./apps/appstore/src/components/AppAPI/DaemonSelectionList.vue?b4a0","webpack://nextcloud/./apps/appstore/src/components/AppAPI/DaemonSelectionList.vue?e098","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionList.vue","webpack:///nextcloud/apps/appstore/src/components/AppAPI/DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js","webpack:///nextcloud/DaemonSelectionDialog.vue","webpack://nextcloud/./apps/appstore/src/components/AppAPI/DaemonSelectionDialog.vue?57fa","webpack://nextcloud/./apps/appstore/src/components/AppList/AppItem.vue?fe19","webpack:///nextcloud/apps/appstore/src/components/SvgFilterMixin.vue","webpack:///nextcloud/apps/appstore/src/components/SvgFilterMixin.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/SvgFilterMixin.vue?d95f","webpack:///nextcloud/apps/appstore/src/components/AppList/AppItem.vue","webpack:///nextcloud/apps/appstore/src/components/AppList/AppItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/AppList/AppItem.vue?42cc","webpack://nextcloud/./apps/appstore/src/components/AppList/AppItem.vue?f76c","webpack:///nextcloud/apps/appstore/src/components/AppList/AppLevelBadge.vue","webpack:///nextcloud/apps/appstore/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/components/AppList/AppLevelBadge.vue?8c0f","webpack://nextcloud/./apps/appstore/src/components/AppList/AppLevelBadge.vue?918a","webpack:///nextcloud/apps/appstore/src/components/AppList/AppScore.vue","webpack:///nextcloud/apps/appstore/src/components/AppList/AppScore.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/appstore/src/components/AppList/AppScore.vue?e621","webpack://nextcloud/./apps/appstore/src/components/AppList/AppScore.vue?6fda","webpack:///nextcloud/apps/appstore/src/views/AppStore.vue","webpack:///nextcloud/node_modules/yocto-queue/index.js","webpack:///nextcloud/node_modules/p-limit/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckCircle.vue?7685","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckCircle.vue?vue&type=template&id=60d94ca3","webpack:///nextcloud/apps/appstore/src/constants/OfficeSuites.ts","webpack:///nextcloud/apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue","webpack://nextcloud/./apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue?fef7","webpack://nextcloud/./apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue?1d28","webpack:///nextcloud/apps/appstore/src/components/AppList.vue","webpack:///nextcloud/apps/appstore/src/components/AppList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/AppList.vue?2780","webpack://nextcloud/./apps/appstore/src/components/AppList.vue?91ba","webpack://nextcloud/./apps/appstore/src/components/AppList.vue?eabf","webpack:///nextcloud/apps/appstore/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue","webpack:///nextcloud/apps/appstore/src/utils/appDiscoverParser.ts","webpack:///nextcloud/apps/appstore/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?b9e4","webpack://nextcloud/./apps/appstore/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?d5dd","webpack:///nextcloud/apps/appstore/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/views/AppStore.vue?4095","webpack://nextcloud/./apps/appstore/src/views/AppStore.vue?7462","webpack:///nextcloud/apps/appstore/src/views/AppStoreNavigation.vue","webpack:///nextcloud/apps/appstore/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/views/AppStoreNavigation.vue?b918","webpack://nextcloud/./apps/appstore/src/views/AppStoreNavigation.vue?9b4d","webpack:///nextcloud/apps/appstore/src/views/AppStoreSidebar.vue","webpack:///nextcloud/apps/appstore/src/components/AppList/AppDaemonBadge.vue","webpack:///nextcloud/apps/appstore/src/components/AppList/AppDaemonBadge.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/components/AppList/AppDaemonBadge.vue?ed32","webpack://nextcloud/./apps/appstore/src/components/AppList/AppDaemonBadge.vue?20bf","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue?3404","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue?b5ac","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDescriptionTab.vue","webpack:///nextcloud/apps/appstore/src/components/Markdown.vue","webpack:///nextcloud/apps/appstore/src/components/Markdown.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/Markdown.vue?6683","webpack://nextcloud/./apps/appstore/src/components/Markdown.vue?8ccb","webpack://nextcloud/./apps/appstore/src/components/Markdown.vue?a9e6","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDescriptionTab.vue?f8e1","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDescriptionTab.vue?1d9c","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue?8779","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue?6413","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue?81d5","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppReleasesTab.vue","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppReleasesTab.vue?0acf","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppReleasesTab.vue?7763","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue?24fb","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue?02c5","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue?cb97","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue?2ec1","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue?6984","webpack://nextcloud/./apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue?38cc","webpack:///nextcloud/apps/appstore/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/appstore/src/composables/useAppIcon.ts","webpack://nextcloud/./apps/appstore/src/views/AppStoreSidebar.vue?c2f0","webpack://nextcloud/./apps/appstore/src/views/AppStoreSidebar.vue?e235"],"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 { emit } from '@nextcloud/event-bus';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n * Rebuilds the app navigation menu\n */\nexport async function rebuildNavigation() {\n const { data } = await axios.get(generateOcsUrl('core/navigation/apps?format=json'));\n if (data.ocs.meta.statuscode !== 200) {\n return;\n }\n emit('nextcloud:app-menu.refresh', { apps: data.ocs.data });\n window.dispatchEvent(new Event('resize'));\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.ts'\n\nconst productName = window.OC.theme.productName\n\nexport default {\n\tcomputed: {\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map((group) => {\n\t\t\t\treturn { id: group, name: group }\n\t\t\t})\n\t\t},\n\t\tinstalling() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn this.app && this?.appApiStore.getLoading('install') === true\n\t\t\t}\n\t\t\treturn this.$store.getters.loading('install')\n\t\t},\n\t\tisLoading() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn this.app && this?.appApiStore.getLoading(this.app.id) === true\n\t\t\t}\n\t\t\treturn this.app && this.$store.getters.loading(this.app.id)\n\t\t},\n\t\tisInitializing() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn this.app && (this.app?.status?.action === 'init' || this.app?.status?.action === 'healthcheck')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tisDeploying() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn this.app && this.app?.status?.action === 'deploy'\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tisManualInstall() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn this.app?.daemon?.accepts_deploy_id === 'manual-install'\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tupdateButtonText() {\n\t\t\tif (this.app?.app_api && this.app?.daemon?.accepts_deploy_id === 'manual-install') {\n\t\t\t\treturn t('settings', 'Manually installed apps cannot be updated')\n\t\t\t}\n\t\t\treturn t('settings', 'Update to {version}', { version: this.app?.update })\n\t\t},\n\t\tenableButtonText() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tif (this.app && this.app?.status?.action && this.app?.status?.action === 'deploy') {\n\t\t\t\t\treturn t('settings', '{progress}% Deploying …', { progress: this.app?.status?.deploy ?? 0 })\n\t\t\t\t}\n\t\t\t\tif (this.app && this.app?.status?.action && this.app?.status?.action === 'init') {\n\t\t\t\t\treturn t('settings', '{progress}% Initializing …', { progress: this.app?.status?.init ?? 0 })\n\t\t\t\t}\n\t\t\t\tif (this.app && this.app?.status?.action && this.app?.status?.action === 'healthcheck') {\n\t\t\t\t\treturn t('settings', 'Health checking')\n\t\t\t\t}\n\t\t\t\tif (this.app.needsDownload) {\n\t\t\t\t\treturn t('settings', 'Deploy and Enable')\n\t\t\t\t}\n\t\t\t\treturn t('settings', 'Enable')\n\t\t\t} else {\n\t\t\t\tif (this.app.needsDownload) {\n\t\t\t\t\treturn t('settings', 'Download and enable')\n\t\t\t\t}\n\t\t\t\treturn t('settings', 'Enable')\n\t\t\t}\n\t\t},\n\t\tdisableButtonText() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tif (this.app && this.app?.status?.action && this.app?.status?.action === 'deploy') {\n\t\t\t\t\treturn t('settings', '{progress}% Deploying …', { progress: this.app?.status?.deploy })\n\t\t\t\t}\n\t\t\t\tif (this.app && this.app?.status?.action && this.app?.status?.action === 'init') {\n\t\t\t\t\treturn t('settings', '{progress}% Initializing …', { progress: this.app?.status?.init })\n\t\t\t\t}\n\t\t\t\tif (this.app && this.app?.status?.action && this.app?.status?.action === 'healthcheck') {\n\t\t\t\t\treturn t('settings', 'Health checking')\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn t('settings', 'Disable')\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?.app_api && 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 {productName} version.', { productName })\n\t\t\t\t+ ' '\n\t\t\t\t+ t('settings', '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\tdefaultDeployDaemonAccessible() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tif (this.app?.daemon && this.app?.daemon?.accepts_deploy_id === 'manual-install') {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (this.app?.daemon?.accepts_deploy_id === 'docker-install'\n\t\t\t\t\t&& this.appApiStore.getDefaultDaemon?.name === this.app?.daemon?.name) {\n\t\t\t\t\treturn this?.appApiStore.getDaemonAccessible === true\n\t\t\t\t}\n\t\t\t\treturn this?.appApiStore.getDaemonAccessible\n\t\t\t}\n\t\t\treturn true\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() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.app.groups.length || this.groupCheckedAppsData\n\t\t},\n\t\tsetGroupLimit() {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn // not supported for app_api apps\n\t\t\t}\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|| app.types.includes('prelogin')\n\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t|| app.types.includes('prevent_group_restriction')\n\t\t\t\t|| app?.app_api) {\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\tif (this.app?.app_api) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst group = groupArray.pop()\n\t\t\tconst groups = this.app.groups.concat([]).concat([group.id])\n\n\t\t\tif (this.store && this.store.updateAppGroups) {\n\t\t\t\tthis.store.updateAppGroups(this.app.id, groups)\n\t\t\t}\n\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn\n\t\t\t}\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\n\t\t\tif (this.store && this.store.updateAppGroups) {\n\t\t\t\tthis.store.updateAppGroups(this.app.id, currentGroups)\n\t\t\t}\n\n\t\t\tif (currentGroups.length === 0) {\n\t\t\t\tthis.groupCheckedAppsData = false\n\t\t\t}\n\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tthis.appApiStore.forceEnableApp(appId)\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t} else {\n\t\t\t\tthis.$store.dispatch('forceEnableApp', { appId, groups: [] })\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t}\n\t\t},\n\t\tenable(appId, daemon = null, deployOptions = {}) {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tthis.appApiStore.enableApp(appId, daemon, deployOptions)\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t} else {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId, groups: [] })\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t}\n\t\t},\n\t\tdisable(appId) {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tthis.appApiStore.disableApp(appId)\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t} else {\n\t\t\t\tthis.$store.dispatch('disableApp', { appId })\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t}\n\t\t},\n\t\tasync remove(appId, removeData = false) {\n\t\t\ttry {\n\t\t\t\tif (this.app?.app_api) {\n\t\t\t\t\tawait this.appApiStore.uninstallApp(appId, removeData)\n\t\t\t\t} else {\n\t\t\t\t\tawait this.$store.dispatch('uninstallApp', { appId, removeData })\n\t\t\t\t}\n\t\t\t\tawait rebuildNavigation()\n\t\t\t} catch (error) {\n\t\t\t\tshowError(error)\n\t\t\t}\n\t\t},\n\t\tinstall(appId) {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\tthis.appApiStore.enableApp(appId)\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t} else {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId })\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t}\n\t\t},\n\t\tupdate(appId) {\n\t\t\tif (this.app?.app_api) {\n\t\t\t\treturn this.appApiStore.updateApp(appId)\n\t\t\t\t\t.then(() => { rebuildNavigation() })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t} else {\n\t\t\t\treturn this.$store.dispatch('updateApp', { appId })\n\t\t\t\t\t.catch((error) => { showError(error) })\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\trebuildNavigation()\n\t\t\t\t\t\tthis.store.updateCount = Math.max(this.store.updateCount - 1, 0)\n\t\t\t\t\t})\n\t\t\t}\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 { mdiAccountMultipleOutline, mdiAccountOutline, mdiArchiveOutline, mdiCheck, mdiClipboardFlowOutline, mdiClose, mdiCogOutline, mdiControllerClassicOutline, mdiCreationOutline, mdiDownload, mdiFileDocumentEdit, mdiFolder, mdiKeyOutline, mdiMagnify, mdiMonitorEye, mdiMultimedia, mdiOfficeBuildingOutline, mdiOpenInApp, mdiSecurity, mdiStar, mdiStarCircleOutline, mdiStarShootingOutline, mdiTools, mdiViewColumnOutline, } 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: mdiAccountOutline,\n enabled: mdiCheck,\n disabled: mdiClose,\n bundles: mdiArchiveOutline,\n supported: mdiStarShootingOutline,\n featured: mdiStar,\n updates: mdiDownload,\n // generic category\n ai: mdiCreationOutline,\n auth: mdiKeyOutline,\n customization: mdiCogOutline,\n dashboard: mdiViewColumnOutline,\n files: mdiFolder,\n games: mdiControllerClassicOutline,\n integration: mdiOpenInApp,\n monitoring: mdiMonitorEye,\n multimedia: mdiMultimedia,\n office: mdiFileDocumentEdit,\n organization: mdiOfficeBuildingOutline,\n search: mdiMagnify,\n security: mdiSecurity,\n social: mdiAccountMultipleOutline,\n tools: mdiTools,\n workflow: mdiClipboardFlowOutline,\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showInfo } from '@nextcloud/dialogs';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { confirmPassword } from '@nextcloud/password-confirmation';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport logger from '../utils/logger.ts';\nimport api from './api.js';\nexport const useAppApiStore = defineStore('app-api-apps', {\n state: () => ({\n apps: [],\n updateCount: loadState('appstore', 'appstoreExAppUpdateCount', 0),\n loading: {},\n loadingList: false,\n statusUpdater: null,\n daemonAccessible: loadState('appstore', 'defaultDaemonConfigAccessible', false),\n defaultDaemon: loadState('appstore', 'defaultDaemonConfig', null),\n dockerDaemons: [],\n }),\n getters: {\n getLoading: (state) => (id) => state.loading[id] ?? false,\n getAllApps: (state) => state.apps,\n getUpdateCount: (state) => state.updateCount,\n getDaemonAccessible: (state) => state.daemonAccessible,\n getDefaultDaemon: (state) => state.defaultDaemon,\n getAppStatus: (state) => (appId) => state.apps.find((app) => app.id === appId)?.status || null,\n getStatusUpdater: (state) => state.statusUpdater,\n getInitializingOrDeployingApps: (state) => state.apps.filter((app) => app?.status?.action\n && (app?.status?.action === 'deploy' || app.status.action === 'init' || app.status.action === 'healthcheck')\n && app.status.type !== ''),\n },\n actions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n appsApiFailure(error) {\n showError(t('appstore', 'An error occurred during the request. Unable to proceed.') + '
' + error.error.response.data.data.message, { isHTML: true });\n logger.error(error);\n },\n setLoading(id, value) {\n Vue.set(this.loading, id, value);\n },\n setError(appId, error) {\n const appIds = Array.isArray(appId) ? appId : [appId];\n appIds.forEach((_id) => {\n const app = this.apps.find((app) => app.id === _id);\n if (app) {\n app.error = error;\n }\n });\n },\n enableApp(appId, daemon, deployOptions) {\n this.setLoading(appId, true);\n this.setLoading('install', true);\n return confirmPassword().then(() => {\n return axios.post(generateUrl(`/apps/app_api/apps/enable/${appId}/${daemon.name}`), { deployOptions })\n .then((response) => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n const app = this.apps.find((app) => app.id === appId);\n if (app) {\n if (!app.installed) {\n app.installed = true;\n app.needsDownload = false;\n app.daemon = daemon;\n app.status = {\n type: 'install',\n action: 'deploy',\n init: 0,\n deploy: 0,\n };\n }\n app.active = true;\n app.canUnInstall = false;\n app.removable = true;\n app.error = '';\n }\n this.updateAppsStatus();\n return axios.get(generateUrl('apps/files'))\n .then(() => {\n if (response.data.update_required) {\n showInfo(t('appstore', 'The app has been enabled but needs to be updated.'), {\n onClick: () => window.location.reload(),\n close: false,\n });\n setTimeout(() => {\n location.reload();\n }, 5000);\n }\n })\n .catch(() => {\n this.setError(appId, t('appstore', 'Error: This app cannot be enabled because it makes the server unstable'));\n });\n })\n .catch((error) => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n this.setError(appId, error.response.data.data.message);\n this.appsApiFailure({ appId, error });\n });\n }).catch(() => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n });\n },\n forceEnableApp(appId) {\n this.setLoading(appId, true);\n this.setLoading('install', true);\n return confirmPassword().then(() => {\n return api.post(generateUrl('/apps/app_api/apps/force'), { appId })\n .then(() => {\n location.reload();\n })\n .catch((error) => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n this.setError(appId, error.response.data.data.message);\n this.appsApiFailure({ appId, error });\n });\n }).catch(() => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n });\n },\n disableApp(appId) {\n this.setLoading(appId, true);\n return confirmPassword().then(() => {\n return api.get(generateUrl(`apps/app_api/apps/disable/${appId}`))\n .then(() => {\n this.setLoading(appId, false);\n const app = this.apps.find((app) => app.id === appId);\n if (app) {\n app.active = false;\n if (app.removable) {\n app.canUnInstall = true;\n }\n }\n return true;\n })\n .catch((error) => {\n this.setLoading(appId, false);\n this.appsApiFailure({ appId, error });\n });\n }).catch(() => {\n this.setLoading(appId, false);\n });\n },\n uninstallApp(appId, removeData) {\n this.setLoading(appId, true);\n return confirmPassword().then(() => {\n return api.get(generateUrl(`/apps/app_api/apps/uninstall/${appId}?removeData=${removeData}`))\n .then(() => {\n this.setLoading(appId, false);\n const app = this.apps.find((app) => app.id === appId);\n if (app) {\n app.active = false;\n app.needsDownload = true;\n app.installed = false;\n app.canUnInstall = false;\n app.canInstall = true;\n app.daemon = null;\n app.status = {};\n if (app.update !== null) {\n this.updateCount--;\n }\n app.update = undefined;\n }\n return true;\n })\n .catch((error) => {\n this.setLoading(appId, false);\n this.appsApiFailure({ appId, error });\n });\n });\n },\n updateApp(appId) {\n this.setLoading(appId, true);\n this.setLoading('install', true);\n return confirmPassword().then(() => {\n return api.get(generateUrl(`/apps/app_api/apps/update/${appId}`))\n .then(() => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n const app = this.apps.find((app) => app.id === appId);\n if (app) {\n const version = app.update;\n app.update = undefined;\n app.version = version || app.version;\n app.status = {\n type: 'update',\n action: 'deploy',\n init: 0,\n deploy: 0,\n };\n app.error = '';\n }\n this.updateCount--;\n this.updateAppsStatus();\n return true;\n })\n .catch((error) => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n this.appsApiFailure({ appId, error });\n });\n }).catch(() => {\n this.setLoading(appId, false);\n this.setLoading('install', false);\n });\n },\n async fetchAllApps() {\n this.loadingList = true;\n try {\n const response = await api.get(generateUrl('/apps/app_api/apps/list'));\n this.apps = response.data.apps;\n this.loadingList = false;\n return true;\n }\n catch (error) {\n logger.error(error);\n showError(t('appstore', 'An error occurred during the request. Unable to proceed.'));\n this.loadingList = false;\n }\n },\n async fetchAppStatus(appId) {\n return api.get(generateUrl(`/apps/app_api/apps/status/${appId}`))\n .then((response) => {\n const app = this.apps.find((app) => app.id === appId);\n if (app) {\n app.status = response.data;\n }\n const initializingOrDeployingApps = this.getInitializingOrDeployingApps;\n logger.debug('initializingOrDeployingApps after setAppStatus', { initializingOrDeployingApps });\n if (initializingOrDeployingApps.length === 0) {\n logger.debug('clearing interval');\n clearInterval(this.statusUpdater);\n this.statusUpdater = null;\n }\n if (Object.hasOwn(response.data, 'error')\n && response.data.error !== ''\n && initializingOrDeployingApps.length === 1) {\n clearInterval(this.statusUpdater);\n this.statusUpdater = null;\n }\n })\n .catch((error) => {\n this.appsApiFailure({ appId, error });\n this.apps = this.apps.filter((app) => app.id !== appId);\n this.updateAppsStatus();\n });\n },\n async fetchDockerDaemons() {\n try {\n const { data } = await axios.get(generateUrl('/apps/app_api/daemons'));\n this.defaultDaemon = data.daemons.find((daemon) => daemon.name === data.default_daemon_config);\n this.dockerDaemons = data.daemons.filter((daemon) => daemon.accepts_deploy_id === 'docker-install');\n }\n catch (error) {\n logger.error('[app-api-store] Failed to fetch Docker daemons', { error });\n return false;\n }\n return true;\n },\n updateAppsStatus() {\n clearInterval(this.statusUpdater);\n const initializingOrDeployingApps = this.getInitializingOrDeployingApps;\n if (initializingOrDeployingApps.length === 0) {\n return;\n }\n this.statusUpdater = setInterval(() => {\n const initializingOrDeployingApps = this.getInitializingOrDeployingApps;\n logger.debug('initializingOrDeployingApps', { initializingOrDeployingApps });\n initializingOrDeployingApps.forEach((app) => {\n this.fetchAppStatus(app.id);\n });\n }, 2000);\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError } from '@nextcloud/dialogs';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport APPSTORE_CATEGORY_ICONS from '../constants/AppstoreCategoryIcons.ts';\nimport logger from '../utils/logger.ts';\nconst showApiError = () => showError(t('appstore', 'An error occurred during the request. Unable to proceed.'));\nexport const useAppsStore = defineStore('appstore-apps', {\n state: () => ({\n apps: [],\n categories: [],\n updateCount: loadState('appstore', '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 url = generateOcsUrl('apps/appstore/api/v1/apps/categories');\n const { data } = await axios.get(url);\n const categories = data.ocs.data;\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 url = generateOcsUrl('apps/appstore/api/v1/apps');\n const { data } = await axios.get(url);\n this.$patch({\n apps: data.ocs.data,\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 updateAppGroups(appId, groups) {\n const app = this.apps.find(({ id }) => id === appId);\n if (app) {\n app.groups = [...groups];\n }\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, `.daemon-selection-list[data-v-168bc683]{max-height:350px;overflow-y:scroll;padding:2rem}.daemon-selection-list__empty-content[data-v-168bc683]{margin-top:0;text-align:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppAPI/DaemonSelectionList.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,gBAAA,CACA,iBAAA,CACA,YAAA,CAEA,uDACC,YAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.daemon-selection-list {\\n\\tmax-height: 350px;\\n\\toverflow-y: scroll;\\n\\tpadding: 2rem;\\n\\n\\t&__empty-content {\\n\\t\\tmargin-top: 0;\\n\\t\\ttext-align: center;\\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, `.apps-list[data-v-ceb5cf46]{display:flex;flex-wrap:wrap;align-content:flex-start}.apps-list--move[data-v-ceb5cf46]{transition:transform 1s}.apps-list #app-list-update-all[data-v-ceb5cf46]{margin-inline-start:10px}.apps-list__toolbar[data-v-ceb5cf46]{height:60px;padding:8px;padding-inline-start: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-ceb5cf46]{margin-bottom:100px;position:relative}.apps-list__list-container[data-v-ceb5cf46]{width:100%}.apps-list__store-container[data-v-ceb5cf46]{display:flex;flex-wrap:wrap}.apps-list__bundle-heading[data-v-ceb5cf46]{display:flex;align-items:center;margin-block:20px;margin-inline:0 10px}.apps-list__bundle-header[data-v-ceb5cf46]{color:var(--color-main-text);margin-block:0;margin-inline:50px 10px;font-weight:bold;font-size:20px;line-height:30px}#apps-list-search .app-item h2[data-v-ceb5cf46]{margin-bottom:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppList.vue\"],\"names\":[],\"mappings\":\"AAIA,4BACC,YAAA,CACA,cAAA,CACA,wBAAA,CAGA,kCACC,uBAAA,CAGD,iDACC,wBAAA,CAGD,qCACC,WAjBe,CAkBf,WAnBgB,CAqBhB,yBApBe,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,iBAAA,CACA,oBAAA,CAGD,2CACC,4BAAA,CACA,cAAA,CACA,uBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,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-inline-start: 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-inline-start: $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-block: 20px;\\n\\t\\tmargin-inline: 0 10px;\\n\\t}\\n\\n\\t&__bundle-header {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tmargin-block: 0;\\n\\t\\tmargin-inline: 50px 10px;\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 20px;\\n\\t\\tline-height: 30px;\\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-daemon-badge[data-v-5294293a]{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}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppList/AppDaemonBadge.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,mCAAA,CACA,8BAAA,CACA,8CAAA,CACA,kCAAA,CAEA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.app-daemon-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\"],\"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 * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */.app-item[data-v-55e495e8]{position:relative}.app-item[data-v-55e495e8]:hover{background-color:var(--color-background-dark)}.app-item--list-view[data-v-55e495e8]{--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-55e495e8]{background-color:var(--color-background-dark)}.app-item--list-view>*[data-v-55e495e8]{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-55e495e8]{width:var(--default-clickable-area);height:auto;text-align:end}.app-item--list-view .app-image-icon svg[data-v-55e495e8],.app-item--list-view .app-image-icon .icon-settings-dark[data-v-55e495e8]{margin-top:5px;width:20px;height:20px;opacity:.5;background-size:cover;display:inline-block}.app-item--list-view .app-name[data-v-55e495e8]{padding:0 var(--app-item-padding)}.app-item--list-view .app-name--link[data-v-55e495e8]{height:var(--app-item-height);display:flex;align-items:center}.app-item--list-view .app-name--link[data-v-55e495e8]::after{content:\"\";position:absolute;inset-inline:0;height:var(--app-item-height)}.app-item--list-view .app-actions[data-v-55e495e8]{display:flex;gap:var(--app-item-padding);flex-wrap:wrap;justify-content:end}.app-item--list-view .app-actions .icon-loading-small[data-v-55e495e8]{display:inline-block;top:4px;margin-inline-end:10px}@media only screen and (max-width: 900px){.app-item--list-view .app-version[data-v-55e495e8],.app-item--list-view .app-level[data-v-55e495e8]{display:none}}@media only screen and (max-width: 512px){.app-item--list-view .app-actions[data-v-55e495e8]{display:none}}.app-item--store-view[data-v-55e495e8]{padding:30px}.app-item--store-view .app-image-icon .icon-settings-dark[data-v-55e495e8]{width:100%;height:150px;background-size:45px;opacity:.5}.app-item--store-view .app-image-icon svg[data-v-55e495e8]{position:absolute;bottom:43px;width:64px;height:64px;opacity:.1}.app-item--store-view .app-name[data-v-55e495e8]{margin:5px 0}.app-item--store-view .app-name--link[data-v-55e495e8]::after{content:\"\";position:absolute;inset-block:0;inset-inline:0}.app-item--store-view .app-actions[data-v-55e495e8]{margin:10px 0}@media only screen and (min-width: 1601px){.app-item--store-view[data-v-55e495e8]{width:25%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:33%}}@media only screen and (max-width: 1600px){.app-item--store-view[data-v-55e495e8]{width:25%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:33%}}@media only screen and (max-width: 1400px){.app-item--store-view[data-v-55e495e8]{width:33%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:50%}}@media only screen and (max-width: 900px){.app-item--store-view[data-v-55e495e8]{width:50%}.app-item--store-view.app-item--with-sidebar[data-v-55e495e8]{width:100%}}@media only screen and (max-width: 1024px){.app-item--store-view[data-v-55e495e8]{width:50%}}@media only screen and (max-width: 480px){.app-item--store-view[data-v-55e495e8]{width:100%}}.app-icon[data-v-55e495e8]{filter:var(--background-invert-if-bright)}.app-image[data-v-55e495e8]{position:relative;height:150px;opacity:1;overflow:hidden}.app-image img[data-v-55e495e8]{width:100%}.app-version[data-v-55e495e8]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/css/variables.scss\",\"webpack://./apps/appstore/src/components/AppList/AppItem.vue\"],\"names\":[],\"mappings\":\"AAEA;;;EAAA,CCEA,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,cAAA,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,cAAA,CACA,6BAAA,CAGD,mDACC,YAAA,CACA,2BAAA,CACA,cAAA,CACA,mBAAA,CAEA,uEACC,oBAAA,CACA,OAAA,CACA,sBAAA,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,aAAA,CACA,cAAA,CAGD,oDACC,aAAA,CAGD,2CAlCD,uCAmCE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,2CA1CD,uCA2CE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,2CAlDD,uCAmDE,SAAA,CAEA,8DACC,SAAA,CAAA,CAIF,0CA1DD,uCA2DE,SAAA,CAEA,8DACC,UAAA,CAAA,CAIF,2CAlED,uCAmEE,SAAA,CAAA,CAGD,0CAtED,uCAuEE,UAAA,CAAA,CAKH,2BACC,yCAAA,CAGD,4BACC,iBAAA,CACA,YAAA,CACA,SAAA,CACA,eAAA,CAEA,gCACC,UAAA,CAIF,8BACC,mCAAA\",\"sourcesContent\":[\"@use 'sass:color';\\n\\n/*!\\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n// SCSS darken/lighten function override\\n@function nc-darken($color, $value) {\\n\\t@return color.adjust($color, $lightness: - $value, $space: hsl);\\n}\\n\\n@function nc-lighten($color, $value) {\\n\\t@return color.adjust($color, $lightness: $value, $space: hsl);\\n}\\n\\n// SCSS variables\\n// DEPRECATED, please use CSS4 vars\\n$color-main-text: #222 !default; // Not #000 for better readability\\n$color-main-background: #fff !default;\\n$color-main-background-translucent: rgba($color-main-background, .97) !default;\\n\\n// used for different active/hover/focus/disabled states\\n$color-background-hover: nc-darken($color-main-background, 4%) !default;\\n$color-background-dark: nc-darken($color-main-background, 7%) !default;\\n$color-background-darker: nc-darken($color-main-background, 14%) !default;\\n\\n$color-placeholder-light: nc-darken($color-main-background, 10%) !default;\\n$color-placeholder-dark: nc-darken($color-main-background, 20%) !default;\\n\\n$color-primary: #0082c9 !default;\\n$color-primary-hover: color.mix($color-primary, $color-main-background, 80%) !default;\\n\\n$color-primary-light: color.mix($color-primary, $color-main-background, 10%) !default;\\n$color-primary-light-text: $color-primary !default;\\n$color-primary-light-hover: color.mix($color-primary-light, $color-main-text, 95%) !default;\\n\\n$color-primary-text: #ffffff !default;\\n// do not use nc-darken/lighten in case of overriding because\\n// primary-text is independent of color-main-text\\n$color-primary-element-text-dark: color.adjust($color-primary-text, $lightness: -7%, $space: hsl) !default;\\n$color-primary-element: $color-primary !default;\\n$color-primary-element-hover: color.mix($color-primary-element, $color-main-background, 80%) !default;\\n$color-primary-element-light: color.adjust($color-primary-element, $lightness: 15%, $space: hsl) !default;\\n\\n$color-error: #e9322d;\\n$color-error-hover: color.mix($color-error, $color-main-background, 80%) !default;\\n$color-warning: #eca700;\\n$color-warning-hover: color.mix($color-warning, $color-main-background, 80%) !default;\\n$color-success: #46ba61;\\n$color-success-hover: color.mix($color-success, $color-main-background, 80%) !default;\\n// used for svg\\n$color-white: #fff;\\n$color-black: #000;\\n$color-yellow: #FC0;\\n\\n// rgb(118, 118, 118) / #767676\\n// min. color contrast for normal text on white background according to WCAG AA\\n// (Works as well: color: #000; opacity: 0.57;)\\n$color-text-maxcontrast: nc-lighten($color-main-text, 33%) !default;\\n\\n$image-logo: url('../img/logo/logo.svg?v=1') !default;\\n$image-login-background: url('../img/background.png?v=2') !default;\\n$image-logoheader: url('../img/logo/logo.svg?v=1') !default;\\n$image-favicon: url('../img/logo/logo.svg?v=1') !default;\\n\\n$color-loading-light: #ccc !default;\\n$color-loading-dark: #444 !default;\\n\\n$color-box-shadow: color.adjust(nc-darken($color-main-background, 70%), $alpha: -0.5, $space: hsl) !default;\\n\\n// light border like file table or app-content list\\n$color-border: nc-darken($color-main-background, 7%) !default;\\n// darker border like inputs or very visible elements\\n$color-border-dark: nc-darken($color-main-background, 14%) !default;\\n\\n$border-radius: 3px !default;\\n$border-radius-large: 10px !default;\\n// Pill-style button, value is large so big buttons also have correct roundness\\n$border-radius-pill: 100px !default;\\n\\n$font-face: system-ui, -apple-system, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Cantarell, Ubuntu, \\\"Helvetica Neue\\\", \\\"Noto Sans\\\", \\\"Liberation Sans\\\", Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\" !default;\\n$default-font-size: 15px;\\n\\n$default-line-height: 24px;\\n\\n$animation-quick: 100ms;\\n$animation-slow: 300ms;\\n\\n// various structure data\\n$header-height: 50px;\\n$navigation-width: 300px;\\n$sidebar-min-width: 300px;\\n$sidebar-max-width: 500px;\\n$list-min-width: 200px;\\n$list-max-width: 300px;\\n$header-menu-item-height: 44px;\\n$header-menu-profile-item-height: 66px;\\n\\n// mobile. Keep in sync with core/js/js.js\\n$breakpoint-mobile: 1024px;\\n\",\"\\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: end;\\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\\tinset-inline: 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-inline-end: 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\\tinset-block: 0;\\n\\t\\t\\tinset-inline: 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-96439520]{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-96439520]{background-color:var(--color-success);border-color:var(--color-border-success);color:var(--color-success-text)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/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,qCAAA,CACA,wCAAA,CACA,+BAAA\",\"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\\tbackground-color: var(--color-success);\\n\\t\\tborder-color: var(--color-border-success);\\n\\t\\tcolor: var(--color-success-text);\\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, `.office-suite-switcher[data-v-2e094751]{padding:20px;margin-bottom:30px}.office-suite-switcher__aio-message[data-v-2e094751]{background-color:var(--color-background-dark);border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:20px;text-align:center}.office-suite-switcher p[data-v-2e094751]{margin:8px 0}.office-suite-switcher p[data-v-2e094751]:first-child{font-weight:600}.office-suite-cards[data-v-2e094751]{display:flex;gap:20px;max-width:1200px}.office-suite-card[data-v-2e094751]{flex:1;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large);padding:24px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column}.office-suite-card *[data-v-2e094751]{cursor:pointer}.office-suite-card[data-v-2e094751]:hover{border-color:var(--color-primary-element);box-shadow:0 4px 12px rgba(0,0,0,.1)}.office-suite-card--selected[data-v-2e094751]{background:linear-gradient(135deg, var(--color-primary-element-light) 0%, var(--color-main-background) 100%);color:var(--color-main-text);border-color:var(--color-primary-element)}.office-suite-card__header[data-v-2e094751]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.office-suite-card__title[data-v-2e094751]{font-size:24px;font-weight:600;margin:0}.office-suite-card--primary .office-suite-card__check[data-v-2e094751]{color:var(--color-primary-element)}.office-suite-card__features[data-v-2e094751]{list-style:none;padding:0;margin:0 0 20px 0;flex-grow:1}.office-suite-card__features li[data-v-2e094751]{padding:4px 0;padding-inline-start:20px;position:relative;line-height:1.5}.office-suite-card__features li[data-v-2e094751]::before{content:\"•\";position:absolute;inset-inline-start:0;font-weight:bold}.office-suite-card__link[data-v-2e094751]{display:inline-flex;align-items:center;gap:6px;color:var(--color-main-text);text-decoration:none;font-weight:500;margin-top:auto}.office-suite-card__link[data-v-2e094751]:hover{text-decoration:underline}.office-suite-card--selected .office-suite-card__link[data-v-2e094751]{color:var(--color-main-text)}.office-suite-actions[data-v-2e094751]{margin-top:16px}.office-suite-disable-button[data-v-2e094751]{background:rgba(0,0,0,0);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:8px 12px;font-weight:600;color:var(--color-main-text);cursor:pointer;transition:background .15s ease,border-color .15s ease}.office-suite-disable-button[data-v-2e094751]:disabled{opacity:.5;cursor:default}.office-suite-disable-button[data-v-2e094751]:hover:not(:disabled){border-color:var(--color-primary-element);background:var(--color-background-dark)}@media(max-width: 768px){.office-suite-cards[data-v-2e094751]{flex-direction:column}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./OfficeSuiteSwitcher.vue\",\"webpack://./apps/appstore/src/components/AppList/OfficeSuiteSwitcher.vue\"],\"names\":[],\"mappings\":\"AAAA,wCCCA,YACC,CAAA,kBACA,CAAA,qDAEA,6CACC,CAAA,oCACA,CAAA,wCACA,CAAA,YACA,CAAA,iBACA,CAAA,0CAGD,YACC,CAAA,sDAEA,eACC,CAAA,qCAKH,YACC,CAAA,QACA,CAAA,gBACA,CAAA,oCAGD,MACC,CAAA,6CACA,CAAA,oCACA,CAAA,wCACA,CAAA,YACA,CAAA,cACA,CAAA,uBACA,CAAA,YACA,CAAA,qBACA,CAAA,sCAEA,cACC,CAAA,0CAGD,yCACC,CAAA,oCACA,CAAA,8CAGD,4GACC,CAAA,4BACA,CAAA,yCACA,CAAA,4CAGD,YACC,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,2CAGD,cACC,CAAA,eACA,CAAA,QACA,CAAA,uEAGD,kCACC,CAAA,8CAGD,eACC,CAAA,SACA,CAAA,iBACA,CAAA,WACA,CAAA,iDAEA,aACC,CAAA,yBACA,CAAA,iBACA,CAAA,eACA,CAAA,yDAEA,WACC,CAAA,iBACA,CAAA,oBACA,CAAA,gBACA,CAAA,0CAKH,mBACC,CAAA,kBACA,CAAA,OACA,CAAA,4BACA,CAAA,oBACA,CAAA,eACA,CAAA,eACA,CAAA,gDAEA,yBACC,CAAA,uEAIF,4BACC,CAAA,uCAIF,eACC,CAAA,8CAGD,wBACC,CAAA,oCACA,CAAA,wCACA,CAAA,gBACA,CAAA,eACA,CAAA,4BACA,CAAA,cACA,CAAA,sDACA,CAAA,uDAGD,UACC,CAAA,cACA,CAAA,mEAGD,yCACC,CAAA,uCACA,CAAA,yBAGD,qCACC,qBACC,CAAA\",\"sourcesContent\":[\".office-suite-switcher{padding:20px;margin-bottom:30px}.office-suite-switcher__aio-message{background-color:var(--color-background-dark);border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:20px;text-align:center}.office-suite-switcher p{margin:8px 0}.office-suite-switcher p:first-child{font-weight:600}.office-suite-cards{display:flex;gap:20px;max-width:1200px}.office-suite-card{flex:1;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large);padding:24px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column}.office-suite-card *{cursor:pointer}.office-suite-card:hover{border-color:var(--color-primary-element);box-shadow:0 4px 12px rgba(0,0,0,.1)}.office-suite-card--selected{background:linear-gradient(135deg, var(--color-primary-element-light) 0%, var(--color-main-background) 100%);color:var(--color-main-text);border-color:var(--color-primary-element)}.office-suite-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.office-suite-card__title{font-size:24px;font-weight:600;margin:0}.office-suite-card--primary .office-suite-card__check{color:var(--color-primary-element)}.office-suite-card__features{list-style:none;padding:0;margin:0 0 20px 0;flex-grow:1}.office-suite-card__features li{padding:4px 0;padding-inline-start:20px;position:relative;line-height:1.5}.office-suite-card__features li::before{content:\\\"•\\\";position:absolute;inset-inline-start:0;font-weight:bold}.office-suite-card__link{display:inline-flex;align-items:center;gap:6px;color:var(--color-main-text);text-decoration:none;font-weight:500;margin-top:auto}.office-suite-card__link:hover{text-decoration:underline}.office-suite-card--selected .office-suite-card__link{color:var(--color-main-text)}.office-suite-actions{margin-top:16px}.office-suite-disable-button{background:rgba(0,0,0,0);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:8px 12px;font-weight:600;color:var(--color-main-text);cursor:pointer;transition:background .15s ease,border-color .15s ease}.office-suite-disable-button:disabled{opacity:.5;cursor:default}.office-suite-disable-button:hover:not(:disabled){border-color:var(--color-primary-element);background:var(--color-background-dark)}@media(max-width: 768px){.office-suite-cards{flex-direction:column}}\",\"\\n.office-suite-switcher {\\n\\tpadding: 20px;\\n\\tmargin-bottom: 30px;\\n\\n\\t&__aio-message {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: 20px;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\tp {\\n\\t\\tmargin: 8px 0;\\n\\n\\t\\t&:first-child {\\n\\t\\t\\tfont-weight: 600;\\n\\t\\t}\\n\\t}\\n}\\n\\n.office-suite-cards {\\n\\tdisplay: flex;\\n\\tgap: 20px;\\n\\tmax-width: 1200px;\\n}\\n\\n.office-suite-card {\\n\\tflex: 1;\\n\\tbackground-color: var(--color-main-background);\\n\\tborder: 2px solid var(--color-border);\\n\\tborder-radius: var(--border-radius-large);\\n\\tpadding: 24px;\\n\\tcursor: pointer;\\n\\ttransition: all 0.2s ease;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t& * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\t&:hover {\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t\\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n\\t}\\n\\n\\t&--selected {\\n\\t\\tbackground: linear-gradient(135deg, var(--color-primary-element-light) 0%, var(--color-main-background) 100%);\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\talign-items: center;\\n\\t\\tmargin-bottom: 16px;\\n\\t}\\n\\n\\t&__title {\\n\\t\\tfont-size: 24px;\\n\\t\\tfont-weight: 600;\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t.office-suite-card--primary &__check {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n\\n\\t&__features {\\n\\t\\tlist-style: none;\\n\\t\\tpadding: 0;\\n\\t\\tmargin: 0 0 20px 0;\\n\\t\\tflex-grow: 1;\\n\\n\\t\\tli {\\n\\t\\t\\tpadding: 4px 0;\\n\\t\\t\\tpadding-inline-start: 20px;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tline-height: 1.5;\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: '•';\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__link {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tgap: 6px;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\ttext-decoration: none;\\n\\t\\tfont-weight: 500;\\n\\t\\tmargin-top: auto;\\n\\n\\t\\t&:hover {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t}\\n\\n\\t.office-suite-card--selected &__link {\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n}\\n\\n.office-suite-actions {\\n\\tmargin-top: 16px;\\n}\\n\\n.office-suite-disable-button {\\n\\tbackground: transparent;\\n\\tborder: 1px solid var(--color-border);\\n\\tborder-radius: var(--border-radius-small);\\n\\tpadding: 8px 12px;\\n\\tfont-weight: 600;\\n\\tcolor: var(--color-main-text);\\n\\tcursor: pointer;\\n\\ttransition: background 0.15s ease, border-color 0.15s ease;\\n}\\n\\n.office-suite-disable-button:disabled {\\n\\topacity: 0.5;\\n\\tcursor: default;\\n}\\n\\n.office-suite-disable-button:hover:not(:disabled) {\\n\\tborder-color: var(--color-primary-element);\\n\\tbackground: var(--color-background-dark);\\n}\\n\\n@media (max-width: 768px) {\\n\\t.office-suite-cards {\\n\\t\\tflex-direction: column;\\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-277e0eae]{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/appstore/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, `.daemon[data-v-3d6f45e8]{padding:20px}.daemon h4[data-v-3d6f45e8]{font-weight:bold;margin:10px auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppStoreSidebar/AppDeployDaemonTab.vue\"],\"names\":[],\"mappings\":\"AACA,yBACE,YAAA,CAEA,4BACE,gBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.daemon {\\n padding: 20px;\\n\\n h4 {\\n font-weight: bold;\\n margin: 10px auto;\\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-description[data-v-373d80a8]{padding:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/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-499d846c]{padding:20px}.app-details__authors[data-v-499d846c]{color:var(--color-text-maxcontrast)}.app-details__section[data-v-499d846c]{margin-top:15px}.app-details__section h4[data-v-499d846c]{font-size:16px;font-weight:bold;margin-block-end:5px}.app-details__interact[data-v-499d846c]{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.app-details__documentation a[data-v-499d846c]{text-decoration:underline}.app-details__documentation li[data-v-499d846c]{padding-inline-start:20px}.app-details__documentation li[data-v-499d846c]::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-499d846c]{color:var(--color-text-error);border-color:var(--color-border-error);background:var(--color-main-background)}.force[data-v-499d846c]:hover,.force[data-v-499d846c]:active{color:var(--color-main-background);border-color:var(--color-border-error) !important;background:var(--color-error)}.missing-dependencies[data-v-499d846c]{list-style:initial;list-style-type:initial;list-style-position:inside}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppStoreSidebar/AppDetailsTab.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CAEA,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,6BAAA,CACA,sCAAA,CACA,uCAAA,CAGD,6DAEC,kCAAA,CACA,iDAAA,CACA,6BAAA,CAGD,uCACC,kBAAA,CACA,uBAAA,CACA,0BAAA\",\"sourcesContent\":[\"\\n.app-details {\\n\\tpadding: 20px;\\n\\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-text-error);\\n\\tborder-color: var(--color-border-error);\\n\\tbackground: var(--color-main-background);\\n}\\n\\n.force:hover,\\n.force:active {\\n\\tcolor: var(--color-main-background);\\n\\tborder-color: var(--color-border-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-2ac4587b]{border-bottom:1px solid var(--color-border);font-size:24px}.app-sidebar-tabs__release-text[data-v-2ac4587b] h3{font-size:20px}.app-sidebar-tabs__release-text[data-v-2ac4587b] h4{font-size:17px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/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, `.app-sidebar-manage__actions-manage[data-v-08e3b856]{display:flex;align-items:center}.app-sidebar-manage__actions-manage input[data-v-08e3b856]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.force[data-v-08e3b856]{color:var(--color-text-error);border-color:var(--color-border-error);background:var(--color-main-background)}.force[data-v-08e3b856]:hover,.force[data-v-08e3b856]:active{color:var(--color-main-background);border-color:var(--color-border-error) !important;background:var(--color-error)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppStoreSidebar/AppStoreSidebarActions.vue\"],\"names\":[],\"mappings\":\"AAGE,qDACC,YAAA,CACA,kBAAA,CACA,2DACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAMJ,wBACC,6BAAA,CACA,sCAAA,CACA,uCAAA,CAGD,6DAEC,kCAAA,CACA,iDAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.app-sidebar-manage {\\n\\t&__actions {\\n\\t\\t&-manage {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\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}\\n\\n.force {\\n\\tcolor: var(--color-text-error);\\n\\tborder-color: var(--color-border-error);\\n\\tbackground: var(--color-main-background);\\n}\\n\\n.force:hover,\\n.force:active {\\n\\tcolor: var(--color-main-background);\\n\\tborder-color: var(--color-border-error) !important;\\n\\tbackground: var(--color-error);\\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-72fa808e] a{text-decoration:underline}.settings-markdown[data-v-72fa808e] a::after{content:\"↗\";padding-inline:calc(var(--default-grid-baseline)/2)}.settings-markdown[data-v-72fa808e] 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-72fa808e] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-72fa808e] li{position:relative}.settings-markdown[data-v-72fa808e] ul,.settings-markdown[data-v-72fa808e] ol{padding-inline-start:10px;margin-inline-start:10px}.settings-markdown[data-v-72fa808e] ul li{list-style-type:disc}.settings-markdown[data-v-72fa808e] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-72fa808e] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-72fa808e] blockquote{padding-inline-start:1em;border-inline-start:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-inline:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./Markdown.vue\",\"webpack://./apps/appstore/src/components/Markdown.vue\"],\"names\":[],\"mappings\":\"AAAA,sCCEC,yBACC,CAAA,6CACA,WACC,CAAA,mDACA,CAAA,wCAIF,eACC,CAAA,eACA,CAAA,6CACA,CAAA,kCACA,CAAA,iBACA,CAAA,iBACA,CAAA,2CAGD,6CACC,CAAA,kCACA,CAAA,iBACA,CAAA,uCAGD,iBACC,CAAA,8EAGD,yBACC,CAAA,wBACA,CAAA,0CAGD,oBACC,CAAA,gDAGD,sBACC,CAAA,sDAGD,sBACC,CAAA,+CAGD,wBACC,CAAA,0DACA,CAAA,mCACA,CAAA,eACA\",\"sourcesContent\":[\".settings-markdown :deep a{text-decoration:underline}.settings-markdown :deep a::after{content:\\\"↗\\\";padding-inline:calc(var(--default-grid-baseline)/2)}.settings-markdown :deep 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 :deep p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown :deep li{position:relative}.settings-markdown :deep ul,.settings-markdown :deep ol{padding-inline-start:10px;margin-inline-start:10px}.settings-markdown :deep ul li{list-style-type:disc}.settings-markdown :deep ul>li>ul>li{list-style-type:circle}.settings-markdown :deep ul>li>ul>li ul li{list-style-type:square}.settings-markdown :deep blockquote{padding-inline-start:1em;border-inline-start:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-inline:0}\",\"\\n.settings-markdown :deep {\\n\\ta {\\n\\t\\ttext-decoration: underline;\\n\\t\\t&::after {\\n\\t\\t\\tcontent: '↗';\\n\\t\\t\\tpadding-inline: calc(var(--default-grid-baseline) / 2);\\n\\t\\t}\\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-inline-start: 10px;\\n\\t\\tmargin-inline-start: 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-inline-start: 1em;\\n\\t\\tborder-inline-start: 4px solid var(--color-primary-element);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-inline: 0;\\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-sidebar--with-screenshot[data-v-066d163c] .app-sidebar-header__figure{background-size:cover}.app-sidebar__fallback-icon[data-v-066d163c]{width:100%;height:100%}.app-sidebar__description[data-v-066d163c]{display:flex;flex-direction:column;gap:12px}.app-sidebar__badges[data-v-066d163c]{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.app-sidebar__score[data-v-066d163c]{display:flex;align-items:center}.app-sidebar__version[data-v-066d163c]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/views/AppStoreSidebar.vue\"],\"names\":[],\"mappings\":\"AAIE,2EACC,qBAAA,CAIF,6CAEC,UAAA,CACA,WAAA,CAGD,2CACC,YAAA,CACA,qBAAA,CACA,QAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,cAAA,CACA,QAAA,CAGD,qCACC,YAAA,CACA,kBAAA,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&__description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 12px;\\n\\t}\\n\\n\\t&__badges {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tgap: 12px;\\n\\t}\\n\\n\\t&__score {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\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-ab7c7026] {\n\tdisplay: inline-flex;\n\tcolor: var(--color-favorite, #a08b00);\n> *[data-v-ab7c7026] {\n\t\tvertical-align: text-bottom;\n}\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppList/AppScore.vue\"],\"names\":[],\"mappings\":\";AA0EA;CACA,oBAAA;CACA,qCAAA;AAEA;EACA,2BAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\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, `\n.deploy-option[data-v-4d56d87e] {\n\tmargin: calc(var(--default-grid-baseline) * 4) 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n&__hint[data-v-4d56d87e] {\n\t\tmargin-top: 4px;\n\t\tfont-size: 0.8em;\n\t\tcolor: var(--color-text-maxcontrast);\n}\n}\n.envs[data-v-4d56d87e] {\n\twidth: 100%;\n\toverflow: auto;\n\theight: 100%;\n\tmax-height: 300px;\nli[data-v-4d56d87e] {\n\t\tmargin: 10px 0;\n}\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/components/AppStoreSidebar/AppDeployOptionsModal.vue\"],\"names\":[],\"mappings\":\";AA6TA;CACA,gDAAA;CACA,aAAA;CACA,sBAAA;CACA,uBAAA;AAEA;EACA,eAAA;EACA,gBAAA;EACA,oCAAA;AACA;AACA;AAEA;CACA,WAAA;CACA,cAAA;CACA,YAAA;CACA,iBAAA;AAEA;EACA,cAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\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, `\n.empty-content__loading[data-v-1703e700] {\n\theight: 100%;\n}\n.app-settings-content__label[data-v-1703e700] {\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/appstore/src/views/AppStore.vue\"],\"names\":[],\"mappings\":\";AA2EA;CACA,YAAA;AACA;AAEA;CACA,iDAAA;CACA,4FAAA;CACA,yCAAA;CACA,0CAAA;CACA,sBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\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, `\n/* The categories-loading indicator */\n.categories--loading[data-v-05523d0c] {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/appstore/src/views/AppStoreNavigation.vue\"],\"names\":[],\"mappings\":\";AA4IA,qCAAA;AACA;CACA,OAAA;CACA,aAAA;CACA,mBAAA;CACA,uBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDialog,{attrs:{\"open\":_vm.show,\"name\":_vm.t('settings', 'Choose Deploy Daemon for {appName}', { appName: _vm.app.name }),\"size\":\"normal\"},on:{\"update:open\":_setup.closeModal}},[_c(_setup.DaemonSelectionList,{attrs:{\"app\":_vm.app,\"deploy-options\":_vm.deployOptions},on:{\"close\":_setup.closeModal}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulleted.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulleted.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulleted.vue?vue&type=template&id=5c444520\"\nimport script from \"./FormatListBulleted.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulleted.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon format-list-bulleted-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcListItem',{attrs:{\"name\":_vm.itemTitle,\"details\":_vm.isDefault ? _vm.t('settings', 'Default') : '',\"force-display-actions\":true,\"counter-number\":_vm.daemon.exAppsCount,\"active\":_vm.isDefault,\"counter-type\":\"highlighted\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.selectDaemonAndInstall.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.daemon.accepts_deploy_id)+\"\\n\\t\")]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionEntry.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!./DaemonSelectionEntry.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DaemonSelectionEntry.vue?vue&type=template&id=a627154a\"\nimport script from \"./DaemonSelectionEntry.vue?vue&type=script&lang=js\"\nexport * from \"./DaemonSelectionEntry.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","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"","\n\n\n\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!./DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DaemonSelectionList.vue?vue&type=template&id=168bc683&scoped=true\"\nimport script from \"./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DaemonSelectionList.vue?vue&type=script&setup=true&lang=js\"\nimport style0 from \"./DaemonSelectionList.vue?vue&type=style&index=0&id=168bc683&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 \"168bc683\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"daemon-selection-list\"},[(_setup.dockerDaemons.length > 0)?_c('ul',{attrs:{\"aria-label\":_vm.t('settings', 'Registered Deploy daemons list')}},_vm._l((_setup.dockerDaemons),function(daemon){return _c(_setup.DaemonSelectionEntry,{key:daemon.id,attrs:{\"daemon\":daemon,\"is-default\":_setup.defaultDaemon.name === daemon.name,\"app\":_vm.app,\"deploy-options\":_vm.deployOptions},on:{\"close\":_setup.closeModal}})}),1):_c(_setup.NcEmptyContent,{staticClass:\"daemon-selection-list__empty-content\",attrs:{\"name\":_vm.t('settings', 'No Deploy daemons configured'),\"description\":_vm.t('settings', 'Register a custom one or setup from available templates')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.FormatListBullet,{attrs:{\"size\":20}})]},proxy:true},{key:\"action\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"href\":_setup.appApiAdminPage}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Manage Deploy daemons'))+\"\\n\\t\\t\\t\")])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./DaemonSelectionDialog.vue?vue&type=template&id=e3a87a30\"\nimport script from \"./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DaemonSelectionDialog.vue?vue&type=script&setup=true&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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.app?.app_api && _vm.shouldDisplayDefaultIcon)?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.app.app_api && _vm.shouldDisplayDefaultIcon)?_c('NcIconSvgWrapper',{staticStyle:{\"min-width\":\"auto\",\"min-height\":\"auto\",\"height\":\"100%\"},attrs:{\"path\":_vm.mdiCogOutline,\"size\":_vm.listView ? 24 : 48}}):(_vm.listView && _vm.app.preview && !_vm.app.app_api)?_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()],1),_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 || _vm.isInitializing)?_c('div',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),(_vm.app.update)?_c('NcButton',{attrs:{\"variant\":\"primary\",\"disabled\":_vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible || _vm.isManualInstall,\"title\":_vm.updateButtonText},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:{\"variant\":\"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 || _vm.isInitializing || _vm.isDeploying},on:{\"click\":function($event){$event.stopPropagation();return _vm.disable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.disableButtonText)+\"\\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,\"variant\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible || _vm.isInitializing || _vm.isDeploying},on:{\"click\":function($event){$event.stopPropagation();return _vm.enableButtonAction.apply(null, arguments)}}},[_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,\"variant\":\"secondary\",\"disabled\":_vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible},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(),_vm._v(\" \"),(_vm.app?.app_api && _vm.showSelectDaemonModal)?_c('DaemonSelectionDialog',{attrs:{\"show\":_vm.showSelectDaemonModal,\"app\":_vm.app},on:{\"update:show\":function($event){_vm.showSelectDaemonModal=$event}}}):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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\n\n\n\n\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=55e495e8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=55e495e8&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=55e495e8&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=55e495e8&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 \"55e495e8\",\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-6.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-6.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=96439520&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=96439520&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=96439520&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=96439520&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 \"96439520\",\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-6.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-6.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=ab7c7026&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=ab7c7026&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=ab7c7026&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=ab7c7026&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 \"ab7c7026\",\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.pageHeading,\"page-title\":_setup.pageTitle}},[_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\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.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\t* drain() {\n\t\twhile (this.#head) {\n\t\t\tyield this.dequeue();\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tlet rejectOnClear = false;\n\n\tif (typeof concurrency === 'object') {\n\t\t({concurrency, rejectOnClear = false} = concurrency);\n\t}\n\n\tvalidateConcurrency(concurrency);\n\n\tif (typeof rejectOnClear !== 'boolean') {\n\t\tthrow new TypeError('Expected `rejectOnClear` to be a boolean');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\t// Process the next queued function if we're under the concurrency limit\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tactiveCount++;\n\t\t\tqueue.dequeue().run();\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\t// Execute the function and capture the result promise\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\t// Resolve immediately with the promise (don't wait for completion)\n\t\tresolve(result);\n\n\t\t// Wait for the function to complete (success or failure)\n\t\t// We catch errors here to prevent unhandled rejections,\n\t\t// but the original promise rejection is preserved for the caller\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\t// Decrement active count and process next queued function\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, reject, arguments_) => {\n\t\tconst queueItem = {reject};\n\n\t\t// Queue the internal resolve function instead of the run function\n\t\t// to preserve the asynchronous execution context.\n\t\tnew Promise(internalResolve => { // eslint-disable-line promise/param-names\n\t\t\tqueueItem.run = internalResolve;\n\t\t\tqueue.enqueue(queueItem);\n\t\t}).then(run.bind(undefined, function_, resolve, arguments_)); // eslint-disable-line promise/prefer-await-to-then\n\n\t\t// Start processing immediately if we haven't reached the concurrency limit\n\t\tif (activeCount < concurrency) {\n\t\t\tresumeNext();\n\t\t}\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise((resolve, reject) => {\n\t\tenqueue(function_, resolve, reject, arguments_);\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\tif (!rejectOnClear) {\n\t\t\t\t\tqueue.clear();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst abortError = AbortSignal.abort().reason;\n\n\t\t\t\twhile (queue.size > 0) {\n\t\t\t\t\tqueue.dequeue().reject(abortError);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\tmap: {\n\t\t\tasync value(iterable, function_) {\n\t\t\t\tconst promises = Array.from(iterable, (value, index) => this(function_, value, index));\n\t\t\t\treturn Promise.all(promises);\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, options) {\n\tconst limit = pLimit(options);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(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","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckCircle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckCircle.vue?vue&type=template&id=60d94ca3\"\nimport script from \"./CheckCircle.vue?vue&type=script&lang=js\"\nexport * from \"./CheckCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\nexport const OFFICE_SUITES = Object.freeze([\n {\n id: 'nextcloud-office',\n appId: 'richdocuments',\n name: 'Nextcloud Office',\n features: [\n t('settings', 'Best Nextcloud integration'),\n t('settings', 'Open source'),\n t('settings', 'Good performance'),\n t('settings', 'Best security: documents never leave your server'),\n t('settings', 'Best ODF compatibility'),\n t('settings', 'Best support for legacy files'),\n ],\n learnMoreUrl: 'https://nextcloud.com/collaboraonline/',\n isPrimary: true,\n },\n {\n id: 'onlyoffice',\n appId: 'onlyoffice',\n name: 'Onlyoffice',\n features: [\n t('settings', 'Good Nextcloud integration'),\n t('settings', 'Open core'),\n t('settings', 'Best performance'),\n t('settings', 'Limited ODF compatibility'),\n t('settings', 'Best Microsoft compatibility'),\n ],\n learnMoreUrl: 'https://nextcloud.com/onlyoffice/',\n isPrimary: false,\n },\n]);\n/**\n * Get office suite configuration by ID\n *\n * @param id - The suite ID\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteById(id) {\n return OFFICE_SUITES.find((suite) => suite.id === id);\n}\n/**\n * Get office suite configuration by app ID\n *\n * @param appId - The app ID (richdocuments, onlyoffice, etc.)\n * @return The suite configuration or undefined if not found\n */\nexport function getOfficeSuiteByAppId(appId) {\n return OFFICE_SUITES.find((suite) => suite.appId === appId);\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficeSuiteSwitcher.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficeSuiteSwitcher.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('div',{staticClass:\"office-suite-switcher\"},[(_setup.isAllInOne)?_c('div',{staticClass:\"office-suite-switcher__aio-message\"},[_c('p',[_vm._v(_vm._s(_setup.t('settings', 'Office suite switching is managed through the Nextcloud All-in-One interface.')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_setup.t('settings', 'Please use the AIO interface to switch between office suites.')))])]):[_c('p',[_vm._v(_vm._s(_setup.t('settings', 'Select your preferred office suite. Please note that installing requires manual server setup.')))]),_vm._v(\" \"),_c('div',{staticClass:\"office-suite-cards\"},_vm._l((_setup.OFFICE_SUITES),function(suite){return _c('div',{key:suite.id,staticClass:\"office-suite-card\",class:{\n\t\t\t\t\t'office-suite-card--primary': suite.isPrimary,\n\t\t\t\t\t'office-suite-card--selected': _setup.selectedSuite === suite.id,\n\t\t\t\t},on:{\"click\":function($event){return _setup.selectSuite(suite.id)}}},[_c('div',{staticClass:\"office-suite-card__header\"},[_c('h3',{staticClass:\"office-suite-card__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(suite.name)+\"\\n\\t\\t\\t\\t\\t\\t\"),(_setup.selectedSuite === suite.id)?_c('span',[_vm._v(\"(\"+_vm._s(_setup.t('settings', 'installed'))+\")\")]):_vm._e()]),_vm._v(\" \"),(_setup.selectedSuite === suite.id)?_c(_setup.IconCheckCircle,{staticClass:\"office-suite-card__check\",attrs:{\"size\":24}}):_vm._e()],1),_vm._v(\" \"),_c('ul',{staticClass:\"office-suite-card__features\"},_vm._l((suite.features),function(feature,index){return _c('li',{key:index},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', feature))+\"\\n\\t\\t\\t\\t\\t\")])}),0),_vm._v(\" \"),_c('a',{staticClass:\"office-suite-card__link\",attrs:{\"href\":suite.learnMoreUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Learn more'))+\"\\n\\t\\t\\t\\t\\t\"),_c(_setup.IconArrowRight,{attrs:{\"size\":20}})],1)])}),0),_vm._v(\" \"),_c('div',{staticClass:\"office-suite-actions\"},[_c('button',{staticClass:\"office-suite-disable-button\",attrs:{\"disabled\":!_setup.selectedSuite},on:{\"click\":_setup.disableSuites}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Disable office suites'))+\"\\n\\t\\t\\t\")])])]],2)\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!./OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OfficeSuiteSwitcher.vue?vue&type=template&id=2e094751&scoped=true\"\nimport script from \"./OfficeSuiteSwitcher.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OfficeSuiteSwitcher.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./OfficeSuiteSwitcher.vue?vue&type=style&index=0&id=2e094751&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 \"2e094751\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\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=ceb5cf46&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=ceb5cf46&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=ceb5cf46&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=ceb5cf46&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 \"ceb5cf46\",\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\"}},[(_vm.category === 'office')?_c('OfficeSuiteSwitcher',{attrs:{\"installed-apps\":_vm.allApps},on:{\"suite-selected\":_vm.onSuiteSelected}}):_vm._e(),_vm._v(\" \"),_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('appstore', '%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\",\"variant\":\"primary\"},on:{\"click\":_vm.updateAll}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('appstore', '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('appstore', '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('appstore', 'Icon')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Name')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Version')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Level')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', '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('appstore', 'Icon')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-name\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Name')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-version\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Version')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-level\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Level')))])]),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"app-table-col-actions\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.bundles),function(bundle){return _c('tbody',{key:bundle.id},[_c('tr',[_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:{\"variant\":\"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('appstore', _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)})],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('appstore', '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('appstore', 'Icon')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Name')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Version')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', 'Level')))])]),_vm._v(\" \"),_c('th',[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('appstore', '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('appstore', 'No apps found for your version')))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('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.mdiEyeOffOutline,\"size\":64}})]},proxy:true}],null,false,3626885458)}):(_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 function 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 *\n * @param element Element to check\n */\nexport function 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-6.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-6.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=277e0eae&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=277e0eae&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=277e0eae&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=277e0eae&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 \"277e0eae\",\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-6.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-6.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=1703e700&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=1703e700&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=1703e700&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=1703e700&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 \"1703e700\",\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 [(_setup.appstoreEnabled)?_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}],null,false,1397544286)}):_vm._e(),_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.store.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.store.updateCount))])]},proxy:true},{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.APPSTORE_CATEGORY_ICONS.updates}})]},proxy:true}],null,false,3001044337)}):_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()]},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-6.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-6.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=05523d0c&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=05523d0c&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=05523d0c&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=05523d0c&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 \"05523d0c\",\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__description\"},[_c('div',{staticClass:\"app-sidebar__badges\"},[_c(_setup.AppLevelBadge,{attrs:{\"level\":_setup.app.level}}),_vm._v(\" \"),(_setup.app.app_api && _setup.app.daemon)?_c(_setup.AppDaemonBadge,{attrs:{\"daemon\":_setup.app.daemon}}):_vm._e()],1),_vm._v(\" \"),(_setup.hasRating)?_c('div',{staticClass:\"app-sidebar__score\"},[_c(_setup.AppScore,{attrs:{\"score\":_setup.rating}})],1):_vm._e(),_vm._v(\" \"),_c(_setup.AppStoreSidebarActions,{key:_setup.app.id,attrs:{\"app\":_setup.app}})],1)]},proxy:true}],null,true)},[_vm._v(\" \"),_vm._v(\" \"),_c(_setup.AppDescriptionTab,{attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppDetailsTab,{key:_setup.app.id,attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppReleasesTab,{attrs:{\"app\":_setup.app}}),_vm._v(\" \"),_c(_setup.AppDeployDaemonTab,{attrs:{\"app\":_setup.app}})],1):_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 (_vm.daemon)?_c('span',{staticClass:\"app-daemon-badge\",attrs:{\"title\":_vm.daemon.name}},[_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFileChart,\"size\":20,\"inline\":\"\"}}),_vm._v(\"\\n\\t\"+_vm._s(_vm.daemon.display_name)+\"\\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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDaemonBadge.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDaemonBadge.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!./AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDaemonBadge.vue?vue&type=template&id=5294293a&scoped=true\"\nimport script from \"./AppDaemonBadge.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppDaemonBadge.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppDaemonBadge.vue?vue&type=style&index=0&id=5294293a&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 \"5294293a\",\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 (_vm.app?.daemon)?_c(_setup.NcAppSidebarTab,{attrs:{\"id\":\"daemon\",\"name\":_vm.t('settings', 'Daemon'),\"order\":3},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFileChart,\"size\":24}})]},proxy:true}],null,false,1746493066)},[_vm._v(\" \"),_c('div',{staticClass:\"daemon\"},[_c('h4',[_vm._v(_vm._s(_vm.t('settings', 'Deploy Daemon')))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Type')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon.accepts_deploy_id))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Name')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon.name))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Display Name')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon.display_name))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'GPUs support')))]),_vm._v(\": \"+_vm._s(_setup.gpuSupport))]),_vm._v(\" \"),_c('p',[_c('b',[_vm._v(_vm._s(_vm.t('settings', 'Compute device')))]),_vm._v(\": \"+_vm._s(_vm.app?.daemon?.deploy_config?.computeDevice?.label))])])]):_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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDeployDaemonTab.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDeployDaemonTab.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!./AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDeployDaemonTab.vue?vue&type=template&id=3d6f45e8&scoped=true\"\nimport script from \"./AppDeployDaemonTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppDeployDaemonTab.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppDeployDaemonTab.vue?vue&type=style&index=0&id=3d6f45e8&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 \"3d6f45e8\",\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.NcAppSidebarTab,{attrs:{\"id\":\"desc\",\"name\":_setup.t('appstore', '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\n\n\n\n\n\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=72fa808e&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=72fa808e&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=72fa808e&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=72fa808e&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 \"72fa808e\",\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-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.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!./AppDescriptionTab.vue?vue&type=style&index=0&id=373d80a8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=373d80a8&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=373d80a8&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=373d80a8&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 \"373d80a8\",\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('appstore', 'Details'),\"order\":1},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiTextBoxOutline}})]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"app-details\"},[_c('ul',{staticClass:\"app-details__dependencies\"},[(_vm.app.missingMinOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'This app has no minimum {productName} version assigned. This will be an error in the future.', { productName: _vm.productName }))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.missingMaxOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', 'This app has no maximum {productName} version assigned. This will be an error in the future.', { productName: _vm.productName }))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.canInstall)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', '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 && !_vm.app.shipped)?_c('div',{staticClass:\"app-details__section\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('appstore', '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('appstore', '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('appstore', '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('appstore', 'Resources')))]),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__documentation\",attrs:{\"aria-label\":_vm.t('appstore', '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('appstore', 'Interact')))]),_vm._v(\" \"),_c('div',{staticClass:\"app-details__interact\"},[_c('NcButton',{attrs:{\"disabled\":!_vm.app.bugs,\"href\":_vm.app.bugs ?? '#',\"aria-label\":_vm.t('appstore', 'Report a bug'),\"title\":_vm.t('appstore', 'Report a bug')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiBugOutline}})]},proxy:true}])}),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":!_vm.app.bugs,\"href\":_vm.app.bugs ?? '#',\"aria-label\":_vm.t('appstore', 'Request feature'),\"title\":_vm.t('appstore', 'Request feature')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiFeatureSearchOutline}})]},proxy:true}])}),_vm._v(\" \"),(_vm.app.appstoreData?.discussion)?_c('NcButton',{attrs:{\"href\":_vm.app.appstoreData.discussion,\"aria-label\":_vm.t('appstore', 'Ask questions or discuss'),\"title\":_vm.t('appstore', 'Ask questions or discuss')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiTooltipQuestionOutline}})]},proxy:true}],null,false,88743630)}):_vm._e(),_vm._v(\" \"),(!_vm.app.internal)?_c('NcButton',{attrs:{\"href\":_vm.rateAppUrl,\"aria-label\":_vm.t('appstore', 'Rate the app'),\"title\":_vm.t('appstore', 'Rate')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiStar}})]},proxy:true}],null,false,422450625)}):_vm._e()],1)]),_vm._v(\" \"),(_vm.app?.app_api)?_c('DaemonSelectionDialog',{attrs:{\"show\":_vm.showSelectDaemonModal,\"app\":_vm.app,\"deploy-options\":_vm.deployOptions},on:{\"update:show\":function($event){_vm.showSelectDaemonModal=$event}}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\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=499d846c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=499d846c&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=499d846c&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=499d846c&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 \"499d846c\",\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-6.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-6.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('appstore', '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=2ac4587b&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=2ac4587b&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=2ac4587b&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=2ac4587b&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 \"2ac4587b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"app-sidebar-manage__actions\"},[(_vm.app.active && _vm.canLimitToGroups(_vm.app))?_c('div',{staticClass:\"app-sidebar-manage__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(\" \"),_c('br'),_vm._v(\" \"),(_vm.isLimitedToGroups(_vm.app))?_c('NcSelect',{attrs:{\"input-id\":\"limitToGroups\",\"options\":_vm.groups,\"model-value\":_vm.appGroups,\"limit\":5,\"label\":\"name\",\"multiple\":true,\"keep-open\":\"\"},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-sidebar-manage__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 || _vm.isManualInstall},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.removeData)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.disableButtonText,\"disabled\":_vm.installing || _vm.isLoading || _vm.isInitializing || _vm.isDeploying},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 || !_vm.defaultDeployDaemonAccessible || _vm.isInitializing || _vm.isDeploying},on:{\"click\":_vm.enableButtonAction}}):(!_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(\" \"),(_vm.app?.app_api && (_vm.app.canInstall || _vm.app.isCompatible))?_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Advanced deploy options'),\"variant\":\"secondary\"},on:{\"click\":() => _vm.showDeployOptionsModal = true},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiToyBrickPlusOutline}})]},proxy:true}],null,false,973660380)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Deploy options'))+\"\\n\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),(!_vm.defaultDeployDaemonAccessible)?_c('p',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Default Deploy daemon is not accessible'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('NcCheckboxRadioSwitch',{attrs:{\"model-value\":_vm.removeData,\"disabled\":_vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible},on:{\"update:modelValue\":_vm.toggleRemoveData}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Delete data on remove'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app?.app_api)?_c('AppDeployOptionsModal',{attrs:{\"show\":_vm.showDeployOptionsModal,\"app\":_vm.app},on:{\"update:show\":function($event){_vm.showDeployOptionsModal=$event}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDeployOptionsModal.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!./AppDeployOptionsModal.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/vue-loader/lib/index.js??vue-loader-options!./AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDeployOptionsModal.vue?vue&type=template&id=4d56d87e&scoped=true\"\nimport script from \"./AppDeployOptionsModal.vue?vue&type=script&lang=js\"\nexport * from \"./AppDeployOptionsModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppDeployOptionsModal.vue?vue&type=style&index=0&id=4d56d87e&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 \"4d56d87e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{attrs:{\"open\":_vm.show,\"size\":\"normal\",\"name\":_vm.t('settings', 'Advanced deploy options')},on:{\"update:open\":function($event){return _vm.$emit('update:show', $event)}},scopedSlots:_vm._u([(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) && _vm.configuredDeployOptions === null)?{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"variant\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading || !_vm.defaultDeployDaemonAccessible || _vm.isInitializing || _vm.isDeploying},on:{\"click\":function($event){$event.stopPropagation();return _vm.submitDeployOptions.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.enableButtonText)+\"\\n\\t\\t\")])]},proxy:true}:null],null,true)},[_c('div',{staticClass:\"modal__content\"},[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.configuredDeployOptions === null ? _vm.t('settings', 'Edit ExApp deploy options before installation') : _vm.t('settings', 'Configured ExApp deploy options. Can be set only during installation'))+\".\\n\\t\\t\\t\"),(_vm.deployOptionsDocsUrl)?_c('a',{attrs:{\"href\":_vm.deployOptionsDocsUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Learn more'))+\"\\n\\t\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.environmentVariables.length > 0 || (_vm.configuredDeployOptions !== null && _vm.configuredDeployOptions.environment_variables.length > 0))?_c('h3',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Environment variables'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.configuredDeployOptions === null)?_vm._l((_vm.environmentVariables),function(envVar){return _c('div',{key:envVar.envName,staticClass:\"deploy-option\"},[_c('NcTextField',{attrs:{\"label\":envVar.displayName},model:{value:(_vm.deployOptions.environment_variables[envVar.envName]),callback:function ($$v) {_vm.$set(_vm.deployOptions.environment_variables, envVar.envName, $$v)},expression:\"deployOptions.environment_variables[envVar.envName]\"}}),_vm._v(\" \"),_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(envVar.description)+\"\\n\\t\\t\\t\\t\")])],1)}):(Object.keys(_vm.configuredDeployOptions).length > 0)?_c('fieldset',{staticClass:\"envs\"},[_c('legend',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'ExApp container environment variables'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.configuredDeployOptions.environment_variables),function(value,key){return _c('NcTextField',{key:key,attrs:{\"label\":value.displayName ?? key,\"helper-text\":value.description,\"model-value\":value.value,\"readonly\":\"\"}})})],2):[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'No environment variables defined'))+\"\\n\\t\\t\\t\")])],_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('settings', 'Mounts')))]),_vm._v(\" \"),(_vm.configuredDeployOptions === null)?[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Define host folder mounts to bind to the ExApp container'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Must exist on the Deploy daemon host prior to installing the ExApp')}}),_vm._v(\" \"),_vm._l((_vm.deployOptions.mounts),function(mount){return _c('div',{key:mount.hostPath,staticClass:\"deploy-option\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"space-between\",\"flex-direction\":\"row\"}},[_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Host path')},model:{value:(mount.hostPath),callback:function ($$v) {_vm.$set(mount, \"hostPath\", $$v)},expression:\"mount.hostPath\"}}),_vm._v(\" \"),_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Container path')},model:{value:(mount.containerPath),callback:function ($$v) {_vm.$set(mount, \"containerPath\", $$v)},expression:\"mount.containerPath\"}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(mount.readonly),callback:function ($$v) {_vm.$set(mount, \"readonly\", $$v)},expression:\"mount.readonly\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Read-only'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticStyle:{\"margin-top\":\"6px\"},attrs:{\"aria-label\":_vm.t('settings', 'Remove mount')},on:{\"click\":function($event){return _vm.removeMount(mount)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiDeleteOutline}})]},proxy:true}],null,true)})],1)}),_vm._v(\" \"),(_vm.addingMount)?_c('div',{staticClass:\"deploy-option\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'New mount'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"space-between\",\"flex-direction\":\"row\"}},[_c('NcTextField',{ref:\"newMountHostPath\",attrs:{\"label\":_vm.t('settings', 'Host path'),\"aria-label\":_vm.t('settings', 'Enter path to host folder')},model:{value:(_vm.newMountPoint.hostPath),callback:function ($$v) {_vm.$set(_vm.newMountPoint, \"hostPath\", $$v)},expression:\"newMountPoint.hostPath\"}}),_vm._v(\" \"),_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Container path'),\"aria-label\":_vm.t('settings', 'Enter path to container folder')},model:{value:(_vm.newMountPoint.containerPath),callback:function ($$v) {_vm.$set(_vm.newMountPoint, \"containerPath\", $$v)},expression:\"newMountPoint.containerPath\"}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle read-only mode')},model:{value:(_vm.newMountPoint.readonly),callback:function ($$v) {_vm.$set(_vm.newMountPoint, \"readonly\", $$v)},expression:\"newMountPoint.readonly\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Read-only'))+\"\\n\\t\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"margin-top\":\"4px\"}},[_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Confirm adding new mount')},on:{\"click\":_vm.addMountPoint},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiCheck}})]},proxy:true}],null,false,1018299955)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticStyle:{\"margin-left\":\"4px\"},attrs:{\"aria-label\":_vm.t('settings', 'Cancel adding mount')},on:{\"click\":_vm.cancelAddMountPoint},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiClose}})]},proxy:true}],null,false,2764082467)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\\t\")])],1)]):_vm._e(),_vm._v(\" \"),(!_vm.addingMount)?_c('NcButton',{staticStyle:{\"margin-top\":\"5px\"},attrs:{\"aria-label\":_vm.t('settings', 'Add mount')},on:{\"click\":_vm.startAddingMount},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiPlus}})]},proxy:true}],null,false,103601839)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add mount'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.configuredDeployOptions.mounts.length > 0)?[_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'ExApp container mounts'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.configuredDeployOptions.mounts),function(mount){return _c('div',{key:mount.hostPath,staticClass:\"deploy-option\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"space-between\",\"flex-direction\":\"row\"}},[_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Host path'),\"readonly\":\"\"},model:{value:(mount.hostPath),callback:function ($$v) {_vm.$set(mount, \"hostPath\", $$v)},expression:\"mount.hostPath\"}}),_vm._v(\" \"),_c('NcTextField',{attrs:{\"label\":_vm.t('settings', 'Container path'),\"readonly\":\"\"},model:{value:(mount.containerPath),callback:function ($$v) {_vm.$set(mount, \"containerPath\", $$v)},expression:\"mount.containerPath\"}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":\"\"},model:{value:(mount.readonly),callback:function ($$v) {_vm.$set(mount, \"readonly\", $$v)},expression:\"mount.readonly\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Read-only'))+\"\\n\\t\\t\\t\\t\")])],1)})]:_c('p',{staticClass:\"deploy-option__hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'No mounts defined'))+\"\\n\\t\\t\")])],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebarActions.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!./AppStoreSidebarActions.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./AppStoreSidebarActions.vue?vue&type=style&index=0&id=08e3b856&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AppStoreSidebarActions.vue?vue&type=style&index=0&id=08e3b856&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppStoreSidebarActions.vue?vue&type=template&id=08e3b856&scoped=true\"\nimport script from \"./AppStoreSidebarActions.vue?vue&type=script&lang=js\"\nexport * from \"./AppStoreSidebarActions.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppStoreSidebarActions.vue?vue&type=style&index=0&id=08e3b856&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 \"08e3b856\",\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-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts\"","import { mdiCog, mdiCogOutline } from '@mdi/js';\nimport { computed, ref, watchEffect } from 'vue';\nimport AppstoreCategoryIcons from '../constants/AppstoreCategoryIcons.ts';\nimport logger from '../utils/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 let path;\n if (app.value?.app_api) {\n // Use different default icon for ExApps (AppAPI)\n path = mdiCogOutline;\n }\n else {\n path = [app.value?.category ?? []].flat()\n .map((name) => AppstoreCategoryIcons[name])\n .filter((icon) => !!icon)\n .at(0)\n ?? (!app.value?.app_api ? mdiCog : mdiCogOutline);\n }\n return path ? `` : 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=066d163c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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=066d163c&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=066d163c&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=066d163c&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 \"066d163c\",\n null\n \n)\n\nexport default component.exports"],"names":["APPS_SECTION_ENUM","Object","freeze","discover","t","installed","enabled","disabled","updates","featured","supported","async","rebuildNavigation","data","axios","get","generateOcsUrl","ocs","meta","statuscode","emit","apps","window","dispatchEvent","Event","productName","OC","theme","computed","appGroups","this","app","groups","map","group","id","name","installing","app_api","appApiStore","getLoading","$store","getters","loading","isLoading","isInitializing","status","action","isDeploying","isManualInstall","daemon","accepts_deploy_id","updateButtonText","version","update","enableButtonText","progress","deploy","init","needsDownload","disableButtonText","forceEnableButtonText","enableButtonTooltip","forceEnableButtonTooltip","base","defaultDeployDaemonAccessible","getDefaultDaemon","getDaemonAccessible","groupCheckedAppsData","mounted","length","methods","asyncFindGroup","query","dispatch","search","limit","offset","isLimitedToGroups","setGroupLimit","appId","canLimitToGroups","types","includes","addGroupLimitation","groupArray","pop","concat","store","updateAppGroups","removeGroupLimitation","currentGroups","index","indexOf","splice","forceEnable","forceEnableApp","then","catch","error","showError","enable","deployOptions","enableApp","disable","disableApp","remove","removeData","uninstallApp","install","updateApp","updateCount","Math","max","mdiStarCircleOutline","mdiAccountOutline","mdiCheck","mdiClose","bundles","mdiArchiveOutline","mdiStarShootingOutline","mdiStar","mdiDownload","ai","mdiCreationOutline","auth","mdiKeyOutline","customization","mdiCogOutline","dashboard","mdiViewColumnOutline","files","mdiFolder","games","mdiControllerClassicOutline","integration","mdiOpenInApp","monitoring","mdiMonitorEye","multimedia","mdiMultimedia","office","mdiFileDocumentEdit","organization","mdiOfficeBuildingOutline","mdiMagnify","security","mdiSecurity","social","mdiAccountMultipleOutline","tools","mdiTools","workflow","mdiClipboardFlowOutline","useAppApiStore","defineStore","state","loadState","loadingList","statusUpdater","daemonAccessible","defaultDaemon","dockerDaemons","getAllApps","getUpdateCount","getAppStatus","find","getStatusUpdater","getInitializingOrDeployingApps","filter","type","actions","appsApiFailure","response","message","isHTML","logger","setLoading","value","Vue","setError","Array","isArray","forEach","_id","confirmPassword","post","generateUrl","active","canUnInstall","removable","updateAppsStatus","update_required","showInfo","onClick","location","reload","close","setTimeout","api","canInstall","undefined","fetchAllApps","fetchAppStatus","initializingOrDeployingApps","debug","clearInterval","hasOwn","fetchDockerDaemons","daemons","default_daemon_config","setInterval","showApiError","useAppsStore","categories","gettingCategoriesPromise","loadCategories","force","url","category","icon","APPSTORE_CATEGORY_ICONS","$patch","loadApps","getCategoryById","categoryId","getAppById","___CSS_LOADER_EXPORT___","push","module","emits","props","title","String","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","NcListItem","mixins","AppManagement","required","isDefault","Boolean","setup","itemTitle","display_name","closeModal","selectDaemonAndInstall","exAppsCount","stopPropagation","apply","arguments","scopedSlots","_u","key","fn","proxy","appApiAdminPage","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setup","_setupProxy","_l","DaemonSelectionEntry","NcEmptyContent","FormatListBullet","NcButton","NcDialog","show","appName","DaemonSelectionList","filterId","filterUrl","random","toString","substring","AppLevelBadge","AppScore","NcIconSvgWrapper","DaemonSelectionDialog","SvgFilterMixin","listView","useBundleView","headers","inline","isSelected","scrolled","screenshotLoaded","showSelectDaemonModal","hasRating","appstoreData","ratingNumOverall","dataItemTag","withSidebar","$route","params","shouldDisplayDefaultIcon","preview","watch","releases","screenshot","image","Image","onload","src","watchers","prefix","content","getDataItemHeaders","columnName","join","showSelectionModal","enableButtonAction","tag","class","staticStyle","summary","level","score","isCompatible","_defineComponent","__name","__props","isSupported","isFeatured","badgeIcon","badgeText","badgeTitle","__sfc","defineComponent","mdiStarHalfFull","mdiStarOutline","appScore","toFixed","fullStars","floor","emptyStars","min","hasHalfStar","Node","constructor","_defineProperty","_head","WeakMap","_tail","_size","Queue","_classPrivateFieldInitSpec","clear","enqueue","_this$size","node","_classPrivateFieldGet","next","_classPrivateFieldSet","dequeue","_this$size3","current","peek","Symbol","iterator","drain","pLimit","concurrency","rejectOnClear","validateConcurrency","TypeError","queue","activeCount","resumeNext","run","function_","resolve","arguments_","result","generator","Promise","reject","queueItem","internalResolve","bind","defineProperties","pendingCount","clearQueue","abortError","AbortSignal","abort","reason","set","newConcurrency","queueMicrotask","iterable","promises","from","all","isInteger","POSITIVE_INFINITY","OFFICE_SUITES","features","learnMoreUrl","isPrimary","installedApps","isAllInOne","selectedSuite","shallowRef","getInitialSuite","suite","a","selectSuite","suiteId","disableSuites","IconArrowRight","IconCheckCircle","feature","AppItem","OfficeSuiteSwitcher","counter","hasPendingUpdate","showUpdateAll","useListView","allApps","exApps","isAppApiEnabled","toLowerCase","sort","b","statusA","statusB","Util","naturalSortCompare","appstore","getAppBundles","bundle","bundleApps","bundleIds","searchApps","_app","useAppStoreView","allBundlesEnabled","bundleToggleText","beforeUnmount","unsubscribe","setSearch","resetSearch","subscribe","disableOfficeSuites","suites","disablePromises","onSuiteSelected","info","Notification","showTemporary","otherSuites","toggleBundle","disableBundle","enableBundle","updateAll","updateTasks","n","parseApiResponse","element","appElement","date","Date","parse","expiryDate","Error","filterElements","now","PostType","defineAsyncComponent","CarouselType","ShowcaseType","hasError","ref","elements","shuffleArray","array","i","j","onBeforeMount","shuffledElements","order","Infinity","getComponent","render","h","mdiEyeOffOutline","NcLoadingIcon","entry","route","useRoute","currentCategory","viewLabel","displayName","pageHeading","pageTitle","instance","getCurrentInstance","shouldRefetchCategories","onBeforeUnmount","NcAppContent","AppList","AppStoreDiscoverSection","domProps","appstoreEnabled","categoriesLoading","isSubscribed","NcAppNavigation","NcAppNavigationItem","NcAppNavigationSpacer","NcCounterBubble","mdiFileChart","gpuSupport","deploy_config","computeDevice","NcAppSidebarTab","label","text","minHeading","renderMarkdown","renderer","marked","Renderer","link","href","prot","decodeURIComponent","unescape","replace","out","heading","depth","blockquote","dompurify","sanitize","trim","gfm","highlight","tables","breaks","pedantic","smartLists","smartypants","SAFE_FOR_JQUERY","ALLOWED_TAGS","mdiTextShort","Markdown","description","NcDateTime","mdiBugOutline","mdiFeatureSearchOutline","mdiTextBoxOutline","mdiTooltipQuestionOutline","mdiToyBrickPlusOutline","showDeployOptionsModal","lastModified","at","appAuthors","authorName","xmlNode","author","split","localeCompare","appstoreUrl","externalResources","resources","internal","website","documentation","user","admin","developer","appCategories","flat","rateAppUrl","missingMinOwnCloudVersion","missingMaxOwnCloudVersion","missingDependencies","dep","shipped","resource","bugs","discussion","hasChangelog","values","translations","some","changelog","createChangelogFromRelease","release","getLanguage","en","mdiClockFast","NcTextField","NcNoteCard","NcCheckboxRadioSwitch","environmentVariables","environment_variables","reduce","acc","envVar","envName","mounts","mdiPlus","mdiDeleteOutline","addingMount","newMountPoint","hostPath","containerPath","readonly","addingPortBinding","configuredDeployOptions","deployOptionsDocsUrl","newShow","fetchExAppDeployOptions","startAddingMount","$nextTick","$refs","newMountHostPath","focus","addMountPoint","cancelAddMountPoint","removeMount","mountToRemove","mount","submitDeployOptions","model","callback","$$v","$set","expression","keys","NcSelect","AppDeployOptionsModal","getGroups","toggleRemoveData","directives","rawName","_i","$$a","$$el","target","$$c","checked","$$i","slice","slot","click","router","useRouter","legacyStore","useStore","exApp","rating","ratingNumRecent","ratingRecent","ratingOverall","showSidebar","appIcon","categoryIcon","path","AppstoreCategoryIcons","mdiCog","watchEffect","fetch","blob","rawSvg","replaceAll","useAppIcon","licenseText","license","toUpperCase","activeTab","hasScreenshot","loadScreenshot","onMounted","hideAppDetails","NcAppSidebar","AppDaemonBadge","AppDeployDaemonTab","AppDescriptionTab","AppDetailsTab","AppReleasesTab","AppStoreSidebarActions"],"sourceRoot":""} \ No newline at end of file