settings-apps-view-4529.js 67 KB

123
  1. /*! For license information please see settings-apps-view-4529.js.LICENSE.txt */
  2. "use strict";(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[4529],{92973:(t,e,a)=>{a.d(e,{l:()=>s});var n=a(53334);const s=Object.freeze({installed:(0,n.Tl)("settings","Your apps"),enabled:(0,n.Tl)("settings","Active apps"),disabled:(0,n.Tl)("settings","Disabled apps"),updates:(0,n.Tl)("settings","Updates"),"app-bundles":(0,n.Tl)("settings","App bundles"),featured:(0,n.Tl)("settings","Featured apps"),supported:(0,n.Tl)("settings","Supported apps")})},45834:(e,a,n)=>{n.d(a,{A:()=>l});var s=n(85168),o=n(26287),r=n(99498),i=n(61338);const p=()=>o.A.get((0,r.KT)("core/navigation",2)+"/apps?format=json").then((t=>{let{data:e}=t;200===e.ocs.meta.statuscode&&((0,i.Ic)("nextcloud:app-menu.refresh",{apps:e.ocs.data}),window.dispatchEvent(new Event("resize")))})),l={computed:{appGroups(){return this.app.groups.map((t=>({id:t,name:t})))},installing(){return this.$store.getters.loading("install")},isLoading(){return this.app&&this.$store.getters.loading(this.app.id)},enableButtonText(){return this.app.needsDownload?t("settings","Download and enable"):t("settings","Enable")},forceEnableButtonText(){return this.app.needsDownload,t("settings","Allow untested app")},enableButtonTooltip(){return 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 Nextcloud version. 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}},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(t){return!(!this.app.groups.length&&!this.groupCheckedAppsData)},setGroupLimit(){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")),addGroupLimitation(t){const e=t.pop(),a=this.app.groups.concat([]).concat([e.id]);this.$store.dispatch("enableApp",{appId:this.app.id,groups:a})},removeGroupLimitation(t){const e=this.app.groups.concat([]),a=e.indexOf(t.id);a>-1&&e.splice(a,1),this.$store.dispatch("enableApp",{appId:this.app.id,groups:e})},forceEnable(t){this.$store.dispatch("forceEnableApp",{appId:t,groups:[]}).then((t=>{p()})).catch((t=>{(0,s.Qg)(t)}))},enable(t){this.$store.dispatch("enableApp",{appId:t,groups:[]}).then((t=>{p()})).catch((t=>{(0,s.Qg)(t)}))},disable(t){this.$store.dispatch("disableApp",{appId:t}).then((t=>{p()})).catch((t=>{(0,s.Qg)(t)}))},remove(t){this.$store.dispatch("uninstallApp",{appId:t}).then((t=>{p()})).catch((t=>{(0,s.Qg)(t)}))},install(t){this.$store.dispatch("enableApp",{appId:t}).then((t=>{p()})).catch((t=>{(0,s.Qg)(t)}))},update(t){this.$store.dispatch("updateApp",{appId:t}).then((t=>{p()})).catch((t=>{(0,s.Qg)(t)}))}}}},86438:(t,e,a)=>{a.d(e,{A:()=>s});var n=a(9165);const s=Object.freeze({installed:n.Gbn,enabled:n.Tfj,disabled:n.hyP,bundles:n.nSK,supported:n.Yk,featured:n.ZL5,updates:n.XCd,auth:n.EYN,customization:n.CZ3,dashboard:n.edW,files:n.fEr,games:n.FeJ,integration:n.bur,monitoring:n.y48,multimedia:n.WI,office:n.Ku3,organization:n.TO3,search:n.U4M,security:n.JiW,social:n.Krx,tools:n.QKT,workflow:n.Dgm})},846:(t,e,a)=>{a.d(e,{T:()=>u});var n=a(85168),s=a(38613),o=a(53334),r=a(99498),i=a(65899),p=a(26287),l=a(36620),c=a(86438);const d=()=>(0,n.Qg)((0,o.Tl)("settings","An error occurred during the request. Unable to proceed.")),u=(0,i.nY)("settings-apps",{state:()=>({apps:[],categories:[],updateCount:(0,s.C)("settings","appstoreUpdateCount",0),loading:{apps:!1,categories:!1},loadingList:!1,gettingCategoriesPromise:null}),actions:{async loadCategories(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!(this.categories.length>0)||t)try{this.loading.categories=!0;const{data:t}=await p.A.get((0,r.Jv)("settings/apps/categories"));for(const a of t){var e;a.icon=null!==(e=c.A[a.id])&&void 0!==e?e:""}this.$patch({categories:t})}catch(t){l.A.error(t),d()}finally{this.loading.categories=!1}},async loadApps(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!(this.apps.length>0)||t)try{this.loading.apps=!0;const{data:t}=await p.A.get((0,r.Jv)("settings/apps/list"));this.$patch({apps:t.apps})}catch(t){l.A.error(t),d()}finally{this.loading.apps=!1}},getCategoryById(t){var e;return null!==(e=this.categories.find((e=>{let{id:a}=e;return a===t})))&&void 0!==e?e:null},getAppById(t){var e;return null!==(e=this.apps.find((e=>{let{id:a}=e;return a===t})))&&void 0!==e?e:null}}})},87871:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,".app-bundle-heading[data-v-778d0544]{display:flex;align-items:center;margin:20px 10px 20px 0}.app-bundle-header[data-v-778d0544]{margin:0 10px 0 50px;font-weight:bold;font-size:20px;line-height:30px;color:var(--color-text-light)}.apps-store-view[data-v-778d0544]{display:flex;flex-wrap:wrap}","",{version:3,sources:["webpack://./apps/settings/src/components/AppList.vue"],names:[],mappings:"AACA,qCACC,YAAA,CACA,kBAAA,CACA,uBAAA,CAED,oCACC,oBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,6BAAA,CAED,kCACC,YAAA,CACA,cAAA",sourcesContent:["\n.app-bundle-heading {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin: 20px 10px 20px 0;\n}\n.app-bundle-header {\n\tmargin: 0 10px 0 50px;\n\tfont-weight: bold;\n\tfont-size: 20px;\n\tline-height: 30px;\n\tcolor: var(--color-text-light);\n}\n.apps-store-view {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n"],sourceRoot:""}]);const i=r},70158:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,'.app-icon[data-v-73d4f990]{filter:var(--background-invert-if-bright)}.app-image img[data-v-73d4f990]{width:100%}.app-name--link[data-v-73d4f990]::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0}',"",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppItem.vue"],names:[],mappings:"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA,CAGD,wCACE,UAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA",sourcesContent:["\n.app-icon {\n\tfilter: var(--background-invert-if-bright);\n}\n\n.app-image img {\n\twidth: 100%;\n}\n\n.app-name--link::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n"],sourceRoot:""}]);const i=r},30993:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,".app-level-badge[data-v-3590dbeb]{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-3590dbeb]{border-color:var(--color-success);color:var(--color-success)}","",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppLevelBadge.vue"],names:[],mappings:"AACA,kCACC,mCAAA,CACA,8BAAA,CACA,8CAAA,CACA,kCAAA,CAEA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CACA,iBAAA,CAEA,6CACC,iCAAA,CACA,0BAAA",sourcesContent:["\n.app-level-badge {\n\tcolor: var(--color-text-maxcontrast);\n\tbackground-color: transparent;\n\tborder: 1px solid var(--color-text-maxcontrast);\n\tborder-radius: var(--border-radius);\n\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: 6px;\n\tpadding: 3px 6px;\n\twidth: fit-content;\n\n\t&--supported {\n\t\tborder-color: var(--color-success);\n\t\tcolor: var(--color-success);\n\t}\n}\n"],sourceRoot:""}]);const i=r},10321:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,".app-description[data-v-fccce5ae]{padding:12px}","",{version:3,sources:["webpack://./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue"],names:[],mappings:"AACA,kCACC,YAAA",sourcesContent:["\n.app-description {\n\tpadding: 12px;\n}\n"],sourceRoot:""}]);const i=r},52341:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,'.app-details[data-v-59b4cf6b]{padding:20px}.app-details__actions-manage[data-v-59b4cf6b]{display:flex}.app-details__actions-manage input[data-v-59b4cf6b]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__authors[data-v-59b4cf6b]{color:var(--color-text-maxcontrast)}.app-details__section[data-v-59b4cf6b]{margin-top:15px}.app-details__section h4[data-v-59b4cf6b]{font-size:16px;font-weight:bold;margin-block-end:5px}.app-details__interact[data-v-59b4cf6b]{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.app-details__documentation a[data-v-59b4cf6b]{text-decoration:underline}.app-details__documentation li[data-v-59b4cf6b]{padding-inline-start:20px}.app-details__documentation li[data-v-59b4cf6b]::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-59b4cf6b]{color:var(--color-error);border-color:var(--color-error);background:var(--color-main-background)}.force[data-v-59b4cf6b]:hover,.force[data-v-59b4cf6b]:active{color:var(--color-main-background);border-color:var(--color-error) !important;background:var(--color-error)}',"",{version:3,sources:["webpack://./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue"],names:[],mappings:"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,oDACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAIH,uCACC,mCAAA,CAGD,uCACC,eAAA,CAEA,0CACC,cAAA,CACA,gBAAA,CACA,oBAAA,CAIF,wCACC,YAAA,CACA,kBAAA,CACA,cAAA,CACA,QAAA,CAIA,+CACC,yBAAA,CAED,gDACC,yBAAA,CAEA,wDACC,SAAA,CACA,UAAA,CACA,kBAAA,CACA,uCAAA,CACA,UAAA,CACA,kBAAA,CACA,yBAAA,CACA,iBAAA,CACA,QAAA,CAMJ,wBACC,wBAAA,CACA,+BAAA,CACA,uCAAA,CAED,6DAEC,kCAAA,CACA,0CAAA,CACA,6BAAA",sourcesContent:['\n.app-details {\n\tpadding: 20px;\n\n\t&__actions {\n\t\t// app management\n\t\t&-manage {\n\t\t\t// if too many, shrink them and ellipsis\n\t\t\tdisplay: flex;\n\t\t\tinput {\n\t\t\t\tflex: 0 1 auto;\n\t\t\t\tmin-width: 0;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t}\n\t}\n\t&__authors {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__section {\n\t\tmargin-top: 15px;\n\n\t\th4 {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-block-end: 5px;\n\t\t}\n\t}\n\n\t&__interact {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t\tgap: 12px;\n\t}\n\n\t&__documentation {\n\t\ta {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\tli {\n\t\t\tpadding-inline-start: 20px;\n\n\t\t\t&::before {\n\t\t\t\twidth: 5px;\n\t\t\t\theight: 5px;\n\t\t\t\tborder-radius: 100%;\n\t\t\t\tbackground-color: var(--color-main-text);\n\t\t\t\tcontent: "";\n\t\t\t\tfloat: inline-start;\n\t\t\t\tmargin-inline-start: -13px;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: 10px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.force {\n\tcolor: var(--color-error);\n\tborder-color: var(--color-error);\n\tbackground: var(--color-main-background);\n}\n.force:hover,\n.force:active {\n\tcolor: var(--color-main-background);\n\tborder-color: var(--color-error) !important;\n\tbackground: var(--color-error);\n}\n\n'],sourceRoot:""}]);const i=r},38739:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,".app-sidebar-tabs__release h2[data-v-9da99928]{border-bottom:1px solid var(--color-border);font-size:24px}.app-sidebar-tabs__release-text[data-v-9da99928] h3{font-size:20px}.app-sidebar-tabs__release-text[data-v-9da99928] h4{font-size:17px}","",{version:3,sources:["webpack://./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue"],names:[],mappings:"AAEC,+CACC,2CAAA,CACA,cAAA,CAKA,oDACC,cAAA,CAED,oDACC,cAAA",sourcesContent:["\n.app-sidebar-tabs__release {\n\th2 {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t\tfont-size: 24px;\n\t}\n\n\t&-text {\n\t\t// Overwrite changelog heading styles\n\t\t:deep(h3) {\n\t\t\tfont-size: 20px;\n\t\t}\n\t\t:deep(h4) {\n\t\t\tfont-size: 17px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const i=r},3323:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,".settings-markdown[data-v-7c5c8e59] h1,.settings-markdown[data-v-7c5c8e59] h2,.settings-markdown[data-v-7c5c8e59] h3,.settings-markdown[data-v-7c5c8e59] h4,.settings-markdown[data-v-7c5c8e59] h5,.settings-markdown[data-v-7c5c8e59] h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.settings-markdown[data-v-7c5c8e59] h1{font-size:36px;margin-top:48px}.settings-markdown[data-v-7c5c8e59] h2{font-size:28px;margin-top:48px}.settings-markdown[data-v-7c5c8e59] h3{font-size:24px}.settings-markdown[data-v-7c5c8e59] h4{font-size:21px}.settings-markdown[data-v-7c5c8e59] h5{font-size:17px}.settings-markdown[data-v-7c5c8e59] h6{font-size:var(--default-font-size)}.settings-markdown[data-v-7c5c8e59] 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-7c5c8e59] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-7c5c8e59] li{position:relative}.settings-markdown[data-v-7c5c8e59] ul,.settings-markdown[data-v-7c5c8e59] ol{padding-left:10px;margin-left:10px}.settings-markdown[data-v-7c5c8e59] ul li{list-style-type:disc}.settings-markdown[data-v-7c5c8e59] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-7c5c8e59] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-7c5c8e59] blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}","",{version:3,sources:["webpack://./apps/settings/src/components/Markdown.vue"],names:[],mappings:"AAGA,0OAMC,eAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,4BAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,kCAAA,CAGD,wCACC,eAAA,CACA,eAAA,CACA,6CAAA,CACA,kCAAA,CACA,iBAAA,CACA,iBAAA,CAGD,2CACC,6CAAA,CACA,kCAAA,CACA,iBAAA,CAGD,uCACC,iBAAA,CAGD,8EACC,iBAAA,CACA,gBAAA,CAGD,0CACC,oBAAA,CAGD,gDACC,sBAAA,CAGD,sDACC,sBAAA,CAGD,+CACC,gBAAA,CACA,kDAAA,CACA,mCAAA,CACA,aAAA,CACA,cAAA",sourcesContent:["\n.settings-markdown::v-deep {\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n\tfont-weight: 600;\n\tline-height: 120%;\n\tmargin-top: 24px;\n\tmargin-bottom: 12px;\n\tcolor: var(--color-main-text);\n}\n\nh1 {\n\tfont-size: 36px;\n\tmargin-top: 48px;\n}\n\nh2 {\n\tfont-size: 28px;\n\tmargin-top: 48px;\n}\n\nh3 {\n\tfont-size: 24px;\n}\n\nh4 {\n\tfont-size: 21px;\n}\n\nh5 {\n\tfont-size: 17px;\n}\n\nh6 {\n\tfont-size: var(--default-font-size);\n}\n\npre {\n\twhite-space: pre;\n\toverflow-x: auto;\n\tbackground-color: var(--color-background-dark);\n\tborder-radius: var(--border-radius);\n\tpadding: 1em 1.3em;\n\tmargin-bottom: 1em;\n}\n\np code {\n\tbackground-color: var(--color-background-dark);\n\tborder-radius: var(--border-radius);\n\tpadding: .1em .3em;\n}\n\nli {\n\tposition: relative;\n}\n\nul, ol {\n\tpadding-left: 10px;\n\tmargin-left: 10px;\n}\n\nul li {\n\tlist-style-type: disc;\n}\n\nul > li > ul > li {\n\tlist-style-type: circle;\n}\n\nul > li > ul > li ul li {\n\tlist-style-type: square;\n}\n\nblockquote {\n\tpadding-left: 1em;\n\tborder-left: 4px solid var(--color-primary-element);\n\tcolor: var(--color-text-maxcontrast);\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n}\n"],sourceRoot:""}]);const i=r},2380:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,".app-sidebar--with-screenshot[data-v-ec35f1f8] .app-sidebar-header__figure{background-size:cover}.app-sidebar__fallback-icon[data-v-ec35f1f8]{width:100%;height:100%}.app-sidebar__badges[data-v-ec35f1f8]{display:flex;flex-direction:row;gap:12px}.app-sidebar__version[data-v-ec35f1f8]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/views/AppStoreSidebar.vue"],names:[],mappings:"AAIE,2EACC,qBAAA,CAIF,6CAEC,UAAA,CACA,WAAA,CAGD,sCACC,YAAA,CACA,kBAAA,CACA,QAAA,CAGD,uCACC,mCAAA",sourcesContent:["\n.app-sidebar {\n\t// If a screenshot is available it should cover the whole figure\n\t&--with-screenshot {\n\t\t:deep(.app-sidebar-header__figure) {\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__fallback-icon {\n\t\t// both 100% to center the icon\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n\n\t&__badges {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: 12px;\n\t}\n\n\t&__version {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const i=r},20922:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,"\n.app-score__wrapper[data-v-7d015114] {\n\tdisplay: inline-flex;\n\tcolor: var(--color-favorite, #a08b00);\n> *[data-v-7d015114] {\n\t\tvertical-align: text-bottom;\n}\n}\n","",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppScore.vue"],names:[],mappings:";AAiFA;CACA,oBAAA;CACA,qCAAA;AAEA;EACA,2BAAA;AACA;AACA",sourcesContent:['\x3c!--\n - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<span role="img"\n\t\t:aria-label="title"\n\t\t:title="title"\n\t\tclass="app-score__wrapper">\n\t\t<NcIconSvgWrapper v-for="index in fullStars"\n\t\t\t:key="`full-star-${index}`"\n\t\t\t:path="mdiStar"\n\t\t\tinline />\n\t\t<NcIconSvgWrapper v-if="hasHalfStar" :path="mdiStarHalfFull" inline />\n\t\t<NcIconSvgWrapper v-for="index in emptyStars"\n\t\t\t:key="`empty-star-${index}`"\n\t\t\t:path="mdiStarOutline"\n\t\t\tinline />\n\t</span>\n</template>\n<script lang="ts">\nimport NcIconSvgWrapper from \'@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\'\nimport { mdiStar, mdiStarHalfFull, mdiStarOutline } from \'@mdi/js\'\nimport { translate as t } from \'@nextcloud/l10n\'\nimport { defineComponent } from \'vue\'\n\nexport default defineComponent({\n\tname: \'AppScore\',\n\tcomponents: {\n\t\tNcIconSvgWrapper,\n\t},\n\tprops: {\n\t\tscore: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\tmdiStar,\n\t\t\tmdiStarHalfFull,\n\t\t\tmdiStarOutline,\n\t\t}\n\t},\n\tcomputed: {\n\t\ttitle() {\n\t\t\tconst appScore = (this.score * 5).toFixed(1)\n\t\t\treturn t(\'settings\', \'Community rating: {score}/5\', { score: appScore })\n\t\t},\n\t\tfullStars() {\n\t\t\treturn Math.floor(this.score * 5 + 0.25)\n\t\t},\n\t\temptyStars() {\n\t\t\treturn Math.min(Math.floor((1 - this.score) * 5 + 0.25), 5 - this.fullStars)\n\t\t},\n\t\thasHalfStar() {\n\t\t\treturn (this.fullStars + this.emptyStars) < 5\n\t\t},\n\t},\n})\n<\/script>\n<style scoped>\n.app-score__wrapper {\n\tdisplay: inline-flex;\n\tcolor: var(--color-favorite, #a08b00);\n\n\t> * {\n\t\tvertical-align: text-bottom;\n\t}\n}\n</style>\n'],sourceRoot:""}]);const i=r},68102:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,"\n.empty-content__loading[data-v-2ff66e2c] {\n\theight: 100%;\n}\n","",{version:3,sources:["webpack://./apps/settings/src/views/AppStore.vue"],names:[],mappings:";AAsFA;CACA,YAAA;AACA",sourcesContent:["\x3c!--\n\t- @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n\t-\n\t- @author Julius Härtl <jus@bitgrid.net>\n\t- @author Ferdinand Thiessen <opensource@fthiessen.de>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n\t--\x3e\n\n<template>\n\t\x3c!-- Apps list --\x3e\n\t<NcAppContent class=\"app-settings-content\"\n\t\t:page-heading=\"pageHeading\">\n\t\t<NcEmptyContent v-if=\"isLoading\"\n\t\t\tclass=\"empty-content__loading\"\n\t\t\t:name=\"t('settings', 'Loading app list')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon :size=\"64\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<AppList v-else :category=\"currentCategory\" />\n\t</NcAppContent>\n</template>\n\n<script setup lang=\"ts\">\nimport { translate as t } from '@nextcloud/l10n'\nimport { computed, getCurrentInstance, onBeforeMount, watch } from 'vue'\nimport { useRoute } from 'vue-router/composables'\nimport { APPS_SECTION_ENUM } from '../constants/AppsConstants.js'\nimport { useAppsStore } from '../store/apps-store'\n\nimport NcAppContent from '@nextcloud/vue/dist/Components/NcAppContent.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport AppList from '../components/AppList.vue'\n\nconst route = useRoute()\nconst store = useAppsStore()\n\n/**\n * ID of the current active category, default is `installed`\n */\nconst currentCategory = computed(() => route.params?.category ?? 'installed')\n\n/**\n * The H1 to be used on the website\n */\nconst pageHeading = computed(() => {\n\tif (currentCategory.value in APPS_SECTION_ENUM) {\n\t\treturn APPS_SECTION_ENUM[currentCategory.value]\n\t}\n\tconst category = store.getCategoryById(currentCategory.value)\n\treturn category?.displayName ?? t('settings', 'Apps')\n})\nwatch([pageHeading], () => {\n\twindow.document.title = `${pageHeading.value} - Apps - Nextcloud`\n})\n\n// TODO this part should be migrated to pinia\nconst instance = getCurrentInstance()\n/** Is the app list loading */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isLoading = computed(() => (instance?.proxy as any).$store.getters.loading('list'))\nonBeforeMount(() => {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t(instance?.proxy as any).$store.dispatch('getCategories', { shouldRefetchCategories: true });\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t(instance?.proxy as any).$store.dispatch('getAllApps')\n})\n<\/script>\n\n<style scoped>\n.empty-content__loading {\n\theight: 100%;\n}\n</style>\n"],sourceRoot:""}]);const i=r},89021:(t,e,a)=>{a.d(e,{A:()=>i});var n=a(71354),s=a.n(n),o=a(76314),r=a.n(o)()(s());r.push([t.id,"\n/* The categories-loading indicator */\n.categories--loading[data-v-c4d7352c] {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n","",{version:3,sources:["webpack://./apps/settings/src/views/AppStoreNavigation.vue"],names:[],mappings:";AAgIA,qCAAA;AACA;CACA,OAAA;CACA,aAAA;CACA,mBAAA;CACA,uBAAA;AACA",sourcesContent:['<template>\n\t\x3c!-- Categories & filters --\x3e\n\t<NcAppNavigation :aria-label="t(\'settings\', \'Apps\')">\n\t\t<template #list>\n\t\t\t<NcAppNavigationItem id="app-category-your-apps"\n\t\t\t\t:to="{ name: \'apps\' }"\n\t\t\t\t:exact="true"\n\t\t\t\t:name="APPS_SECTION_ENUM.installed">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.installed" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t\t<NcAppNavigationItem id="app-category-enabled"\n\t\t\t\t:to="{ name: \'apps-category\', params: { category: \'enabled\' } }"\n\t\t\t\t:name="APPS_SECTION_ENUM.enabled">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.enabled" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t\t<NcAppNavigationItem id="app-category-disabled"\n\t\t\t\t:to="{ name: \'apps-category\', params: { category: \'disabled\' } }"\n\t\t\t\t:name="APPS_SECTION_ENUM.disabled">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.disabled" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t\t<NcAppNavigationItem v-if="updateCount > 0"\n\t\t\t\tid="app-category-updates"\n\t\t\t\t:to="{ name: \'apps-category\', params: { category: \'updates\' } }"\n\t\t\t\t:name="APPS_SECTION_ENUM.updates">\n\t\t\t\t<template #counter>\n\t\t\t\t\t<NcCounterBubble>{{ updateCount }}</NcCounterBubble>\n\t\t\t\t</template>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.updates" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t\t<NcAppNavigationItem id="app-category-your-bundles"\n\t\t\t\t:to="{ name: \'apps-category\', params: { category: \'app-bundles\' } }"\n\t\t\t\t:name="APPS_SECTION_ENUM[\'app-bundles\']">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.bundles" />\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\n\t\t\t<NcAppNavigationSpacer />\n\n\t\t\t\x3c!-- App store categories --\x3e\n\t\t\t<li v-if="appstoreEnabled && categoriesLoading" class="categories--loading">\n\t\t\t\t<NcLoadingIcon :size="20" :aria-label="t(\'settings\', \'Loading categories\')" />\n\t\t\t</li>\n\t\t\t<template v-else-if="appstoreEnabled && !categoriesLoading">\n\t\t\t\t<NcAppNavigationItem v-if="isSubscribed"\n\t\t\t\t\tid="app-category-supported"\n\t\t\t\t\t:to="{ name: \'apps-category\', params: { category: \'supported\' } }"\n\t\t\t\t\t:name="APPS_SECTION_ENUM.supported">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.supported" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t\t<NcAppNavigationItem id="app-category-featured"\n\t\t\t\t\t:to="{ name: \'apps-category\', params: { category: \'featured\' } }"\n\t\t\t\t\t:name="APPS_SECTION_ENUM.featured">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path="APPSTORE_CATEGORY_ICONS.featured" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationItem>\n\n\t\t\t\t<NcAppNavigationItem v-for="category in categories"\n\t\t\t\t\t:id="`app-category-${category.id}`"\n\t\t\t\t\t:key="category.id"\n\t\t\t\t\t:name="category.displayName"\n\t\t\t\t\t:to="{\n\t\t\t\t\t\tname: \'apps-category\',\n\t\t\t\t\t\tparams: { category: category.id },\n\t\t\t\t\t}">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path="category.icon" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</template>\n\n\t\t\t<NcAppNavigationItem id="app-developer-docs"\n\t\t\t\t:name="t(\'settings\', \'Developer documentation ↗\')"\n\t\t\t\t:href="developerDocsUrl" />\n\t\t</template>\n\t</NcAppNavigation>\n</template>\n\n<script setup lang="ts">\nimport { loadState } from \'@nextcloud/initial-state\'\nimport { translate as t } from \'@nextcloud/l10n\'\nimport { computed, onBeforeMount } from \'vue\'\nimport { APPS_SECTION_ENUM } from \'../constants/AppsConstants\'\nimport { useAppsStore } from \'../store/apps-store\'\n\nimport NcAppNavigation from \'@nextcloud/vue/dist/Components/NcAppNavigation.js\'\nimport NcAppNavigationItem from \'@nextcloud/vue/dist/Components/NcAppNavigationItem.js\'\nimport NcAppNavigationSpacer from \'@nextcloud/vue/dist/Components/NcAppNavigationSpacer.js\'\nimport NcCounterBubble from \'@nextcloud/vue/dist/Components/NcCounterBubble.js\'\nimport NcIconSvgWrapper from \'@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\'\nimport NcLoadingIcon from \'@nextcloud/vue/dist/Components/NcLoadingIcon.js\'\n\nimport APPSTORE_CATEGORY_ICONS from \'../constants/AppstoreCategoryIcons.ts\'\n\nconst updateCount = loadState<number>(\'settings\', \'appstoreUpdateCount\', 0)\nconst appstoreEnabled = loadState<boolean>(\'settings\', \'appstoreEnabled\', true)\nconst developerDocsUrl = loadState<string>(\'settings\', \'appstoreDeveloperDocs\', \'\')\n\nconst store = useAppsStore()\nconst categories = computed(() => store.categories)\nconst categoriesLoading = computed(() => store.loading.categories)\n\n/**\n * Check if the current instance has a support subscription from the Nextcloud GmbH\n *\n * For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription\n */\nconst isSubscribed = computed(() => store.apps.find(({ level }) => level === 300) !== undefined)\n\n// load categories when component is mounted\nonBeforeMount(() => {\n\tstore.loadCategories()\n\tstore.loadApps()\n})\n<\/script>\n\n<style scoped>\n/* The categories-loading indicator */\n.categories--loading {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n</style>\n'],sourceRoot:""}]);const i=r},63358:(t,e,a)=>{a.d(e,{A:()=>y});var n=a(85471),s=a(6695),o=a(9165),r=a(53334);const i=(0,n.pM)({__name:"AppLevelBadge",props:{level:null},setup(t){const e=t,a=(0,n.EW)((()=>300===e.level)),i=(0,n.EW)((()=>200===e.level)),p=(0,n.EW)((()=>a.value?o.Yk:o.Tfj)),l=(0,n.EW)((()=>a.value?(0,r.Tl)("settings","Supported"):(0,r.Tl)("settings","Featured"))),c=(0,n.EW)((()=>a.value?(0,r.Tl)("settings","This app is supported via your current Nextcloud subscription."):(0,r.Tl)("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")));return{__sfc:!0,props:e,isSupported:a,isFeatured:i,badgeIcon:p,badgeText:l,badgeTitle:c,NcIconSvgWrapper:s.A}}});var p=a(85072),l=a.n(p),c=a(97825),d=a.n(c),u=a(77659),A=a.n(u),g=a(55056),v=a.n(g),h=a(10540),m=a.n(h),C=a(41113),f=a.n(C),b=a(30993),_={};_.styleTagTransform=f(),_.setAttributes=v(),_.insert=A().bind(null,"head"),_.domAPI=d(),_.insertStyleElement=m(),l()(b.A,_),b.A&&b.A.locals&&b.A.locals;const y=(0,a(14486).A)(i,(function(){var t=this,e=t._self._c,a=t._self._setupProxy;return a.isSupported||a.isFeatured?e("span",{staticClass:"app-level-badge",class:{"app-level-badge--supported":a.isSupported},attrs:{title:a.badgeTitle}},[e(a.NcIconSvgWrapper,{attrs:{path:a.badgeIcon,size:20,inline:""}}),t._v("\n\t"+t._s(a.badgeText)+"\n")],1):t._e()}),[],!1,null,"3590dbeb",null).exports},15769:(t,e,a)=>{a.d(e,{A:()=>_});var n=a(6695),s=a(9165),o=a(53334);const r=(0,a(85471).pM)({name:"AppScore",components:{NcIconSvgWrapper:n.A},props:{score:{type:Number,required:!0}},setup:()=>({mdiStar:s.ZL5,mdiStarHalfFull:s.tdF,mdiStarOutline:s.dF}),computed:{title(){const t=(5*this.score).toFixed(1);return(0,o.Tl)("settings","Community rating: {score}/5",{score:t})},fullStars(){return Math.floor(5*this.score+.25)},emptyStars(){return Math.min(Math.floor(5*(1-this.score)+.25),5-this.fullStars)},hasHalfStar(){return this.fullStars+this.emptyStars<5}}});var i=a(85072),p=a.n(i),l=a(97825),c=a.n(l),d=a(77659),u=a.n(d),A=a(55056),g=a.n(A),v=a(10540),h=a.n(v),m=a(41113),C=a.n(m),f=a(20922),b={};b.styleTagTransform=C(),b.setAttributes=g(),b.insert=u().bind(null,"head"),b.domAPI=c(),b.insertStyleElement=h(),p()(f.A,b),f.A&&f.A.locals&&f.A.locals;const _=(0,a(14486).A)(r,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("span",{staticClass:"app-score__wrapper",attrs:{role:"img","aria-label":t.title,title:t.title}},[t._l(t.fullStars,(function(a){return e("NcIconSvgWrapper",{key:"full-star-".concat(a),attrs:{path:t.mdiStar,inline:""}})})),t._v(" "),t.hasHalfStar?e("NcIconSvgWrapper",{attrs:{path:t.mdiStarHalfFull,inline:""}}):t._e(),t._v(" "),t._l(t.emptyStars,(function(a){return e("NcIconSvgWrapper",{key:"empty-star-".concat(a),attrs:{path:t.mdiStarOutline,inline:""}})}))],2)}),[],!1,null,"7d015114",null).exports},34038:(e,a,n)=>{n.r(a),n.d(a,{default:()=>V});var s=n(85471),o=n(53334),r=n(24387),i=n(92973),p=n(846),l=n(18195),c=n(10833),d=n(46222),u=n(61338),A=n(15769),g=n(63358),v=n(45834);const h={name:"SvgFilterMixin",data:()=>({filterId:""}),computed:{filterUrl(){return"url(#".concat(this.filterId,")")}},mounted(){this.filterId="invertIconApps-"+Math.random().toString(36).substring(2)}};var m=n(14486);const C=(0,m.A)(h,void 0,void 0,!1,null,null,null).exports;var f=n(9518);const b={name:"AppItem",components:{AppLevelBadge:g.A,AppScore:A.A,NcButton:f.A},mixins:[v.A,C],props:{app:{type:Object,required:!0},category:{},listView:{type:Boolean,default:!0},useBundleView:{type:Boolean,default:!1},headers:{type:String,default:null}},data:()=>({isSelected:!1,scrolled:!1,screenshotLoaded:!1}),computed:{hasRating(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},dataItemTag(){return this.listView?"td":"div"}},watch:{"$route.params.id"(t){this.isSelected=this.app.id===t}},mounted(){if(this.isSelected=this.app.id===this.$route.params.id,this.app.releases&&this.app.screenshot){const t=new Image;t.onload=()=>{this.screenshotLoaded=!0},t.src=this.app.screenshot}},watchers:{},methods:{prefix:(t,e)=>t+"_"+e,getDataItemHeaders(t){return this.useBundleView?[this.headers,t].join(" "):null}}};var _=n(85072),y=n.n(_),x=n(97825),N=n.n(x),S=n(77659),w=n.n(S),I=n(55056),T=n.n(I),k=n(10540),E=n.n(k),B=n(41113),P=n.n(B),D=n(70158),O={};O.styleTagTransform=P(),O.setAttributes=T(),O.insert=w().bind(null,"head"),O.domAPI=N(),O.insertStyleElement=E(),y()(D.A,O),D.A&&D.A.locals&&D.A.locals;const L=(0,m.A)(b,(function(){var t=this,e=t._self._c;return e(t.listView?"tr":"li",{tag:"component",staticClass:"section",class:{selected:t.isSelected}},[e(t.dataItemTag,{tag:"component",staticClass:"app-image app-image-icon",attrs:{headers:t.getDataItemHeaders("app-table-col-icon")}},[t.listView&&!t.app.preview||!t.listView&&!t.screenshotLoaded?e("div",{staticClass:"icon-settings-dark"}):t.listView&&t.app.preview?e("svg",{attrs:{width:"32",height:"32",viewBox:"0 0 32 32"}},[e("image",{staticClass:"app-icon",attrs:{x:"0",y:"0",width:"32",height:"32",preserveAspectRatio:"xMinYMin meet","xlink:href":t.app.preview}})]):t._e(),t._v(" "),!t.listView&&t.app.screenshot&&t.screenshotLoaded?e("img",{attrs:{src:t.app.screenshot,alt:""}}):t._e()]),t._v(" "),e(t.dataItemTag,{tag:"component",staticClass:"app-name",attrs:{headers:t.getDataItemHeaders("app-table-col-name")}},[e("router-link",{staticClass:"app-name--link",attrs:{to:{name:"apps-details",params:{category:t.category,id:t.app.id}},"aria-label":t.t("settings","Show details for {appName} app",{appName:t.app.name})}},[t._v("\n\t\t\t"+t._s(t.app.name)+"\n\t\t")])],1),t._v(" "),t.listView?t._e():e(t.dataItemTag,{tag:"component",staticClass:"app-summary",attrs:{headers:t.getDataItemHeaders("app-version")}},[t._v("\n\t\t"+t._s(t.app.summary)+"\n\t")]),t._v(" "),t.listView?e(t.dataItemTag,{tag:"component",staticClass:"app-version",attrs:{headers:t.getDataItemHeaders("app-table-col-version")}},[t.app.version?e("span",[t._v(t._s(t.app.version))]):t.app.appstoreData.releases[0].version?e("span",[t._v(t._s(t.app.appstoreData.releases[0].version))]):t._e()]):t._e(),t._v(" "),e(t.dataItemTag,{tag:"component",attrs:{headers:t.getDataItemHeaders("app-table-col-level")}},[e("AppLevelBadge",{attrs:{level:t.app.level}}),t._v(" "),t.hasRating&&!t.listView?e("AppScore",{attrs:{score:t.app.score}}):t._e()],1),t._v(" "),e(t.dataItemTag,{tag:"component",staticClass:"actions",attrs:{headers:t.getDataItemHeaders("app-table-col-actions")}},[t.app.error?e("div",{staticClass:"warning"},[t._v("\n\t\t\t"+t._s(t.app.error)+"\n\t\t")]):t._e(),t._v(" "),t.isLoading?e("div",{staticClass:"icon icon-loading-small"}):t._e(),t._v(" "),t.app.update?e("NcButton",{attrs:{type:"primary",disabled:t.installing||t.isLoading},on:{click:function(e){return e.stopPropagation(),t.update(t.app.id)}}},[t._v("\n\t\t\t"+t._s(t.t("settings","Update to {update}",{update:t.app.update}))+"\n\t\t")]):t._e(),t._v(" "),t.app.canUnInstall?e("NcButton",{staticClass:"uninstall",attrs:{type:"tertiary",disabled:t.installing||t.isLoading},on:{click:function(e){return e.stopPropagation(),t.remove(t.app.id)}}},[t._v("\n\t\t\t"+t._s(t.t("settings","Remove"))+"\n\t\t")]):t._e(),t._v(" "),t.app.active?e("NcButton",{attrs:{disabled:t.installing||t.isLoading},on:{click:function(e){return e.stopPropagation(),t.disable(t.app.id)}}},[t._v("\n\t\t\t"+t._s(t.t("settings","Disable"))+"\n\t\t")]):t._e(),t._v(" "),t.app.active||!t.app.canInstall&&!t.app.isCompatible?t.app.active?t._e():e("NcButton",{attrs:{title:t.forceEnableButtonTooltip,"aria-label":t.forceEnableButtonTooltip,type:"secondary",disabled:t.installing||t.isLoading},on:{click:function(e){return e.stopPropagation(),t.forceEnable(t.app.id)}}},[t._v("\n\t\t\t"+t._s(t.forceEnableButtonText)+"\n\t\t")]):e("NcButton",{attrs:{title:t.enableButtonTooltip,"aria-label":t.enableButtonTooltip,type:"primary",disabled:!t.app.canInstall||t.installing||t.isLoading},on:{click:function(e){return e.stopPropagation(),t.enable(t.app.id)}}},[t._v("\n\t\t\t"+t._s(t.enableButtonText)+"\n\t\t")])],1)],1)}),[],!1,null,"73d4f990",null).exports;var R=n(98959);function W(t){if(!Number.isInteger(t)&&t!==Number.POSITIVE_INFINITY||!(t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const e=new R.A;let a=0;const n=async(t,n,s)=>{a++;const o=(async()=>t(...s))();n(o);try{await o}catch{}a--,e.size>0&&e.dequeue()()},s=function(s){for(var o=arguments.length,r=new Array(o>1?o-1:0),i=1;i<o;i++)r[i-1]=arguments[i];return new Promise((o=>{((s,o,r)=>{e.enqueue(n.bind(void 0,s,o,r)),(async()=>{await Promise.resolve(),a<t&&e.size>0&&e.dequeue()()})()})(s,o,r)}))};return Object.defineProperties(s,{activeCount:{get:()=>a},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),s}var G=n(96763);const U={name:"AppList",components:{AppItem:L,NcButton:f.A},props:{category:{type:String,required:!0}},data:()=>({search:""}),computed:{counter(){return this.apps.filter((t=>t.update)).length},loading(){return this.$store.getters.loading("list")},hasPendingUpdate(){return this.apps.filter((t=>t.update)).length>0},showUpdateAll(){return this.hasPendingUpdate&&this.useListView},apps(){const t=this.$store.getters.getAllApps.filter((t=>-1!==t.name.toLowerCase().search(this.search.toLowerCase()))).sort((function(t,e){const a=""+(t.active?0:1)+(t.update?0:1)+t.name,n=""+(e.active?0:1)+(e.update?0:1)+e.name;return OC.Util.naturalSortCompare(a,n)}));return"installed"===this.category?t.filter((t=>t.installed)):"enabled"===this.category?t.filter((t=>t.active&&t.installed)):"disabled"===this.category?t.filter((t=>!t.active&&t.installed)):"app-bundles"===this.category?t.filter((t=>t.bundles)):"updates"===this.category?t.filter((t=>t.update)):"supported"===this.category?t.filter((t=>300===t.level)):"featured"===this.category?t.filter((t=>200===t.level)):t.filter((t=>t.appstore&&void 0!==t.category&&(t.category===this.category||t.category.indexOf(this.category)>-1)))},bundles(){return this.$store.getters.getAppBundles.filter((t=>this.bundleApps(t.id).length>0))},bundleApps:()=>function(t){return this.$store.getters.getAllApps.filter((e=>void 0!==e.bundleIds&&e.bundleIds.includes(t)))},searchApps(){return""===this.search?[]:this.$store.getters.getAllApps.filter((t=>-1!==t.name.toLowerCase().search(this.search.toLowerCase())&&!this.apps.find((e=>e.id===t.id))))},useAppStoreView(){return!this.useListView&&!this.useBundleView},useListView(){return"installed"===this.category||"enabled"===this.category||"disabled"===this.category||"updates"===this.category||"featured"===this.category||"supported"===this.category},useBundleView(){return"app-bundles"===this.category},allBundlesEnabled(){return t=>0===this.bundleApps(t).filter((t=>!t.active)).length},bundleToggleText(){return e=>this.allBundlesEnabled(e)?t("settings","Disable all"):t("settings","Download and enable all")}},beforeDestroy(){(0,u.al)("nextcloud:unified-search.search",this.setSearch),(0,u.al)("nextcloud:unified-search.reset",this.resetSearch)},beforeCreate(){(0,u.B1)("nextcloud:unified-search.search",this.setSearch),(0,u.B1)("nextcloud:unified-search.reset",this.resetSearch)},methods:{setSearch(t){this.search=t},resetSearch(){this.search=""},toggleBundle(t){return this.allBundlesEnabled(t)?this.disableBundle(t):this.enableBundle(t)},enableBundle(t){const e=this.bundleApps(t).map((t=>t.id));this.$store.dispatch("enableApp",{appId:e,groups:[]}).catch((t=>{G.error(t),OC.Notification.show(t)}))},disableBundle(t){const e=this.bundleApps(t).map((t=>t.id));this.$store.dispatch("disableApp",{appId:e,groups:[]}).catch((t=>{OC.Notification.show(t)}))},updateAll(){const t=W(1);this.apps.filter((t=>t.update)).map((e=>t((()=>this.$store.dispatch("updateApp",{appId:e.id})))))}}};var M=n(87871),z={};z.styleTagTransform=P(),z.setAttributes=T(),z.insert=w().bind(null,"head"),z.domAPI=N(),z.insertStyleElement=E(),y()(M.A,z),M.A&&M.A.locals&&M.A.locals;const F=(0,m.A)(U,(function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"app-content-inner"}},[e("div",{staticClass:"apps-list",class:{installed:t.useBundleView||t.useListView,store:t.useAppStoreView},attrs:{id:"apps-list"}},[t.useListView?[t.showUpdateAll?e("div",{staticClass:"toolbar"},[t._v("\n\t\t\t\t"+t._s(t.n("settings","%n app has an update available","%n apps have an update available",t.counter))+"\n\t\t\t\t"),t.showUpdateAll?e("NcButton",{attrs:{id:"app-list-update-all",type:"primary"},on:{click:t.updateAll}},[t._v("\n\t\t\t\t\t"+t._s(t.n("settings","Update","Update all",t.counter))+"\n\t\t\t\t")]):t._e()],1):t._e(),t._v(" "),t.showUpdateAll?t._e():e("div",{staticClass:"toolbar"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","All apps are up-to-date."))+"\n\t\t\t")]),t._v(" "),e("transition-group",{staticClass:"apps-list-container",attrs:{name:"app-list",tag:"table"}},[e("tr",{key:"app-list-view-header",staticClass:"apps-header"},[e("th",{staticClass:"app-image"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Icon")))])]),t._v(" "),e("th",{staticClass:"app-name"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Name")))])]),t._v(" "),e("th",{staticClass:"app-version"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Version")))])]),t._v(" "),e("th",{staticClass:"app-level"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Level")))])]),t._v(" "),e("th",{staticClass:"actions"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Actions")))])])]),t._v(" "),t._l(t.apps,(function(a){return e("AppItem",{key:a.id,attrs:{app:a,category:t.category}})}))],2)]:t._e(),t._v(" "),t.useBundleView?e("table",{staticClass:"apps-list-container"},[e("tr",{key:"app-list-view-header",staticClass:"apps-header"},[e("th",{staticClass:"app-image",attrs:{id:"app-table-col-icon"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Icon")))])]),t._v(" "),e("th",{staticClass:"app-name",attrs:{id:"app-table-col-name"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Name")))])]),t._v(" "),e("th",{staticClass:"app-version",attrs:{id:"app-table-col-version"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Version")))])]),t._v(" "),e("th",{staticClass:"app-level",attrs:{id:"app-table-col-level"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Level")))])]),t._v(" "),e("th",{staticClass:"actions",attrs:{id:"app-table-col-actions"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Actions")))])])]),t._v(" "),t._l(t.bundles,(function(a){return[e("tr",{key:a.id},[e("th",{attrs:{id:"app-table-rowgroup-".concat(a.id),colspan:"5",scope:"rowgroup"}},[e("div",{staticClass:"app-bundle-heading"},[e("span",{staticClass:"app-bundle-header"},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(a.name)+"\n\t\t\t\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"secondary"},on:{click:function(e){return t.toggleBundle(a.id)}}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("settings",t.bundleToggleText(a.id)))+"\n\t\t\t\t\t\t\t")])],1)])]),t._v(" "),t._l(t.bundleApps(a.id),(function(n){return e("AppItem",{key:a.id+n.id,attrs:{"use-bundle-view":!0,headers:"app-table-rowgroup-".concat(a.id),app:n,category:t.category}})}))]}))],2):t._e(),t._v(" "),t.useAppStoreView?e("ul",{staticClass:"apps-store-view"},t._l(t.apps,(function(a){return e("AppItem",{key:a.id,attrs:{app:a,category:t.category,"list-view":!1}})})),1):t._e()],2),t._v(" "),e("div",{staticClass:"apps-list installed",attrs:{id:"apps-list-search"}},[e("div",{staticClass:"apps-list-container"},[""!==t.search&&t.searchApps.length>0?[e("div",{staticClass:"section"},[e("div"),t._v(" "),e("td",{attrs:{colspan:"5"}},[e("h2",[t._v(t._s(t.t("settings","Results from other categories")))])])]),t._v(" "),t._l(t.searchApps,(function(a){return e("AppItem",{key:a.id,attrs:{app:a,category:t.category}})}))]:t._e()],2)]),t._v(" "),""===t.search||t.loading||0!==t.searchApps.length||0!==t.apps.length?t._e():e("div",{staticClass:"emptycontent emptycontent-search",attrs:{id:"apps-list-empty"}},[e("div",{staticClass:"icon-settings-dark",attrs:{id:"app-list-empty-icon"}}),t._v(" "),e("h2",[t._v(t._s(t.t("settings","No apps found for your version")))])]),t._v(" "),e("div",{attrs:{id:"searchresults"}})])}),[],!1,null,"778d0544",null).exports,Y=(0,s.pM)({__name:"AppStore",setup(t){const e=(0,r.lq)(),a=(0,p.T)(),n=(0,s.EW)((()=>{var t,a;return null!==(t=null===(a=e.params)||void 0===a?void 0:a.category)&&void 0!==t?t:"installed"})),u=(0,s.EW)((()=>{var t;if(n.value in i.l)return i.l[n.value];const e=a.getCategoryById(n.value);return null!==(t=null==e?void 0:e.displayName)&&void 0!==t?t:(0,o.Tl)("settings","Apps")}));(0,s.wB)([u],(()=>{window.document.title="".concat(u.value," - Apps - Nextcloud")}));const A=(0,s.nI)(),g=(0,s.EW)((()=>(null==A?void 0:A.proxy).$store.getters.loading("list")));return(0,s.KC)((()=>{(null==A?void 0:A.proxy).$store.dispatch("getCategories",{shouldRefetchCategories:!0}),(null==A?void 0:A.proxy).$store.dispatch("getAllApps")})),{__sfc:!0,route:e,store:a,currentCategory:n,pageHeading:u,instance:A,isLoading:g,t:o.Tl,NcAppContent:l.A,NcEmptyContent:c.A,NcLoadingIcon:d.A,AppList:F}}});var H=n(68102),$={};$.styleTagTransform=P(),$.setAttributes=T(),$.insert=w().bind(null,"head"),$.domAPI=N(),$.insertStyleElement=E(),y()(H.A,$),H.A&&H.A.locals&&H.A.locals;const V=(0,m.A)(Y,(function(){var t=this,e=t._self._c,a=t._self._setupProxy;return e(a.NcAppContent,{staticClass:"app-settings-content",attrs:{"page-heading":a.pageHeading}},[a.isLoading?e(a.NcEmptyContent,{staticClass:"empty-content__loading",attrs:{name:a.t("settings","Loading app list")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcLoadingIcon,{attrs:{size:64}})]},proxy:!0}],null,!1,929808040)}):e(a.AppList,{attrs:{category:a.currentCategory}})],1)}),[],!1,null,"2ff66e2c",null).exports},72757:(t,e,a)=>{a.r(e),a.d(e,{default:()=>E});var n=a(85471),s=a(38613),o=a(53334),r=a(92973),i=a(846),p=a(42530),l=a(52439),c=a(14645),d=a(70563),u=a(6695),A=a(46222),g=a(86438);const v=(0,n.pM)({__name:"AppStoreNavigation",setup(t){const e=(0,s.C)("settings","appstoreUpdateCount",0),a=(0,s.C)("settings","appstoreEnabled",!0),v=(0,s.C)("settings","appstoreDeveloperDocs",""),h=(0,i.T)(),m=(0,n.EW)((()=>h.categories)),C=(0,n.EW)((()=>h.loading.categories)),f=(0,n.EW)((()=>void 0!==h.apps.find((t=>{let{level:e}=t;return 300===e}))));return(0,n.KC)((()=>{h.loadCategories(),h.loadApps()})),{__sfc:!0,updateCount:e,appstoreEnabled:a,developerDocsUrl:v,store:h,categories:m,categoriesLoading:C,isSubscribed:f,t:o.Tl,APPS_SECTION_ENUM:r.l,NcAppNavigation:p.A,NcAppNavigationItem:l.A,NcAppNavigationSpacer:c.A,NcCounterBubble:d.A,NcIconSvgWrapper:u.A,NcLoadingIcon:A.A,APPSTORE_CATEGORY_ICONS:g.A}}});var h=a(85072),m=a.n(h),C=a(97825),f=a.n(C),b=a(77659),_=a.n(b),y=a(55056),x=a.n(y),N=a(10540),S=a.n(N),w=a(41113),I=a.n(w),T=a(89021),k={};k.styleTagTransform=I(),k.setAttributes=x(),k.insert=_().bind(null,"head"),k.domAPI=f(),k.insertStyleElement=S(),m()(T.A,k),T.A&&T.A.locals&&T.A.locals;const E=(0,a(14486).A)(v,(function(){var t=this,e=t._self._c,a=t._self._setupProxy;return e(a.NcAppNavigation,{attrs:{"aria-label":a.t("settings","Apps")},scopedSlots:t._u([{key:"list",fn:function(){return[e(a.NcAppNavigationItem,{attrs:{id:"app-category-your-apps",to:{name:"apps"},exact:!0,name:a.APPS_SECTION_ENUM.installed},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.installed}})]},proxy:!0}])}),t._v(" "),e(a.NcAppNavigationItem,{attrs:{id:"app-category-enabled",to:{name:"apps-category",params:{category:"enabled"}},name:a.APPS_SECTION_ENUM.enabled},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.enabled}})]},proxy:!0}])}),t._v(" "),e(a.NcAppNavigationItem,{attrs:{id:"app-category-disabled",to:{name:"apps-category",params:{category:"disabled"}},name:a.APPS_SECTION_ENUM.disabled},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.disabled}})]},proxy:!0}])}),t._v(" "),a.updateCount>0?e(a.NcAppNavigationItem,{attrs:{id:"app-category-updates",to:{name:"apps-category",params:{category:"updates"}},name:a.APPS_SECTION_ENUM.updates},scopedSlots:t._u([{key:"counter",fn:function(){return[e(a.NcCounterBubble,[t._v(t._s(a.updateCount))])]},proxy:!0},{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.updates}})]},proxy:!0}],null,!1,2824895104)}):t._e(),t._v(" "),e(a.NcAppNavigationItem,{attrs:{id:"app-category-your-bundles",to:{name:"apps-category",params:{category:"app-bundles"}},name:a.APPS_SECTION_ENUM["app-bundles"]},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.bundles}})]},proxy:!0}])}),t._v(" "),e(a.NcAppNavigationSpacer),t._v(" "),a.appstoreEnabled&&a.categoriesLoading?e("li",{staticClass:"categories--loading"},[e(a.NcLoadingIcon,{attrs:{size:20,"aria-label":a.t("settings","Loading categories")}})],1):a.appstoreEnabled&&!a.categoriesLoading?[a.isSubscribed?e(a.NcAppNavigationItem,{attrs:{id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"}},name:a.APPS_SECTION_ENUM.supported},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.supported}})]},proxy:!0}],null,!1,613663011)}):t._e(),t._v(" "),e(a.NcAppNavigationItem,{attrs:{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"}},name:a.APPS_SECTION_ENUM.featured},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.APPSTORE_CATEGORY_ICONS.featured}})]},proxy:!0}])}),t._v(" "),t._l(a.categories,(function(n){return e(a.NcAppNavigationItem,{key:n.id,attrs:{id:"app-category-".concat(n.id),name:n.displayName,to:{name:"apps-category",params:{category:n.id}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:n.icon}})]},proxy:!0}],null,!0)})}))]:t._e(),t._v(" "),e(a.NcAppNavigationItem,{attrs:{id:"app-developer-docs",name:a.t("settings","Developer documentation ↗"),href:a.developerDocsUrl}})]},proxy:!0}])})}),[],!1,null,"c4d7352c",null).exports},20615:(e,a,n)=>{n.r(a),n.d(a,{default:()=>at});var s=n(85471),o=n(53334),r=n(24387),i=n(846),p=n(77650),l=n(6695),c=n(15769),d=n(9165),u=n(18503),A=n(60023),g=n(42838),v=n.n(g);const h={name:"Markdown",props:{text:{type:String,default:""},minHeading:{type:Number,default:1}},computed:{renderMarkdown(){const t=new A.xI.Renderer;return t.link=function(t,e,a){let n;try{n=decodeURIComponent(unescape(t)).replace(/[^\w:]/g,"").toLowerCase()}catch(t){return""}if(0!==n.indexOf("http:")&&0!==n.indexOf("https:"))return"";let s='<a href="'+t+'" rel="noreferrer noopener"';return e&&(s+=' title="'+e+'"'),s+=">"+a+"</a>",s},t.heading=(t,e)=>(e=Math.min(6,e+(this.minHeading-1)),"<h".concat(e,">").concat(t,"</h").concat(e,">")),t.image=function(t,e,a){return a||e},t.blockquote=function(t){return t},v().sanitize((0,A.xI)(this.text.trim(),{renderer:t,gfm:!1,highlight:!1,tables:!1,breaks:!1,pedantic:!1,sanitize:!0,smartLists:!0,smartypants:!1}),{SAFE_FOR_JQUERY:!0,ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","strong","p","a","ul","ol","li","em","del","blockquote"]})}}};var m=n(85072),C=n.n(m),f=n(97825),b=n.n(f),_=n(77659),y=n.n(_),x=n(55056),N=n.n(x),S=n(10540),w=n.n(S),I=n(41113),T=n.n(I),k=n(3323),E={};E.styleTagTransform=T(),E.setAttributes=N(),E.insert=y().bind(null,"head"),E.domAPI=b(),E.insertStyleElement=w(),C()(k.A,E),k.A&&k.A.locals&&k.A.locals;var B=n(14486);const P=(0,B.A)(h,(function(){var t=this;return(0,t._self._c)("div",{staticClass:"settings-markdown",domProps:{innerHTML:t._s(t.renderMarkdown)}})}),[],!1,null,"7c5c8e59",null).exports,D=(0,s.pM)({__name:"AppDescriptionTab",props:{app:null},setup:t=>({__sfc:!0,mdiTextShort:d.azb,t:o.Tl,NcAppSidebarTab:u.A,NcIconSvgWrapper:l.A,Markdown:P})});var O=n(10321),L={};L.styleTagTransform=T(),L.setAttributes=N(),L.insert=y().bind(null,"head"),L.domAPI=b(),L.insertStyleElement=w(),C()(O.A,L),O.A&&O.A.locals&&O.A.locals;const R=(0,B.A)(D,(function(){var t=this,e=t._self._c,a=t._self._setupProxy;return e(a.NcAppSidebarTab,{attrs:{id:"desc",name:a.t("settings","Description"),order:0},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.mdiTextShort}})]},proxy:!0}])},[t._v(" "),e("div",{staticClass:"app-description"},[e(a.Markdown,{attrs:{text:t.app.description,"min-heading":4}})],1)])}),[],!1,null,"fccce5ae",null).exports;var W=n(9518),G=n(4604),U=n(67607),M=n(45834),z=n(96763);const F={name:"AppDetailsTab",components:{NcAppSidebarTab:u.A,NcButton:W.A,NcDateTime:G.A,NcIconSvgWrapper:l.A,NcSelect:U.A},mixins:[M.A],props:{app:{type:Object,required:!0}},setup:()=>({store:(0,i.T)(),mdiBug:d.xhV,mdiFeatureSearch:d.NZe,mdiStar:d.ZL5,mdiTextBox:d.n1r,mdiTooltipQuestion:d.iNF}),data:()=>({groupCheckedAppsData:!1}),computed:{lastModified(){var t,e,a;return null!==(t=(null!==(e=null===(a=this.app.appstoreData)||void 0===a?void 0:a.releases)&&void 0!==e?e:[]).map((t=>{let{lastModified:e}=t;return Date.parse(e)})).sort().at(0))&&void 0!==t?t:null},appAuthors(){if(z.warn(this.app),!this.app)return"";const t=t=>t["@value"]?t["@value"]:t;return(Array.isArray(this.app.author)?this.app.author.map(t):[t(this.app.author)]).sort(((t,e)=>t.split(" ").at(-1).localeCompare(e.split(" ").at(-1)))).join(", ")},appstoreUrl(){return"https://apps.nextcloud.com/apps/".concat(this.app.id)},externalResources(){const e=[];return this.app.internal||e.push({id:"appstore",href:this.appstoreUrl,label:t("settings","View in store")}),this.app.website&&e.push({id:"website",href:this.app.website,label:t("settings","Visit website")}),this.app.documentation&&(this.app.documentation.user&&e.push({id:"doc-user",href:this.app.documentation.user,label:t("settings","Usage documentation")}),this.app.documentation.admin&&e.push({id:"doc-admin",href:this.app.documentation.admin,label:t("settings","Admin documentation")}),this.app.documentation.developer&&e.push({id:"doc-developer",href:this.app.documentation.developer,label:t("settings","Developer documentation")})),e},appCategories(){return[this.app.category].flat().map((t=>{var e,a;return null!==(e=null===(a=this.store.getCategoryById(t))||void 0===a?void 0:a.displayName)&&void 0!==e?e:t})).join(", ")},rateAppUrl(){return"".concat(this.appstoreUrl,"#comments")},appGroups(){return this.app.groups.map((t=>({id:t,name:t})))},groups(){return this.$store.getters.getGroups.filter((t=>"disabled"!==t.id)).sort(((t,e)=>t.name.localeCompare(e.name)))}},mounted(){this.app.groups.length>0&&(this.groupCheckedAppsData=!0)}};var Y=n(52341),H={};H.styleTagTransform=T(),H.setAttributes=N(),H.insert=y().bind(null,"head"),H.domAPI=b(),H.insertStyleElement=w(),C()(Y.A,H),Y.A&&Y.A.locals&&Y.A.locals;const $=(0,B.A)(F,(function(){var t,e,a,n=this,s=n._self._c;return s("NcAppSidebarTab",{attrs:{id:"details",name:n.t("settings","Details"),order:1},scopedSlots:n._u([{key:"icon",fn:function(){return[s("NcIconSvgWrapper",{attrs:{path:n.mdiTextBox}})]},proxy:!0}])},[n._v(" "),s("div",{staticClass:"app-details"},[s("div",{staticClass:"app-details__actions"},[n.app.active&&n.canLimitToGroups(n.app)?s("div",{staticClass:"app-details__actions-groups"},[s("input",{directives:[{name:"model",rawName:"v-model",value:n.groupCheckedAppsData,expression:"groupCheckedAppsData"}],staticClass:"groups-enable__checkbox checkbox",attrs:{id:"groups_enable_".concat(n.app.id),type:"checkbox"},domProps:{value:n.app.id,checked:Array.isArray(n.groupCheckedAppsData)?n._i(n.groupCheckedAppsData,n.app.id)>-1:n.groupCheckedAppsData},on:{change:[function(t){var e=n.groupCheckedAppsData,a=t.target,s=!!a.checked;if(Array.isArray(e)){var o=n.app.id,r=n._i(e,o);a.checked?r<0&&(n.groupCheckedAppsData=e.concat([o])):r>-1&&(n.groupCheckedAppsData=e.slice(0,r).concat(e.slice(r+1)))}else n.groupCheckedAppsData=s},n.setGroupLimit]}}),n._v(" "),s("label",{attrs:{for:"groups_enable_".concat(n.app.id)}},[n._v(n._s(n.t("settings","Limit to groups")))]),n._v(" "),s("input",{staticClass:"group_select",attrs:{type:"hidden",title:n.t("settings","All"),value:""}}),n._v(" "),s("br"),n._v(" "),s("label",{attrs:{for:"limitToGroups"}},[s("span",[n._v(n._s(n.t("settings","Limit app usage to groups")))])]),n._v(" "),n.isLimitedToGroups(n.app)?s("NcSelect",{attrs:{"input-id":"limitToGroups",options:n.groups,value:n.appGroups,limit:5,label:"name",multiple:!0,"close-on-select":!1},on:{"option:selected":n.addGroupLimitation,"option:deselected":n.removeGroupLimitation,search:n.asyncFindGroup}},[s("span",{attrs:{slot:"noResult"},slot:"noResult"},[n._v(n._s(n.t("settings","No results")))])]):n._e()],1):n._e(),n._v(" "),s("div",{staticClass:"app-details__actions-manage"},[n.app.update?s("input",{staticClass:"update primary",attrs:{type:"button",value:n.t("settings","Update to {version}",{version:n.app.update}),disabled:n.installing||n.isLoading},on:{click:function(t){return n.update(n.app.id)}}}):n._e(),n._v(" "),n.app.canUnInstall?s("input",{staticClass:"uninstall",attrs:{type:"button",value:n.t("settings","Remove"),disabled:n.installing||n.isLoading},on:{click:function(t){return n.remove(n.app.id)}}}):n._e(),n._v(" "),n.app.active?s("input",{staticClass:"enable",attrs:{type:"button",value:n.t("settings","Disable"),disabled:n.installing||n.isLoading},on:{click:function(t){return n.disable(n.app.id)}}}):n._e(),n._v(" "),n.app.active||!n.app.canInstall&&!n.app.isCompatible?n.app.active||n.app.canInstall?n._e():s("input",{staticClass:"enable force",attrs:{title:n.forceEnableButtonTooltip,"aria-label":n.forceEnableButtonTooltip,type:"button",value:n.forceEnableButtonText,disabled:n.installing||n.isLoading},on:{click:function(t){return n.forceEnable(n.app.id)}}}):s("input",{staticClass:"enable primary",attrs:{title:n.enableButtonTooltip,"aria-label":n.enableButtonTooltip,type:"button",value:n.enableButtonText,disabled:!n.app.canInstall||n.installing||n.isLoading},on:{click:function(t){return n.enable(n.app.id)}}})])]),n._v(" "),s("ul",{staticClass:"app-details__dependencies"},[n.app.missingMinOwnCloudVersion?s("li",[n._v("\n\t\t\t\t"+n._s(n.t("settings","This app has no minimum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t\t")]):n._e(),n._v(" "),n.app.missingMaxOwnCloudVersion?s("li",[n._v("\n\t\t\t\t"+n._s(n.t("settings","This app has no maximum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t\t")]):n._e(),n._v(" "),n.app.canInstall?n._e():s("li",[n._v("\n\t\t\t\t"+n._s(n.t("settings","This app cannot be installed because the following dependencies are not fulfilled:"))+"\n\t\t\t\t"),s("ul",{staticClass:"missing-dependencies"},n._l(n.app.missingDependencies,(function(t,e){return s("li",{key:e},[n._v("\n\t\t\t\t\t\t"+n._s(t)+"\n\t\t\t\t\t")])})),0)])]),n._v(" "),n.lastModified?s("div",{staticClass:"app-details__section"},[s("h4",[n._v("\n\t\t\t\t"+n._s(n.t("settings","Latest updated"))+"\n\t\t\t")]),n._v(" "),s("NcDateTime",{attrs:{timestamp:n.lastModified}})],1):n._e(),n._v(" "),s("div",{staticClass:"app-details__section"},[s("h4",[n._v("\n\t\t\t\t"+n._s(n.t("settings","Author"))+"\n\t\t\t")]),n._v(" "),s("p",{staticClass:"app-details__authors"},[n._v("\n\t\t\t\t"+n._s(n.appAuthors)+"\n\t\t\t")])]),n._v(" "),s("div",{staticClass:"app-details__section"},[s("h4",[n._v("\n\t\t\t\t"+n._s(n.t("settings","Categories"))+"\n\t\t\t")]),n._v(" "),s("p",[n._v("\n\t\t\t\t"+n._s(n.appCategories)+"\n\t\t\t")])]),n._v(" "),n.externalResources.length>0?s("div",{staticClass:"app-details__section"},[s("h4",[n._v(n._s(n.t("settings","Resources")))]),n._v(" "),s("ul",{staticClass:"app-details__documentation",attrs:{"aria-label":n.t("settings","Documentation")}},n._l(n.externalResources,(function(t){return s("li",{key:t.id},[s("a",{staticClass:"appslink",attrs:{href:t.href,target:"_blank",rel:"noreferrer noopener"}},[n._v("\n\t\t\t\t\t\t"+n._s(t.label)+" ↗\n\t\t\t\t\t")])])})),0)]):n._e(),n._v(" "),s("div",{staticClass:"app-details__section"},[s("h4",[n._v(n._s(n.t("settings","Interact")))]),n._v(" "),s("div",{staticClass:"app-details__interact"},[s("NcButton",{attrs:{disabled:!n.app.bugs,href:null!==(t=n.app.bugs)&&void 0!==t?t:"#","aria-label":n.t("settings","Report a bug"),title:n.t("settings","Report a bug")},scopedSlots:n._u([{key:"icon",fn:function(){return[s("NcIconSvgWrapper",{attrs:{path:n.mdiBug}})]},proxy:!0}])}),n._v(" "),s("NcButton",{attrs:{disabled:!n.app.bugs,href:null!==(e=n.app.bugs)&&void 0!==e?e:"#","aria-label":n.t("settings","Request feature"),title:n.t("settings","Request feature")},scopedSlots:n._u([{key:"icon",fn:function(){return[s("NcIconSvgWrapper",{attrs:{path:n.mdiFeatureSearch}})]},proxy:!0}])}),n._v(" "),null!==(a=n.app.appstoreData)&&void 0!==a&&a.discussion?s("NcButton",{attrs:{href:n.app.appstoreData.discussion,"aria-label":n.t("settings","Ask questions or discuss"),title:n.t("settings","Ask questions or discuss")},scopedSlots:n._u([{key:"icon",fn:function(){return[s("NcIconSvgWrapper",{attrs:{path:n.mdiTooltipQuestion}})]},proxy:!0}],null,!1,1288192462)}):n._e(),n._v(" "),n.app.internal?n._e():s("NcButton",{attrs:{href:n.rateAppUrl,"aria-label":n.t("settings","Rate the app"),title:n.t("settings","Rate")},scopedSlots:n._u([{key:"icon",fn:function(){return[s("NcIconSvgWrapper",{attrs:{path:n.mdiStar}})]},proxy:!0}],null,!1,422450625)})],1)])])])}),[],!1,null,"59b4cf6b",null).exports,V=(0,s.pM)({__name:"AppReleasesTab",props:{app:null},setup(t){const e=t,a=(0,s.EW)((()=>{var t,a;return Object.values(null!==(t=null===(a=e.app.releases[0])||void 0===a?void 0:a.translations)&&void 0!==t?t:{}).some((t=>{let{changelog:e}=t;return!!e}))}));return{__sfc:!0,props:e,hasChangelog:a,createChangelogFromRelease:t=>{var e,a,n,s;return null!==(e=null!==(a=null===(n=t.translations)||void 0===n||null===(n=n[(0,o.Z0)()])||void 0===n?void 0:n.changelog)&&void 0!==a?a:null===(s=t.translations)||void 0===s||null===(s=s.en)||void 0===s?void 0:s.changelog)&&void 0!==e?e:""},mdiClockFast:d.NWU,t:o.Tl,NcAppSidebarTab:u.A,NcIconSvgWrapper:l.A,Markdown:P}}});var j=n(38739),q={};q.styleTagTransform=T(),q.setAttributes=N(),q.insert=y().bind(null,"head"),q.domAPI=b(),q.insertStyleElement=w(),C()(j.A,q),j.A&&j.A.locals&&j.A.locals;const Q=(0,B.A)(V,(function(){var t=this,e=t._self._c,a=t._self._setupProxy;return a.hasChangelog?e(a.NcAppSidebarTab,{attrs:{id:"changelog",name:a.t("settings","Changelog"),order:2},scopedSlots:t._u([{key:"icon",fn:function(){return[e(a.NcIconSvgWrapper,{attrs:{path:a.mdiClockFast,size:24}})]},proxy:!0}],null,!1,1849836872)},[t._v(" "),t._l(t.app.releases,(function(n){return e("div",{key:n.version,staticClass:"app-sidebar-tabs__release"},[e("h2",[t._v(t._s(n.version))]),t._v(" "),e(a.Markdown,{staticClass:"app-sidebar-tabs__release-text",attrs:{text:a.createChangelogFromRelease(n)}})],1)}))],2):t._e()}),[],!1,null,"9da99928",null).exports;var K=n(63358),J=n(86438),Z=n(36620);const X=(0,s.pM)({__name:"AppStoreSidebar",setup(t){const e=(0,r.lq)(),a=(0,r.rd)(),n=(0,i.T)(),u=(0,s.EW)((()=>{var t;return null!==(t=e.params.id)&&void 0!==t?t:""})),A=(0,s.EW)((()=>n.getAppById(u.value))),g=(0,s.EW)((()=>{var t;return(null===(t=A.value.appstoreData)||void 0===t?void 0:t.ratingNumOverall)>5})),v=(0,s.EW)((()=>{var t,e,a;return(null===(t=A.value.appstoreData)||void 0===t?void 0:t.ratingNumRecent)>5?A.value.appstoreData.ratingRecent:null!==(e=null===(a=A.value.appstoreData)||void 0===a?void 0:a.ratingOverall)&&void 0!==e?e:.5})),h=(0,s.EW)((()=>A.value)),{appIcon:m}=function(t){const e=(0,s.KR)(null),a=(0,s.EW)((()=>{var e,a,n;const s=null!==(e=[null!==(a=null===(n=t.value)||void 0===n?void 0:n.category)&&void 0!==a?a:[]].flat().map((t=>J.A[t])).filter((t=>!!t)).at(0))&&void 0!==e?e:d.CZ3;return s?'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="'.concat(s,'" /></svg>'):null}));return(0,s.nT)((async()=>{var n;if(null!==(n=t.value)&&void 0!==n&&n.preview){e.value=null;try{const a=await window.fetch(t.value.preview),n=await a.blob(),s=await n.text();e.value=s.replaceAll(/fill="#(fff|ffffff)([a-z0-9]{1,2})?"/gi,'fill="currentColor"')}catch(t){e.value=a.value,Z.A.error("Could not load app icon",{error:t})}}else e.value=a.value})),{appIcon:e}}(A),C=(0,s.EW)((()=>A.value?(0,o.Tl)("settings","Version {version}, {license}-licensed",{version:A.value.version,license:A.value.licence.toString().toUpperCase()}):"")),f=(0,s.KR)("details");(0,s.wB)([A],(()=>{f.value="details"}));const b=(0,s.KR)(!1),_=(0,s.EW)((()=>{var t;return(null===(t=A.value)||void 0===t?void 0:t.screenshot)&&b.value})),y=()=>{var t,e;if(null!==(t=A.value)&&void 0!==t&&t.releases&&null!==(e=A.value)&&void 0!==e&&e.screenshot){const t=new Image;t.onload=()=>{b.value=!0},t.src=A.value.screenshot}};return(0,s.wB)([A],y),(0,s.sV)(y),{__sfc:!0,route:e,router:a,store:n,appId:u,app:A,hasRating:g,rating:v,showSidebar:h,appIcon:m,licenseText:C,activeTab:f,hideAppDetails:()=>{a.push({name:"apps-category",params:{category:e.params.category}})},screenshotLoaded:b,hasScreenshot:_,loadScreenshot:y,NcAppSidebar:p.N,NcIconSvgWrapper:l.A,AppScore:c.A,AppDescriptionTab:R,AppDetailsTab:$,AppReleasesTab:Q,AppLevelBadge:K.A}}});var tt=n(2380),et={};et.styleTagTransform=T(),et.setAttributes=N(),et.insert=y().bind(null,"head"),et.domAPI=b(),et.insertStyleElement=w(),C()(tt.A,et),tt.A&&tt.A.locals&&tt.A.locals;const at=(0,B.A)(X,(function(){var t=this,e=t._self._c,a=t._self._setupProxy;return a.showSidebar?e(a.NcAppSidebar,{staticClass:"app-sidebar",class:{"app-sidebar--with-screenshot":a.hasScreenshot},attrs:{active:a.activeTab,background:a.hasScreenshot?a.app.screenshot:void 0,compact:!a.hasScreenshot,name:a.app.name,title:a.app.name,subname:a.licenseText,subtitle:a.licenseText},on:{"update:active":function(t){a.activeTab=t},close:a.hideAppDetails},scopedSlots:t._u([a.hasScreenshot?null:{key:"header",fn:function(){var t;return[e(a.NcIconSvgWrapper,{staticClass:"app-sidebar__fallback-icon",attrs:{svg:null!==(t=a.appIcon)&&void 0!==t?t:"",size:64}})]},proxy:!0},{key:"description",fn:function(){return[e("div",{staticClass:"app-sidebar__badges"},[e(a.AppLevelBadge,{attrs:{level:a.app.level}}),t._v(" "),a.hasRating?e(a.AppScore,{attrs:{score:a.rating}}):t._e()],1)]},proxy:!0}],null,!0)},[t._v(" "),t._v(" "),e(a.AppDescriptionTab,{attrs:{app:a.app}}),t._v(" "),e(a.AppDetailsTab,{attrs:{app:a.app}}),t._v(" "),e(a.AppReleasesTab,{attrs:{app:a.app}})],1):t._e()}),[],!1,null,"ec35f1f8",null).exports}}]);
  3. //# sourceMappingURL=settings-apps-view-4529.js.map?v=d12a72b35a7693bcedf8