From 1d45beda0552b1268ef824cd589639dad389cc1a Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Sat, 21 Oct 2023 06:19:35 +0200 Subject: [PATCH] chore(assets): Re-compile assets Signed-off-by: Grigorii K. Shartsev --- dist/settings-apps-view-7418.js | 4 ++-- dist/settings-apps-view-7418.js.map | 2 +- dist/settings-vue-settings-apps-users-management.js | 4 ++-- dist/settings-vue-settings-apps-users-management.js.map | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dist/settings-apps-view-7418.js b/dist/settings-apps-view-7418.js index 3fa2634daa681..00c87e9347e0b 100644 --- a/dist/settings-apps-view-7418.js +++ b/dist/settings-apps-view-7418.js @@ -1,3 +1,3 @@ /*! For license information please see settings-apps-view-7418.js.LICENSE.txt */ -(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[7418],{55014:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-details[data-v-5be7cbf9]{padding:20px}.app-details__actions-manage[data-v-5be7cbf9]{display:flex}.app-details__actions-manage input[data-v-5be7cbf9]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__dependencies[data-v-5be7cbf9]{opacity:.7}.app-details__documentation[data-v-5be7cbf9]{padding-top:20px}.app-details__documentation a.appslink[data-v-5be7cbf9]{display:block}.app-details__description[data-v-5be7cbf9]{padding-top:20px}.force[data-v-5be7cbf9]{color:var(--color-error);border-color:var(--color-error);background:var(--color-main-background)}.force[data-v-5be7cbf9]:hover,.force[data-v-5be7cbf9]:active{color:var(--color-main-background);border-color:var(--color-error) !important;background:var(--color-error)}","",{version:3,sources:["webpack://./apps/settings/src/components/AppDetails.vue"],names:[],mappings:"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,oDACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAIH,4CACC,UAAA,CAED,6CACC,gBAAA,CACA,wDACC,aAAA,CAGF,2CACC,gBAAA,CAIF,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&__dependencies {\n\t\topacity: .7;\n\t}\n\t&__documentation {\n\t\tpadding-top: 20px;\n\t\ta.appslink {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\t&__description {\n\t\tpadding-top: 20px;\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:""}]),e.Z=i},16011:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-bundle-heading[data-v-62f0f115]{display:flex;align-items:center;margin:20px 10px 20px 0}.app-bundle-header[data-v-62f0f115]{margin:0 10px 0 50px;font-weight:bold;font-size:20px;line-height:30px;color:var(--color-text-light)}.apps-store-view[data-v-62f0f115]{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:""}]),e.Z=i},17125:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-icon[data-v-b8444884]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppItem.vue"],names:[],mappings:"AACA,2BACC,yCAAA",sourcesContent:["\n.app-icon {\n\tfilter: var(--background-invert-if-bright);\n}\n"],sourceRoot:""}]),e.Z=i},37702:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".settings-markdown[data-v-ffd9a2d6] h1,.settings-markdown[data-v-ffd9a2d6] h2,.settings-markdown[data-v-ffd9a2d6] h3,.settings-markdown[data-v-ffd9a2d6] h4,.settings-markdown[data-v-ffd9a2d6] h5,.settings-markdown[data-v-ffd9a2d6] h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.settings-markdown[data-v-ffd9a2d6] h1{font-size:36px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h2{font-size:28px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h3{font-size:24px}.settings-markdown[data-v-ffd9a2d6] h4{font-size:21px}.settings-markdown[data-v-ffd9a2d6] h5{font-size:17px}.settings-markdown[data-v-ffd9a2d6] h6{font-size:var(--default-font-size)}.settings-markdown[data-v-ffd9a2d6] 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-ffd9a2d6] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-ffd9a2d6] li{position:relative}.settings-markdown[data-v-ffd9a2d6] ul,.settings-markdown[data-v-ffd9a2d6] ol{padding-left:10px;margin-left:10px}.settings-markdown[data-v-ffd9a2d6] ul li{list-style-type:disc}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-ffd9a2d6] 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:""}]),e.Z=i},87926:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-sidebar[data-v-34c0c31f]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-34c0c31f]:not(.app-sidebar--without-background) .app-sidebar-header--compact .app-sidebar-header__figure{background-size:32px;filter:var(--background-invert-if-bright)}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-34c0c31f].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-34c0c31f].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-34c0c31f] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-34c0c31f]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-34c0c31f] h3{font-size:20px}.app-sidebar-tabs__release[data-v-34c0c31f] h4{font-size:17px}","",{version:3,sources:["webpack://./apps/settings/src/views/Apps.vue"],names:[],mappings:"AAIE,mIACC,qBAAA,CAGD,6HACC,oBAAA,CAEA,yCAAA,CAKD,4EACC,iBAAA,CAMD,0FACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,4GACC,UAAA,CACA,WAAA,CACA,oBAAA,CAQF,sFACC,2BAAA,CACA,WAAA,CACA,6BAAA,CACA,gBAAA,CAIF,0DAEC,aAAA,CACA,gEACC,UAAA,CAMH,8DACC,OAAA,CACA,UAAA,CAIA,+CACC,2CAAA,CAKA,+CACC,cAAA,CAED,+CACC,cAAA",sourcesContent:["\n.app-sidebar::v-deep {\n\t&:not(.app-sidebar--without-background) {\n\t\t// with full screenshot, let's fill the figure\n\t\t:not(.app-sidebar-header--compact) .app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\t\t// revert sidebar app icon so it is black\n\t\t.app-sidebar-header--compact .app-sidebar-header__figure {\n\t\t\tbackground-size: 32px;\n\n\t\t\tfilter: var(--background-invert-if-bright);\n\t\t}\n\t}\n\n\t.app-sidebar-header__description {\n\t\t.app-version {\n\t\t\tpadding-left: 10px;\n\t\t}\n\t}\n\n\t// default icon slot styling\n\t&.app-sidebar--without-background {\n\t\t.app-sidebar-header__figure {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\t&--default-app-icon {\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tbackground-size: 32px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: migrate to components\n\t.app-sidebar-header__desc {\n\t\t// allow multi line subtitle for the license\n\t\t.app-sidebar-header__subtitle {\n\t\t\toverflow: visible !important;\n\t\t\theight: auto;\n\t\t\twhite-space: normal !important;\n\t\t\tline-height: 16px;\n\t\t}\n\t}\n\n\t.app-sidebar-header__action {\n\t\t// align with tab content\n\t\tmargin: 0 20px;\n\t\tinput {\n\t\t\tmargin: 3px;\n\t\t}\n\t}\n}\n\n// Align the appNavigation toggle with the apps header toolbar\n.app-navigation::v-deep button.app-navigation-toggle {\n\ttop: 8px;\n\tright: -8px;\n}\n\n.app-sidebar-tabs__release {\n\th2 {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t// Overwrite changelog heading styles\n\t::v-deep {\n\t\th3 {\n\t\t\tfont-size: 20px;\n\t\t}\n\t\th4 {\n\t\t\tfont-size: 17px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=i},40837:function(e,n,s){"use strict";s.r(n),s.d(n,{default:function(){return qt}});var r=s(69183),a=s(20144),i=s(87369),o=s.n(i),l=s(56071),p=s(35534),c=s(41705),u=s(87875),d=s(88344),h=s(38298),g=s(93182),f=s(73743),m={name:"StarShootingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},b=s(51900),A=(0,b.Z)(m,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon star-shooting-icon",attrs:{"aria-hidden":!t.title,"aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M18.09 11.77L19.56 18.1L14 14.74L8.44 18.1L9.9 11.77L5 7.5L11.47 6.96L14 1L16.53 6.96L23 7.5L18.09 11.77M2 12.43C2.19 12.43 2.38 12.37 2.55 12.26L5.75 10.15L4.18 8.79L1.45 10.59C.989 10.89 .861 11.5 1.16 12C1.36 12.27 1.68 12.43 2 12.43M1.16 21.55C1.36 21.84 1.68 22 2 22C2.19 22 2.38 21.95 2.55 21.84L6.66 19.13L7 17.76L7.31 16.31L1.45 20.16C.989 20.47 .861 21.09 1.16 21.55M1.45 15.38C.989 15.68 .861 16.3 1.16 16.76C1.36 17.06 1.68 17.21 2 17.21C2.19 17.21 2.38 17.16 2.55 17.05L7.97 13.5L8.24 12.31L7.32 11.5L1.45 15.38Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,v=s(79753),k={name:"AppScore",props:["score"],computed:{scoreImage:function(){var t="rating/s"+Math.round(10*this.score)+".svg";return(0,v.imagePath)("core",t)}}},_=(0,b.Z)(k,(function(){return(0,this._self._c)("img",{staticClass:"app-score-image",attrs:{src:this.scoreImage}})}),[],!1,null,null,null).exports,x=s(64024),y=s(93664),w=function(){return y.Z.get((0,v.generateOcsUrl)("core/navigation",2)+"/apps?format=json").then((function(t){var e=t.data;200===e.ocs.meta.statuscode&&((0,r.j8)("nextcloud:app-menu.refresh",{apps:e.ocs.data}),window.dispatchEvent(new Event("resize")))}))},C={computed:{appGroups:function(){return this.app.groups.map((function(t){return{id:t,name:t}}))},installing:function(){return this.$store.getters.loading("install")},isLoading:function(){return this.app&&this.$store.getters.loading(this.app.id)},enableButtonText:function(){return this.app.needsDownload?t("settings","Download and enable"):t("settings","Enable")},forceEnableButtonText:function(){return this.app.needsDownload,t("settings","Allow untested app")},enableButtonTooltip:function(){return!!this.app.needsDownload&&t("settings","The app will be downloaded from the App Store")},forceEnableButtonTooltip:function(){var 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:function(){return{groupCheckedAppsData:!1}},mounted:function(){this.app&&this.app.groups&&this.app.groups.length>0&&(this.groupCheckedAppsData=!0)},methods:{asyncFindGroup:function(t){return this.$store.dispatch("getGroups",{search:t,limit:5,offset:0})},isLimitedToGroups:function(t){return!(!this.app.groups.length&&!this.groupCheckedAppsData)},setGroupLimit:function(){this.groupCheckedAppsData||this.$store.dispatch("enableApp",{appId:this.app.id,groups:[]})},canLimitToGroups:function(t){return!(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:function(t){var e=t.pop(),n=this.app.groups.concat([]).concat([e.id]);this.$store.dispatch("enableApp",{appId:this.app.id,groups:n})},removeGroupLimitation:function(t){var e=this.app.groups.concat([]),n=e.indexOf(t.id);n>-1&&e.splice(n,1),this.$store.dispatch("enableApp",{appId:this.app.id,groups:e})},forceEnable:function(t){this.$store.dispatch("forceEnableApp",{appId:t,groups:[]}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},enable:function(t){this.$store.dispatch("enableApp",{appId:t,groups:[]}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},disable:function(t){this.$store.dispatch("disableApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},remove:function(t){this.$store.dispatch("uninstallApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},install:function(t){this.$store.dispatch("enableApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},update:function(t){this.$store.dispatch("updateApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))}}},S={name:"SvgFilterMixin",data:function(){return{filterId:""}},computed:{filterUrl:function(){return"url(#".concat(this.filterId,")")}},mounted:function(){this.filterId="invertIconApps-"+Math.random().toString(36).substring(2)}},I=(0,b.Z)(S,void 0,void 0,!1,null,null,null).exports,L=s(57274);function T(t){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},T(t)}function $(){$=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function p(t,e,n,r){var a=e&&e.prototype instanceof d?e:d,i=Object.create(a.prototype),o=new C(r||[]);return s(i,"_invoke",{value:_(t,n,o)}),i}function c(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=p;var u={};function d(){}function h(){}function g(){}var f={};l(f,a,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(S([])));b&&b!==e&&n.call(b,a)&&(f=b);var A=g.prototype=d.prototype=Object.create(f);function v(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(s,a,i,o){var l=c(t[s],t,a);if("throw"!==l.type){var p=l.arg,u=p.value;return u&&"object"==T(u)&&n.call(u,"__await")?e.resolve(u.__await).then((function(t){r("next",t,i,o)}),(function(t){r("throw",t,i,o)})):e.resolve(u).then((function(t){p.value=t,i(p)}),(function(t){return r("throw",t,i,o)}))}o(l.arg)}var a;s(this,"_invoke",{value:function(t,n){function s(){return new e((function(e,s){r(t,n,e,s)}))}return a=a?a.then(s,s):s()}})}function _(t,e,n){var s="suspendedStart";return function(r,a){if("executing"===s)throw new Error("Generator is already running");if("completed"===s){if("throw"===r)throw a;return{value:void 0,done:!0}}for(n.method=r,n.arg=a;;){var i=n.delegate;if(i){var o=x(i,n);if(o){if(o===u)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===s)throw s="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);s="executing";var l=c(t,e,n);if("normal"===l.type){if(s=n.done?"completed":"suspendedYield",l.arg===u)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(s="completed",n.method="throw",n.arg=l.arg)}}}function x(t,e){var n=e.method,s=t.iterator[n];if(void 0===s)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),u;var r=c(s,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var a=r.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function y(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function w(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function C(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(y,this),this.reset(!0)}function S(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,r=function e(){for(;++s=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return s("end");if(a.tryLoc<=this.prev){var o=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(o&&l){if(this.prev=0;--s){var r=this.tryEntries[s];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),w(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var s=n.completion;if("throw"===s.type){var r=s.arg;w(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:S(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function D(t,e,n,s,r,a,i){try{var o=t[a](i),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(s,r)}var N={name:"AppItem",components:{AppScore:_,NcButton:L.Z},mixins:[C,I],props:{app:{},category:{},listView:{type:Boolean,default:!0},useBundleView:{type:Boolean,default:!1},headers:{type:String,default:null}},data:function(){return{isSelected:!1,scrolled:!1,screenshotLoaded:!1}},computed:{hasRating:function(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},dataItemTag:function(){return this.listView?"td":"div"}},watch:{"$route.params.id":function(t){this.isSelected=this.app.id===t}},mounted:function(){var t=this;if(this.isSelected=this.app.id===this.$route.params.id,this.app.releases&&this.app.screenshot){var e=new Image;e.onload=function(e){t.screenshotLoaded=!0},e.src=this.app.screenshot}},watchers:{},methods:{showAppDetails:function(t){var e,n=this;return(e=$().mark((function e(){return $().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("INPUT"!==t.currentTarget.tagName&&"A"!==t.currentTarget.tagName){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,e.next=5,n.$router.push({name:"apps-details",params:{category:n.category,id:n.app.id}});case 5:e.next=9;break;case 7:e.prev=7,e.t0=e.catch(2);case 9:case"end":return e.stop()}}),e,null,[[2,7]])})),function(){var t=this,n=arguments;return new Promise((function(s,r){var a=e.apply(t,n);function i(t){D(a,s,r,i,o,"next",t)}function o(t){D(a,s,r,i,o,"throw",t)}i(void 0)}))})()},prefix:function(t,e){return t+"_"+e},getDataItemHeaders:function(t){return this.useBundleView?[this.headers,t].join(" "):null}}},z=N,B=s(93379),E=s.n(B),Z=s(7795),R=s.n(Z),M=s(90569),j=s.n(M),O=s(3565),P=s.n(O),G=s(19216),U=s.n(G),V=s(44589),q=s.n(V),H=s(17125),Y={};Y.styleTagTransform=q(),Y.setAttributes=P(),Y.insert=j().bind(null,"head"),Y.domAPI=R(),Y.insertStyleElement=U(),E()(H.Z,Y),H.Z&&H.Z.locals&&H.Z.locals;var F=(0,b.Z)(z,(function(){var t=this,e=t._self._c;return e(t.listView?"tr":"li",{tag:"component",staticClass:"section",class:{selected:t.isSelected},on:{click:t.showAppDetails}},[e(t.dataItemTag,{tag:"component",staticClass:"app-image app-image-icon",attrs:{headers:t.getDataItemHeaders("app-table-col-icon")},on:{click:t.showAppDetails}},[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,width:"100%"}}):t._e()]),t._v(" "),e(t.dataItemTag,{tag:"component",staticClass:"app-name",attrs:{headers:t.getDataItemHeaders("app-table-col-name")},on:{click:t.showAppDetails}},[t._v("\n\t\t"+t._s(t.app.name)+"\n\t")]),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",staticClass:"app-level",attrs:{headers:t.getDataItemHeaders("app-table-col-level")}},[300===t.app.level?e("span",{staticClass:"supported icon-checkmark-color",attrs:{title:t.t("settings","This app is supported via your current Nextcloud subscription."),"aria-label":t.t("settings","This app is supported via your current Nextcloud subscription.")}},[t._v("\n\t\t\t"+t._s(t.t("settings","Supported")))]):t._e(),t._v(" "),200===t.app.level?e("span",{staticClass:"official icon-checkmark",attrs:{title:t.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use."),"aria-label":t.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[t._v("\n\t\t\t"+t._s(t.t("settings","Featured")))]):t._e(),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,"b8444884",null).exports,Q=(0,b.Z)({name:"PrefixMixin",methods:{prefix:function(t,e){return t+"_"+e}}},void 0,void 0,!1,null,null,null).exports,W=s(63560),X=s(25108),J={name:"AppList",components:{AppItem:F,NcButton:L.Z},mixins:[Q],props:["category","app","search"],computed:{counter:function(){return this.apps.filter((function(t){return t.update})).length},loading:function(){return this.$store.getters.loading("list")},hasPendingUpdate:function(){return this.apps.filter((function(t){return t.update})).length>0},showUpdateAll:function(){return this.hasPendingUpdate&&this.useListView},apps:function(){var t=this,e=this.$store.getters.getAllApps.filter((function(e){return-1!==e.name.toLowerCase().search(t.search.toLowerCase())})).sort((function(t,e){var n=""+(t.active?0:1)+(t.update?0:1)+t.name,s=""+(e.active?0:1)+(e.update?0:1)+e.name;return OC.Util.naturalSortCompare(n,s)}));return"installed"===this.category?e.filter((function(t){return t.installed})):"enabled"===this.category?e.filter((function(t){return t.active&&t.installed})):"disabled"===this.category?e.filter((function(t){return!t.active&&t.installed})):"app-bundles"===this.category?e.filter((function(t){return t.bundles})):"updates"===this.category?e.filter((function(t){return t.update})):"supported"===this.category?e.filter((function(t){return 300===t.level})):"featured"===this.category?e.filter((function(t){return 200===t.level})):e.filter((function(e){return e.appstore&&void 0!==e.category&&(e.category===t.category||e.category.indexOf(t.category)>-1)}))},bundles:function(){var t=this;return this.$store.getters.getServerData.bundles.filter((function(e){return t.bundleApps(e.id).length>0}))},bundleApps:function(){return function(t){return this.$store.getters.getAllApps.filter((function(e){return void 0!==e.bundleIds&&e.bundleIds.includes(t)}))}},searchApps:function(){var t=this;return""===this.search?[]:this.$store.getters.getAllApps.filter((function(e){return-1!==e.name.toLowerCase().search(t.search.toLowerCase())&&!t.apps.find((function(t){return t.id===e.id}))}))},useAppStoreView:function(){return!this.useListView&&!this.useBundleView},useListView:function(){return"installed"===this.category||"enabled"===this.category||"disabled"===this.category||"updates"===this.category||"featured"===this.category||"supported"===this.category},useBundleView:function(){return"app-bundles"===this.category},allBundlesEnabled:function(){var t=this;return function(e){return 0===t.bundleApps(e).filter((function(t){return!t.active})).length}},bundleToggleText:function(){var e=this;return function(n){return e.allBundlesEnabled(n)?t("settings","Disable all"):t("settings","Download and enable all")}}},methods:{toggleBundle:function(t){return this.allBundlesEnabled(t)?this.disableBundle(t):this.enableBundle(t)},enableBundle:function(t){var e=this.bundleApps(t).map((function(t){return t.id}));this.$store.dispatch("enableApp",{appId:e,groups:[]}).catch((function(t){X.error(t),OC.Notification.show(t)}))},disableBundle:function(t){var e=this.bundleApps(t).map((function(t){return t.id}));this.$store.dispatch("disableApp",{appId:e,groups:[]}).catch((function(t){OC.Notification.show(t)}))},updateAll:function(){var t=this,e=(0,W.Z)(1);this.apps.filter((function(t){return t.update})).map((function(n){return e((function(){return t.$store.dispatch("updateApp",{appId:n.id})}))}))}}},K=s(16011),tt={};tt.styleTagTransform=q(),tt.setAttributes=P(),tt.insert=j().bind(null,"head"),tt.domAPI=R(),tt.insertStyleElement=U(),E()(K.Z,tt),K.Z&&K.Z.locals&&K.Z.locals;var et=(0,b.Z)(J,(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(n){return e("AppItem",{key:n.id,attrs:{app:n,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(n){return[e("tr",{key:n.id},[e("th",{attrs:{id:"app-table-rowgroup-".concat(n.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(n.name)+"\n\t\t\t\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"secondary"},on:{click:function(e){return t.toggleBundle(n.id)}}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("settings",t.bundleToggleText(n.id)))+"\n\t\t\t\t\t\t\t")])],1)])]),t._v(" "),t._l(t.bundleApps(n.id),(function(s){return e("AppItem",{key:n.id+s.id,attrs:{"use-bundle-view":!0,headers:"app-table-rowgroup-".concat(n.id),app:s,category:t.category}})}))]}))],2):t._e(),t._v(" "),t.useAppStoreView?e("ul",{staticClass:"apps-store-view"},t._l(t.apps,(function(n){return e("AppItem",{key:n.id,attrs:{app:n,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(n){return e("AppItem",{key:n.id,attrs:{app:n,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,"62f0f115",null).exports,nt=s(61537),st=s(25108);let rt={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function at(t){rt=t}const it=/[&<>"']/,ot=new RegExp(it.source,"g"),lt=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,pt=new RegExp(lt.source,"g"),ct={"&":"&","<":"<",">":">",'"':""","'":"'"},ut=t=>ct[t];function dt(t,e){if(e){if(it.test(t))return t.replace(ot,ut)}else if(lt.test(t))return t.replace(pt,ut);return t}const ht=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,gt=/(^|[^\[])\^/g;function ft(t,e){t="string"==typeof t?t:t.source,e=e||"";const n={replace:(e,s)=>(s=(s="object"==typeof s&&"source"in s?s.source:s).replace(gt,"$1"),t=t.replace(e,s),n),getRegex:()=>new RegExp(t,e)};return n}function mt(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch(t){return null}return t}const bt={exec:()=>null};function At(t,e){const n=t.replace(/\|/g,((t,e,n)=>{let s=!1,r=e;for(;--r>=0&&"\\"===n[r];)s=!s;return s?"|":" |"})).split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const t=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:vt(t,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const t=e[0],n=function(t,e){const n=t.match(/^(\s+)(?:```)/);if(null===n)return e;const s=n[1];return e.split("\n").map((t=>{const e=t.match(/^\s+/);if(null===e)return t;const[n]=e;return n.length>=s.length?t.slice(s.length):t})).join("\n")}(t,e[3]||"");return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:n}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let t=e[2].trim();if(/#$/.test(t)){const e=vt(t,"#");this.options.pedantic?t=e.trim():e&&!/ $/.test(e)||(t=e.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const t=e[0].replace(/^ *>[ \t]?/gm,""),n=this.lexer.state.top;this.lexer.state.top=!0;const s=this.lexer.blockTokens(t);return this.lexer.state.top=n,{type:"blockquote",raw:e[0],tokens:s,text:t}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim();const s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");const a=new RegExp(`^( {0,3}${n})((?:[\t ][^\\n]*)?(?:\\n|$))`);let i="",o="",l=!1;for(;t;){let n=!1;if(!(e=a.exec(t)))break;if(this.rules.block.hr.test(t))break;i=e[0],t=t.substring(i.length);let s=e[2].split("\n",1)[0].replace(/^\t+/,(t=>" ".repeat(3*t.length))),p=t.split("\n",1)[0],c=0;this.options.pedantic?(c=2,o=s.trimStart()):(c=e[2].search(/[^ ]/),c=c>4?1:c,o=s.slice(c),c+=e[1].length);let u=!1;if(!s&&/^ *$/.test(p)&&(i+=p+"\n",t=t.substring(p.length+1),n=!0),!n){const e=new RegExp(`^ {0,${Math.min(3,c-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),n=new RegExp(`^ {0,${Math.min(3,c-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),r=new RegExp(`^ {0,${Math.min(3,c-1)}}(?:\`\`\`|~~~)`),a=new RegExp(`^ {0,${Math.min(3,c-1)}}#`);for(;t;){const l=t.split("\n",1)[0];if(p=l,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),r.test(p))break;if(a.test(p))break;if(e.test(p))break;if(n.test(t))break;if(p.search(/[^ ]/)>=c||!p.trim())o+="\n"+p.slice(c);else{if(u)break;if(s.search(/[^ ]/)>=4)break;if(r.test(s))break;if(a.test(s))break;if(n.test(s))break;o+="\n"+p}u||p.trim()||(u=!0),i+=l+"\n",t=t.substring(l.length+1),s=p.slice(c)}}r.loose||(l?r.loose=!0:/\n *\n *$/.test(i)&&(l=!0));let d,h=null;this.options.gfm&&(h=/^\[[ xX]\] /.exec(o),h&&(d="[ ] "!==h[0],o=o.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:i,task:!!h,checked:d,loose:!1,text:o,tokens:[]}),r.raw+=i}r.items[r.items.length-1].raw=i.trimEnd(),r.items[r.items.length-1].text=o.trimEnd(),r.raw=r.raw.trimEnd();for(let t=0;t"space"===t.type)),n=e.length>0&&e.some((t=>/\n.*\n/.test(t.raw)));r.loose=n}if(r.loose)for(let t=0;t$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:t,raw:e[0],href:n,title:s}}}table(t){const e=this.rules.block.table.exec(t);if(e){if(!/[:|]/.test(e[2]))return;const t={type:"table",raw:e[0],header:At(e[1]).map((t=>({text:t,tokens:[]}))),align:e[2].replace(/^\||\| *$/g,"").split("|"),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(t.header.length===t.align.length){let e,n,s,r,a=t.align.length;for(e=0;e({text:t,tokens:[]})));for(a=t.header.length,n=0;n/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const t=e[2].trim();if(!this.options.pedantic&&/^$/.test(t))return;const e=vt(t.slice(0,-1),"\\");if((t.length-e.length)%2==0)return}else{const t=function(t,e){if(-1===t.indexOf(e[1]))return-1;let n=0;for(let s=0;s-1){const n=(0===e[0].indexOf("!")?5:4)+e[1].length+t;e[2]=e[2].substring(0,t),e[0]=e[0].substring(0,n).trim(),e[3]=""}}let n=e[2],s="";if(this.options.pedantic){const t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);t&&(n=t[1],s=t[3])}else s=e[3]?e[3].slice(1,-1):"";return n=n.trim(),/^$/.test(t)?n.slice(1):n.slice(1,-1)),kt(e,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:s?s.replace(this.rules.inline._escapes,"$1"):s},e[0],this.lexer)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let t=(n[2]||n[1]).replace(/\s+/g," ");if(t=e[t.toLowerCase()],!t){const t=n[0].charAt(0);return{type:"text",raw:t,text:t}}return kt(n,t,n[0],this.lexer)}}emStrong(t,e,n=""){let s=this.rules.inline.emStrong.lDelim.exec(t);if(s&&(!s[3]||!n.match(/[\p{L}\p{N}]/u))&&(!s[1]&&!s[2]||!n||this.rules.inline.punctuation.exec(n))){const n=[...s[0]].length-1;let r,a,i=n,o=0;const l="*"===s[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,e=e.slice(-1*t.length+s[0].length-1);null!=(s=l.exec(e));){if(r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!r)continue;if(a=[...r].length,s[3]||s[4]){i+=a;continue}if((s[5]||s[6])&&n%3&&!((n+a)%3)){o+=a;continue}if(i-=a,i>0)continue;a=Math.min(a,a+i+o);const e=[...t].slice(0,n+s.index+a+1).join("");if(Math.min(n,a)%2){const t=e.slice(1,-1);return{type:"em",raw:e,text:t,tokens:this.lexer.inlineTokens(t)}}const l=e.slice(2,-2);return{type:"strong",raw:e,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let t=e[2].replace(/\n/g," ");const n=/[^ ]/.test(t),s=/^ /.test(t)&&/ $/.test(t);return n&&s&&(t=t.substring(1,t.length-1)),t=dt(t,!0),{type:"codespan",raw:e[0],text:t}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){const e=this.rules.inline.autolink.exec(t);if(e){let t,n;return"@"===e[2]?(t=dt(e[1]),n="mailto:"+t):(t=dt(e[1]),n=t),{type:"link",raw:e[0],text:t,href:n,tokens:[{type:"text",raw:t,text:t}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let t,n;if("@"===e[2])t=dt(e[0]),n="mailto:"+t;else{let s;do{s=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])[0]}while(s!==e[0]);t=dt(e[0]),n="www."===e[1]?"http://"+e[0]:e[0]}return{type:"link",raw:e[0],text:t,href:n,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t){const e=this.rules.inline.text.exec(t);if(e){let t;return t=this.lexer.state.inRawBlock?e[0]:dt(e[0]),{type:"text",raw:e[0],text:t}}}}const xt={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:bt,lheading:/^(?!bull )((?:.|\n(?!\s*?\n|bull ))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};xt.def=ft(xt.def).replace("label",xt._label).replace("title",xt._title).getRegex(),xt.bullet=/(?:[*+-]|\d{1,9}[.)])/,xt.listItemStart=ft(/^( *)(bull) */).replace("bull",xt.bullet).getRegex(),xt.list=ft(xt.list).replace(/bull/g,xt.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+xt.def.source+")").getRegex(),xt._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",xt._comment=/|$)/,xt.html=ft(xt.html,"i").replace("comment",xt._comment).replace("tag",xt._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),xt.lheading=ft(xt.lheading).replace(/bull/g,xt.bullet).getRegex(),xt.paragraph=ft(xt._paragraph).replace("hr",xt.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",xt._tag).getRegex(),xt.blockquote=ft(xt.blockquote).replace("paragraph",xt.paragraph).getRegex(),xt.normal={...xt},xt.gfm={...xt.normal,table:"^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},xt.gfm.table=ft(xt.gfm.table).replace("hr",xt.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",xt._tag).getRegex(),xt.gfm.paragraph=ft(xt._paragraph).replace("hr",xt.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",xt.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",xt._tag).getRegex(),xt.pedantic={...xt.normal,html:ft("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",xt._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:bt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ft(xt.normal._paragraph).replace("hr",xt.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",xt.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const yt={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:bt,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,rDelimAst:/^[^_*]*?__[^_*]*?\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\*)[punct](\*+)(?=[\s]|$)|[^punct\s](\*+)(?!\*)(?=[punct\s]|$)|(?!\*)[punct\s](\*+)(?=[^punct\s])|[\s](\*+)(?!\*)(?=[punct])|(?!\*)[punct](\*+)(?!\*)(?=[punct])|[^punct\s](\*+)(?=[^punct\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\s]|$)|[^punct\s](_+)(?!_)(?=[punct\s]|$)|(?!_)[punct\s](_+)(?=[^punct\s])|[\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:bt,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`^|~"};yt.punctuation=ft(yt.punctuation,"u").replace(/punctuation/g,yt._punctuation).getRegex(),yt.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,yt.anyPunctuation=/\\[punct]/g,yt._escapes=/\\([punct])/g,yt._comment=ft(xt._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),yt.emStrong.lDelim=ft(yt.emStrong.lDelim,"u").replace(/punct/g,yt._punctuation).getRegex(),yt.emStrong.rDelimAst=ft(yt.emStrong.rDelimAst,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt.emStrong.rDelimUnd=ft(yt.emStrong.rDelimUnd,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt.anyPunctuation=ft(yt.anyPunctuation,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt._escapes=ft(yt._escapes,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,yt._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,yt.autolink=ft(yt.autolink).replace("scheme",yt._scheme).replace("email",yt._email).getRegex(),yt._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,yt.tag=ft(yt.tag).replace("comment",yt._comment).replace("attribute",yt._attribute).getRegex(),yt._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,yt._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,yt._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,yt.link=ft(yt.link).replace("label",yt._label).replace("href",yt._href).replace("title",yt._title).getRegex(),yt.reflink=ft(yt.reflink).replace("label",yt._label).replace("ref",xt._label).getRegex(),yt.nolink=ft(yt.nolink).replace("ref",xt._label).getRegex(),yt.reflinkSearch=ft(yt.reflinkSearch,"g").replace("reflink",yt.reflink).replace("nolink",yt.nolink).getRegex(),yt.normal={...yt},yt.pedantic={...yt.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:ft(/^!?\[(label)\]\((.*?)\)/).replace("label",yt._label).getRegex(),reflink:ft(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",yt._label).getRegex()},yt.gfm={...yt.normal,escape:ft(yt.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\e+" ".repeat(n.length)));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((s=>!!(n=s.call({lexer:this},t,e))&&(t=t.substring(n.raw.length),e.push(n),!0)))))if(n=this.tokenizer.space(t))t=t.substring(n.raw.length),1===n.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(n);else if(n=this.tokenizer.code(t))t=t.substring(n.raw.length),s=e[e.length-1],!s||"paragraph"!==s.type&&"text"!==s.type?e.push(n):(s.raw+="\n"+n.raw,s.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=s.text);else if(n=this.tokenizer.fences(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.heading(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.hr(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.blockquote(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.list(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.html(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.def(t))t=t.substring(n.raw.length),s=e[e.length-1],!s||"paragraph"!==s.type&&"text"!==s.type?this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title}):(s.raw+="\n"+n.raw,s.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=s.text);else if(n=this.tokenizer.table(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.lheading(t))t=t.substring(n.raw.length),e.push(n);else{if(r=t,this.options.extensions&&this.options.extensions.startBlock){let e=1/0;const n=t.slice(1);let s;this.options.extensions.startBlock.forEach((t=>{s=t.call({lexer:this},n),"number"==typeof s&&s>=0&&(e=Math.min(e,s))})),e<1/0&&e>=0&&(r=t.substring(0,e+1))}if(this.state.top&&(n=this.tokenizer.paragraph(r)))s=e[e.length-1],a&&"paragraph"===s.type?(s.raw+="\n"+n.raw,s.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(n),a=r.length!==t.length,t=t.substring(n.raw.length);else if(n=this.tokenizer.text(t))t=t.substring(n.raw.length),s=e[e.length-1],s&&"text"===s.type?(s.raw+="\n"+n.raw,s.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(n);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){st.error(e);break}throw new Error(e)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let n,s,r,a,i,o,l=t;if(this.tokens.links){const t=Object.keys(this.tokens.links);if(t.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)t.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(i||(o=""),i=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((s=>!!(n=s.call({lexer:this},t,e))&&(t=t.substring(n.raw.length),e.push(n),!0)))))if(n=this.tokenizer.escape(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.tag(t))t=t.substring(n.raw.length),s=e[e.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):e.push(n);else if(n=this.tokenizer.link(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(n.raw.length),s=e[e.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):e.push(n);else if(n=this.tokenizer.emStrong(t,l,o))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.codespan(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.br(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.del(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.autolink(t))t=t.substring(n.raw.length),e.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(t))){if(r=t,this.options.extensions&&this.options.extensions.startInline){let e=1/0;const n=t.slice(1);let s;this.options.extensions.startInline.forEach((t=>{s=t.call({lexer:this},n),"number"==typeof s&&s>=0&&(e=Math.min(e,s))})),e<1/0&&e>=0&&(r=t.substring(0,e+1))}if(n=this.tokenizer.inlineText(r))t=t.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(o=n.raw.slice(-1)),i=!0,s=e[e.length-1],s&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):e.push(n);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){st.error(e);break}throw new Error(e)}}else t=t.substring(n.raw.length),e.push(n);return e}}class Ct{options;constructor(t){this.options=t||rt}code(t,e,n){const s=(e||"").match(/^\S*/)?.[0];return t=t.replace(/\n$/,"")+"\n",s?'
'+(n?t:dt(t,!0))+"
\n":"
"+(n?t:dt(t,!0))+"
\n"}blockquote(t){return`
\n${t}
\n`}html(t,e){return t}heading(t,e,n){return`${t}\n`}hr(){return"
\n"}list(t,e,n){const s=e?"ol":"ul";return"<"+s+(e&&1!==n?' start="'+n+'"':"")+">\n"+t+"\n"}listitem(t,e,n){return`
  • ${t}
  • \n`}checkbox(t){return"'}paragraph(t){return`

    ${t}

    \n`}table(t,e){return e&&(e=`${e}`),"\n\n"+t+"\n"+e+"
    \n"}tablerow(t){return`\n${t}\n`}tablecell(t,e){const n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`\n`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return"
    "}del(t){return`${t}`}link(t,e,n){const s=mt(t);if(null===s)return n;let r='",r}image(t,e,n){const s=mt(t);if(null===s)return n;let r=`${n}"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")));continue}case"code":{const t=r;n+=this.renderer.code(t.text,t.lang,!!t.escaped);continue}case"table":{const t=r;let e="",s="";for(let e=0;e0&&"paragraph"===n.tokens[0].type?(n.tokens[0].text=t+" "+n.tokens[0].text,n.tokens[0].tokens&&n.tokens[0].tokens.length>0&&"text"===n.tokens[0].tokens[0].type&&(n.tokens[0].tokens[0].text=t+" "+n.tokens[0].tokens[0].text)):n.tokens.unshift({type:"text",text:t+" "}):o+=t+" "}o+=this.parse(n.tokens,a),i+=this.renderer.listitem(o,r,!!s)}n+=this.renderer.list(i,e,s);continue}case"html":{const t=r;n+=this.renderer.html(t.text,t.block);continue}case"paragraph":{const t=r;n+=this.renderer.paragraph(this.parseInline(t.tokens));continue}case"text":{let a=r,i=a.tokens?this.parseInline(a.tokens):a.text;for(;s+1{n=n.concat(this.walkTokens(t[s],e))})):t.tokens&&(n=n.concat(this.walkTokens(t.tokens,e)))}}return n}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach((t=>{const n={...t};if(n.async=this.defaults.async||n.async||!1,t.extensions&&(t.extensions.forEach((t=>{if(!t.name)throw new Error("extension name required");if("renderer"in t){const n=e.renderers[t.name];e.renderers[t.name]=n?function(...e){let s=t.renderer.apply(this,e);return!1===s&&(s=n.apply(this,e)),s}:t.renderer}if("tokenizer"in t){if(!t.level||"block"!==t.level&&"inline"!==t.level)throw new Error("extension level must be 'block' or 'inline'");const n=e[t.level];n?n.unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&("block"===t.level?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:"inline"===t.level&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}"childTokens"in t&&t.childTokens&&(e.childTokens[t.name]=t.childTokens)})),n.extensions=e),t.renderer){const e=this.defaults.renderer||new Ct(this.defaults);for(const n in t.renderer){const s=t.renderer[n],r=n,a=e[r];e[r]=(...t)=>{let n=s.apply(e,t);return!1===n&&(n=a.apply(e,t)),n||""}}n.renderer=e}if(t.tokenizer){const e=this.defaults.tokenizer||new _t(this.defaults);for(const n in t.tokenizer){const s=t.tokenizer[n],r=n,a=e[r];e[r]=(...t)=>{let n=s.apply(e,t);return!1===n&&(n=a.apply(e,t)),n}}n.tokenizer=e}if(t.hooks){const e=this.defaults.hooks||new Lt;for(const n in t.hooks){const s=t.hooks[n],r=n,a=e[r];Lt.passThroughHooks.has(n)?e[r]=t=>{if(this.defaults.async)return Promise.resolve(s.call(e,t)).then((t=>a.call(e,t)));const n=s.call(e,t);return a.call(e,n)}:e[r]=(...t)=>{let n=s.apply(e,t);return!1===n&&(n=a.apply(e,t)),n}}n.hooks=e}if(t.walkTokens){const e=this.defaults.walkTokens,s=t.walkTokens;n.walkTokens=function(t){let n=[];return n.push(s.call(this,t)),e&&(n=n.concat(e.call(this,t))),n}}this.defaults={...this.defaults,...n}})),this}setOptions(t){return this.defaults={...this.defaults,...t},this}#t(t,e){return(n,s)=>{const r={...s},a={...this.defaults,...r};!0===this.defaults.async&&!1===r.async&&(a.silent||st.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),a.async=!0);const i=this.#e(!!a.silent,!!a.async);if(null==n)return i(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof n)return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(n):n).then((e=>t(e,a))).then((t=>a.walkTokens?Promise.all(this.walkTokens(t,a.walkTokens)).then((()=>t)):t)).then((t=>e(t,a))).then((t=>a.hooks?a.hooks.postprocess(t):t)).catch(i);try{a.hooks&&(n=a.hooks.preprocess(n));const s=t(n,a);a.walkTokens&&this.walkTokens(s,a.walkTokens);let r=e(s,a);return a.hooks&&(r=a.hooks.postprocess(r)),r}catch(t){return i(t)}}}#e(t,e){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t){const t="

    An error occurred:

    "+dt(n.message+"",!0)+"
    ";return e?Promise.resolve(t):t}if(e)return Promise.reject(n);throw n}}};function $t(t,e){return Tt.parse(t,e)}$t.options=$t.setOptions=function(t){return Tt.setOptions(t),$t.defaults=Tt.defaults,at($t.defaults),$t},$t.getDefaults=function(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}},$t.defaults=rt,$t.use=function(...t){return Tt.use(...t),$t.defaults=Tt.defaults,at($t.defaults),$t},$t.walkTokens=function(t,e){return Tt.walkTokens(t,e)},$t.parseInline=Tt.parseInline,$t.Parser=It,$t.parser=It.parse,$t.Renderer=Ct,$t.TextRenderer=St,$t.Lexer=wt,$t.lexer=wt.lex,$t.Tokenizer=_t,$t.Hooks=Lt,$t.parse=$t,$t.options,$t.setOptions,$t.use,$t.walkTokens,$t.parseInline;var Dt=s(27856),Nt=s.n(Dt),zt={name:"Markdown",props:{text:{type:String,default:""}},computed:{renderMarkdown:function(){var t=new $t.Renderer;return t.link=function(t,e,n){var s;try{s=decodeURIComponent(unescape(t)).replace(/[^\w:]/g,"").toLowerCase()}catch(t){return""}if(0!==s.indexOf("http:")&&0!==s.indexOf("https:"))return"";var r='
    "+n+""},t.image=function(t,e,n){return n||e},t.blockquote=function(t){return t},Nt().sanitize($t(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"]})}}},Bt=s(37702),Et={};Et.styleTagTransform=q(),Et.setAttributes=P(),Et.insert=j().bind(null,"head"),Et.domAPI=R(),Et.insertStyleElement=U(),E()(Bt.Z,Et),Bt.Z&&Bt.Z.locals&&Bt.Z.locals;var Zt=(0,b.Z)(zt,(function(){var t=this;return(0,t._self._c)("div",{staticClass:"settings-markdown",domProps:{innerHTML:t._s(t.renderMarkdown)}})}),[],!1,null,"ffd9a2d6",null).exports,Rt={name:"AppDetails",components:{NcSelect:nt.Z,Markdown:Zt},mixins:[C,Q],props:{app:{type:Object,required:!0}},data:function(){return{groupCheckedAppsData:!1}},computed:{appstoreUrl:function(){return"https://apps.nextcloud.com/apps/".concat(this.app.id)},licence:function(){return this.app.licence?t("settings","{license}-licensed",{license:(""+this.app.licence).toUpperCase()}):null},author:function(){return"string"==typeof this.app.author?[{"@value":this.app.author}]:this.app.author["@value"]?[this.app.author]:this.app.author},appGroups:function(){return this.app.groups.map((function(t){return{id:t,name:t}}))},groups:function(){return this.$store.getters.getGroups.filter((function(t){return"disabled"!==t.id})).sort((function(t,e){return t.name.localeCompare(e.name)}))}},mounted:function(){this.app.groups.length>0&&(this.groupCheckedAppsData=!0)}},Mt=s(55014),jt={};jt.styleTagTransform=q(),jt.setAttributes=P(),jt.insert=j().bind(null,"head"),jt.domAPI=R(),jt.insertStyleElement=U(),E()(Mt.Z,jt),Mt.Z&&Mt.Z.locals&&Mt.Z.locals;var Ot=(0,b.Z)(Rt,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"app-details"},[e("div",{staticClass:"app-details__actions"},[t.app.active&&t.canLimitToGroups(t.app)?e("div",{staticClass:"app-details__actions-groups"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.groupCheckedAppsData,expression:"groupCheckedAppsData"}],staticClass:"groups-enable__checkbox checkbox",attrs:{id:t.prefix("groups_enable",t.app.id),type:"checkbox"},domProps:{value:t.app.id,checked:Array.isArray(t.groupCheckedAppsData)?t._i(t.groupCheckedAppsData,t.app.id)>-1:t.groupCheckedAppsData},on:{change:[function(e){var n=t.groupCheckedAppsData,s=e.target,r=!!s.checked;if(Array.isArray(n)){var a=t.app.id,i=t._i(n,a);s.checked?i<0&&(t.groupCheckedAppsData=n.concat([a])):i>-1&&(t.groupCheckedAppsData=n.slice(0,i).concat(n.slice(i+1)))}else t.groupCheckedAppsData=r},t.setGroupLimit]}}),t._v(" "),e("label",{attrs:{for:t.prefix("groups_enable",t.app.id)}},[t._v(t._s(t.t("settings","Limit to groups")))]),t._v(" "),e("input",{staticClass:"group_select",attrs:{type:"hidden",title:t.t("settings","All"),value:""}}),t._v(" "),e("br"),t._v(" "),e("label",{attrs:{for:"limitToGroups"}},[e("span",[t._v(t._s(t.t("settings","Limit app usage to groups")))])]),t._v(" "),t.isLimitedToGroups(t.app)?e("NcSelect",{attrs:{"input-id":"limitToGroups",options:t.groups,value:t.appGroups,limit:5,label:"name",multiple:!0,"close-on-select":!1},on:{"option:selected":t.addGroupLimitation,"option:deselected":t.removeGroupLimitation,search:t.asyncFindGroup}},[e("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("settings","No results")))])]):t._e()],1):t._e(),t._v(" "),e("div",{staticClass:"app-details__actions-manage"},[t.app.update?e("input",{staticClass:"update primary",attrs:{type:"button",value:t.t("settings","Update to {version}",{version:t.app.update}),disabled:t.installing||t.isLoading},on:{click:function(e){return t.update(t.app.id)}}}):t._e(),t._v(" "),t.app.canUnInstall?e("input",{staticClass:"uninstall",attrs:{type:"button",value:t.t("settings","Remove"),disabled:t.installing||t.isLoading},on:{click:function(e){return t.remove(t.app.id)}}}):t._e(),t._v(" "),t.app.active?e("input",{staticClass:"enable",attrs:{type:"button",value:t.t("settings","Disable"),disabled:t.installing||t.isLoading},on:{click:function(e){return t.disable(t.app.id)}}}):t._e(),t._v(" "),t.app.active||!t.app.canInstall&&!t.app.isCompatible?t.app.active||t.app.canInstall?t._e():e("input",{staticClass:"enable force",attrs:{title:t.forceEnableButtonTooltip,"aria-label":t.forceEnableButtonTooltip,type:"button",value:t.forceEnableButtonText,disabled:t.installing||t.isLoading},on:{click:function(e){return t.forceEnable(t.app.id)}}}):e("input",{staticClass:"enable primary",attrs:{title:t.enableButtonTooltip,"aria-label":t.enableButtonTooltip,type:"button",value:t.enableButtonText,disabled:!t.app.canInstall||t.installing||t.isLoading},on:{click:function(e){return t.enable(t.app.id)}}})])]),t._v(" "),e("ul",{staticClass:"app-details__dependencies"},[t.app.missingMinOwnCloudVersion?e("li",[t._v("\n\t\t\t"+t._s(t.t("settings","This app has no minimum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):t._e(),t._v(" "),t.app.missingMaxOwnCloudVersion?e("li",[t._v("\n\t\t\t"+t._s(t.t("settings","This app has no maximum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):t._e(),t._v(" "),t.app.canInstall?t._e():e("li",[t._v("\n\t\t\t"+t._s(t.t("settings","This app cannot be installed because the following dependencies are not fulfilled:"))+"\n\t\t\t"),e("ul",{staticClass:"missing-dependencies"},t._l(t.app.missingDependencies,(function(n,s){return e("li",{key:s},[t._v("\n\t\t\t\t\t"+t._s(n)+"\n\t\t\t\t")])})),0)])]),t._v(" "),e("p",{staticClass:"app-details__documentation"},[t.app.internal?t._e():e("a",{staticClass:"appslink",attrs:{href:t.appstoreUrl,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","View in store"))+" ↗")]),t._v(" "),t.app.website?e("a",{staticClass:"appslink",attrs:{href:t.app.website,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Visit website"))+" ↗")]):t._e(),t._v(" "),t.app.bugs?e("a",{staticClass:"appslink",attrs:{href:t.app.bugs,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Report a bug"))+" ↗")]):t._e(),t._v(" "),t.app.documentation&&t.app.documentation.user?e("a",{staticClass:"appslink",attrs:{href:t.app.documentation.user,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","User documentation"))+" ↗")]):t._e(),t._v(" "),t.app.documentation&&t.app.documentation.admin?e("a",{staticClass:"appslink",attrs:{href:t.app.documentation.admin,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Admin documentation"))+" ↗")]):t._e(),t._v(" "),t.app.documentation&&t.app.documentation.developer?e("a",{staticClass:"appslink",attrs:{href:t.app.documentation.developer,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Developer documentation"))+" ↗")]):t._e()]),t._v(" "),e("Markdown",{staticClass:"app-details__description",attrs:{text:t.app.description}})],1)}),[],!1,null,"5be7cbf9",null).exports,Pt=s(92652);a.default.use(o());var Gt={name:"Apps",APPS_SECTION_ENUM:Pt.J,components:{NcAppContent:l.Z,AppDetails:Ot,AppList:et,IconStarShooting:A,NcAppNavigation:p.Z,NcAppNavigationItem:c.Z,NcAppNavigationSpacer:u.Z,NcCounterBubble:g.Z,AppScore:_,NcAppSidebar:d.Z,NcAppSidebarTab:h.Z,NcContent:f.Z,Markdown:Zt},mixins:[C],props:{category:{type:String,default:"installed"},id:{type:String,default:""}},data:function(){return{searchQuery:"",screenshotLoaded:!1}},computed:{loading:function(){return this.$store.getters.loading("categories")},loadingList:function(){return this.$store.getters.loading("list")},app:function(){var t=this;return this.apps.find((function(e){return e.id===t.id}))},categories:function(){return this.$store.getters.getCategories},apps:function(){return this.$store.getters.getAllApps},updateCount:function(){return this.$store.getters.getUpdateCount},settings:function(){return this.$store.getters.getServerData},hasRating:function(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},appSidebar:function(){var e=function(t){return t["@value"]?t["@value"]:t},n=Array.isArray(this.app.author)?this.app.author.map(e).join(", "):e(this.app.author),s=t("settings","{license}-licensed",{license:(""+this.app.licence).toUpperCase()}),r=t("settings","by {author}\n{license}",{author:n,license:s});return{background:this.app.screenshot&&this.screenshotLoaded?this.app.screenshot:this.app.preview,compact:!(this.app.screenshot&&this.screenshotLoaded),name:this.app.name,subname:r}},changelog:function(){return function(t){return t.translations.en.changelog}},isSubscribed:function(){return this.apps.some((function(t){return 300===t.level}))}},watch:{category:function(){this.searchQuery=""},app:function(){var t,e,n=this;if(this.screenshotLoaded=!1,null!==(t=this.app)&&void 0!==t&&t.releases&&null!==(e=this.app)&&void 0!==e&&e.screenshot){var s=new Image;s.onload=function(t){n.screenshotLoaded=!0},s.src=this.app.screenshot}}},beforeMount:function(){this.$store.dispatch("getCategories",{shouldRefetchCategories:!0}),this.$store.dispatch("getAllApps"),this.$store.dispatch("getGroups",{offset:0,limit:5}),this.$store.commit("setUpdateCount",this.$store.getters.getServerData.updateCount)},mounted:function(){(0,r.Ld)("nextcloud:unified-search.search",this.setSearch),(0,r.Ld)("nextcloud:unified-search.reset",this.resetSearch)},beforeDestroy:function(){(0,r.r1)("nextcloud:unified-search.search",this.setSearch),(0,r.r1)("nextcloud:unified-search.reset",this.resetSearch)},methods:{setSearch:function(t){var e=t.query;this.searchQuery=e},resetSearch:function(){this.searchQuery=""},hideAppDetails:function(){this.$router.push({name:"apps-category",params:{category:this.category}})},openDeveloperDocumentation:function(){window.open(this.settings.developerDocumentation)}}},Ut=s(87926),Vt={};Vt.styleTagTransform=q(),Vt.setAttributes=P(),Vt.insert=j().bind(null,"head"),Vt.domAPI=R(),Vt.insertStyleElement=U(),E()(Ut.Z,Vt),Ut.Z&&Ut.Z.locals&&Ut.Z.locals;var qt=(0,b.Z)(Gt,(function(){var t=this,e=t._self._c;return e("NcContent",{class:{"with-app-sidebar":t.app},attrs:{"app-name":"settings","content-class":{"icon-loading":t.loadingList},"navigation-class":{"icon-loading":t.loading}}},[e("NcAppNavigation",{scopedSlots:t._u([{key:"list",fn:function(){return[e("NcAppNavigationItem",{attrs:{id:"app-category-your-apps",to:{name:"apps"},exact:!0,icon:"icon-category-installed",name:t.t("settings","Your apps")}}),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-category-enabled",to:{name:"apps-category",params:{category:"enabled"}},icon:"icon-category-enabled",name:t.$options.APPS_SECTION_ENUM.enabled}}),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-category-disabled",to:{name:"apps-category",params:{category:"disabled"}},icon:"icon-category-disabled",name:t.$options.APPS_SECTION_ENUM.disabled}}),t._v(" "),t.updateCount>0?e("NcAppNavigationItem",{attrs:{id:"app-category-updates",to:{name:"apps-category",params:{category:"updates"}},icon:"icon-download",name:t.$options.APPS_SECTION_ENUM.updates},scopedSlots:t._u([{key:"counter",fn:function(){return[e("NcCounterBubble",[t._v(t._s(t.updateCount))])]},proxy:!0}],null,!1,54487302)}):t._e(),t._v(" "),t.isSubscribed?e("NcAppNavigationItem",{attrs:{id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"}},name:t.$options.APPS_SECTION_ENUM.supported},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconStarShooting",{attrs:{size:20}})]},proxy:!0}],null,!1,704374136)}):t._e(),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-category-your-bundles",to:{name:"apps-category",params:{category:"app-bundles"}},icon:"icon-category-app-bundles",name:t.$options.APPS_SECTION_ENUM["app-bundles"]}}),t._v(" "),e("NcAppNavigationSpacer"),t._v(" "),t.settings.appstoreEnabled?[e("NcAppNavigationItem",{attrs:{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"}},icon:"icon-favorite",name:t.$options.APPS_SECTION_ENUM.featured}}),t._v(" "),t._l(t.categories,(function(t){return e("NcAppNavigationItem",{key:"icon-category-"+t.ident,attrs:{icon:"icon-category-"+t.ident,to:{name:"apps-category",params:{category:t.ident}},name:t.displayName}})}))]:t._e(),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-developer-docs",name:t.t("settings","Developer documentation")+" ↗"},on:{click:t.openDeveloperDocumentation}})]},proxy:!0}])}),t._v(" "),e("NcAppContent",{staticClass:"app-settings-content",class:{"icon-loading":t.loadingList}},[e("AppList",{attrs:{category:t.category,app:t.app,search:t.searchQuery}})],1),t._v(" "),t.id&&t.app?e("NcAppSidebar",t._b({class:{"app-sidebar--without-background":!t.appSidebar.background},on:{close:t.hideAppDetails},scopedSlots:t._u([t.appSidebar.background?null:{key:"header",fn:function(){return[e("div",{staticClass:"app-sidebar-header__figure--default-app-icon icon-settings-dark"})]},proxy:!0},{key:"description",fn:function(){return[300===t.app.level||200===t.app.level||t.hasRating?e("div",{staticClass:"app-level"},[300===t.app.level?e("span",{staticClass:"supported icon-checkmark-color",attrs:{title:t.t("settings","This app is supported via your current Nextcloud subscription.")}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Supported")))]):t._e(),t._v(" "),200===t.app.level?e("span",{staticClass:"official icon-checkmark",attrs:{title:t.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Featured")))]):t._e(),t._v(" "),t.hasRating?e("AppScore",{attrs:{score:t.app.appstoreData.ratingOverall}}):t._e()],1):t._e(),t._v(" "),e("div",{staticClass:"app-version"},[e("p",[t._v(t._s(t.app.version))])])]},proxy:!0}],null,!0)},"NcAppSidebar",t.appSidebar,!1),[t._v(" "),t._v(" "),e("NcAppSidebarTab",{attrs:{id:"desc",icon:"icon-category-office",name:t.t("settings","Details"),order:0}},[e("AppDetails",{attrs:{app:t.app}})],1),t._v(" "),t.app.appstoreData&&t.app.releases[0].translations.en.changelog?e("NcAppSidebarTab",{attrs:{id:"desca",icon:"icon-category-organization",name:t.t("settings","Changelog"),order:1}},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(" "),t.changelog(n)?e("Markdown",{attrs:{text:t.changelog(n)}}):t._e()],1)})),0):t._e()],1):t._e()],1)}),[],!1,null,"34c0c31f",null).exports},87369:function(t,e,n){var s=n(34155),r=n(25108);t.exports=function(){"use strict";var t=function(){this._properties={},this._namespace="",this._isSupported=!0},e={namespace:{}};e.namespace.get=function(){return this._namespace},e.namespace.set=function(t){this._namespace=t?t+".":""},t.prototype._getLsKey=function(t){return""+this._namespace+t},t.prototype._lsSet=function(t,e,n){var s=this._getLsKey(t),r=n&&[Array,Object].includes(n)?JSON.stringify(e):e;window.localStorage.setItem(s,r)},t.prototype._lsGet=function(t){var e=this._getLsKey(t);return window.localStorage[e]},t.prototype.get=function(t,e,n){if(void 0===e&&(e=null),void 0===n&&(n=String),!this._isSupported)return null;if(this._lsGet(t)){var s=n;for(var r in this._properties)if(r===t){s=this._properties[r].type;break}return this._process(s,this._lsGet(t))}return null!==e?e:null},t.prototype.set=function(t,e){var n=this;if(!this._isSupported)return null;for(var s in n._properties){var r=n._properties[s].type;if(s===t)return n._lsSet(t,e,r),e}return this._lsSet(t,e),e},t.prototype.remove=function(t){return this._isSupported?window.localStorage.removeItem(t):null},t.prototype.addProperty=function(t,e,n){void 0===n&&(n=void 0),e=e||String,this._properties[t]={type:e},this._lsGet(t)||null===n||this._lsSet(t,n,e)},t.prototype._process=function(t,e){switch(t){case Boolean:return"true"===e;case Number:return parseFloat(e);case Array:try{var n=JSON.parse(e);return Array.isArray(n)?n:[]}catch(t){return[]}case Object:try{return JSON.parse(e)}catch(t){return{}}default:return e}},Object.defineProperties(t.prototype,e);var n=new t;return{install:function(t,e){if(void 0===e&&(e={}),void 0===s||!(s.server||s.SERVER_BUILD||s.env&&"server"===s.env.VUE_ENV)){var a=!0;try{var i="__vue-localstorage-test__";window.localStorage.setItem(i,i),window.localStorage.removeItem(i)}catch(t){a=!1,n._isSupported=!1,r.error("Local storage is not supported")}var o=e.name||"localStorage",l=e.bind;e.namespace&&(n.namespace=e.namespace),t.mixin({beforeCreate:function(){var e=this;a&&this.$options[o]&&Object.keys(this.$options[o]).forEach((function(s){var a=e.$options[o][s],i=[a.type,a.default],p=i[0],c=i[1];if(n.addProperty(s,p,c),Object.getOwnPropertyDescriptor(n,s))t.config.silent||r.log(s+": is already defined and will be reused");else{var u={get:function(){return t.localStorage.get(s,c)},set:function(e){return t.localStorage.set(s,e)},configurable:!0};Object.defineProperty(n,s,u),t.util.defineReactive(n,s,c)}(l||a.bind)&&!1!==a.bind&&(e.$options.computed=e.$options.computed||{},e.$options.computed[s]||(e.$options.computed[s]={get:function(){return t.localStorage[s]},set:function(e){t.localStorage[s]=e}}))}))}}),t[o]=n,t.prototype["$"+o]=n}}}}()},42761:function(t){"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTS00LTRoMjR2MjRILTRWLTR6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh6IiBmaWxsPSIjZWQ0ODRjIi8+PHBhdGggZD0iTTUgNi41aDZjLjggMCAxLjUuNyAxLjUgMS41cy0uNyAxLjUtMS41IDEuNUg1Yy0uOCAwLTEuNS0uNy0xLjUtMS41UzQuMiA2LjUgNSA2LjV6IiBmaWxsPSIjZmRmZmZmIi8+PC9zdmc+Cg=="},87210:function(t){"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTQuOCAxMS4yaDYuNFY0LjhINC44djYuNHpNOCAwQzMuNiAwIDAgMy42IDAgOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHoiIGZpbGw9IiM0OWIzODIiLz48L3N2Zz4K"},94659:function(t){"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS00LTRoMjR2MjRILTR6Ii8+PHBhdGggZD0iTTYuOS4xQzMgLjYtLjEgNC0uMSA4YzAgNC40IDMuNiA4IDggOCA0IDAgNy40LTMgOC02LjktMS4yIDEuMy0yLjkgMi4xLTQuNyAyLjEtMy41IDAtNi40LTIuOS02LjQtNi40IDAtMS45LjgtMy42IDIuMS00Ljd6IiBmaWxsPSIjZjRhMzMxIi8+PC9zdmc+Cg=="}}]); -//# sourceMappingURL=settings-apps-view-7418.js.map?v=c1cae41c530feb8e9906 \ No newline at end of file +(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[7418],{55014:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-details[data-v-5be7cbf9]{padding:20px}.app-details__actions-manage[data-v-5be7cbf9]{display:flex}.app-details__actions-manage input[data-v-5be7cbf9]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__dependencies[data-v-5be7cbf9]{opacity:.7}.app-details__documentation[data-v-5be7cbf9]{padding-top:20px}.app-details__documentation a.appslink[data-v-5be7cbf9]{display:block}.app-details__description[data-v-5be7cbf9]{padding-top:20px}.force[data-v-5be7cbf9]{color:var(--color-error);border-color:var(--color-error);background:var(--color-main-background)}.force[data-v-5be7cbf9]:hover,.force[data-v-5be7cbf9]:active{color:var(--color-main-background);border-color:var(--color-error) !important;background:var(--color-error)}","",{version:3,sources:["webpack://./apps/settings/src/components/AppDetails.vue"],names:[],mappings:"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,oDACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAIH,4CACC,UAAA,CAED,6CACC,gBAAA,CACA,wDACC,aAAA,CAGF,2CACC,gBAAA,CAIF,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&__dependencies {\n\t\topacity: .7;\n\t}\n\t&__documentation {\n\t\tpadding-top: 20px;\n\t\ta.appslink {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\t&__description {\n\t\tpadding-top: 20px;\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:""}]),e.Z=i},16011:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-bundle-heading[data-v-62f0f115]{display:flex;align-items:center;margin:20px 10px 20px 0}.app-bundle-header[data-v-62f0f115]{margin:0 10px 0 50px;font-weight:bold;font-size:20px;line-height:30px;color:var(--color-text-light)}.apps-store-view[data-v-62f0f115]{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:""}]),e.Z=i},83389:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-icon[data-v-f99bd334]{filter:var(--background-invert-if-bright)}.app-image img[data-v-f99bd334]{width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppItem.vue"],names:[],mappings:"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA",sourcesContent:["\n.app-icon {\n\tfilter: var(--background-invert-if-bright);\n}\n\n.app-image img {\n\twidth: 100%;\n}\n"],sourceRoot:""}]),e.Z=i},37702:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".settings-markdown[data-v-ffd9a2d6] h1,.settings-markdown[data-v-ffd9a2d6] h2,.settings-markdown[data-v-ffd9a2d6] h3,.settings-markdown[data-v-ffd9a2d6] h4,.settings-markdown[data-v-ffd9a2d6] h5,.settings-markdown[data-v-ffd9a2d6] h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.settings-markdown[data-v-ffd9a2d6] h1{font-size:36px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h2{font-size:28px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h3{font-size:24px}.settings-markdown[data-v-ffd9a2d6] h4{font-size:21px}.settings-markdown[data-v-ffd9a2d6] h5{font-size:17px}.settings-markdown[data-v-ffd9a2d6] h6{font-size:var(--default-font-size)}.settings-markdown[data-v-ffd9a2d6] 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-ffd9a2d6] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-ffd9a2d6] li{position:relative}.settings-markdown[data-v-ffd9a2d6] ul,.settings-markdown[data-v-ffd9a2d6] ol{padding-left:10px;margin-left:10px}.settings-markdown[data-v-ffd9a2d6] ul li{list-style-type:disc}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-ffd9a2d6] 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:""}]),e.Z=i},35732:function(t,e,n){"use strict";var s=n(87537),r=n.n(s),a=n(23645),i=n.n(a)()(r());i.push([t.id,".app-sidebar[data-v-2f31fb7f]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-2f31fb7f]:not(.app-sidebar--without-background) .app-sidebar-header--compact .app-sidebar-header__figure{background-size:32px;filter:var(--background-invert-if-bright)}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-2f31fb7f].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-2f31fb7f].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-2f31fb7f] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-2f31fb7f]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-2f31fb7f] h3{font-size:20px}.app-sidebar-tabs__release[data-v-2f31fb7f] h4{font-size:17px}","",{version:3,sources:["webpack://./apps/settings/src/views/Apps.vue"],names:[],mappings:"AAIE,mIACC,qBAAA,CAGD,6HACC,oBAAA,CAEA,yCAAA,CAKD,4EACC,iBAAA,CAMD,0FACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,4GACC,UAAA,CACA,WAAA,CACA,oBAAA,CAQF,sFACC,2BAAA,CACA,WAAA,CACA,6BAAA,CACA,gBAAA,CAIF,0DAEC,aAAA,CACA,gEACC,UAAA,CAMH,8DACC,OAAA,CACA,UAAA,CAIA,+CACC,2CAAA,CAKA,+CACC,cAAA,CAED,+CACC,cAAA",sourcesContent:["\n.app-sidebar::v-deep {\n\t&:not(.app-sidebar--without-background) {\n\t\t// with full screenshot, let's fill the figure\n\t\t:not(.app-sidebar-header--compact) .app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\t\t// revert sidebar app icon so it is black\n\t\t.app-sidebar-header--compact .app-sidebar-header__figure {\n\t\t\tbackground-size: 32px;\n\n\t\t\tfilter: var(--background-invert-if-bright);\n\t\t}\n\t}\n\n\t.app-sidebar-header__description {\n\t\t.app-version {\n\t\t\tpadding-left: 10px;\n\t\t}\n\t}\n\n\t// default icon slot styling\n\t&.app-sidebar--without-background {\n\t\t.app-sidebar-header__figure {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\t&--default-app-icon {\n\t\t\t\twidth: 32px;\n\t\t\t\theight: 32px;\n\t\t\t\tbackground-size: 32px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: migrate to components\n\t.app-sidebar-header__desc {\n\t\t// allow multi line subtitle for the license\n\t\t.app-sidebar-header__subtitle {\n\t\t\toverflow: visible !important;\n\t\t\theight: auto;\n\t\t\twhite-space: normal !important;\n\t\t\tline-height: 16px;\n\t\t}\n\t}\n\n\t.app-sidebar-header__action {\n\t\t// align with tab content\n\t\tmargin: 0 20px;\n\t\tinput {\n\t\t\tmargin: 3px;\n\t\t}\n\t}\n}\n\n// Align the appNavigation toggle with the apps header toolbar\n.app-navigation::v-deep button.app-navigation-toggle {\n\ttop: 8px;\n\tright: -8px;\n}\n\n.app-sidebar-tabs__release {\n\th2 {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t// Overwrite changelog heading styles\n\t::v-deep {\n\t\th3 {\n\t\t\tfont-size: 20px;\n\t\t}\n\t\th4 {\n\t\t\tfont-size: 17px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=i},48039:function(e,n,s){"use strict";s.r(n),s.d(n,{default:function(){return qt}});var r=s(69183),a=s(20144),i=s(87369),o=s.n(i),l=s(56071),p=s(35534),c=s(41705),u=s(87875),d=s(88344),h=s(38298),g=s(93182),f=s(73743),m={name:"StarShootingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},b=s(51900),A=(0,b.Z)(m,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon star-shooting-icon",attrs:{"aria-hidden":!t.title,"aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M18.09 11.77L19.56 18.1L14 14.74L8.44 18.1L9.9 11.77L5 7.5L11.47 6.96L14 1L16.53 6.96L23 7.5L18.09 11.77M2 12.43C2.19 12.43 2.38 12.37 2.55 12.26L5.75 10.15L4.18 8.79L1.45 10.59C.989 10.89 .861 11.5 1.16 12C1.36 12.27 1.68 12.43 2 12.43M1.16 21.55C1.36 21.84 1.68 22 2 22C2.19 22 2.38 21.95 2.55 21.84L6.66 19.13L7 17.76L7.31 16.31L1.45 20.16C.989 20.47 .861 21.09 1.16 21.55M1.45 15.38C.989 15.68 .861 16.3 1.16 16.76C1.36 17.06 1.68 17.21 2 17.21C2.19 17.21 2.38 17.16 2.55 17.05L7.97 13.5L8.24 12.31L7.32 11.5L1.45 15.38Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,v=s(79753),k={name:"AppScore",props:["score"],computed:{scoreImage:function(){var t="rating/s"+Math.round(10*this.score)+".svg";return(0,v.imagePath)("core",t)}}},_=(0,b.Z)(k,(function(){return(0,this._self._c)("img",{staticClass:"app-score-image",attrs:{src:this.scoreImage}})}),[],!1,null,null,null).exports,x=s(64024),y=s(93664),w=function(){return y.Z.get((0,v.generateOcsUrl)("core/navigation",2)+"/apps?format=json").then((function(t){var e=t.data;200===e.ocs.meta.statuscode&&((0,r.j8)("nextcloud:app-menu.refresh",{apps:e.ocs.data}),window.dispatchEvent(new Event("resize")))}))},C={computed:{appGroups:function(){return this.app.groups.map((function(t){return{id:t,name:t}}))},installing:function(){return this.$store.getters.loading("install")},isLoading:function(){return this.app&&this.$store.getters.loading(this.app.id)},enableButtonText:function(){return this.app.needsDownload?t("settings","Download and enable"):t("settings","Enable")},forceEnableButtonText:function(){return this.app.needsDownload,t("settings","Allow untested app")},enableButtonTooltip:function(){return!!this.app.needsDownload&&t("settings","The app will be downloaded from the App Store")},forceEnableButtonTooltip:function(){var 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:function(){return{groupCheckedAppsData:!1}},mounted:function(){this.app&&this.app.groups&&this.app.groups.length>0&&(this.groupCheckedAppsData=!0)},methods:{asyncFindGroup:function(t){return this.$store.dispatch("getGroups",{search:t,limit:5,offset:0})},isLimitedToGroups:function(t){return!(!this.app.groups.length&&!this.groupCheckedAppsData)},setGroupLimit:function(){this.groupCheckedAppsData||this.$store.dispatch("enableApp",{appId:this.app.id,groups:[]})},canLimitToGroups:function(t){return!(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:function(t){var e=t.pop(),n=this.app.groups.concat([]).concat([e.id]);this.$store.dispatch("enableApp",{appId:this.app.id,groups:n})},removeGroupLimitation:function(t){var e=this.app.groups.concat([]),n=e.indexOf(t.id);n>-1&&e.splice(n,1),this.$store.dispatch("enableApp",{appId:this.app.id,groups:e})},forceEnable:function(t){this.$store.dispatch("forceEnableApp",{appId:t,groups:[]}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},enable:function(t){this.$store.dispatch("enableApp",{appId:t,groups:[]}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},disable:function(t){this.$store.dispatch("disableApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},remove:function(t){this.$store.dispatch("uninstallApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},install:function(t){this.$store.dispatch("enableApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))},update:function(t){this.$store.dispatch("updateApp",{appId:t}).then((function(t){w()})).catch((function(t){(0,x.x2)(t)}))}}},S={name:"SvgFilterMixin",data:function(){return{filterId:""}},computed:{filterUrl:function(){return"url(#".concat(this.filterId,")")}},mounted:function(){this.filterId="invertIconApps-"+Math.random().toString(36).substring(2)}},I=(0,b.Z)(S,void 0,void 0,!1,null,null,null).exports,L=s(57274);function T(t){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},T(t)}function $(){$=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function p(t,e,n,r){var a=e&&e.prototype instanceof d?e:d,i=Object.create(a.prototype),o=new C(r||[]);return s(i,"_invoke",{value:_(t,n,o)}),i}function c(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=p;var u={};function d(){}function h(){}function g(){}var f={};l(f,a,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(S([])));b&&b!==e&&n.call(b,a)&&(f=b);var A=g.prototype=d.prototype=Object.create(f);function v(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(s,a,i,o){var l=c(t[s],t,a);if("throw"!==l.type){var p=l.arg,u=p.value;return u&&"object"==T(u)&&n.call(u,"__await")?e.resolve(u.__await).then((function(t){r("next",t,i,o)}),(function(t){r("throw",t,i,o)})):e.resolve(u).then((function(t){p.value=t,i(p)}),(function(t){return r("throw",t,i,o)}))}o(l.arg)}var a;s(this,"_invoke",{value:function(t,n){function s(){return new e((function(e,s){r(t,n,e,s)}))}return a=a?a.then(s,s):s()}})}function _(t,e,n){var s="suspendedStart";return function(r,a){if("executing"===s)throw new Error("Generator is already running");if("completed"===s){if("throw"===r)throw a;return{value:void 0,done:!0}}for(n.method=r,n.arg=a;;){var i=n.delegate;if(i){var o=x(i,n);if(o){if(o===u)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===s)throw s="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);s="executing";var l=c(t,e,n);if("normal"===l.type){if(s=n.done?"completed":"suspendedYield",l.arg===u)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(s="completed",n.method="throw",n.arg=l.arg)}}}function x(t,e){var n=e.method,s=t.iterator[n];if(void 0===s)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),u;var r=c(s,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var a=r.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function y(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function w(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function C(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(y,this),this.reset(!0)}function S(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,r=function e(){for(;++s=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return s("end");if(a.tryLoc<=this.prev){var o=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(o&&l){if(this.prev=0;--s){var r=this.tryEntries[s];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),w(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var s=n.completion;if("throw"===s.type){var r=s.arg;w(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:S(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function D(t,e,n,s,r,a,i){try{var o=t[a](i),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(s,r)}var N={name:"AppItem",components:{AppScore:_,NcButton:L.Z},mixins:[C,I],props:{app:{},category:{},listView:{type:Boolean,default:!0},useBundleView:{type:Boolean,default:!1},headers:{type:String,default:null}},data:function(){return{isSelected:!1,scrolled:!1,screenshotLoaded:!1}},computed:{hasRating:function(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},dataItemTag:function(){return this.listView?"td":"div"}},watch:{"$route.params.id":function(t){this.isSelected=this.app.id===t}},mounted:function(){var t=this;if(this.isSelected=this.app.id===this.$route.params.id,this.app.releases&&this.app.screenshot){var e=new Image;e.onload=function(e){t.screenshotLoaded=!0},e.src=this.app.screenshot}},watchers:{},methods:{showAppDetails:function(t){var e,n=this;return(e=$().mark((function e(){return $().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("INPUT"!==t.currentTarget.tagName&&"A"!==t.currentTarget.tagName){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,e.next=5,n.$router.push({name:"apps-details",params:{category:n.category,id:n.app.id}});case 5:e.next=9;break;case 7:e.prev=7,e.t0=e.catch(2);case 9:case"end":return e.stop()}}),e,null,[[2,7]])})),function(){var t=this,n=arguments;return new Promise((function(s,r){var a=e.apply(t,n);function i(t){D(a,s,r,i,o,"next",t)}function o(t){D(a,s,r,i,o,"throw",t)}i(void 0)}))})()},prefix:function(t,e){return t+"_"+e},getDataItemHeaders:function(t){return this.useBundleView?[this.headers,t].join(" "):null}}},z=N,B=s(93379),E=s.n(B),Z=s(7795),R=s.n(Z),M=s(90569),j=s.n(M),O=s(3565),P=s.n(O),G=s(19216),U=s.n(G),V=s(44589),q=s.n(V),H=s(83389),Y={};Y.styleTagTransform=q(),Y.setAttributes=P(),Y.insert=j().bind(null,"head"),Y.domAPI=R(),Y.insertStyleElement=U(),E()(H.Z,Y),H.Z&&H.Z.locals&&H.Z.locals;var F=(0,b.Z)(z,(function(){var t=this,e=t._self._c;return e(t.listView?"tr":"li",{tag:"component",staticClass:"section",class:{selected:t.isSelected},on:{click:t.showAppDetails}},[e(t.dataItemTag,{tag:"component",staticClass:"app-image app-image-icon",attrs:{headers:t.getDataItemHeaders("app-table-col-icon")},on:{click:t.showAppDetails}},[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")},on:{click:t.showAppDetails}},[t._v("\n\t\t"+t._s(t.app.name)+"\n\t")]),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",staticClass:"app-level",attrs:{headers:t.getDataItemHeaders("app-table-col-level")}},[300===t.app.level?e("span",{staticClass:"supported icon-checkmark-color",attrs:{title:t.t("settings","This app is supported via your current Nextcloud subscription."),"aria-label":t.t("settings","This app is supported via your current Nextcloud subscription.")}},[t._v("\n\t\t\t"+t._s(t.t("settings","Supported")))]):t._e(),t._v(" "),200===t.app.level?e("span",{staticClass:"official icon-checkmark",attrs:{title:t.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use."),"aria-label":t.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[t._v("\n\t\t\t"+t._s(t.t("settings","Featured")))]):t._e(),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,"f99bd334",null).exports,Q=(0,b.Z)({name:"PrefixMixin",methods:{prefix:function(t,e){return t+"_"+e}}},void 0,void 0,!1,null,null,null).exports,W=s(63560),X=s(25108),J={name:"AppList",components:{AppItem:F,NcButton:L.Z},mixins:[Q],props:["category","app","search"],computed:{counter:function(){return this.apps.filter((function(t){return t.update})).length},loading:function(){return this.$store.getters.loading("list")},hasPendingUpdate:function(){return this.apps.filter((function(t){return t.update})).length>0},showUpdateAll:function(){return this.hasPendingUpdate&&this.useListView},apps:function(){var t=this,e=this.$store.getters.getAllApps.filter((function(e){return-1!==e.name.toLowerCase().search(t.search.toLowerCase())})).sort((function(t,e){var n=""+(t.active?0:1)+(t.update?0:1)+t.name,s=""+(e.active?0:1)+(e.update?0:1)+e.name;return OC.Util.naturalSortCompare(n,s)}));return"installed"===this.category?e.filter((function(t){return t.installed})):"enabled"===this.category?e.filter((function(t){return t.active&&t.installed})):"disabled"===this.category?e.filter((function(t){return!t.active&&t.installed})):"app-bundles"===this.category?e.filter((function(t){return t.bundles})):"updates"===this.category?e.filter((function(t){return t.update})):"supported"===this.category?e.filter((function(t){return 300===t.level})):"featured"===this.category?e.filter((function(t){return 200===t.level})):e.filter((function(e){return e.appstore&&void 0!==e.category&&(e.category===t.category||e.category.indexOf(t.category)>-1)}))},bundles:function(){var t=this;return this.$store.getters.getServerData.bundles.filter((function(e){return t.bundleApps(e.id).length>0}))},bundleApps:function(){return function(t){return this.$store.getters.getAllApps.filter((function(e){return void 0!==e.bundleIds&&e.bundleIds.includes(t)}))}},searchApps:function(){var t=this;return""===this.search?[]:this.$store.getters.getAllApps.filter((function(e){return-1!==e.name.toLowerCase().search(t.search.toLowerCase())&&!t.apps.find((function(t){return t.id===e.id}))}))},useAppStoreView:function(){return!this.useListView&&!this.useBundleView},useListView:function(){return"installed"===this.category||"enabled"===this.category||"disabled"===this.category||"updates"===this.category||"featured"===this.category||"supported"===this.category},useBundleView:function(){return"app-bundles"===this.category},allBundlesEnabled:function(){var t=this;return function(e){return 0===t.bundleApps(e).filter((function(t){return!t.active})).length}},bundleToggleText:function(){var e=this;return function(n){return e.allBundlesEnabled(n)?t("settings","Disable all"):t("settings","Download and enable all")}}},methods:{toggleBundle:function(t){return this.allBundlesEnabled(t)?this.disableBundle(t):this.enableBundle(t)},enableBundle:function(t){var e=this.bundleApps(t).map((function(t){return t.id}));this.$store.dispatch("enableApp",{appId:e,groups:[]}).catch((function(t){X.error(t),OC.Notification.show(t)}))},disableBundle:function(t){var e=this.bundleApps(t).map((function(t){return t.id}));this.$store.dispatch("disableApp",{appId:e,groups:[]}).catch((function(t){OC.Notification.show(t)}))},updateAll:function(){var t=this,e=(0,W.Z)(1);this.apps.filter((function(t){return t.update})).map((function(n){return e((function(){return t.$store.dispatch("updateApp",{appId:n.id})}))}))}}},K=s(16011),tt={};tt.styleTagTransform=q(),tt.setAttributes=P(),tt.insert=j().bind(null,"head"),tt.domAPI=R(),tt.insertStyleElement=U(),E()(K.Z,tt),K.Z&&K.Z.locals&&K.Z.locals;var et=(0,b.Z)(J,(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(n){return e("AppItem",{key:n.id,attrs:{app:n,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(n){return[e("tr",{key:n.id},[e("th",{attrs:{id:"app-table-rowgroup-".concat(n.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(n.name)+"\n\t\t\t\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"secondary"},on:{click:function(e){return t.toggleBundle(n.id)}}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.t("settings",t.bundleToggleText(n.id)))+"\n\t\t\t\t\t\t\t")])],1)])]),t._v(" "),t._l(t.bundleApps(n.id),(function(s){return e("AppItem",{key:n.id+s.id,attrs:{"use-bundle-view":!0,headers:"app-table-rowgroup-".concat(n.id),app:s,category:t.category}})}))]}))],2):t._e(),t._v(" "),t.useAppStoreView?e("ul",{staticClass:"apps-store-view"},t._l(t.apps,(function(n){return e("AppItem",{key:n.id,attrs:{app:n,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(n){return e("AppItem",{key:n.id,attrs:{app:n,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,"62f0f115",null).exports,nt=s(61537),st=s(25108);let rt={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function at(t){rt=t}const it=/[&<>"']/,ot=new RegExp(it.source,"g"),lt=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,pt=new RegExp(lt.source,"g"),ct={"&":"&","<":"<",">":">",'"':""","'":"'"},ut=t=>ct[t];function dt(t,e){if(e){if(it.test(t))return t.replace(ot,ut)}else if(lt.test(t))return t.replace(pt,ut);return t}const ht=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,gt=/(^|[^\[])\^/g;function ft(t,e){t="string"==typeof t?t:t.source,e=e||"";const n={replace:(e,s)=>(s=(s="object"==typeof s&&"source"in s?s.source:s).replace(gt,"$1"),t=t.replace(e,s),n),getRegex:()=>new RegExp(t,e)};return n}function mt(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch(t){return null}return t}const bt={exec:()=>null};function At(t,e){const n=t.replace(/\|/g,((t,e,n)=>{let s=!1,r=e;for(;--r>=0&&"\\"===n[r];)s=!s;return s?"|":" |"})).split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const t=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:vt(t,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const t=e[0],n=function(t,e){const n=t.match(/^(\s+)(?:```)/);if(null===n)return e;const s=n[1];return e.split("\n").map((t=>{const e=t.match(/^\s+/);if(null===e)return t;const[n]=e;return n.length>=s.length?t.slice(s.length):t})).join("\n")}(t,e[3]||"");return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:n}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let t=e[2].trim();if(/#$/.test(t)){const e=vt(t,"#");this.options.pedantic?t=e.trim():e&&!/ $/.test(e)||(t=e.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const t=e[0].replace(/^ *>[ \t]?/gm,""),n=this.lexer.state.top;this.lexer.state.top=!0;const s=this.lexer.blockTokens(t);return this.lexer.state.top=n,{type:"blockquote",raw:e[0],tokens:s,text:t}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim();const s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");const a=new RegExp(`^( {0,3}${n})((?:[\t ][^\\n]*)?(?:\\n|$))`);let i="",o="",l=!1;for(;t;){let n=!1;if(!(e=a.exec(t)))break;if(this.rules.block.hr.test(t))break;i=e[0],t=t.substring(i.length);let s=e[2].split("\n",1)[0].replace(/^\t+/,(t=>" ".repeat(3*t.length))),p=t.split("\n",1)[0],c=0;this.options.pedantic?(c=2,o=s.trimStart()):(c=e[2].search(/[^ ]/),c=c>4?1:c,o=s.slice(c),c+=e[1].length);let u=!1;if(!s&&/^ *$/.test(p)&&(i+=p+"\n",t=t.substring(p.length+1),n=!0),!n){const e=new RegExp(`^ {0,${Math.min(3,c-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),n=new RegExp(`^ {0,${Math.min(3,c-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),r=new RegExp(`^ {0,${Math.min(3,c-1)}}(?:\`\`\`|~~~)`),a=new RegExp(`^ {0,${Math.min(3,c-1)}}#`);for(;t;){const l=t.split("\n",1)[0];if(p=l,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),r.test(p))break;if(a.test(p))break;if(e.test(p))break;if(n.test(t))break;if(p.search(/[^ ]/)>=c||!p.trim())o+="\n"+p.slice(c);else{if(u)break;if(s.search(/[^ ]/)>=4)break;if(r.test(s))break;if(a.test(s))break;if(n.test(s))break;o+="\n"+p}u||p.trim()||(u=!0),i+=l+"\n",t=t.substring(l.length+1),s=p.slice(c)}}r.loose||(l?r.loose=!0:/\n *\n *$/.test(i)&&(l=!0));let d,h=null;this.options.gfm&&(h=/^\[[ xX]\] /.exec(o),h&&(d="[ ] "!==h[0],o=o.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:i,task:!!h,checked:d,loose:!1,text:o,tokens:[]}),r.raw+=i}r.items[r.items.length-1].raw=i.trimEnd(),r.items[r.items.length-1].text=o.trimEnd(),r.raw=r.raw.trimEnd();for(let t=0;t"space"===t.type)),n=e.length>0&&e.some((t=>/\n.*\n/.test(t.raw)));r.loose=n}if(r.loose)for(let t=0;t$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:t,raw:e[0],href:n,title:s}}}table(t){const e=this.rules.block.table.exec(t);if(e){if(!/[:|]/.test(e[2]))return;const t={type:"table",raw:e[0],header:At(e[1]).map((t=>({text:t,tokens:[]}))),align:e[2].replace(/^\||\| *$/g,"").split("|"),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(t.header.length===t.align.length){let e,n,s,r,a=t.align.length;for(e=0;e({text:t,tokens:[]})));for(a=t.header.length,n=0;n/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const t=e[2].trim();if(!this.options.pedantic&&/^$/.test(t))return;const e=vt(t.slice(0,-1),"\\");if((t.length-e.length)%2==0)return}else{const t=function(t,e){if(-1===t.indexOf(e[1]))return-1;let n=0;for(let s=0;s-1){const n=(0===e[0].indexOf("!")?5:4)+e[1].length+t;e[2]=e[2].substring(0,t),e[0]=e[0].substring(0,n).trim(),e[3]=""}}let n=e[2],s="";if(this.options.pedantic){const t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);t&&(n=t[1],s=t[3])}else s=e[3]?e[3].slice(1,-1):"";return n=n.trim(),/^$/.test(t)?n.slice(1):n.slice(1,-1)),kt(e,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:s?s.replace(this.rules.inline._escapes,"$1"):s},e[0],this.lexer)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let t=(n[2]||n[1]).replace(/\s+/g," ");if(t=e[t.toLowerCase()],!t){const t=n[0].charAt(0);return{type:"text",raw:t,text:t}}return kt(n,t,n[0],this.lexer)}}emStrong(t,e,n=""){let s=this.rules.inline.emStrong.lDelim.exec(t);if(s&&(!s[3]||!n.match(/[\p{L}\p{N}]/u))&&(!s[1]&&!s[2]||!n||this.rules.inline.punctuation.exec(n))){const n=[...s[0]].length-1;let r,a,i=n,o=0;const l="*"===s[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,e=e.slice(-1*t.length+s[0].length-1);null!=(s=l.exec(e));){if(r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!r)continue;if(a=[...r].length,s[3]||s[4]){i+=a;continue}if((s[5]||s[6])&&n%3&&!((n+a)%3)){o+=a;continue}if(i-=a,i>0)continue;a=Math.min(a,a+i+o);const e=[...t].slice(0,n+s.index+a+1).join("");if(Math.min(n,a)%2){const t=e.slice(1,-1);return{type:"em",raw:e,text:t,tokens:this.lexer.inlineTokens(t)}}const l=e.slice(2,-2);return{type:"strong",raw:e,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let t=e[2].replace(/\n/g," ");const n=/[^ ]/.test(t),s=/^ /.test(t)&&/ $/.test(t);return n&&s&&(t=t.substring(1,t.length-1)),t=dt(t,!0),{type:"codespan",raw:e[0],text:t}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){const e=this.rules.inline.autolink.exec(t);if(e){let t,n;return"@"===e[2]?(t=dt(e[1]),n="mailto:"+t):(t=dt(e[1]),n=t),{type:"link",raw:e[0],text:t,href:n,tokens:[{type:"text",raw:t,text:t}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let t,n;if("@"===e[2])t=dt(e[0]),n="mailto:"+t;else{let s;do{s=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])[0]}while(s!==e[0]);t=dt(e[0]),n="www."===e[1]?"http://"+e[0]:e[0]}return{type:"link",raw:e[0],text:t,href:n,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t){const e=this.rules.inline.text.exec(t);if(e){let t;return t=this.lexer.state.inRawBlock?e[0]:dt(e[0]),{type:"text",raw:e[0],text:t}}}}const xt={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:bt,lheading:/^(?!bull )((?:.|\n(?!\s*?\n|bull ))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};xt.def=ft(xt.def).replace("label",xt._label).replace("title",xt._title).getRegex(),xt.bullet=/(?:[*+-]|\d{1,9}[.)])/,xt.listItemStart=ft(/^( *)(bull) */).replace("bull",xt.bullet).getRegex(),xt.list=ft(xt.list).replace(/bull/g,xt.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+xt.def.source+")").getRegex(),xt._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",xt._comment=/|$)/,xt.html=ft(xt.html,"i").replace("comment",xt._comment).replace("tag",xt._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),xt.lheading=ft(xt.lheading).replace(/bull/g,xt.bullet).getRegex(),xt.paragraph=ft(xt._paragraph).replace("hr",xt.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",xt._tag).getRegex(),xt.blockquote=ft(xt.blockquote).replace("paragraph",xt.paragraph).getRegex(),xt.normal={...xt},xt.gfm={...xt.normal,table:"^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},xt.gfm.table=ft(xt.gfm.table).replace("hr",xt.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",xt._tag).getRegex(),xt.gfm.paragraph=ft(xt._paragraph).replace("hr",xt.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",xt.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",xt._tag).getRegex(),xt.pedantic={...xt.normal,html:ft("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",xt._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:bt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ft(xt.normal._paragraph).replace("hr",xt.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",xt.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const yt={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:bt,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,rDelimAst:/^[^_*]*?__[^_*]*?\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\*)[punct](\*+)(?=[\s]|$)|[^punct\s](\*+)(?!\*)(?=[punct\s]|$)|(?!\*)[punct\s](\*+)(?=[^punct\s])|[\s](\*+)(?!\*)(?=[punct])|(?!\*)[punct](\*+)(?!\*)(?=[punct])|[^punct\s](\*+)(?=[^punct\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\s]|$)|[^punct\s](_+)(?!_)(?=[punct\s]|$)|(?!_)[punct\s](_+)(?=[^punct\s])|[\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:bt,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`^|~"};yt.punctuation=ft(yt.punctuation,"u").replace(/punctuation/g,yt._punctuation).getRegex(),yt.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,yt.anyPunctuation=/\\[punct]/g,yt._escapes=/\\([punct])/g,yt._comment=ft(xt._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),yt.emStrong.lDelim=ft(yt.emStrong.lDelim,"u").replace(/punct/g,yt._punctuation).getRegex(),yt.emStrong.rDelimAst=ft(yt.emStrong.rDelimAst,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt.emStrong.rDelimUnd=ft(yt.emStrong.rDelimUnd,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt.anyPunctuation=ft(yt.anyPunctuation,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt._escapes=ft(yt._escapes,"gu").replace(/punct/g,yt._punctuation).getRegex(),yt._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,yt._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,yt.autolink=ft(yt.autolink).replace("scheme",yt._scheme).replace("email",yt._email).getRegex(),yt._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,yt.tag=ft(yt.tag).replace("comment",yt._comment).replace("attribute",yt._attribute).getRegex(),yt._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,yt._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,yt._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,yt.link=ft(yt.link).replace("label",yt._label).replace("href",yt._href).replace("title",yt._title).getRegex(),yt.reflink=ft(yt.reflink).replace("label",yt._label).replace("ref",xt._label).getRegex(),yt.nolink=ft(yt.nolink).replace("ref",xt._label).getRegex(),yt.reflinkSearch=ft(yt.reflinkSearch,"g").replace("reflink",yt.reflink).replace("nolink",yt.nolink).getRegex(),yt.normal={...yt},yt.pedantic={...yt.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:ft(/^!?\[(label)\]\((.*?)\)/).replace("label",yt._label).getRegex(),reflink:ft(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",yt._label).getRegex()},yt.gfm={...yt.normal,escape:ft(yt.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\e+" ".repeat(n.length)));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((s=>!!(n=s.call({lexer:this},t,e))&&(t=t.substring(n.raw.length),e.push(n),!0)))))if(n=this.tokenizer.space(t))t=t.substring(n.raw.length),1===n.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(n);else if(n=this.tokenizer.code(t))t=t.substring(n.raw.length),s=e[e.length-1],!s||"paragraph"!==s.type&&"text"!==s.type?e.push(n):(s.raw+="\n"+n.raw,s.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=s.text);else if(n=this.tokenizer.fences(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.heading(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.hr(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.blockquote(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.list(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.html(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.def(t))t=t.substring(n.raw.length),s=e[e.length-1],!s||"paragraph"!==s.type&&"text"!==s.type?this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title}):(s.raw+="\n"+n.raw,s.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=s.text);else if(n=this.tokenizer.table(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.lheading(t))t=t.substring(n.raw.length),e.push(n);else{if(r=t,this.options.extensions&&this.options.extensions.startBlock){let e=1/0;const n=t.slice(1);let s;this.options.extensions.startBlock.forEach((t=>{s=t.call({lexer:this},n),"number"==typeof s&&s>=0&&(e=Math.min(e,s))})),e<1/0&&e>=0&&(r=t.substring(0,e+1))}if(this.state.top&&(n=this.tokenizer.paragraph(r)))s=e[e.length-1],a&&"paragraph"===s.type?(s.raw+="\n"+n.raw,s.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(n),a=r.length!==t.length,t=t.substring(n.raw.length);else if(n=this.tokenizer.text(t))t=t.substring(n.raw.length),s=e[e.length-1],s&&"text"===s.type?(s.raw+="\n"+n.raw,s.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(n);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){st.error(e);break}throw new Error(e)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let n,s,r,a,i,o,l=t;if(this.tokens.links){const t=Object.keys(this.tokens.links);if(t.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)t.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(i||(o=""),i=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((s=>!!(n=s.call({lexer:this},t,e))&&(t=t.substring(n.raw.length),e.push(n),!0)))))if(n=this.tokenizer.escape(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.tag(t))t=t.substring(n.raw.length),s=e[e.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):e.push(n);else if(n=this.tokenizer.link(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(n.raw.length),s=e[e.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):e.push(n);else if(n=this.tokenizer.emStrong(t,l,o))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.codespan(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.br(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.del(t))t=t.substring(n.raw.length),e.push(n);else if(n=this.tokenizer.autolink(t))t=t.substring(n.raw.length),e.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(t))){if(r=t,this.options.extensions&&this.options.extensions.startInline){let e=1/0;const n=t.slice(1);let s;this.options.extensions.startInline.forEach((t=>{s=t.call({lexer:this},n),"number"==typeof s&&s>=0&&(e=Math.min(e,s))})),e<1/0&&e>=0&&(r=t.substring(0,e+1))}if(n=this.tokenizer.inlineText(r))t=t.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(o=n.raw.slice(-1)),i=!0,s=e[e.length-1],s&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):e.push(n);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){st.error(e);break}throw new Error(e)}}else t=t.substring(n.raw.length),e.push(n);return e}}class Ct{options;constructor(t){this.options=t||rt}code(t,e,n){const s=(e||"").match(/^\S*/)?.[0];return t=t.replace(/\n$/,"")+"\n",s?'
    '+(n?t:dt(t,!0))+"
    \n":"
    "+(n?t:dt(t,!0))+"
    \n"}blockquote(t){return`
    \n${t}
    \n`}html(t,e){return t}heading(t,e,n){return`${t}\n`}hr(){return"
    \n"}list(t,e,n){const s=e?"ol":"ul";return"<"+s+(e&&1!==n?' start="'+n+'"':"")+">\n"+t+"\n"}listitem(t,e,n){return`
  • ${t}
  • \n`}checkbox(t){return"'}paragraph(t){return`

    ${t}

    \n`}table(t,e){return e&&(e=`${e}`),"\n\n"+t+"\n"+e+"
    \n"}tablerow(t){return`\n${t}\n`}tablecell(t,e){const n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`\n`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return"
    "}del(t){return`${t}`}link(t,e,n){const s=mt(t);if(null===s)return n;let r='",r}image(t,e,n){const s=mt(t);if(null===s)return n;let r=`${n}"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")));continue}case"code":{const t=r;n+=this.renderer.code(t.text,t.lang,!!t.escaped);continue}case"table":{const t=r;let e="",s="";for(let e=0;e0&&"paragraph"===n.tokens[0].type?(n.tokens[0].text=t+" "+n.tokens[0].text,n.tokens[0].tokens&&n.tokens[0].tokens.length>0&&"text"===n.tokens[0].tokens[0].type&&(n.tokens[0].tokens[0].text=t+" "+n.tokens[0].tokens[0].text)):n.tokens.unshift({type:"text",text:t+" "}):o+=t+" "}o+=this.parse(n.tokens,a),i+=this.renderer.listitem(o,r,!!s)}n+=this.renderer.list(i,e,s);continue}case"html":{const t=r;n+=this.renderer.html(t.text,t.block);continue}case"paragraph":{const t=r;n+=this.renderer.paragraph(this.parseInline(t.tokens));continue}case"text":{let a=r,i=a.tokens?this.parseInline(a.tokens):a.text;for(;s+1{n=n.concat(this.walkTokens(t[s],e))})):t.tokens&&(n=n.concat(this.walkTokens(t.tokens,e)))}}return n}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach((t=>{const n={...t};if(n.async=this.defaults.async||n.async||!1,t.extensions&&(t.extensions.forEach((t=>{if(!t.name)throw new Error("extension name required");if("renderer"in t){const n=e.renderers[t.name];e.renderers[t.name]=n?function(...e){let s=t.renderer.apply(this,e);return!1===s&&(s=n.apply(this,e)),s}:t.renderer}if("tokenizer"in t){if(!t.level||"block"!==t.level&&"inline"!==t.level)throw new Error("extension level must be 'block' or 'inline'");const n=e[t.level];n?n.unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&("block"===t.level?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:"inline"===t.level&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}"childTokens"in t&&t.childTokens&&(e.childTokens[t.name]=t.childTokens)})),n.extensions=e),t.renderer){const e=this.defaults.renderer||new Ct(this.defaults);for(const n in t.renderer){const s=t.renderer[n],r=n,a=e[r];e[r]=(...t)=>{let n=s.apply(e,t);return!1===n&&(n=a.apply(e,t)),n||""}}n.renderer=e}if(t.tokenizer){const e=this.defaults.tokenizer||new _t(this.defaults);for(const n in t.tokenizer){const s=t.tokenizer[n],r=n,a=e[r];e[r]=(...t)=>{let n=s.apply(e,t);return!1===n&&(n=a.apply(e,t)),n}}n.tokenizer=e}if(t.hooks){const e=this.defaults.hooks||new Lt;for(const n in t.hooks){const s=t.hooks[n],r=n,a=e[r];Lt.passThroughHooks.has(n)?e[r]=t=>{if(this.defaults.async)return Promise.resolve(s.call(e,t)).then((t=>a.call(e,t)));const n=s.call(e,t);return a.call(e,n)}:e[r]=(...t)=>{let n=s.apply(e,t);return!1===n&&(n=a.apply(e,t)),n}}n.hooks=e}if(t.walkTokens){const e=this.defaults.walkTokens,s=t.walkTokens;n.walkTokens=function(t){let n=[];return n.push(s.call(this,t)),e&&(n=n.concat(e.call(this,t))),n}}this.defaults={...this.defaults,...n}})),this}setOptions(t){return this.defaults={...this.defaults,...t},this}#t(t,e){return(n,s)=>{const r={...s},a={...this.defaults,...r};!0===this.defaults.async&&!1===r.async&&(a.silent||st.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),a.async=!0);const i=this.#e(!!a.silent,!!a.async);if(null==n)return i(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof n)return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(n):n).then((e=>t(e,a))).then((t=>a.walkTokens?Promise.all(this.walkTokens(t,a.walkTokens)).then((()=>t)):t)).then((t=>e(t,a))).then((t=>a.hooks?a.hooks.postprocess(t):t)).catch(i);try{a.hooks&&(n=a.hooks.preprocess(n));const s=t(n,a);a.walkTokens&&this.walkTokens(s,a.walkTokens);let r=e(s,a);return a.hooks&&(r=a.hooks.postprocess(r)),r}catch(t){return i(t)}}}#e(t,e){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t){const t="

    An error occurred:

    "+dt(n.message+"",!0)+"
    ";return e?Promise.resolve(t):t}if(e)return Promise.reject(n);throw n}}};function $t(t,e){return Tt.parse(t,e)}$t.options=$t.setOptions=function(t){return Tt.setOptions(t),$t.defaults=Tt.defaults,at($t.defaults),$t},$t.getDefaults=function(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}},$t.defaults=rt,$t.use=function(...t){return Tt.use(...t),$t.defaults=Tt.defaults,at($t.defaults),$t},$t.walkTokens=function(t,e){return Tt.walkTokens(t,e)},$t.parseInline=Tt.parseInline,$t.Parser=It,$t.parser=It.parse,$t.Renderer=Ct,$t.TextRenderer=St,$t.Lexer=wt,$t.lexer=wt.lex,$t.Tokenizer=_t,$t.Hooks=Lt,$t.parse=$t,$t.options,$t.setOptions,$t.use,$t.walkTokens,$t.parseInline;var Dt=s(27856),Nt=s.n(Dt),zt={name:"Markdown",props:{text:{type:String,default:""}},computed:{renderMarkdown:function(){var t=new $t.Renderer;return t.link=function(t,e,n){var s;try{s=decodeURIComponent(unescape(t)).replace(/[^\w:]/g,"").toLowerCase()}catch(t){return""}if(0!==s.indexOf("http:")&&0!==s.indexOf("https:"))return"";var r='
    "+n+""},t.image=function(t,e,n){return n||e},t.blockquote=function(t){return t},Nt().sanitize($t(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"]})}}},Bt=s(37702),Et={};Et.styleTagTransform=q(),Et.setAttributes=P(),Et.insert=j().bind(null,"head"),Et.domAPI=R(),Et.insertStyleElement=U(),E()(Bt.Z,Et),Bt.Z&&Bt.Z.locals&&Bt.Z.locals;var Zt=(0,b.Z)(zt,(function(){var t=this;return(0,t._self._c)("div",{staticClass:"settings-markdown",domProps:{innerHTML:t._s(t.renderMarkdown)}})}),[],!1,null,"ffd9a2d6",null).exports,Rt={name:"AppDetails",components:{NcSelect:nt.Z,Markdown:Zt},mixins:[C,Q],props:{app:{type:Object,required:!0}},data:function(){return{groupCheckedAppsData:!1}},computed:{appstoreUrl:function(){return"https://apps.nextcloud.com/apps/".concat(this.app.id)},licence:function(){return this.app.licence?t("settings","{license}-licensed",{license:(""+this.app.licence).toUpperCase()}):null},author:function(){return"string"==typeof this.app.author?[{"@value":this.app.author}]:this.app.author["@value"]?[this.app.author]:this.app.author},appGroups:function(){return this.app.groups.map((function(t){return{id:t,name:t}}))},groups:function(){return this.$store.getters.getGroups.filter((function(t){return"disabled"!==t.id})).sort((function(t,e){return t.name.localeCompare(e.name)}))}},mounted:function(){this.app.groups.length>0&&(this.groupCheckedAppsData=!0)}},Mt=s(55014),jt={};jt.styleTagTransform=q(),jt.setAttributes=P(),jt.insert=j().bind(null,"head"),jt.domAPI=R(),jt.insertStyleElement=U(),E()(Mt.Z,jt),Mt.Z&&Mt.Z.locals&&Mt.Z.locals;var Ot=(0,b.Z)(Rt,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"app-details"},[e("div",{staticClass:"app-details__actions"},[t.app.active&&t.canLimitToGroups(t.app)?e("div",{staticClass:"app-details__actions-groups"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.groupCheckedAppsData,expression:"groupCheckedAppsData"}],staticClass:"groups-enable__checkbox checkbox",attrs:{id:t.prefix("groups_enable",t.app.id),type:"checkbox"},domProps:{value:t.app.id,checked:Array.isArray(t.groupCheckedAppsData)?t._i(t.groupCheckedAppsData,t.app.id)>-1:t.groupCheckedAppsData},on:{change:[function(e){var n=t.groupCheckedAppsData,s=e.target,r=!!s.checked;if(Array.isArray(n)){var a=t.app.id,i=t._i(n,a);s.checked?i<0&&(t.groupCheckedAppsData=n.concat([a])):i>-1&&(t.groupCheckedAppsData=n.slice(0,i).concat(n.slice(i+1)))}else t.groupCheckedAppsData=r},t.setGroupLimit]}}),t._v(" "),e("label",{attrs:{for:t.prefix("groups_enable",t.app.id)}},[t._v(t._s(t.t("settings","Limit to groups")))]),t._v(" "),e("input",{staticClass:"group_select",attrs:{type:"hidden",title:t.t("settings","All"),value:""}}),t._v(" "),e("br"),t._v(" "),e("label",{attrs:{for:"limitToGroups"}},[e("span",[t._v(t._s(t.t("settings","Limit app usage to groups")))])]),t._v(" "),t.isLimitedToGroups(t.app)?e("NcSelect",{attrs:{"input-id":"limitToGroups",options:t.groups,value:t.appGroups,limit:5,label:"name",multiple:!0,"close-on-select":!1},on:{"option:selected":t.addGroupLimitation,"option:deselected":t.removeGroupLimitation,search:t.asyncFindGroup}},[e("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("settings","No results")))])]):t._e()],1):t._e(),t._v(" "),e("div",{staticClass:"app-details__actions-manage"},[t.app.update?e("input",{staticClass:"update primary",attrs:{type:"button",value:t.t("settings","Update to {version}",{version:t.app.update}),disabled:t.installing||t.isLoading},on:{click:function(e){return t.update(t.app.id)}}}):t._e(),t._v(" "),t.app.canUnInstall?e("input",{staticClass:"uninstall",attrs:{type:"button",value:t.t("settings","Remove"),disabled:t.installing||t.isLoading},on:{click:function(e){return t.remove(t.app.id)}}}):t._e(),t._v(" "),t.app.active?e("input",{staticClass:"enable",attrs:{type:"button",value:t.t("settings","Disable"),disabled:t.installing||t.isLoading},on:{click:function(e){return t.disable(t.app.id)}}}):t._e(),t._v(" "),t.app.active||!t.app.canInstall&&!t.app.isCompatible?t.app.active||t.app.canInstall?t._e():e("input",{staticClass:"enable force",attrs:{title:t.forceEnableButtonTooltip,"aria-label":t.forceEnableButtonTooltip,type:"button",value:t.forceEnableButtonText,disabled:t.installing||t.isLoading},on:{click:function(e){return t.forceEnable(t.app.id)}}}):e("input",{staticClass:"enable primary",attrs:{title:t.enableButtonTooltip,"aria-label":t.enableButtonTooltip,type:"button",value:t.enableButtonText,disabled:!t.app.canInstall||t.installing||t.isLoading},on:{click:function(e){return t.enable(t.app.id)}}})])]),t._v(" "),e("ul",{staticClass:"app-details__dependencies"},[t.app.missingMinOwnCloudVersion?e("li",[t._v("\n\t\t\t"+t._s(t.t("settings","This app has no minimum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):t._e(),t._v(" "),t.app.missingMaxOwnCloudVersion?e("li",[t._v("\n\t\t\t"+t._s(t.t("settings","This app has no maximum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):t._e(),t._v(" "),t.app.canInstall?t._e():e("li",[t._v("\n\t\t\t"+t._s(t.t("settings","This app cannot be installed because the following dependencies are not fulfilled:"))+"\n\t\t\t"),e("ul",{staticClass:"missing-dependencies"},t._l(t.app.missingDependencies,(function(n,s){return e("li",{key:s},[t._v("\n\t\t\t\t\t"+t._s(n)+"\n\t\t\t\t")])})),0)])]),t._v(" "),e("p",{staticClass:"app-details__documentation"},[t.app.internal?t._e():e("a",{staticClass:"appslink",attrs:{href:t.appstoreUrl,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","View in store"))+" ↗")]),t._v(" "),t.app.website?e("a",{staticClass:"appslink",attrs:{href:t.app.website,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Visit website"))+" ↗")]):t._e(),t._v(" "),t.app.bugs?e("a",{staticClass:"appslink",attrs:{href:t.app.bugs,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Report a bug"))+" ↗")]):t._e(),t._v(" "),t.app.documentation&&t.app.documentation.user?e("a",{staticClass:"appslink",attrs:{href:t.app.documentation.user,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","User documentation"))+" ↗")]):t._e(),t._v(" "),t.app.documentation&&t.app.documentation.admin?e("a",{staticClass:"appslink",attrs:{href:t.app.documentation.admin,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Admin documentation"))+" ↗")]):t._e(),t._v(" "),t.app.documentation&&t.app.documentation.developer?e("a",{staticClass:"appslink",attrs:{href:t.app.documentation.developer,target:"_blank",rel:"noreferrer noopener"}},[t._v(t._s(t.t("settings","Developer documentation"))+" ↗")]):t._e()]),t._v(" "),e("Markdown",{staticClass:"app-details__description",attrs:{text:t.app.description}})],1)}),[],!1,null,"5be7cbf9",null).exports,Pt=s(92652);a.default.use(o());var Gt={name:"Apps",APPS_SECTION_ENUM:Pt.J,components:{NcAppContent:l.Z,AppDetails:Ot,AppList:et,IconStarShooting:A,NcAppNavigation:p.Z,NcAppNavigationItem:c.Z,NcAppNavigationSpacer:u.Z,NcCounterBubble:g.Z,AppScore:_,NcAppSidebar:d.Z,NcAppSidebarTab:h.Z,NcContent:f.Z,Markdown:Zt},mixins:[C],props:{category:{type:String,default:"installed"},id:{type:String,default:""}},data:function(){return{searchQuery:"",screenshotLoaded:!1}},computed:{loading:function(){return this.$store.getters.loading("categories")},loadingList:function(){return this.$store.getters.loading("list")},app:function(){var t=this;return this.apps.find((function(e){return e.id===t.id}))},categories:function(){return this.$store.getters.getCategories},apps:function(){return this.$store.getters.getAllApps},updateCount:function(){return this.$store.getters.getUpdateCount},settings:function(){return this.$store.getters.getServerData},hasRating:function(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},appSidebar:function(){var e=function(t){return t["@value"]?t["@value"]:t},n=Array.isArray(this.app.author)?this.app.author.map(e).join(", "):e(this.app.author),s=t("settings","{license}-licensed",{license:(""+this.app.licence).toUpperCase()}),r=t("settings","by {author}\n{license}",{author:n,license:s});return{background:this.app.screenshot&&this.screenshotLoaded?this.app.screenshot:this.app.preview,compact:!(this.app.screenshot&&this.screenshotLoaded),name:this.app.name,subname:r}},changelog:function(){return function(t){return t.translations.en.changelog}},isSubscribed:function(){return this.apps.some((function(t){return 300===t.level}))}},watch:{category:function(){this.searchQuery=""},app:function(){var t,e,n=this;if(this.screenshotLoaded=!1,null!==(t=this.app)&&void 0!==t&&t.releases&&null!==(e=this.app)&&void 0!==e&&e.screenshot){var s=new Image;s.onload=function(t){n.screenshotLoaded=!0},s.src=this.app.screenshot}}},beforeMount:function(){this.$store.dispatch("getCategories",{shouldRefetchCategories:!0}),this.$store.dispatch("getAllApps"),this.$store.dispatch("getGroups",{offset:0,limit:5}),this.$store.commit("setUpdateCount",this.$store.getters.getServerData.updateCount)},mounted:function(){(0,r.Ld)("nextcloud:unified-search.search",this.setSearch),(0,r.Ld)("nextcloud:unified-search.reset",this.resetSearch)},beforeDestroy:function(){(0,r.r1)("nextcloud:unified-search.search",this.setSearch),(0,r.r1)("nextcloud:unified-search.reset",this.resetSearch)},methods:{setSearch:function(t){var e=t.query;this.searchQuery=e},resetSearch:function(){this.searchQuery=""},hideAppDetails:function(){this.$router.push({name:"apps-category",params:{category:this.category}})},openDeveloperDocumentation:function(){window.open(this.settings.developerDocumentation)}}},Ut=s(35732),Vt={};Vt.styleTagTransform=q(),Vt.setAttributes=P(),Vt.insert=j().bind(null,"head"),Vt.domAPI=R(),Vt.insertStyleElement=U(),E()(Ut.Z,Vt),Ut.Z&&Ut.Z.locals&&Ut.Z.locals;var qt=(0,b.Z)(Gt,(function(){var t=this,e=t._self._c;return e("NcContent",{class:{"with-app-sidebar":t.app},attrs:{"app-name":"settings"}},[e("NcAppNavigation",{class:{"icon-loading":t.loading},scopedSlots:t._u([{key:"list",fn:function(){return[e("NcAppNavigationItem",{attrs:{id:"app-category-your-apps",to:{name:"apps"},exact:!0,icon:"icon-category-installed",name:t.t("settings","Your apps")}}),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-category-enabled",to:{name:"apps-category",params:{category:"enabled"}},icon:"icon-category-enabled",name:t.$options.APPS_SECTION_ENUM.enabled}}),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-category-disabled",to:{name:"apps-category",params:{category:"disabled"}},icon:"icon-category-disabled",name:t.$options.APPS_SECTION_ENUM.disabled}}),t._v(" "),t.updateCount>0?e("NcAppNavigationItem",{attrs:{id:"app-category-updates",to:{name:"apps-category",params:{category:"updates"}},icon:"icon-download",name:t.$options.APPS_SECTION_ENUM.updates},scopedSlots:t._u([{key:"counter",fn:function(){return[e("NcCounterBubble",[t._v(t._s(t.updateCount))])]},proxy:!0}],null,!1,54487302)}):t._e(),t._v(" "),t.isSubscribed?e("NcAppNavigationItem",{attrs:{id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"}},name:t.$options.APPS_SECTION_ENUM.supported},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconStarShooting",{attrs:{size:20}})]},proxy:!0}],null,!1,704374136)}):t._e(),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-category-your-bundles",to:{name:"apps-category",params:{category:"app-bundles"}},icon:"icon-category-app-bundles",name:t.$options.APPS_SECTION_ENUM["app-bundles"]}}),t._v(" "),e("NcAppNavigationSpacer"),t._v(" "),t.settings.appstoreEnabled?[e("NcAppNavigationItem",{attrs:{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"}},icon:"icon-favorite",name:t.$options.APPS_SECTION_ENUM.featured}}),t._v(" "),t._l(t.categories,(function(t){return e("NcAppNavigationItem",{key:"icon-category-"+t.ident,attrs:{icon:"icon-category-"+t.ident,to:{name:"apps-category",params:{category:t.ident}},name:t.displayName}})}))]:t._e(),t._v(" "),e("NcAppNavigationItem",{attrs:{id:"app-developer-docs",name:t.t("settings","Developer documentation")+" ↗"},on:{click:t.openDeveloperDocumentation}})]},proxy:!0}])}),t._v(" "),e("NcAppContent",{staticClass:"app-settings-content",class:{"icon-loading":t.loadingList}},[e("AppList",{attrs:{category:t.category,app:t.app,search:t.searchQuery}})],1),t._v(" "),t.id&&t.app?e("NcAppSidebar",t._b({class:{"app-sidebar--without-background":!t.appSidebar.background},on:{close:t.hideAppDetails},scopedSlots:t._u([t.appSidebar.background?null:{key:"header",fn:function(){return[e("div",{staticClass:"app-sidebar-header__figure--default-app-icon icon-settings-dark"})]},proxy:!0},{key:"description",fn:function(){return[300===t.app.level||200===t.app.level||t.hasRating?e("div",{staticClass:"app-level"},[300===t.app.level?e("span",{staticClass:"supported icon-checkmark-color",attrs:{title:t.t("settings","This app is supported via your current Nextcloud subscription.")}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Supported")))]):t._e(),t._v(" "),200===t.app.level?e("span",{staticClass:"official icon-checkmark",attrs:{title:t.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Featured")))]):t._e(),t._v(" "),t.hasRating?e("AppScore",{attrs:{score:t.app.appstoreData.ratingOverall}}):t._e()],1):t._e(),t._v(" "),e("div",{staticClass:"app-version"},[e("p",[t._v(t._s(t.app.version))])])]},proxy:!0}],null,!0)},"NcAppSidebar",t.appSidebar,!1),[t._v(" "),t._v(" "),e("NcAppSidebarTab",{attrs:{id:"desc",icon:"icon-category-office",name:t.t("settings","Details"),order:0}},[e("AppDetails",{attrs:{app:t.app}})],1),t._v(" "),t.app.appstoreData&&t.app.releases[0].translations.en.changelog?e("NcAppSidebarTab",{attrs:{id:"desca",icon:"icon-category-organization",name:t.t("settings","Changelog"),order:1}},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(" "),t.changelog(n)?e("Markdown",{attrs:{text:t.changelog(n)}}):t._e()],1)})),0):t._e()],1):t._e()],1)}),[],!1,null,"2f31fb7f",null).exports},87369:function(t,e,n){var s=n(34155),r=n(25108);t.exports=function(){"use strict";var t=function(){this._properties={},this._namespace="",this._isSupported=!0},e={namespace:{}};e.namespace.get=function(){return this._namespace},e.namespace.set=function(t){this._namespace=t?t+".":""},t.prototype._getLsKey=function(t){return""+this._namespace+t},t.prototype._lsSet=function(t,e,n){var s=this._getLsKey(t),r=n&&[Array,Object].includes(n)?JSON.stringify(e):e;window.localStorage.setItem(s,r)},t.prototype._lsGet=function(t){var e=this._getLsKey(t);return window.localStorage[e]},t.prototype.get=function(t,e,n){if(void 0===e&&(e=null),void 0===n&&(n=String),!this._isSupported)return null;if(this._lsGet(t)){var s=n;for(var r in this._properties)if(r===t){s=this._properties[r].type;break}return this._process(s,this._lsGet(t))}return null!==e?e:null},t.prototype.set=function(t,e){var n=this;if(!this._isSupported)return null;for(var s in n._properties){var r=n._properties[s].type;if(s===t)return n._lsSet(t,e,r),e}return this._lsSet(t,e),e},t.prototype.remove=function(t){return this._isSupported?window.localStorage.removeItem(t):null},t.prototype.addProperty=function(t,e,n){void 0===n&&(n=void 0),e=e||String,this._properties[t]={type:e},this._lsGet(t)||null===n||this._lsSet(t,n,e)},t.prototype._process=function(t,e){switch(t){case Boolean:return"true"===e;case Number:return parseFloat(e);case Array:try{var n=JSON.parse(e);return Array.isArray(n)?n:[]}catch(t){return[]}case Object:try{return JSON.parse(e)}catch(t){return{}}default:return e}},Object.defineProperties(t.prototype,e);var n=new t;return{install:function(t,e){if(void 0===e&&(e={}),void 0===s||!(s.server||s.SERVER_BUILD||s.env&&"server"===s.env.VUE_ENV)){var a=!0;try{var i="__vue-localstorage-test__";window.localStorage.setItem(i,i),window.localStorage.removeItem(i)}catch(t){a=!1,n._isSupported=!1,r.error("Local storage is not supported")}var o=e.name||"localStorage",l=e.bind;e.namespace&&(n.namespace=e.namespace),t.mixin({beforeCreate:function(){var e=this;a&&this.$options[o]&&Object.keys(this.$options[o]).forEach((function(s){var a=e.$options[o][s],i=[a.type,a.default],p=i[0],c=i[1];if(n.addProperty(s,p,c),Object.getOwnPropertyDescriptor(n,s))t.config.silent||r.log(s+": is already defined and will be reused");else{var u={get:function(){return t.localStorage.get(s,c)},set:function(e){return t.localStorage.set(s,e)},configurable:!0};Object.defineProperty(n,s,u),t.util.defineReactive(n,s,c)}(l||a.bind)&&!1!==a.bind&&(e.$options.computed=e.$options.computed||{},e.$options.computed[s]||(e.$options.computed[s]={get:function(){return t.localStorage[s]},set:function(e){t.localStorage[s]=e}}))}))}}),t[o]=n,t.prototype["$"+o]=n}}}}()},42761:function(t){"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTS00LTRoMjR2MjRILTRWLTR6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTggMEMzLjYgMCAwIDMuNiAwIDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh6IiBmaWxsPSIjZWQ0ODRjIi8+PHBhdGggZD0iTTUgNi41aDZjLjggMCAxLjUuNyAxLjUgMS41cy0uNyAxLjUtMS41IDEuNUg1Yy0uOCAwLTEuNS0uNy0xLjUtMS41UzQuMiA2LjUgNSA2LjV6IiBmaWxsPSIjZmRmZmZmIi8+PC9zdmc+Cg=="},87210:function(t){"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTQuOCAxMS4yaDYuNFY0LjhINC44djYuNHpNOCAwQzMuNiAwIDAgMy42IDAgOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHoiIGZpbGw9IiM0OWIzODIiLz48L3N2Zz4K"},94659:function(t){"use strict";t.exports="data:image/svg+xml;base64,PCEtLSBUaGlzIGljb24gaXMgcGFydCBvZiBNYXRlcmlhbCBVSSBJY29ucy4gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4sIEFwYWNoZS0yLjAgTGljZW5zZSAtLT4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS00LTRoMjR2MjRILTR6Ii8+PHBhdGggZD0iTTYuOS4xQzMgLjYtLjEgNC0uMSA4YzAgNC40IDMuNiA4IDggOCA0IDAgNy40LTMgOC02LjktMS4yIDEuMy0yLjkgMi4xLTQuNyAyLjEtMy41IDAtNi40LTIuOS02LjQtNi40IDAtMS45LjgtMy42IDIuMS00Ljd6IiBmaWxsPSIjZjRhMzMxIi8+PC9zdmc+Cg=="}}]); +//# sourceMappingURL=settings-apps-view-7418.js.map?v=9568db075946a8294aaf \ No newline at end of file diff --git a/dist/settings-apps-view-7418.js.map b/dist/settings-apps-view-7418.js.map index e9a6574d11aa7..16544e9f2f6f0 100644 --- a/dist/settings-apps-view-7418.js.map +++ b/dist/settings-apps-view-7418.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-apps-view-7418.js?v=c1cae41c530feb8e9906","mappings":";gJAGIA,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,0wBAA2wB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,MAAQ,GAAG,SAAW,4OAA4O,eAAiB,CAAC,wzBAAwzB,WAAa,MAEn+D,6ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sSAAuS,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,8HAA8H,eAAiB,CAAC,0TAA0T,WAAa,MAEh5B,6ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,wEAAyE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gEAAgE,MAAQ,GAAG,SAAW,mBAAmB,eAAiB,CAAC,qEAAqE,WAAa,MAE1V,6ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,kkDAAmkD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yDAAyD,MAAQ,GAAG,SAAW,0bAA0b,eAAiB,CAAC,wqCAAwqC,WAAa,MAEv1G,6ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,u0CAAw0C,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gDAAgD,MAAQ,GAAG,SAAW,uSAAuS,eAAiB,CAAC,8oDAA8oD,WAAa,MAEt6G,wFCPA,sICAgH,ECoBhH,CACEC,KAAM,mBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,iBCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,0CAA0CC,MAAM,CAAC,eAAeN,EAAIP,MAAM,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,ihBAAihB,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UACthC,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,mBElB2J,EC4B3L,CACAvB,KAAA,WACAE,MAAA,UACAsB,SAAA,CACAC,WAAA,WACA,IACAC,EAAA,WADAC,KAAAC,MAAA,QAAAC,OACA,OACA,OAAAC,EAAAA,EAAAA,WAAA,OAAAJ,EACA,IClBA,GAXgB,OACd,GCRW,WAA+C,OAAOd,EAA5BD,KAAYE,MAAMD,IAAa,MAAM,CAACG,YAAY,kBAAkBC,MAAM,CAAC,IAA3EL,KAAqFc,aAC5H,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,8BEdhC,aACC,OAAOM,EAAAA,EAAMC,KAAIC,EAAAA,EAAAA,gBAAe,kBAAmB,GAAK,qBACtDC,MAAK,SAAAC,GAAc,IAAXC,EAAID,EAAJC,KACyB,MAA7BA,EAAKC,IAAIC,KAAKC,cAIlBC,EAAAA,EAAAA,IAAK,6BAA8B,CAAEC,KAAML,EAAKC,IAAID,OACpDM,OAAOC,cAAc,IAAIC,MAAM,WAChC,GACD,ECWD,GACCpB,SAAU,CACTqB,UAAS,WACR,OAAOlC,KAAKmC,IAAIC,OAAOC,KAAI,SAAAC,GAAW,MAAO,CAAElD,GAAIkD,EAAOjD,KAAMiD,EAAQ,GACzE,EACAC,WAAU,WACT,OAAOvC,KAAKwC,OAAOC,QAAQC,QAAQ,UACpC,EACAC,UAAS,WACR,OAAO3C,KAAKmC,KAAOnC,KAAKwC,OAAOC,QAAQC,QAAQ1C,KAAKmC,IAAI/C,GACzD,EACAwD,iBAAgB,WACf,OAAI5C,KAAKmC,IAAIU,cACLC,EAAE,WAAY,uBAEfA,EAAE,WAAY,SACtB,EACAC,sBAAqB,WACpB,OAAI/C,KAAKmC,IAAIU,cACLC,EAAE,WAAY,qBAGvB,EACAE,oBAAmB,WAClB,QAAIhD,KAAKmC,IAAIU,eACLC,EAAE,WAAY,gDAGvB,EACAG,yBAAwB,WACvB,IAAMC,EAAOJ,EAAE,WAAY,8KAC3B,OAAI9C,KAAKmC,IAAIU,cACLK,EAAO,IAAMJ,EAAE,WAAY,iDAE5BI,CACR,GAGDzB,KAAI,WACH,MAAO,CACN0B,sBAAsB,EAExB,EAEAC,QAAO,WACFpD,KAAKmC,KAAOnC,KAAKmC,IAAIC,QAAUpC,KAAKmC,IAAIC,OAAOiB,OAAS,IAC3DrD,KAAKmD,sBAAuB,EAE9B,EAEAG,QAAS,CACRC,eAAc,SAACC,GACd,OAAOxD,KAAKwC,OAAOiB,SAAS,YAAa,CAAEC,OAAQF,EAAOG,MAAO,EAAGC,OAAQ,GAC7E,EACAC,kBAAiB,SAAC1B,GACjB,SAAInC,KAAKmC,IAAIC,OAAOiB,SAAUrD,KAAKmD,qBAIpC,EACAW,cAAa,WACP9D,KAAKmD,sBACTnD,KAAKwC,OAAOiB,SAAS,YAAa,CAAEM,MAAO/D,KAAKmC,IAAI/C,GAAIgD,OAAQ,IAElE,EACA4B,iBAAgB,SAAC7B,GAChB,QAAKA,EAAI8B,OAAS9B,EAAI8B,MAAMC,SAAS,eAChC/B,EAAI8B,MAAMC,SAAS,aACnB/B,EAAI8B,MAAMC,SAAS,mBACnB/B,EAAI8B,MAAMC,SAAS,YACnB/B,EAAI8B,MAAMC,SAAS,6BAIzB,EACAC,mBAAkB,SAACC,GAClB,IAAM9B,EAAQ8B,EAAWC,MACnBjC,EAASpC,KAAKmC,IAAIC,OAAOkC,OAAO,IAAIA,OAAO,CAAChC,EAAMlD,KACxDY,KAAKwC,OAAOiB,SAAS,YAAa,CAAEM,MAAO/D,KAAKmC,IAAI/C,GAAIgD,OAAAA,GACzD,EACAmC,sBAAqB,SAACjC,GACrB,IAAMkC,EAAgBxE,KAAKmC,IAAIC,OAAOkC,OAAO,IACvCG,EAAQD,EAAcE,QAAQpC,EAAMlD,IACtCqF,GAAS,GACZD,EAAcG,OAAOF,EAAO,GAE7BzE,KAAKwC,OAAOiB,SAAS,YAAa,CAAEM,MAAO/D,KAAKmC,IAAI/C,GAAIgD,OAAQoC,GACjE,EACAI,YAAW,SAACb,GACX/D,KAAKwC,OAAOiB,SAAS,iBAAkB,CAAEM,MAAAA,EAAO3B,OAAQ,KACtDb,MAAK,SAACsD,GAAeC,GAAoB,IACzCC,OAAM,SAACC,IAAYC,EAAAA,EAAAA,IAAUD,EAAO,GACvC,EACAE,OAAM,SAACnB,GACN/D,KAAKwC,OAAOiB,SAAS,YAAa,CAAEM,MAAAA,EAAO3B,OAAQ,KACjDb,MAAK,SAACsD,GAAeC,GAAoB,IACzCC,OAAM,SAACC,IAAYC,EAAAA,EAAAA,IAAUD,EAAO,GACvC,EACAG,QAAO,SAACpB,GACP/D,KAAKwC,OAAOiB,SAAS,aAAc,CAAEM,MAAAA,IACnCxC,MAAK,SAACsD,GAAeC,GAAoB,IACzCC,OAAM,SAACC,IAAYC,EAAAA,EAAAA,IAAUD,EAAO,GACvC,EACAI,OAAM,SAACrB,GACN/D,KAAKwC,OAAOiB,SAAS,eAAgB,CAAEM,MAAAA,IACrCxC,MAAK,SAACsD,GAAeC,GAAoB,IACzCC,OAAM,SAACC,IAAYC,EAAAA,EAAAA,IAAUD,EAAO,GACvC,EACAK,QAAO,SAACtB,GACP/D,KAAKwC,OAAOiB,SAAS,YAAa,CAAEM,MAAAA,IAClCxC,MAAK,SAACsD,GAAeC,GAAoB,IACzCC,OAAM,SAACC,IAAYC,EAAAA,EAAAA,IAAUD,EAAO,GACvC,EACAM,OAAM,SAACvB,GACN/D,KAAKwC,OAAOiB,SAAS,YAAa,CAAEM,MAAAA,IAClCxC,MAAK,SAACsD,GAAeC,GAAoB,IACzCC,OAAM,SAACC,IAAYC,EAAAA,EAAAA,IAAUD,EAAO,GACvC,IC9IyL,ECuB3L,CACA3F,KAAA,iBACAoC,KAAA,WACA,OACA8D,SAAA,GAEA,EACA1E,SAAA,CACA2E,UAAA,WACA,cAAAlB,OAAA,KAAAiB,SAAA,IACA,GAEAnC,QAAA,WACA,KAAAmC,SAAA,kBAAAvE,KAAAyE,SAAAC,SAAA,IAAAC,UAAA,EACA,GCnBA,GAXgB,OACd,OARE,OAAQ,GAWV,EACA,KACA,KACA,MAI8B,sQC2GhCC,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAAC,OAAAC,UAAAC,EAAAH,EAAAI,eAAAC,EAAAJ,OAAAI,gBAAA,SAAAC,EAAAC,EAAAC,GAAAF,EAAAC,GAAAC,EAAAC,KAAA,EAAAC,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAZ,EAAAC,EAAAE,GAAA,OAAAR,OAAAI,eAAAC,EAAAC,EAAA,CAAAE,MAAAA,EAAAU,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAf,EAAAC,EAAA,KAAAW,EAAA,aAAAI,GAAAJ,EAAA,SAAAZ,EAAAC,EAAAE,GAAA,OAAAH,EAAAC,GAAAE,CAAA,WAAAc,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,GAAAA,EAAAvB,qBAAA2B,EAAAJ,EAAAI,EAAAC,EAAA7B,OAAA8B,OAAAH,EAAA1B,WAAA8B,EAAA,IAAAC,EAAAN,GAAA,WAAAtB,EAAAyB,EAAA,WAAArB,MAAAyB,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA9B,EAAA+B,GAAA,WAAA1I,KAAA,SAAA0I,IAAAD,EAAAE,KAAAhC,EAAA+B,GAAA,OAAAf,GAAA,OAAA3H,KAAA,QAAA0I,IAAAf,EAAA,EAAAvB,EAAAwB,KAAAA,EAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAA1C,OAAA2C,eAAAC,EAAAF,GAAAA,EAAAA,EAAAG,EAAA,MAAAD,GAAAA,IAAA7C,GAAAG,EAAAmC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAAvC,UAAA2B,EAAA3B,UAAAD,OAAA8B,OAAAW,GAAA,SAAAM,EAAA9C,GAAA,0BAAA+C,SAAA,SAAAC,GAAAhC,EAAAhB,EAAAgD,GAAA,SAAAb,GAAA,YAAAc,QAAAD,EAAAb,EAAA,gBAAAe,EAAAtB,EAAAuB,GAAA,SAAAC,EAAAJ,EAAAb,EAAAkB,EAAAC,GAAA,IAAAC,EAAAtB,EAAAL,EAAAoB,GAAApB,EAAAO,GAAA,aAAAoB,EAAA9J,KAAA,KAAA+J,EAAAD,EAAApB,IAAA5B,EAAAiD,EAAAjD,MAAA,OAAAA,GAAA,UAAAkD,EAAAlD,IAAAN,EAAAmC,KAAA7B,EAAA,WAAA4C,EAAAE,QAAA9C,EAAAmD,SAAAnI,MAAA,SAAAgF,GAAA6C,EAAA,OAAA7C,EAAA8C,EAAAC,EAAA,aAAAlC,GAAAgC,EAAA,QAAAhC,EAAAiC,EAAAC,EAAA,IAAAH,EAAAE,QAAA9C,GAAAhF,MAAA,SAAAoI,GAAAH,EAAAjD,MAAAoD,EAAAN,EAAAG,EAAA,aAAAxE,GAAA,OAAAoE,EAAA,QAAApE,EAAAqE,EAAAC,EAAA,IAAAA,EAAAC,EAAApB,IAAA,KAAAyB,EAAAzD,EAAA,gBAAAI,MAAA,SAAAyC,EAAAb,GAAA,SAAA0B,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAAJ,EAAAb,EAAAkB,EAAAC,EAAA,WAAAM,EAAAA,EAAAA,EAAArI,KAAAsI,EAAAA,GAAAA,GAAA,aAAA7B,EAAAV,EAAAE,EAAAM,GAAA,IAAAgC,EAAA,iCAAAd,EAAAb,GAAA,iBAAA2B,EAAA,UAAAC,MAAA,iDAAAD,EAAA,cAAAd,EAAA,MAAAb,EAAA,OAAA5B,WAAAyD,EAAAC,MAAA,OAAAnC,EAAAkB,OAAAA,EAAAlB,EAAAK,IAAAA,IAAA,KAAA+B,EAAApC,EAAAoC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAApC,GAAA,GAAAqC,EAAA,IAAAA,IAAA9B,EAAA,gBAAA8B,CAAA,cAAArC,EAAAkB,OAAAlB,EAAAuC,KAAAvC,EAAAwC,MAAAxC,EAAAK,SAAA,aAAAL,EAAAkB,OAAA,uBAAAc,EAAA,MAAAA,EAAA,YAAAhC,EAAAK,IAAAL,EAAAyC,kBAAAzC,EAAAK,IAAA,gBAAAL,EAAAkB,QAAAlB,EAAA0C,OAAA,SAAA1C,EAAAK,KAAA2B,EAAA,gBAAAP,EAAAtB,EAAAX,EAAAE,EAAAM,GAAA,cAAAyB,EAAA9J,KAAA,IAAAqK,EAAAhC,EAAAmC,KAAA,6BAAAV,EAAApB,MAAAE,EAAA,gBAAA9B,MAAAgD,EAAApB,IAAA8B,KAAAnC,EAAAmC,KAAA,WAAAV,EAAA9J,OAAAqK,EAAA,YAAAhC,EAAAkB,OAAA,QAAAlB,EAAAK,IAAAoB,EAAApB,IAAA,YAAAiC,EAAAF,EAAApC,GAAA,IAAA2C,EAAA3C,EAAAkB,OAAAA,EAAAkB,EAAAvD,SAAA8D,GAAA,QAAAT,IAAAhB,EAAA,OAAAlB,EAAAoC,SAAA,eAAAO,GAAAP,EAAAvD,SAAA+D,SAAA5C,EAAAkB,OAAA,SAAAlB,EAAAK,SAAA6B,EAAAI,EAAAF,EAAApC,GAAA,UAAAA,EAAAkB,SAAA,WAAAyB,IAAA3C,EAAAkB,OAAA,QAAAlB,EAAAK,IAAA,IAAAwC,UAAA,oCAAAF,EAAA,aAAApC,EAAA,IAAAkB,EAAAtB,EAAAe,EAAAkB,EAAAvD,SAAAmB,EAAAK,KAAA,aAAAoB,EAAA9J,KAAA,OAAAqI,EAAAkB,OAAA,QAAAlB,EAAAK,IAAAoB,EAAApB,IAAAL,EAAAoC,SAAA,KAAA7B,EAAA,IAAAuC,EAAArB,EAAApB,IAAA,OAAAyC,EAAAA,EAAAX,MAAAnC,EAAAoC,EAAAW,YAAAD,EAAArE,MAAAuB,EAAAgD,KAAAZ,EAAAa,QAAA,WAAAjD,EAAAkB,SAAAlB,EAAAkB,OAAA,OAAAlB,EAAAK,SAAA6B,GAAAlC,EAAAoC,SAAA,KAAA7B,GAAAuC,GAAA9C,EAAAkB,OAAA,QAAAlB,EAAAK,IAAA,IAAAwC,UAAA,oCAAA7C,EAAAoC,SAAA,KAAA7B,EAAA,UAAA2C,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAArM,KAAAgM,EAAA,UAAAM,EAAAN,GAAA,IAAA3B,EAAA2B,EAAAO,YAAA,GAAAlC,EAAA9J,KAAA,gBAAA8J,EAAApB,IAAA+C,EAAAO,WAAAlC,CAAA,UAAAxB,EAAAN,GAAA,KAAA8D,WAAA,EAAAJ,OAAA,SAAA1D,EAAAsB,QAAAiC,EAAA,WAAAU,OAAA,YAAA9C,EAAA+C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAAjF,GAAA,GAAAkF,EAAA,OAAAA,EAAAxD,KAAAuD,GAAA,sBAAAA,EAAAb,KAAA,OAAAa,EAAA,IAAAE,MAAAF,EAAAtI,QAAA,KAAAyI,GAAA,EAAAhB,EAAA,SAAAA,IAAA,OAAAgB,EAAAH,EAAAtI,QAAA,GAAA4C,EAAAmC,KAAAuD,EAAAG,GAAA,OAAAhB,EAAAvE,MAAAoF,EAAAG,GAAAhB,EAAAb,MAAA,EAAAa,EAAA,OAAAA,EAAAvE,WAAAyD,EAAAc,EAAAb,MAAA,EAAAa,CAAA,SAAAA,EAAAA,KAAAA,CAAA,SAAAA,KAAAiB,EAAA,UAAAA,IAAA,OAAAxF,WAAAyD,EAAAC,MAAA,UAAA3B,EAAAtC,UAAAuC,EAAApC,EAAA0C,EAAA,eAAAtC,MAAAgC,EAAArB,cAAA,IAAAf,EAAAoC,EAAA,eAAAhC,MAAA+B,EAAApB,cAAA,IAAAoB,EAAA0D,YAAAhF,EAAAuB,EAAAzB,EAAA,qBAAAjB,EAAAoG,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,GAAAA,EAAAE,YAAA,QAAAD,IAAAA,IAAA7D,GAAA,uBAAA6D,EAAAH,aAAAG,EAAA9M,MAAA,EAAAwG,EAAAwG,KAAA,SAAAH,GAAA,OAAAnG,OAAAuG,eAAAvG,OAAAuG,eAAAJ,EAAA3D,IAAA2D,EAAAK,UAAAhE,EAAAvB,EAAAkF,EAAApF,EAAA,sBAAAoF,EAAAlG,UAAAD,OAAA8B,OAAAgB,GAAAqD,CAAA,EAAArG,EAAA2G,MAAA,SAAArE,GAAA,OAAAuB,QAAAvB,EAAA,EAAAW,EAAAI,EAAAlD,WAAAgB,EAAAkC,EAAAlD,UAAAY,GAAA,0BAAAf,EAAAqD,cAAAA,EAAArD,EAAA4G,MAAA,SAAAnF,EAAAC,EAAAC,EAAAC,EAAA0B,QAAA,IAAAA,IAAAA,EAAAuD,SAAA,IAAAC,EAAA,IAAAzD,EAAA7B,EAAAC,EAAAC,EAAAC,EAAAC,GAAA0B,GAAA,OAAAtD,EAAAoG,oBAAA1E,GAAAoF,EAAAA,EAAA7B,OAAAvJ,MAAA,SAAAiI,GAAA,OAAAA,EAAAS,KAAAT,EAAAjD,MAAAoG,EAAA7B,MAAA,KAAAhC,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAAhD,EAAA+G,KAAA,SAAAC,GAAA,IAAAC,EAAA/G,OAAA8G,GAAAD,EAAA,WAAAvG,KAAAyG,EAAAF,EAAA1N,KAAAmH,GAAA,OAAAuG,EAAAG,UAAA,SAAAjC,IAAA,KAAA8B,EAAAvJ,QAAA,KAAAgD,EAAAuG,EAAAvI,MAAA,GAAAgC,KAAAyG,EAAA,OAAAhC,EAAAvE,MAAAF,EAAAyE,EAAAb,MAAA,EAAAa,CAAA,QAAAA,EAAAb,MAAA,EAAAa,CAAA,GAAAjF,EAAA+C,OAAAA,EAAAb,EAAA/B,UAAA,CAAAoG,YAAArE,EAAA2D,MAAA,SAAAsB,GAAA,QAAAC,KAAA,OAAAnC,KAAA,OAAAT,KAAA,KAAAC,WAAAN,EAAA,KAAAC,MAAA,OAAAC,SAAA,UAAAlB,OAAA,YAAAb,SAAA6B,EAAA,KAAAuB,WAAAxC,QAAAyC,IAAAwB,EAAA,QAAA3N,KAAA,WAAAA,EAAA6N,OAAA,IAAAjH,EAAAmC,KAAA,KAAA/I,KAAAwM,OAAAxM,EAAA8N,MAAA,WAAA9N,QAAA2K,EAAA,EAAAoD,KAAA,gBAAAnD,MAAA,MAAAoD,EAAA,KAAA9B,WAAA,GAAAE,WAAA,aAAA4B,EAAA5N,KAAA,MAAA4N,EAAAlF,IAAA,YAAAmF,IAAA,EAAA/C,kBAAA,SAAAgD,GAAA,QAAAtD,KAAA,MAAAsD,EAAA,IAAAzF,EAAA,cAAA0F,EAAAC,EAAAC,GAAA,OAAAnE,EAAA9J,KAAA,QAAA8J,EAAApB,IAAAoF,EAAAzF,EAAAgD,KAAA2C,EAAAC,IAAA5F,EAAAkB,OAAA,OAAAlB,EAAAK,SAAA6B,KAAA0D,CAAA,SAAA5B,EAAA,KAAAP,WAAAlI,OAAA,EAAAyI,GAAA,IAAAA,EAAA,KAAAZ,EAAA,KAAAK,WAAAO,GAAAvC,EAAA2B,EAAAO,WAAA,YAAAP,EAAAC,OAAA,OAAAqC,EAAA,UAAAtC,EAAAC,QAAA,KAAA8B,KAAA,KAAAU,EAAA1H,EAAAmC,KAAA8C,EAAA,YAAA0C,EAAA3H,EAAAmC,KAAA8C,EAAA,iBAAAyC,GAAAC,EAAA,SAAAX,KAAA/B,EAAAE,SAAA,OAAAoC,EAAAtC,EAAAE,UAAA,WAAA6B,KAAA/B,EAAAG,WAAA,OAAAmC,EAAAtC,EAAAG,WAAA,SAAAsC,GAAA,QAAAV,KAAA/B,EAAAE,SAAA,OAAAoC,EAAAtC,EAAAE,UAAA,YAAAwC,EAAA,UAAA7D,MAAA,kDAAAkD,KAAA/B,EAAAG,WAAA,OAAAmC,EAAAtC,EAAAG,WAAA,KAAAb,OAAA,SAAA/K,EAAA0I,GAAA,QAAA2D,EAAA,KAAAP,WAAAlI,OAAA,EAAAyI,GAAA,IAAAA,EAAA,KAAAZ,EAAA,KAAAK,WAAAO,GAAA,GAAAZ,EAAAC,QAAA,KAAA8B,MAAAhH,EAAAmC,KAAA8C,EAAA,oBAAA+B,KAAA/B,EAAAG,WAAA,KAAAwC,EAAA3C,EAAA,OAAA2C,IAAA,UAAApO,GAAA,aAAAA,IAAAoO,EAAA1C,QAAAhD,GAAAA,GAAA0F,EAAAxC,aAAAwC,EAAA,UAAAtE,EAAAsE,EAAAA,EAAApC,WAAA,UAAAlC,EAAA9J,KAAAA,EAAA8J,EAAApB,IAAAA,EAAA0F,GAAA,KAAA7E,OAAA,YAAA8B,KAAA+C,EAAAxC,WAAAhD,GAAA,KAAAyF,SAAAvE,EAAA,EAAAuE,SAAA,SAAAvE,EAAA+B,GAAA,aAAA/B,EAAA9J,KAAA,MAAA8J,EAAApB,IAAA,gBAAAoB,EAAA9J,MAAA,aAAA8J,EAAA9J,KAAA,KAAAqL,KAAAvB,EAAApB,IAAA,WAAAoB,EAAA9J,MAAA,KAAA6N,KAAA,KAAAnF,IAAAoB,EAAApB,IAAA,KAAAa,OAAA,cAAA8B,KAAA,kBAAAvB,EAAA9J,MAAA6L,IAAA,KAAAR,KAAAQ,GAAAjD,CAAA,EAAA0F,OAAA,SAAA1C,GAAA,QAAAS,EAAA,KAAAP,WAAAlI,OAAA,EAAAyI,GAAA,IAAAA,EAAA,KAAAZ,EAAA,KAAAK,WAAAO,GAAA,GAAAZ,EAAAG,aAAAA,EAAA,YAAAyC,SAAA5C,EAAAO,WAAAP,EAAAI,UAAAE,EAAAN,GAAA7C,CAAA,GAAAtD,MAAA,SAAAoG,GAAA,QAAAW,EAAA,KAAAP,WAAAlI,OAAA,EAAAyI,GAAA,IAAAA,EAAA,KAAAZ,EAAA,KAAAK,WAAAO,GAAA,GAAAZ,EAAAC,SAAAA,EAAA,KAAA5B,EAAA2B,EAAAO,WAAA,aAAAlC,EAAA9J,KAAA,KAAAuO,EAAAzE,EAAApB,IAAAqD,EAAAN,EAAA,QAAA8C,CAAA,YAAAjE,MAAA,0BAAAkE,cAAA,SAAAtC,EAAAd,EAAAE,GAAA,YAAAb,SAAA,CAAAvD,SAAAiC,EAAA+C,GAAAd,WAAAA,EAAAE,QAAAA,GAAA,cAAA/B,SAAA,KAAAb,SAAA6B,GAAA3B,CAAA,GAAAxC,CAAA,UAAAqI,EAAAC,EAAA9E,EAAAC,EAAA8E,EAAAC,EAAAhI,EAAA8B,GAAA,QAAAyC,EAAAuD,EAAA9H,GAAA8B,GAAA5B,EAAAqE,EAAArE,KAAA,OAAAvB,GAAA,YAAAsE,EAAAtE,EAAA,CAAA4F,EAAAX,KAAAZ,EAAA9C,GAAAmG,QAAArD,QAAA9C,GAAAhF,KAAA6M,EAAAC,EAAA,CAKA,OACAhP,KAAA,UACAiP,WAAA,CACAC,SAAAA,EACAC,SAAAA,EAAAA,GAEAC,OAAA,CAAAC,EAAAC,GACApP,MAAA,CACA4C,IAAA,GACAyM,SAAA,GACAC,SAAA,CACApP,KAAAqP,QACAlP,SAAA,GAEAmP,cAAA,CACAtP,KAAAqP,QACAlP,SAAA,GAEAoP,QAAA,CACAvP,KAAAC,OACAE,QAAA,OAGA6B,KAAA,WACA,OACAwN,YAAA,EACAC,UAAA,EACAC,kBAAA,EAEA,EACAtO,SAAA,CACAuO,UAAA,WACA,YAAAjN,IAAAkN,cAAA,KAAAlN,IAAAkN,aAAAC,iBAAA,CACA,EACAC,YAAA,WACA,YAAAV,SAAA,UACA,GAEAW,MAAA,CACA,4BAAApQ,GACA,KAAA6P,WAAA,KAAA9M,IAAA/C,KAAAA,CACA,GAEAgE,QAAA,eAAAqM,EAAA,KAEA,GADA,KAAAR,WAAA,KAAA9M,IAAA/C,KAAA,KAAAsQ,OAAAC,OAAAvQ,GACA,KAAA+C,IAAAyN,UAAA,KAAAzN,IAAA0N,WAAA,CACA,IAAAC,EAAA,IAAAC,MACAD,EAAAE,OAAA,SAAAC,GACAR,EAAAN,kBAAA,CACA,EACAW,EAAAI,IAAA,KAAA/N,IAAA0N,UACA,CACA,EACAM,SAAA,CAEA,EACA7M,QAAA,CACA8M,eAAA,SAAAC,GAAA,IA9DAnI,EA8DAoI,EAAA,YA9DApI,EA8DAtC,IAAAyG,MAAA,SAAAkE,IAAA,OAAA3K,IAAAyB,MAAA,SAAAmJ,GAAA,cAAAA,EAAAvD,KAAAuD,EAAA1F,MAAA,UACA,UAAAuF,EAAAI,cAAAC,SAAA,MAAAL,EAAAI,cAAAC,QAAA,CAAAF,EAAA1F,KAAA,eAAA0F,EAAAhG,OAAA,wBAAAgG,EAAAvD,KAAA,EAAAuD,EAAA1F,KAAA,EAIAwF,EAAAK,QAAAzR,KAAA,CACAG,KAAA,eACAsQ,OAAA,CAAAf,SAAA0B,EAAA1B,SAAAxP,GAAAkR,EAAAnO,IAAA/C,MACA,OAAAoR,EAAA1F,KAAA,eAAA0F,EAAAvD,KAAA,EAAAuD,EAAAI,GAAAJ,EAAA,iCAAAA,EAAApD,OAAA,GAAAmD,EAAA,iBAtEA,eAAA/I,EAAA,KAAAqJ,EAAAC,UAAA,WAAApE,SAAA,SAAArD,EAAAC,GAAA,IAAA6E,EAAAjG,EAAA6I,MAAAvJ,EAAAqJ,GAAA,SAAAzC,EAAA7H,GAAA2H,EAAAC,EAAA9E,EAAAC,EAAA8E,EAAAC,EAAA,OAAA9H,EAAA,UAAA8H,EAAAjH,GAAA8G,EAAAC,EAAA9E,EAAAC,EAAA8E,EAAAC,EAAA,QAAAjH,EAAA,CAAAgH,OAAApE,EAAA,OA0EA,EACAgH,OAAA,SAAAA,EAAAC,GACA,OAAAD,EAAA,IAAAC,CACA,EAEAC,mBAAA,SAAAC,GACA,YAAApC,cAAA,MAAAC,QAAAmC,GAAAC,KAAA,SACA,IC9M0L,qICWtLC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,OAL1D,ICFA,GAXgB,OACd,GCTW,WAAkB,IAAI5R,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAGF,EAAI8O,SAAW,KAAH,KAAe,CAAC+C,IAAI,YAAYxR,YAAY,UAAUyR,MAAM,CAAEC,SAAU/R,EAAIkP,YAAa3O,GAAG,CAAC,MAAQP,EAAIqQ,iBAAiB,CAACnQ,EAAGF,EAAIwP,YAAY,CAACqC,IAAI,YAAYxR,YAAY,2BAA2BC,MAAM,CAAC,QAAUN,EAAImR,mBAAmB,uBAAuB5Q,GAAG,CAAC,MAAQP,EAAIqQ,iBAAiB,CAAGrQ,EAAI8O,WAAa9O,EAAIoC,IAAI4P,UAAchS,EAAI8O,WAAa9O,EAAIoP,iBAAmBlP,EAAG,MAAM,CAACG,YAAY,uBAAwBL,EAAI8O,UAAY9O,EAAIoC,IAAI4P,QAAS9R,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,cAAc,CAACJ,EAAG,QAAQ,CAACG,YAAY,WAAWC,MAAM,CAAC,EAAI,IAAI,EAAI,IAAI,MAAQ,KAAK,OAAS,KAAK,oBAAsB,gBAAgB,aAAaN,EAAIoC,IAAI4P,aAAahS,EAAIa,KAAKb,EAAIW,GAAG,MAAOX,EAAI8O,UAAY9O,EAAIoC,IAAI0N,YAAc9P,EAAIoP,iBAAkBlP,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMN,EAAIoC,IAAI0N,WAAW,MAAQ,UAAU9P,EAAIa,OAAOb,EAAIW,GAAG,KAAKT,EAAGF,EAAIwP,YAAY,CAACqC,IAAI,YAAYxR,YAAY,WAAWC,MAAM,CAAC,QAAUN,EAAImR,mBAAmB,uBAAuB5Q,GAAG,CAAC,MAAQP,EAAIqQ,iBAAiB,CAACrQ,EAAIW,GAAG,SAASX,EAAIY,GAAGZ,EAAIoC,IAAI9C,MAAM,UAAUU,EAAIW,GAAG,KAAOX,EAAI8O,SAAoL9O,EAAIa,KAA9KX,EAAGF,EAAIwP,YAAY,CAACqC,IAAI,YAAYxR,YAAY,cAAcC,MAAM,CAAC,QAAUN,EAAImR,mBAAmB,iBAAiB,CAACnR,EAAIW,GAAG,SAASX,EAAIY,GAAGZ,EAAIoC,IAAI6P,SAAS,UAAmBjS,EAAIW,GAAG,KAAMX,EAAI8O,SAAU5O,EAAGF,EAAIwP,YAAY,CAACqC,IAAI,YAAYxR,YAAY,cAAcC,MAAM,CAAC,QAAUN,EAAImR,mBAAmB,2BAA2B,CAAEnR,EAAIoC,IAAI8P,QAAShS,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIoC,IAAI8P,YAAalS,EAAIoC,IAAIkN,aAAaO,SAAS,GAAGqC,QAAShS,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIoC,IAAIkN,aAAaO,SAAS,GAAGqC,YAAYlS,EAAIa,OAAOb,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAGF,EAAIwP,YAAY,CAACqC,IAAI,YAAYxR,YAAY,YAAYC,MAAM,CAAC,QAAUN,EAAImR,mBAAmB,yBAAyB,CAAoB,MAAlBnR,EAAIoC,IAAI+P,MAAejS,EAAG,OAAO,CAACG,YAAY,iCAAiCC,MAAM,CAAC,MAAQN,EAAI+C,EAAE,WAAY,kEAAkE,aAAa/C,EAAI+C,EAAE,WAAY,oEAAoE,CAAC/C,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,iBAAiB/C,EAAIa,KAAKb,EAAIW,GAAG,KAAwB,MAAlBX,EAAIoC,IAAI+P,MAAejS,EAAG,OAAO,CAACG,YAAY,0BAA0BC,MAAM,CAAC,MAAQN,EAAI+C,EAAE,WAAY,+HAA+H,aAAa/C,EAAI+C,EAAE,WAAY,iIAAiI,CAAC/C,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,gBAAgB/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIqP,YAAcrP,EAAI8O,SAAU5O,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIoC,IAAIjB,SAASnB,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAKT,EAAGF,EAAIwP,YAAY,CAACqC,IAAI,YAAYxR,YAAY,UAAUC,MAAM,CAAC,QAAUN,EAAImR,mBAAmB,2BAA2B,CAAEnR,EAAIoC,IAAI6C,MAAO/E,EAAG,MAAM,CAACG,YAAY,WAAW,CAACL,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIoC,IAAI6C,OAAO,YAAYjF,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI4C,UAAW1C,EAAG,MAAM,CAACG,YAAY,4BAA4BL,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAImD,OAAQrF,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,UAAU,SAAWN,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAO4R,kBAAyBpS,EAAIuF,OAAOvF,EAAIoC,IAAI/C,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,qBAAsB,CAACwC,OAAOvF,EAAIoC,IAAImD,UAAU,YAAYvF,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIiQ,aAAcnS,EAAG,WAAW,CAACG,YAAY,YAAYC,MAAM,CAAC,KAAO,WAAW,SAAWN,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAO4R,kBAAyBpS,EAAIqF,OAAOrF,EAAIoC,IAAI/C,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,WAAW,YAAY/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIkQ,OAAQpS,EAAG,WAAW,CAACI,MAAM,CAAC,SAAWN,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAO4R,kBAAyBpS,EAAIoF,QAAQpF,EAAIoC,IAAI/C,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAW,YAAY,YAAY/C,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIoC,IAAIkQ,SAAWtS,EAAIoC,IAAImQ,aAAcvS,EAAIoC,IAAIoQ,aAAmVxS,EAAIoC,IAAIkQ,OAAyUtS,EAAIa,KAArUX,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIkD,yBAAyB,aAAalD,EAAIkD,yBAAyB,KAAO,YAAY,SAAWlD,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAO4R,kBAAyBpS,EAAI6E,YAAY7E,EAAIoC,IAAI/C,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIgD,uBAAuB,YAAzoB9C,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIiD,oBAAoB,aAAajD,EAAIiD,oBAAoB,KAAO,UAAU,UAAYjD,EAAIoC,IAAImQ,YAAcvS,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAO4R,kBAAyBpS,EAAImF,OAAOnF,EAAIoC,IAAI/C,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI6C,kBAAkB,aAAyW,IAAI,EACnnJ,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEDhC,GAXgB,OCgBhB,CACAvD,KAAA,cACAiE,QAAA,CACA0N,OAAA,SAAAA,EAAAC,GACA,OAAAD,EAAA,IAAAC,CACA,SD5BI,OAAQ,GAWV,EACA,KACA,KACA,MAI8B,8BElBoJ,ECkJpL,CACA5R,KAAA,UACAiP,WAAA,CACAkE,QAAAA,EACAhE,SAAAA,EAAAA,GAEAC,OAAA,CAAAgE,GACAlT,MAAA,4BACAsB,SAAA,CACA6R,QAAA,WACA,YAAA5Q,KAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAmD,MAAA,IAAAjC,MACA,EACAX,QAAA,WACA,YAAAF,OAAAC,QAAAC,QAAA,OACA,EACAkQ,iBAAA,WACA,YAAA9Q,KAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAmD,MAAA,IAAAjC,OAAA,CACA,EACAwP,cAAA,WACA,YAAAD,kBAAA,KAAAE,WACA,EACAhR,KAAA,eAAA2N,EAAA,KACA3N,EAAA,KAAAU,OAAAC,QAAAsQ,WACAJ,QAAA,SAAAxQ,GAAA,WAAAA,EAAA9C,KAAA2T,cAAAtP,OAAA+L,EAAA/L,OAAAsP,cAAA,IACAC,MAAA,SAAAC,EAAAC,GACA,IAAAC,EAAA,IAAAF,EAAAb,OAAA,MAAAa,EAAA5N,OAAA,KAAA4N,EAAA7T,KACAgU,EAAA,IAAAF,EAAAd,OAAA,MAAAc,EAAA7N,OAAA,KAAA6N,EAAA9T,KACA,OAAAiU,GAAAC,KAAAC,mBAAAJ,EAAAC,EACA,IAEA,yBAAAzE,SACA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAsR,SAAA,IAEA,iBAAA7E,SACA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAkQ,QAAAlQ,EAAAsR,SAAA,IAEA,kBAAA7E,SACA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAkQ,QAAAlQ,EAAAsR,SAAA,IAEA,qBAAA7E,SACA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAuR,OAAA,IAEA,iBAAA9E,SACA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAmD,MAAA,IAEA,mBAAAsJ,SAEA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,aAAAA,EAAA+P,KAAA,IAEA,kBAAAtD,SAEA9M,EAAA6Q,QAAA,SAAAxQ,GAAA,aAAAA,EAAA+P,KAAA,IAGApQ,EAAA6Q,QAAA,SAAAxQ,GACA,OAAAA,EAAAwR,eAAA3J,IAAA7H,EAAAyM,WACAzM,EAAAyM,WAAAa,EAAAb,UAAAzM,EAAAyM,SAAAlK,QAAA+K,EAAAb,WAAA,EACA,GACA,EACA8E,QAAA,eAAApD,EAAA,KACA,YAAA9N,OAAAC,QAAAmR,cAAAF,QAAAf,QAAA,SAAAkB,GAAA,OAAAvD,EAAAwD,WAAAD,EAAAzU,IAAAiE,OAAA,IACA,EACAyQ,WAAA,WACA,gBAAAD,GACA,YAAArR,OAAAC,QAAAsQ,WACAJ,QAAA,SAAAxQ,GACA,YAAA6H,IAAA7H,EAAA4R,WAAA5R,EAAA4R,UAAA7P,SAAA2P,EACA,GACA,CACA,EACAG,WAAA,eAAAC,EAAA,KACA,gBAAAvQ,OACA,GAEA,KAAAlB,OAAAC,QAAAsQ,WACAJ,QAAA,SAAAxQ,GACA,WAAAA,EAAA9C,KAAA2T,cAAAtP,OAAAuQ,EAAAvQ,OAAAsP,iBACAiB,EAAAnS,KAAAoS,MAAA,SAAAC,GAAA,OAAAA,EAAA/U,KAAA+C,EAAA/C,EAAA,GAGA,GACA,EACAgV,gBAAA,WACA,YAAAtB,cAAA,KAAA/D,aACA,EACA+D,YAAA,WACA,yBAAAlE,UAAA,iBAAAA,UAAA,kBAAAA,UAAA,iBAAAA,UAAA,kBAAAA,UAAA,mBAAAA,QACA,EACAG,cAAA,WACA,2BAAAH,QACA,EACAyF,kBAAA,eAAAC,EAAA,KACA,gBAAAlV,GACA,WAAAkV,EAAAR,WAAA1U,GAAAuT,QAAA,SAAAxQ,GAAA,OAAAA,EAAAkQ,MAAA,IAAAhP,MACA,CACA,EACAkR,iBAAA,eAAAC,EAAA,KACA,gBAAApV,GACA,OAAAoV,EAAAH,kBAAAjV,GACA0D,EAAA,0BAEAA,EAAA,qCACA,CACA,GAEAQ,QAAA,CACAmR,aAAA,SAAArV,GACA,YAAAiV,kBAAAjV,GACA,KAAAsV,cAAAtV,GAEA,KAAAuV,aAAAvV,EACA,EACAuV,aAAA,SAAAvV,GACA,IAAA0C,EAAA,KAAAgS,WAAA1U,GAAAiD,KAAA,SAAAF,GAAA,OAAAA,EAAA/C,EAAA,IACA,KAAAoD,OAAAiB,SAAA,aAAAM,MAAAjC,EAAAM,OAAA,KACA2C,OAAA,SAAAC,GACA4P,EAAA5P,MAAAA,GACAsO,GAAAuB,aAAAC,KAAA9P,EACA,GACA,EACA0P,cAAA,SAAAtV,GACA,IAAA0C,EAAA,KAAAgS,WAAA1U,GAAAiD,KAAA,SAAAF,GAAA,OAAAA,EAAA/C,EAAA,IACA,KAAAoD,OAAAiB,SAAA,cAAAM,MAAAjC,EAAAM,OAAA,KACA2C,OAAA,SAAAC,GACAsO,GAAAuB,aAAAC,KAAA9P,EACA,GACA,EACA+P,UAAA,eAAAC,EAAA,KACArR,GAAAsR,EAAAA,EAAAA,GAAA,GACA,KAAAnT,KACA6Q,QAAA,SAAAxQ,GAAA,OAAAA,EAAAmD,MAAA,IACAjD,KAAA,SAAAF,GAAA,OAAAwB,GAAA,kBAAAqR,EAAAxS,OAAAiB,SAAA,aAAAM,MAAA5B,EAAA/C,IAAA,MAEA,eC5QI,GAAU,CAAC,EAEf,GAAQkS,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,IAAS,IAKJ,KAAW,IAAQC,QAAS,IAAQA,OAL1D,ICFA,IAXgB,OACd,GCTW,WAAkB,IAAI5R,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,sBAAsB,CAACJ,EAAG,MAAM,CAACG,YAAY,YAAYyR,MAAM,CAAC4B,UAAY1T,EAAIgP,eAAiBhP,EAAI+S,YAAcoC,MAAOnV,EAAIqU,iBAAiB/T,MAAM,CAAC,GAAK,cAAc,CAAEN,EAAI+S,YAAa,CAAE/S,EAAI8S,cAAe5S,EAAG,MAAM,CAACG,YAAY,WAAW,CAACL,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIoV,EAAE,WAAY,iCAAkC,mCAAoCpV,EAAI2S,UAAU,cAAe3S,EAAI8S,cAAe5S,EAAG,WAAW,CAACI,MAAM,CAAC,GAAK,sBAAsB,KAAO,WAAWC,GAAG,CAAC,MAAQP,EAAIgV,YAAY,CAAChV,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIoV,EAAE,WAAY,SAAU,aAAcpV,EAAI2S,UAAU,gBAAgB3S,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAI8S,cAAyI9S,EAAIa,KAA9HX,EAAG,MAAM,CAACG,YAAY,WAAW,CAACL,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,6BAA6B,cAAuB/C,EAAIW,GAAG,KAAKT,EAAG,mBAAmB,CAACG,YAAY,sBAAsBC,MAAM,CAAC,KAAO,WAAW,IAAM,UAAU,CAACJ,EAAG,KAAK,CAACoG,IAAI,uBAAuBjG,YAAY,eAAe,CAACH,EAAG,KAAK,CAACG,YAAY,aAAa,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,cAAc/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,YAAY,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,cAAc/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,eAAe,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,iBAAiB/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,aAAa,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,eAAe/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,WAAW,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,mBAAmB/C,EAAIW,GAAG,KAAKX,EAAIqV,GAAIrV,EAAI+B,MAAM,SAASK,GAAK,OAAOlC,EAAG,UAAU,CAACoG,IAAIlE,EAAI/C,GAAGiB,MAAM,CAAC,IAAM8B,EAAI,SAAWpC,EAAI6O,WAAW,KAAI,IAAI7O,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIgP,cAAe9O,EAAG,QAAQ,CAACG,YAAY,uBAAuB,CAACH,EAAG,KAAK,CAACoG,IAAI,uBAAuBjG,YAAY,eAAe,CAACH,EAAG,KAAK,CAACG,YAAY,YAAYC,MAAM,CAAC,GAAK,uBAAuB,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,cAAc/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,WAAWC,MAAM,CAAC,GAAK,uBAAuB,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,cAAc/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,cAAcC,MAAM,CAAC,GAAK,0BAA0B,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,iBAAiB/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,YAAYC,MAAM,CAAC,GAAK,wBAAwB,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,eAAe/C,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,UAAUC,MAAM,CAAC,GAAK,0BAA0B,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,mBAAmB/C,EAAIW,GAAG,KAAKX,EAAIqV,GAAIrV,EAAI2T,SAAS,SAASG,GAAQ,MAAO,CAAC5T,EAAG,KAAK,CAACoG,IAAIwN,EAAOzU,IAAI,CAACa,EAAG,KAAK,CAACI,MAAM,CAAC,GAAI,sBAAAiE,OAAuBuP,EAAOzU,IAAK,QAAU,IAAI,MAAQ,aAAa,CAACa,EAAG,MAAM,CAACG,YAAY,sBAAsB,CAACH,EAAG,OAAO,CAACG,YAAY,qBAAqB,CAACL,EAAIW,GAAG,qBAAqBX,EAAIY,GAAGkT,EAAOxU,MAAM,sBAAsBU,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,aAAaC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAI0U,aAAaZ,EAAOzU,GAAG,IAAI,CAACW,EAAIW,GAAG,qBAAqBX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY/C,EAAIwU,iBAAiBV,EAAOzU,MAAM,uBAAuB,OAAOW,EAAIW,GAAG,KAAKX,EAAIqV,GAAIrV,EAAI+T,WAAWD,EAAOzU,KAAK,SAAS+C,GAAK,OAAOlC,EAAG,UAAU,CAACoG,IAAIwN,EAAOzU,GAAK+C,EAAI/C,GAAGiB,MAAM,CAAC,mBAAkB,EAAK,QAAS,sBAAAiE,OAAuBuP,EAAOzU,IAAK,IAAM+C,EAAI,SAAWpC,EAAI6O,WAAW,IAAG,KAAI,GAAG7O,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIqU,gBAAiBnU,EAAG,KAAK,CAACG,YAAY,mBAAmBL,EAAIqV,GAAIrV,EAAI+B,MAAM,SAASK,GAAK,OAAOlC,EAAG,UAAU,CAACoG,IAAIlE,EAAI/C,GAAGiB,MAAM,CAAC,IAAM8B,EAAI,SAAWpC,EAAI6O,SAAS,aAAY,IAAQ,IAAG,GAAG7O,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,sBAAsBC,MAAM,CAAC,GAAK,qBAAqB,CAACJ,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAAiB,KAAfL,EAAI2D,QAAiB3D,EAAIiU,WAAW3Q,OAAS,EAAG,CAACpD,EAAG,MAAM,CAACG,YAAY,WAAW,CAACH,EAAG,OAAOF,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACI,MAAM,CAAC,QAAU,MAAM,CAACJ,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,yCAAyC/C,EAAIW,GAAG,KAAKX,EAAIqV,GAAIrV,EAAIiU,YAAY,SAAS7R,GAAK,OAAOlC,EAAG,UAAU,CAACoG,IAAIlE,EAAI/C,GAAGiB,MAAM,CAAC,IAAM8B,EAAI,SAAWpC,EAAI6O,WAAW,KAAI7O,EAAIa,MAAM,KAAKb,EAAIW,GAAG,KAAqB,KAAfX,EAAI2D,QAAkB3D,EAAI2C,SAAqC,IAA1B3C,EAAIiU,WAAW3Q,QAAoC,IAApBtD,EAAI+B,KAAKuB,OAAqRtD,EAAIa,KAA3QX,EAAG,MAAM,CAACG,YAAY,mCAAmCC,MAAM,CAAC,GAAK,oBAAoB,CAACJ,EAAG,MAAM,CAACG,YAAY,qBAAqBC,MAAM,CAAC,GAAK,yBAAyBN,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,wCAAiD/C,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,oBAC9rJ,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,gCEShC,IAAIgV,GAbO,CACH5I,OAAO,EACP6I,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,MAAO,KACPC,UAAU,EACVC,SAAU,KACVC,QAAQ,EACRC,UAAW,KACXC,WAAY,MAIpB,SAASC,GAAeC,GACpBX,GAAYW,CAChB,CAKA,MAAMC,GAAa,UACbC,GAAgB,IAAIC,OAAOF,GAAWG,OAAQ,KAC9CC,GAAqB,oDACrBC,GAAwB,IAAIH,OAAOE,GAAmBD,OAAQ,KAC9DG,GAAqB,CACvB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SAEHC,GAAwBC,GAAOF,GAAmBE,GACxD,SAAS,GAAOC,EAAMC,GAClB,GAAIA,GACA,GAAIV,GAAWW,KAAKF,GAChB,OAAOA,EAAKG,QAAQX,GAAeM,SAIvC,GAAIH,GAAmBO,KAAKF,GACxB,OAAOA,EAAKG,QAAQP,GAAuBE,IAGnD,OAAOE,CACX,CACA,MAAMI,GAAe,6CAefC,GAAQ,eACd,SAASC,GAAKC,EAAOC,GACjBD,EAAyB,iBAAVA,EAAqBA,EAAQA,EAAMb,OAClDc,EAAMA,GAAO,GACb,MAAM9Q,EAAM,CACRyQ,QAAS,CAACxX,EAAMwN,KAEZA,GADAA,EAAqB,iBAARA,GAAoB,WAAYA,EAAMA,EAAIuJ,OAASvJ,GACtDgK,QAAQE,GAAO,MACzBE,EAAQA,EAAMJ,QAAQxX,EAAMwN,GACrBzG,GAEX+Q,SAAU,IACC,IAAIhB,OAAOc,EAAOC,IAGjC,OAAO9Q,CACX,CACA,SAASgR,GAASC,GACd,IACIA,EAAOC,UAAUD,GAAMR,QAAQ,OAAQ,IAC3C,CACA,MAAO5G,GACH,OAAO,IACX,CACA,OAAOoH,CACX,CACA,MAAME,GAAW,CAAEC,KAAM,IAAM,MAC/B,SAASC,GAAWC,EAAUC,GAG1B,MAcIC,EAdQF,EAASb,QAAQ,OAAO,CAACgB,EAAOjU,EAAQkU,KAChD,IAAIC,GAAU,EACVC,EAAOpU,EACX,OAASoU,GAAQ,GAAmB,OAAdF,EAAIE,IACtBD,GAAWA,EACf,OAAIA,EAGO,IAIA,IACX,IACYE,MAAM,OACtB,IAAInM,EAAI,EAQR,GANK8L,EAAM,GAAGM,QACVN,EAAMO,QAENP,EAAMvU,OAAS,IAAMuU,EAAMA,EAAMvU,OAAS,GAAG6U,QAC7CN,EAAMvT,MAENsT,EACA,GAAIC,EAAMvU,OAASsU,EACfC,EAAMjT,OAAOgT,QAGb,KAAOC,EAAMvU,OAASsU,GAClBC,EAAM1Y,KAAK,IAGvB,KAAO4M,EAAI8L,EAAMvU,OAAQyI,IAErB8L,EAAM9L,GAAK8L,EAAM9L,GAAGoM,OAAOrB,QAAQ,QAAS,KAEhD,OAAOe,CACX,CASA,SAASQ,GAAMN,EAAKO,EAAGC,GACnB,MAAMC,EAAIT,EAAIzU,OACd,GAAU,IAANkV,EACA,MAAO,GAGX,IAAIC,EAAU,EAEd,KAAOA,EAAUD,GAAG,CAChB,MAAME,EAAWX,EAAI5K,OAAOqL,EAAIC,EAAU,GAC1C,GAAIC,IAAaJ,GAAMC,EAGlB,IAAIG,IAAaJ,IAAKC,EAIvB,MAHAE,GAIJ,MAPIA,GAQR,CACA,OAAOV,EAAI3K,MAAM,EAAGoL,EAAIC,EAC5B,CAuBA,SAASE,GAAWC,EAAKC,EAAMC,EAAKC,GAChC,MAAMzB,EAAOuB,EAAKvB,KACZ7X,EAAQoZ,EAAKpZ,MAAQ,GAAOoZ,EAAKpZ,OAAS,KAC1CuZ,EAAOJ,EAAI,GAAG9B,QAAQ,cAAe,MAC3C,GAAyB,MAArB8B,EAAI,GAAGzL,OAAO,GAAY,CAC1B4L,EAAMhP,MAAMkP,QAAS,EACrB,MAAMC,EAAQ,CACVxZ,KAAM,OACNoZ,MACAxB,OACA7X,QACAuZ,OACAG,OAAQJ,EAAMK,aAAaJ,IAG/B,OADAD,EAAMhP,MAAMkP,QAAS,EACdC,CACX,CACA,MAAO,CACHxZ,KAAM,QACNoZ,MACAxB,OACA7X,QACAuZ,KAAM,GAAOA,GAErB,CAyBA,MAAMK,GACF/H,QAEAgI,MACAP,MACA,WAAA1M,CAAYiF,GACRrR,KAAKqR,QAAUA,GAAWgE,EAC9B,CACA,KAAAiE,CAAMpJ,GACF,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMC,QAAQhC,KAAKtH,GAC1C,GAAIyI,GAAOA,EAAI,GAAGtV,OAAS,EACvB,MAAO,CACH5D,KAAM,QACNoZ,IAAKF,EAAI,GAGrB,CACA,IAAAc,CAAKvJ,GACD,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAME,KAAKjC,KAAKtH,GACvC,GAAIyI,EAAK,CACL,MAAMI,EAAOJ,EAAI,GAAG9B,QAAQ,YAAa,IACzC,MAAO,CACHpX,KAAM,OACNoZ,IAAKF,EAAI,GACTe,eAAgB,WAChBX,KAAO/Y,KAAKqR,QAAQqE,SAEdqD,EADAX,GAAMW,EAAM,MAG1B,CACJ,CACA,MAAAY,CAAOzJ,GACH,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMI,OAAOnC,KAAKtH,GACzC,GAAIyI,EAAK,CACL,MAAME,EAAMF,EAAI,GACVI,EA3DlB,SAAgCF,EAAKE,GACjC,MAAMa,EAAoBf,EAAIhB,MAAM,iBACpC,GAA0B,OAAtB+B,EACA,OAAOb,EAEX,MAAMc,EAAeD,EAAkB,GACvC,OAAOb,EACFd,MAAM,MACN5V,KAAIyX,IACL,MAAMC,EAAoBD,EAAKjC,MAAM,QACrC,GAA0B,OAAtBkC,EACA,OAAOD,EAEX,MAAOE,GAAgBD,EACvB,OAAIC,EAAa3W,QAAUwW,EAAaxW,OAC7ByW,EAAK3M,MAAM0M,EAAaxW,QAE5ByW,CAAI,IAEV1I,KAAK,KACd,CAuCyB6I,CAAuBpB,EAAKF,EAAI,IAAM,IACnD,MAAO,CACHlZ,KAAM,OACNoZ,MACAqB,KAAMvB,EAAI,GAAKA,EAAI,GAAGT,OAAOrB,QAAQ7W,KAAKqZ,MAAMc,OAAOC,SAAU,MAAQzB,EAAI,GAC7EI,OAER,CACJ,CACA,OAAAsB,CAAQnK,GACJ,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMc,QAAQ7C,KAAKtH,GAC1C,GAAIyI,EAAK,CACL,IAAII,EAAOJ,EAAI,GAAGT,OAElB,GAAI,KAAKtB,KAAKmC,GAAO,CACjB,MAAMuB,EAAUlC,GAAMW,EAAM,KACxB/Y,KAAKqR,QAAQqE,SACbqD,EAAOuB,EAAQpC,OAEToC,IAAW,KAAK1D,KAAK0D,KAE3BvB,EAAOuB,EAAQpC,OAEvB,CACA,MAAO,CACHzY,KAAM,UACNoZ,IAAKF,EAAI,GACT4B,MAAO5B,EAAI,GAAGtV,OACd0V,OACAG,OAAQlZ,KAAK8Y,MAAMqB,OAAOpB,GAElC,CACJ,CACA,EAAAyB,CAAGtK,GACC,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMiB,GAAGhD,KAAKtH,GACrC,GAAIyI,EACA,MAAO,CACHlZ,KAAM,KACNoZ,IAAKF,EAAI,GAGrB,CACA,UAAA8B,CAAWvK,GACP,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMkB,WAAWjD,KAAKtH,GAC7C,GAAIyI,EAAK,CACL,MAAMI,EAAOJ,EAAI,GAAG9B,QAAQ,eAAgB,IACtC6D,EAAM1a,KAAK8Y,MAAMhP,MAAM4Q,IAC7B1a,KAAK8Y,MAAMhP,MAAM4Q,KAAM,EACvB,MAAMxB,EAASlZ,KAAK8Y,MAAM6B,YAAY5B,GAEtC,OADA/Y,KAAK8Y,MAAMhP,MAAM4Q,IAAMA,EAChB,CACHjb,KAAM,aACNoZ,IAAKF,EAAI,GACTO,SACAH,OAER,CACJ,CACA,IAAA6B,CAAK1K,GACD,IAAIyI,EAAM3Y,KAAKqZ,MAAME,MAAMqB,KAAKpD,KAAKtH,GACrC,GAAIyI,EAAK,CACL,IAAIkC,EAAOlC,EAAI,GAAGT,OAClB,MAAM4C,EAAYD,EAAKxX,OAAS,EAC1BuX,EAAO,CACTnb,KAAM,OACNoZ,IAAK,GACLkC,QAASD,EACTE,MAAOF,GAAaD,EAAK1N,MAAM,GAAI,GAAK,GACxC8N,OAAO,EACPC,MAAO,IAEXL,EAAOC,EAAY,aAAaD,EAAK1N,OAAO,KAAO,KAAK0N,IACpD7a,KAAKqR,QAAQqE,WACbmF,EAAOC,EAAYD,EAAO,SAG9B,MAAMM,EAAY,IAAIhF,OAAO,WAAW0E,kCACxC,IAAIhC,EAAM,GACNuC,EAAe,GACfC,GAAoB,EAExB,KAAOnL,GAAK,CACR,IAAIoL,GAAW,EACf,KAAM3C,EAAMwC,EAAU3D,KAAKtH,IACvB,MAEJ,GAAIlQ,KAAKqZ,MAAME,MAAMiB,GAAG5D,KAAK1G,GACzB,MAEJ2I,EAAMF,EAAI,GACVzI,EAAMA,EAAIvK,UAAUkT,EAAIxV,QACxB,IAAIkY,EAAO5C,EAAI,GAAGV,MAAM,KAAM,GAAG,GAAGpB,QAAQ,QAAS/T,GAAM,IAAI0Y,OAAO,EAAI1Y,EAAEO,UACxEoY,EAAWvL,EAAI+H,MAAM,KAAM,GAAG,GAC9ByD,EAAS,EACT1b,KAAKqR,QAAQqE,UACbgG,EAAS,EACTN,EAAeG,EAAKI,cAGpBD,EAAS/C,EAAI,GAAGjV,OAAO,QACvBgY,EAASA,EAAS,EAAI,EAAIA,EAC1BN,EAAeG,EAAKpO,MAAMuO,GAC1BA,GAAU/C,EAAI,GAAGtV,QAErB,IAAIuY,GAAY,EAMhB,IALKL,GAAQ,OAAO3E,KAAK6E,KACrB5C,GAAO4C,EAAW,KAClBvL,EAAMA,EAAIvK,UAAU8V,EAASpY,OAAS,GACtCiY,GAAW,IAEVA,EAAU,CACX,MAAMO,EAAkB,IAAI1F,OAAO,QAAQnV,KAAK8a,IAAI,EAAGJ,EAAS,yDAC1DK,EAAU,IAAI5F,OAAO,QAAQnV,KAAK8a,IAAI,EAAGJ,EAAS,wDAClDM,EAAmB,IAAI7F,OAAO,QAAQnV,KAAK8a,IAAI,EAAGJ,EAAS,qBAC3DO,EAAoB,IAAI9F,OAAO,QAAQnV,KAAK8a,IAAI,EAAGJ,EAAS,QAElE,KAAOxL,GAAK,CACR,MAAMgM,EAAUhM,EAAI+H,MAAM,KAAM,GAAG,GAOnC,GANAwD,EAAWS,EAEPlc,KAAKqR,QAAQqE,WACb+F,EAAWA,EAAS5E,QAAQ,0BAA2B,OAGvDmF,EAAiBpF,KAAK6E,GACtB,MAGJ,GAAIQ,EAAkBrF,KAAK6E,GACvB,MAGJ,GAAII,EAAgBjF,KAAK6E,GACrB,MAGJ,GAAIM,EAAQnF,KAAK1G,GACb,MAEJ,GAAIuL,EAAS/X,OAAO,SAAWgY,IAAWD,EAASvD,OAC/CkD,GAAgB,KAAOK,EAAStO,MAAMuO,OAErC,CAED,GAAIE,EACA,MAGJ,GAAIL,EAAK7X,OAAO,SAAW,EACvB,MAEJ,GAAIsY,EAAiBpF,KAAK2E,GACtB,MAEJ,GAAIU,EAAkBrF,KAAK2E,GACvB,MAEJ,GAAIQ,EAAQnF,KAAK2E,GACb,MAEJH,GAAgB,KAAOK,CAC3B,CACKG,GAAcH,EAASvD,SACxB0D,GAAY,GAEhB/C,GAAOqD,EAAU,KACjBhM,EAAMA,EAAIvK,UAAUuW,EAAQ7Y,OAAS,GACrCkY,EAAOE,EAAStO,MAAMuO,EAC1B,CACJ,CACKd,EAAKK,QAEFI,EACAT,EAAKK,OAAQ,EAER,YAAYrE,KAAKiC,KACtBwC,GAAoB,IAG5B,IACIc,EADAC,EAAS,KAGTpc,KAAKqR,QAAQmE,MACb4G,EAAS,cAAc5E,KAAK4D,GACxBgB,IACAD,EAA0B,SAAdC,EAAO,GACnBhB,EAAeA,EAAavE,QAAQ,eAAgB,MAG5D+D,EAAKM,MAAMhc,KAAK,CACZO,KAAM,YACNoZ,MACAwD,OAAQD,EACRE,QAASH,EACTlB,OAAO,EACPlC,KAAMqC,EACNlC,OAAQ,KAEZ0B,EAAK/B,KAAOA,CAChB,CAEA+B,EAAKM,MAAMN,EAAKM,MAAM7X,OAAS,GAAGwV,IAAMA,EAAI0D,UAC5C3B,EAAKM,MAAMN,EAAKM,MAAM7X,OAAS,GAAG0V,KAAOqC,EAAamB,UACtD3B,EAAK/B,IAAM+B,EAAK/B,IAAI0D,UAEpB,IAAK,IAAIzQ,EAAI,EAAGA,EAAI8O,EAAKM,MAAM7X,OAAQyI,IAGnC,GAFA9L,KAAK8Y,MAAMhP,MAAM4Q,KAAM,EACvBE,EAAKM,MAAMpP,GAAGoN,OAASlZ,KAAK8Y,MAAM6B,YAAYC,EAAKM,MAAMpP,GAAGiN,KAAM,KAC7D6B,EAAKK,MAAO,CAEb,MAAMuB,EAAU5B,EAAKM,MAAMpP,GAAGoN,OAAOvG,QAAO7P,GAAgB,UAAXA,EAAErD,OAC7Cgd,EAAwBD,EAAQnZ,OAAS,GAAKmZ,EAAQE,MAAK5Z,GAAK,SAAS8T,KAAK9T,EAAE+V,OACtF+B,EAAKK,MAAQwB,CACjB,CAGJ,GAAI7B,EAAKK,MACL,IAAK,IAAInP,EAAI,EAAGA,EAAI8O,EAAKM,MAAM7X,OAAQyI,IACnC8O,EAAKM,MAAMpP,GAAGmP,OAAQ,EAG9B,OAAOL,CACX,CACJ,CACA,IAAAlE,CAAKxG,GACD,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAM7C,KAAKc,KAAKtH,GACvC,GAAIyI,EAQA,MAPc,CACVlZ,KAAM,OACN8Z,OAAO,EACPV,IAAKF,EAAI,GACTgE,IAAgB,QAAXhE,EAAI,IAA2B,WAAXA,EAAI,IAA8B,UAAXA,EAAI,GACpDI,KAAMJ,EAAI,GAItB,CACA,GAAAiE,CAAI1M,GACA,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMqD,IAAIpF,KAAKtH,GACtC,GAAIyI,EAAK,CACL,MAAM/G,EAAM+G,EAAI,GAAG3F,cAAc6D,QAAQ,OAAQ,KAC3CQ,EAAOsB,EAAI,GAAKA,EAAI,GAAG9B,QAAQ,WAAY,MAAMA,QAAQ7W,KAAKqZ,MAAMc,OAAOC,SAAU,MAAQ,GAC7F5a,EAAQmZ,EAAI,GAAKA,EAAI,GAAGhT,UAAU,EAAGgT,EAAI,GAAGtV,OAAS,GAAGwT,QAAQ7W,KAAKqZ,MAAMc,OAAOC,SAAU,MAAQzB,EAAI,GAC9G,MAAO,CACHlZ,KAAM,MACNmS,MACAiH,IAAKF,EAAI,GACTtB,OACA7X,QAER,CACJ,CACA,KAAAqd,CAAM3M,GACF,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMsD,MAAMrF,KAAKtH,GACxC,GAAIyI,EAAK,CACL,IAAK,OAAO/B,KAAK+B,EAAI,IAEjB,OAEJ,MAAMmE,EAAO,CACTrd,KAAM,QACNoZ,IAAKF,EAAI,GACToE,OAAQtF,GAAWkB,EAAI,IAAItW,KAAIgW,IACpB,CAAEU,KAAMV,EAAGa,OAAQ,OAE9B8D,MAAOrE,EAAI,GAAG9B,QAAQ,aAAc,IAAIoB,MAAM,KAC9CgF,KAAMtE,EAAI,IAAMA,EAAI,GAAGT,OAASS,EAAI,GAAG9B,QAAQ,YAAa,IAAIoB,MAAM,MAAQ,IAElF,GAAI6E,EAAKC,OAAO1Z,SAAWyZ,EAAKE,MAAM3Z,OAAQ,CAC1C,IACIyI,EAAGoR,EAAGC,EAAGC,EADT7E,EAAIuE,EAAKE,MAAM3Z,OAEnB,IAAKyI,EAAI,EAAGA,EAAIyM,EAAGzM,IAAK,CACpB,MAAMkR,EAAQF,EAAKE,MAAMlR,GACrBkR,IACI,YAAYpG,KAAKoG,GACjBF,EAAKE,MAAMlR,GAAK,QAEX,aAAa8K,KAAKoG,GACvBF,EAAKE,MAAMlR,GAAK,SAEX,YAAY8K,KAAKoG,GACtBF,EAAKE,MAAMlR,GAAK,OAGhBgR,EAAKE,MAAMlR,GAAK,KAG5B,CAEA,IADAyM,EAAIuE,EAAKG,KAAK5Z,OACTyI,EAAI,EAAGA,EAAIyM,EAAGzM,IACfgR,EAAKG,KAAKnR,GAAK2L,GAAWqF,EAAKG,KAAKnR,GAAIgR,EAAKC,OAAO1Z,QAAQhB,KAAIgW,IACrD,CAAEU,KAAMV,EAAGa,OAAQ,OAMlC,IADAX,EAAIuE,EAAKC,OAAO1Z,OACX6Z,EAAI,EAAGA,EAAI3E,EAAG2E,IACfJ,EAAKC,OAAOG,GAAGhE,OAASlZ,KAAK8Y,MAAMqB,OAAO2C,EAAKC,OAAOG,GAAGnE,MAI7D,IADAR,EAAIuE,EAAKG,KAAK5Z,OACT6Z,EAAI,EAAGA,EAAI3E,EAAG2E,IAEf,IADAE,EAAMN,EAAKG,KAAKC,GACXC,EAAI,EAAGA,EAAIC,EAAI/Z,OAAQ8Z,IACxBC,EAAID,GAAGjE,OAASlZ,KAAK8Y,MAAMqB,OAAOiD,EAAID,GAAGpE,MAGjD,OAAO+D,CACX,CACJ,CACJ,CACA,QAAAO,CAASnN,GACL,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAM8D,SAAS7F,KAAKtH,GAC3C,GAAIyI,EACA,MAAO,CACHlZ,KAAM,UACNoZ,IAAKF,EAAI,GACT4B,MAA4B,MAArB5B,EAAI,GAAGzL,OAAO,GAAa,EAAI,EACtC6L,KAAMJ,EAAI,GACVO,OAAQlZ,KAAK8Y,MAAMqB,OAAOxB,EAAI,IAG1C,CACA,SAAA2E,CAAUpN,GACN,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAM+D,UAAU9F,KAAKtH,GAC5C,GAAIyI,EAAK,CACL,MAAMI,EAA4C,OAArCJ,EAAI,GAAGzL,OAAOyL,EAAI,GAAGtV,OAAS,GACrCsV,EAAI,GAAGxL,MAAM,GAAI,GACjBwL,EAAI,GACV,MAAO,CACHlZ,KAAM,YACNoZ,IAAKF,EAAI,GACTI,OACAG,OAAQlZ,KAAK8Y,MAAMqB,OAAOpB,GAElC,CACJ,CACA,IAAAA,CAAK7I,GACD,MAAMyI,EAAM3Y,KAAKqZ,MAAME,MAAMR,KAAKvB,KAAKtH,GACvC,GAAIyI,EACA,MAAO,CACHlZ,KAAM,OACNoZ,IAAKF,EAAI,GACTI,KAAMJ,EAAI,GACVO,OAAQlZ,KAAK8Y,MAAMqB,OAAOxB,EAAI,IAG1C,CACA,MAAA4E,CAAOrN,GACH,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOoD,OAAO/F,KAAKtH,GAC1C,GAAIyI,EACA,MAAO,CACHlZ,KAAM,SACNoZ,IAAKF,EAAI,GACTI,KAAM,GAAOJ,EAAI,IAG7B,CACA,GAAA/G,CAAI1B,GACA,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOvI,IAAI4F,KAAKtH,GACvC,GAAIyI,EAaA,OAZK3Y,KAAK8Y,MAAMhP,MAAMkP,QAAU,QAAQpC,KAAK+B,EAAI,IAC7C3Y,KAAK8Y,MAAMhP,MAAMkP,QAAS,EAErBhZ,KAAK8Y,MAAMhP,MAAMkP,QAAU,UAAUpC,KAAK+B,EAAI,MACnD3Y,KAAK8Y,MAAMhP,MAAMkP,QAAS,IAEzBhZ,KAAK8Y,MAAMhP,MAAM0T,YAAc,iCAAiC5G,KAAK+B,EAAI,IAC1E3Y,KAAK8Y,MAAMhP,MAAM0T,YAAa,EAEzBxd,KAAK8Y,MAAMhP,MAAM0T,YAAc,mCAAmC5G,KAAK+B,EAAI,MAChF3Y,KAAK8Y,MAAMhP,MAAM0T,YAAa,GAE3B,CACH/d,KAAM,OACNoZ,IAAKF,EAAI,GACTK,OAAQhZ,KAAK8Y,MAAMhP,MAAMkP,OACzBwE,WAAYxd,KAAK8Y,MAAMhP,MAAM0T,WAC7BjE,OAAO,EACPR,KAAMJ,EAAI,GAGtB,CACA,IAAAC,CAAK1I,GACD,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOvB,KAAKpB,KAAKtH,GACxC,GAAIyI,EAAK,CACL,MAAM8E,EAAa9E,EAAI,GAAGT,OAC1B,IAAKlY,KAAKqR,QAAQqE,UAAY,KAAKkB,KAAK6G,GAAa,CAEjD,IAAM,KAAK7G,KAAK6G,GACZ,OAGJ,MAAMC,EAAatF,GAAMqF,EAAWtQ,MAAM,GAAI,GAAI,MAClD,IAAKsQ,EAAWpa,OAASqa,EAAWra,QAAU,GAAM,EAChD,MAER,KACK,CAED,MAAMsa,EA3ftB,SAA4B7F,EAAK3E,GAC7B,IAA2B,IAAvB2E,EAAIpT,QAAQyO,EAAE,IACd,OAAQ,EAEZ,IAAIjB,EAAQ,EACZ,IAAK,IAAIpG,EAAI,EAAGA,EAAIgM,EAAIzU,OAAQyI,IAC5B,GAAe,OAAXgM,EAAIhM,GACJA,SAEC,GAAIgM,EAAIhM,KAAOqH,EAAE,GAClBjB,SAEC,GAAI4F,EAAIhM,KAAOqH,EAAE,KAClBjB,IACIA,EAAQ,GACR,OAAOpG,EAInB,OAAQ,CACZ,CAueuC8R,CAAmBjF,EAAI,GAAI,MAClD,GAAIgF,GAAkB,EAAG,CACrB,MACME,GADgC,IAAxBlF,EAAI,GAAGjU,QAAQ,KAAa,EAAI,GACtBiU,EAAI,GAAGtV,OAASsa,EACxChF,EAAI,GAAKA,EAAI,GAAGhT,UAAU,EAAGgY,GAC7BhF,EAAI,GAAKA,EAAI,GAAGhT,UAAU,EAAGkY,GAAS3F,OACtCS,EAAI,GAAK,EACb,CACJ,CACA,IAAItB,EAAOsB,EAAI,GACXnZ,EAAQ,GACZ,GAAIQ,KAAKqR,QAAQqE,SAAU,CAEvB,MAAMkD,EAAO,gCAAgCpB,KAAKH,GAC9CuB,IACAvB,EAAOuB,EAAK,GACZpZ,EAAQoZ,EAAK,GAErB,MAEIpZ,EAAQmZ,EAAI,GAAKA,EAAI,GAAGxL,MAAM,GAAI,GAAK,GAY3C,OAVAkK,EAAOA,EAAKa,OACR,KAAKtB,KAAKS,KAGNA,EAFArX,KAAKqR,QAAQqE,WAAc,KAAKkB,KAAK6G,GAE9BpG,EAAKlK,MAAM,GAGXkK,EAAKlK,MAAM,GAAI,IAGvBuL,GAAWC,EAAK,CACnBtB,KAAMA,EAAOA,EAAKR,QAAQ7W,KAAKqZ,MAAMc,OAAOC,SAAU,MAAQ/C,EAC9D7X,MAAOA,EAAQA,EAAMqX,QAAQ7W,KAAKqZ,MAAMc,OAAOC,SAAU,MAAQ5a,GAClEmZ,EAAI,GAAI3Y,KAAK8Y,MACpB,CACJ,CACA,OAAAgF,CAAQ5N,EAAK6N,GACT,IAAIpF,EACJ,IAAKA,EAAM3Y,KAAKqZ,MAAMc,OAAO2D,QAAQtG,KAAKtH,MAClCyI,EAAM3Y,KAAKqZ,MAAMc,OAAO6D,OAAOxG,KAAKtH,IAAO,CAC/C,IAAI0I,GAAQD,EAAI,IAAMA,EAAI,IAAI9B,QAAQ,OAAQ,KAE9C,GADA+B,EAAOmF,EAAMnF,EAAK5F,gBACb4F,EAAM,CACP,MAAMG,EAAOJ,EAAI,GAAGzL,OAAO,GAC3B,MAAO,CACHzN,KAAM,OACNoZ,IAAKE,EACLA,OAER,CACA,OAAOL,GAAWC,EAAKC,EAAMD,EAAI,GAAI3Y,KAAK8Y,MAC9C,CACJ,CACA,QAAAmF,CAAS/N,EAAKgO,EAAWC,EAAW,IAChC,IAAItG,EAAQ7X,KAAKqZ,MAAMc,OAAO8D,SAASG,OAAO5G,KAAKtH,GACnD,GAAK2H,KAGDA,EAAM,KAAMsG,EAAStG,MAAM,qBAEdA,EAAM,KAAMA,EAAM,KACjBsG,GAAYne,KAAKqZ,MAAMc,OAAOkE,YAAY7G,KAAK2G,IAAW,CAExE,MAAMG,EAAU,IAAIzG,EAAM,IAAIxU,OAAS,EACvC,IAAIkb,EAAQC,EAASC,EAAaH,EAASI,EAAgB,EAC3D,MAAMC,EAAyB,MAAhB9G,EAAM,GAAG,GAAa7X,KAAKqZ,MAAMc,OAAO8D,SAASW,UAAY5e,KAAKqZ,MAAMc,OAAO8D,SAASY,UAIvG,IAHAF,EAAOG,UAAY,EAEnBZ,EAAYA,EAAU/Q,OAAO,EAAI+C,EAAI7M,OAASwU,EAAM,GAAGxU,OAAS,GACrB,OAAnCwU,EAAQ8G,EAAOnH,KAAK0G,KAAqB,CAE7C,GADAK,EAAS1G,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IACtE0G,EACD,SAEJ,GADAC,EAAU,IAAID,GAAQlb,OAClBwU,EAAM,IAAMA,EAAM,GAAI,CACtB4G,GAAcD,EACd,QACJ,CACK,IAAI3G,EAAM,IAAMA,EAAM,KACnByG,EAAU,MAAQA,EAAUE,GAAW,GAAI,CAC3CE,GAAiBF,EACjB,QACJ,CAGJ,GADAC,GAAcD,EACVC,EAAa,EACb,SAEJD,EAAUxd,KAAK8a,IAAI0C,EAASA,EAAUC,EAAaC,GACnD,MAAM7F,EAAM,IAAI3I,GAAK/C,MAAM,EAAGmR,EAAUzG,EAAMpT,MAAQ+Z,EAAU,GAAGpN,KAAK,IAExE,GAAIpQ,KAAK8a,IAAIwC,EAASE,GAAW,EAAG,CAChC,MAAMzF,EAAOF,EAAI1L,MAAM,GAAI,GAC3B,MAAO,CACH1N,KAAM,KACNoZ,MACAE,OACAG,OAAQlZ,KAAK8Y,MAAMK,aAAaJ,GAExC,CAEA,MAAMA,EAAOF,EAAI1L,MAAM,GAAI,GAC3B,MAAO,CACH1N,KAAM,SACNoZ,MACAE,OACAG,OAAQlZ,KAAK8Y,MAAMK,aAAaJ,GAExC,CACJ,CACJ,CACA,QAAAgG,CAAS7O,GACL,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOV,KAAKjC,KAAKtH,GACxC,GAAIyI,EAAK,CACL,IAAII,EAAOJ,EAAI,GAAG9B,QAAQ,MAAO,KACjC,MAAMmI,EAAmB,OAAOpI,KAAKmC,GAC/BkG,EAA0B,KAAKrI,KAAKmC,IAAS,KAAKnC,KAAKmC,GAK7D,OAJIiG,GAAoBC,IACpBlG,EAAOA,EAAKpT,UAAU,EAAGoT,EAAK1V,OAAS,IAE3C0V,EAAO,GAAOA,GAAM,GACb,CACHtZ,KAAM,WACNoZ,IAAKF,EAAI,GACTI,OAER,CACJ,CACA,EAAAmG,CAAGhP,GACC,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAO+E,GAAG1H,KAAKtH,GACtC,GAAIyI,EACA,MAAO,CACHlZ,KAAM,KACNoZ,IAAKF,EAAI,GAGrB,CACA,GAAAwG,CAAIjP,GACA,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOgF,IAAI3H,KAAKtH,GACvC,GAAIyI,EACA,MAAO,CACHlZ,KAAM,MACNoZ,IAAKF,EAAI,GACTI,KAAMJ,EAAI,GACVO,OAAQlZ,KAAK8Y,MAAMK,aAAaR,EAAI,IAGhD,CACA,QAAAyG,CAASlP,GACL,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOiF,SAAS5H,KAAKtH,GAC5C,GAAIyI,EAAK,CACL,IAAII,EAAM1B,EASV,MARe,MAAXsB,EAAI,IACJI,EAAO,GAAOJ,EAAI,IAClBtB,EAAO,UAAY0B,IAGnBA,EAAO,GAAOJ,EAAI,IAClBtB,EAAO0B,GAEJ,CACHtZ,KAAM,OACNoZ,IAAKF,EAAI,GACTI,OACA1B,OACA6B,OAAQ,CACJ,CACIzZ,KAAM,OACNoZ,IAAKE,EACLA,SAIhB,CACJ,CACA,GAAAsG,CAAInP,GACA,IAAIyI,EACJ,GAAIA,EAAM3Y,KAAKqZ,MAAMc,OAAOkF,IAAI7H,KAAKtH,GAAM,CACvC,IAAI6I,EAAM1B,EACV,GAAe,MAAXsB,EAAI,GACJI,EAAO,GAAOJ,EAAI,IAClBtB,EAAO,UAAY0B,MAElB,CAED,IAAIuG,EACJ,GACIA,EAAc3G,EAAI,GAClBA,EAAI,GAAK3Y,KAAKqZ,MAAMc,OAAOoF,WAAW/H,KAAKmB,EAAI,IAAI,SAC9C2G,IAAgB3G,EAAI,IAC7BI,EAAO,GAAOJ,EAAI,IAEdtB,EADW,SAAXsB,EAAI,GACG,UAAYA,EAAI,GAGhBA,EAAI,EAEnB,CACA,MAAO,CACHlZ,KAAM,OACNoZ,IAAKF,EAAI,GACTI,OACA1B,OACA6B,OAAQ,CACJ,CACIzZ,KAAM,OACNoZ,IAAKE,EACLA,SAIhB,CACJ,CACA,UAAAyG,CAAWtP,GACP,MAAMyI,EAAM3Y,KAAKqZ,MAAMc,OAAOpB,KAAKvB,KAAKtH,GACxC,GAAIyI,EAAK,CACL,IAAII,EAOJ,OALIA,EADA/Y,KAAK8Y,MAAMhP,MAAM0T,WACV7E,EAAI,GAGJ,GAAOA,EAAI,IAEf,CACHlZ,KAAM,OACNoZ,IAAKF,EAAI,GACTI,OAER,CACJ,EAQJ,MAAMQ,GAAQ,CACVC,QAAS,mBACTC,KAAM,uCACNE,OAAQ,8GACRa,GAAI,qEACJH,QAAS,uCACTI,WAAY,0CACZG,KAAM,uCACNlE,KAAM,mdAUNkG,IAAK,kGACLC,MAAOtF,GACP8F,SAAU,mEAGVoC,WAAY,uFACZ1G,KAAM,UAEVQ,OAAe,8BACfA,OAAe,gEACfA,GAAMqD,IAAM5F,GAAKuC,GAAMqD,KAClB/F,QAAQ,QAAS0C,GAAMmG,QACvB7I,QAAQ,QAAS0C,GAAMoG,QACvBxI,WACLoC,GAAMqG,OAAS,wBACfrG,GAAMsG,cAAgB7I,GAAK,iBACtBH,QAAQ,OAAQ0C,GAAMqG,QACtBzI,WACLoC,GAAMqB,KAAO5D,GAAKuC,GAAMqB,MACnB/D,QAAQ,QAAS0C,GAAMqG,QACvB/I,QAAQ,KAAM,mEACdA,QAAQ,MAAO,UAAY0C,GAAMqD,IAAIxG,OAAS,KAC9Ce,WACLoC,GAAMuG,KAAO,gWAMbvG,GAAMwG,SAAW,+BACjBxG,GAAM7C,KAAOM,GAAKuC,GAAM7C,KAAM,KACzBG,QAAQ,UAAW0C,GAAMwG,UACzBlJ,QAAQ,MAAO0C,GAAMuG,MACrBjJ,QAAQ,YAAa,4EACrBM,WACLoC,GAAM8D,SAAWrG,GAAKuC,GAAM8D,UACvBxG,QAAQ,QAAS0C,GAAMqG,QACvBzI,WACLoC,GAAM+D,UAAYtG,GAAKuC,GAAMkG,YACxB5I,QAAQ,KAAM0C,GAAMiB,IACpB3D,QAAQ,UAAW,iBACnBA,QAAQ,YAAa,IACrBA,QAAQ,SAAU,IAClBA,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAO0C,GAAMuG,MACrB3I,WACLoC,GAAMkB,WAAazD,GAAKuC,GAAMkB,YACzB5D,QAAQ,YAAa0C,GAAM+D,WAC3BnG,WAILoC,GAAMyG,OAAS,IAAKzG,IAIpBA,GAAM/D,IAAM,IACL+D,GAAMyG,OACTnD,MAAO,+JAIXtD,GAAM/D,IAAIqH,MAAQ7F,GAAKuC,GAAM/D,IAAIqH,OAC5BhG,QAAQ,KAAM0C,GAAMiB,IACpB3D,QAAQ,UAAW,iBACnBA,QAAQ,aAAc,WACtBA,QAAQ,OAAQ,cAChBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAO0C,GAAMuG,MACrB3I,WACLoC,GAAM/D,IAAI8H,UAAYtG,GAAKuC,GAAMkG,YAC5B5I,QAAQ,KAAM0C,GAAMiB,IACpB3D,QAAQ,UAAW,iBACnBA,QAAQ,YAAa,IACrBA,QAAQ,QAAS0C,GAAM/D,IAAIqH,OAC3BhG,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAO0C,GAAMuG,MACrB3I,WAILoC,GAAM7D,SAAW,IACV6D,GAAMyG,OACTtJ,KAAMM,GAAK,8IAGNH,QAAQ,UAAW0C,GAAMwG,UACzBlJ,QAAQ,OAAQ,qKAIhBM,WACLyF,IAAK,oEACLvC,QAAS,yBACTV,OAAQpC,GACR8F,SAAU,mCACVC,UAAWtG,GAAKuC,GAAMyG,OAAOP,YACxB5I,QAAQ,KAAM0C,GAAMiB,IACpB3D,QAAQ,UAAW,mBACnBA,QAAQ,WAAY0C,GAAM8D,UAC1BxG,QAAQ,aAAc,WACtBA,QAAQ,UAAW,IACnBA,QAAQ,QAAS,IACjBA,QAAQ,QAAS,IACjBM,YAOT,MAAMgD,GAAS,CACXoD,OAAQ,8CACR6B,SAAU,sCACVC,IAAK9H,GACL3F,IAAK,2JAMLgH,KAAM,gDACNkF,QAAS,0BACTE,OAAQ,wBACRiC,cAAe,wBACfhC,SAAU,CACNG,OAAQ,oEAGRQ,UAAW,mPACXC,UAAW,8MAEfpF,KAAM,sCACNyF,GAAI,wBACJC,IAAK5H,GACLwB,KAAM,8EACNsF,YAAa,6BAGjBlE,aAAsB,mBACtBA,GAAOkE,YAAcrH,GAAKmD,GAAOkE,YAAa,KAAKxH,QAAQ,eAAgBsD,GAAO+F,cAAc/I,WAEhGgD,GAAOgG,UAAY,gDACnBhG,GAAOiG,eAAiB,aACxBjG,GAAOC,SAAW,eAClBD,GAAO4F,SAAW/I,GAAKuC,GAAMwG,UAAUlJ,QAAQ,eAAa,UAAOM,WACnEgD,GAAO8D,SAASG,OAASpH,GAAKmD,GAAO8D,SAASG,OAAQ,KACjDvH,QAAQ,SAAUsD,GAAO+F,cACzB/I,WACLgD,GAAO8D,SAASW,UAAY5H,GAAKmD,GAAO8D,SAASW,UAAW,MACvD/H,QAAQ,SAAUsD,GAAO+F,cACzB/I,WACLgD,GAAO8D,SAASY,UAAY7H,GAAKmD,GAAO8D,SAASY,UAAW,MACvDhI,QAAQ,SAAUsD,GAAO+F,cACzB/I,WACLgD,GAAOiG,eAAiBpJ,GAAKmD,GAAOiG,eAAgB,MAC/CvJ,QAAQ,SAAUsD,GAAO+F,cACzB/I,WACLgD,GAAOC,SAAWpD,GAAKmD,GAAOC,SAAU,MACnCvD,QAAQ,SAAUsD,GAAO+F,cACzB/I,WACLgD,GAAOkG,QAAU,+BACjBlG,GAAOmG,OAAS,+IAChBnG,GAAOiF,SAAWpI,GAAKmD,GAAOiF,UACzBvI,QAAQ,SAAUsD,GAAOkG,SACzBxJ,QAAQ,QAASsD,GAAOmG,QACxBnJ,WACLgD,GAAOoG,WAAa,8EACpBpG,GAAOvI,IAAMoF,GAAKmD,GAAOvI,KACpBiF,QAAQ,UAAWsD,GAAO4F,UAC1BlJ,QAAQ,YAAasD,GAAOoG,YAC5BpJ,WACLgD,GAAOuF,OAAS,sDAChBvF,GAAOqG,MAAQ,uCACfrG,GAAOwF,OAAS,8DAChBxF,GAAOvB,KAAO5B,GAAKmD,GAAOvB,MACrB/B,QAAQ,QAASsD,GAAOuF,QACxB7I,QAAQ,OAAQsD,GAAOqG,OACvB3J,QAAQ,QAASsD,GAAOwF,QACxBxI,WACLgD,GAAO2D,QAAU9G,GAAKmD,GAAO2D,SACxBjH,QAAQ,QAASsD,GAAOuF,QACxB7I,QAAQ,MAAO0C,GAAMmG,QACrBvI,WACLgD,GAAO6D,OAAShH,GAAKmD,GAAO6D,QACvBnH,QAAQ,MAAO0C,GAAMmG,QACrBvI,WACLgD,GAAO8F,cAAgBjJ,GAAKmD,GAAO8F,cAAe,KAC7CpJ,QAAQ,UAAWsD,GAAO2D,SAC1BjH,QAAQ,SAAUsD,GAAO6D,QACzB7G,WAILgD,GAAO6F,OAAS,IAAK7F,IAIrBA,GAAOzE,SAAW,IACXyE,GAAO6F,OACVS,OAAQ,CACJzF,MAAO,WACP0F,OAAQ,iEACRC,OAAQ,cACRC,OAAQ,YAEZC,GAAI,CACA7F,MAAO,QACP0F,OAAQ,6DACRC,OAAQ,YACRC,OAAQ,WAEZhI,KAAM5B,GAAK,2BACNH,QAAQ,QAASsD,GAAOuF,QACxBvI,WACL2G,QAAS9G,GAAK,iCACTH,QAAQ,QAASsD,GAAOuF,QACxBvI,YAKTgD,GAAO3E,IAAM,IACN2E,GAAO6F,OACVzC,OAAQvG,GAAKmD,GAAOoD,QAAQ1G,QAAQ,KAAM,QAAQM,WAClD2J,gBAAiB,4EACjBzB,IAAK,mEACLE,WAAY,6EACZJ,IAAK,+CACLpG,KAAM,8NAEVoB,GAAO3E,IAAI6J,IAAMrI,GAAKmD,GAAO3E,IAAI6J,IAAK,KACjCxI,QAAQ,QAASsD,GAAO3E,IAAIsL,iBAC5B3J,WAILgD,GAAO7E,OAAS,IACT6E,GAAO3E,IACV0J,GAAIlI,GAAKmD,GAAO+E,IAAIrI,QAAQ,OAAQ,KAAKM,WACzC4B,KAAM/B,GAAKmD,GAAO3E,IAAIuD,MACjBlC,QAAQ,OAAQ,iBAChBA,QAAQ,UAAW,KACnBM,YAMT,MAAM4J,GACF7H,OACA7H,QACAvH,MACA+L,UACAmL,YACA,WAAA5U,CAAYiF,GAGRrR,KAAKkZ,OAAS,GACdlZ,KAAKkZ,OAAO6E,MAAQhY,OAAO8B,OAAO,MAClC7H,KAAKqR,QAAUA,GAAWgE,GAC1BrV,KAAKqR,QAAQwE,UAAY7V,KAAKqR,QAAQwE,WAAa,IAAIuD,GACvDpZ,KAAK6V,UAAY7V,KAAKqR,QAAQwE,UAC9B7V,KAAK6V,UAAUxE,QAAUrR,KAAKqR,QAC9BrR,KAAK6V,UAAUiD,MAAQ9Y,KACvBA,KAAKghB,YAAc,GACnBhhB,KAAK8J,MAAQ,CACTkP,QAAQ,EACRwE,YAAY,EACZ9C,KAAK,GAET,MAAMrB,EAAQ,CACVE,MAAOA,GAAMyG,OACb7F,OAAQA,GAAO6F,QAEfhgB,KAAKqR,QAAQqE,UACb2D,EAAME,MAAQA,GAAM7D,SACpB2D,EAAMc,OAASA,GAAOzE,UAEjB1V,KAAKqR,QAAQmE,MAClB6D,EAAME,MAAQA,GAAM/D,IAChBxV,KAAKqR,QAAQiE,OACb+D,EAAMc,OAASA,GAAO7E,OAGtB+D,EAAMc,OAASA,GAAO3E,KAG9BxV,KAAK6V,UAAUwD,MAAQA,CAC3B,CAIA,gBAAWA,GACP,MAAO,CACHE,SACAY,UAER,CAIA,UAAO8G,CAAI/Q,EAAKmB,GAEZ,OADc,IAAI0P,GAAO1P,GACZ4P,IAAI/Q,EACrB,CAIA,gBAAOgR,CAAUhR,EAAKmB,GAElB,OADc,IAAI0P,GAAO1P,GACZ8H,aAAajJ,EAC9B,CAIA,GAAA+Q,CAAI/Q,GAIA,IAAIpF,EACJ,IAJAoF,EAAMA,EACD2G,QAAQ,WAAY,MACzB7W,KAAK2a,YAAYzK,EAAKlQ,KAAKkZ,QAEpBpO,EAAO9K,KAAKghB,YAAY7I,SAC3BnY,KAAKmZ,aAAarO,EAAKoF,IAAKpF,EAAKoO,QAErC,OAAOlZ,KAAKkZ,MAChB,CACA,WAAAyB,CAAYzK,EAAKgJ,EAAS,IAStB,IAAID,EACAkI,EACAC,EACAC,EACJ,IAXInR,EADAlQ,KAAKqR,QAAQqE,SACPxF,EAAI2G,QAAQ,MAAO,QAAQA,QAAQ,SAAU,IAG7C3G,EAAI2G,QAAQ,gBAAgB,CAACyK,EAAGC,EAASC,IACpCD,EAAU,OAAO/F,OAAOgG,EAAKne,UAOrC6M,GACH,KAAIlQ,KAAKqR,QAAQkE,YACVvV,KAAKqR,QAAQkE,WAAWgE,OACxBvZ,KAAKqR,QAAQkE,WAAWgE,MAAMmD,MAAM+E,MAC/BxI,EAAQwI,EAAarZ,KAAK,CAAE0Q,MAAO9Y,MAAQkQ,EAAKgJ,MAChDhJ,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,IACL,MAOnB,GAAIA,EAAQjZ,KAAK6V,UAAUyD,MAAMpJ,GAC7BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QACL,IAArB4V,EAAMJ,IAAIxV,QAAgB6V,EAAO7V,OAAS,EAG1C6V,EAAOA,EAAO7V,OAAS,GAAGwV,KAAO,KAGjCK,EAAOha,KAAK+Z,QAKpB,GAAIA,EAAQjZ,KAAK6V,UAAU4D,KAAKvJ,GAC5BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B8d,EAAYjI,EAAOA,EAAO7V,OAAS,IAE/B8d,GAAiC,cAAnBA,EAAU1hB,MAA2C,SAAnB0hB,EAAU1hB,KAM1DyZ,EAAOha,KAAK+Z,IALZkI,EAAUtI,KAAO,KAAOI,EAAMJ,IAC9BsI,EAAUpI,MAAQ,KAAOE,EAAMF,KAC/B/Y,KAAKghB,YAAYhhB,KAAKghB,YAAY3d,OAAS,GAAG6M,IAAMiR,EAAUpI,WAQtE,GAAIE,EAAQjZ,KAAK6V,UAAU8D,OAAOzJ,GAC9BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUwE,QAAQnK,GAC/BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAU2E,GAAGtK,GAC1BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAU4E,WAAWvK,GAClCA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAU+E,KAAK1K,GAC5BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUa,KAAKxG,GAC5BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAU+G,IAAI1M,GAC3BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B8d,EAAYjI,EAAOA,EAAO7V,OAAS,IAC/B8d,GAAiC,cAAnBA,EAAU1hB,MAA2C,SAAnB0hB,EAAU1hB,KAKpDO,KAAKkZ,OAAO6E,MAAM9E,EAAMrH,OAC9B5R,KAAKkZ,OAAO6E,MAAM9E,EAAMrH,KAAO,CAC3ByF,KAAM4B,EAAM5B,KACZ7X,MAAOyZ,EAAMzZ,SAPjB2hB,EAAUtI,KAAO,KAAOI,EAAMJ,IAC9BsI,EAAUpI,MAAQ,KAAOE,EAAMJ,IAC/B7Y,KAAKghB,YAAYhhB,KAAKghB,YAAY3d,OAAS,GAAG6M,IAAMiR,EAAUpI,WAWtE,GAAIE,EAAQjZ,KAAK6V,UAAUgH,MAAM3M,GAC7BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUwH,SAASnN,GAChCA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,OAFhB,CAQA,GADAmI,EAASlR,EACLlQ,KAAKqR,QAAQkE,YAAcvV,KAAKqR,QAAQkE,WAAWmM,WAAY,CAC/D,IAAIC,EAAaC,IACjB,MAAMC,EAAU3R,EAAI/C,MAAM,GAC1B,IAAI2U,EACJ9hB,KAAKqR,QAAQkE,WAAWmM,WAAW3Y,SAASgZ,IACxCD,EAAYC,EAAc3Z,KAAK,CAAE0Q,MAAO9Y,MAAQ6hB,GACvB,iBAAdC,GAA0BA,GAAa,IAC9CH,EAAa3gB,KAAK8a,IAAI6F,EAAYG,GACtC,IAEAH,EAAaC,KAAYD,GAAc,IACvCP,EAASlR,EAAIvK,UAAU,EAAGgc,EAAa,GAE/C,CACA,GAAI3hB,KAAK8J,MAAM4Q,MAAQzB,EAAQjZ,KAAK6V,UAAUyH,UAAU8D,IACpDD,EAAYjI,EAAOA,EAAO7V,OAAS,GAC/Bge,GAA2C,cAAnBF,EAAU1hB,MAClC0hB,EAAUtI,KAAO,KAAOI,EAAMJ,IAC9BsI,EAAUpI,MAAQ,KAAOE,EAAMF,KAC/B/Y,KAAKghB,YAAY3c,MACjBrE,KAAKghB,YAAYhhB,KAAKghB,YAAY3d,OAAS,GAAG6M,IAAMiR,EAAUpI,MAG9DG,EAAOha,KAAK+Z,GAEhBoI,EAAwBD,EAAO/d,SAAW6M,EAAI7M,OAC9C6M,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,aAIlC,GAAI4V,EAAQjZ,KAAK6V,UAAUkD,KAAK7I,GAC5BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B8d,EAAYjI,EAAOA,EAAO7V,OAAS,GAC/B8d,GAAgC,SAAnBA,EAAU1hB,MACvB0hB,EAAUtI,KAAO,KAAOI,EAAMJ,IAC9BsI,EAAUpI,MAAQ,KAAOE,EAAMF,KAC/B/Y,KAAKghB,YAAY3c,MACjBrE,KAAKghB,YAAYhhB,KAAKghB,YAAY3d,OAAS,GAAG6M,IAAMiR,EAAUpI,MAG9DG,EAAOha,KAAK+Z,QAIpB,GAAI/I,EAAK,CACL,MAAM8R,EAAS,0BAA4B9R,EAAI+R,WAAW,GAC1D,GAAIjiB,KAAKqR,QAAQuE,OAAQ,CACrB,GAAQ5Q,MAAMgd,GACd,KACJ,CAEI,MAAM,IAAIjY,MAAMiY,EAExB,CAzDA,CA4DJ,OADAhiB,KAAK8J,MAAM4Q,KAAM,EACVxB,CACX,CACA,MAAAiB,CAAOjK,EAAKgJ,EAAS,IAEjB,OADAlZ,KAAKghB,YAAY9hB,KAAK,CAAEgR,MAAKgJ,WACtBA,CACX,CAIA,YAAAC,CAAajJ,EAAKgJ,EAAS,IACvB,IAAID,EAAOkI,EAAWC,EAGlBvJ,EACAqK,EAAc/D,EAFdD,EAAYhO,EAIhB,GAAIlQ,KAAKkZ,OAAO6E,MAAO,CACnB,MAAMA,EAAQhY,OAAO6G,KAAK5M,KAAKkZ,OAAO6E,OACtC,GAAIA,EAAM1a,OAAS,EACf,KAA8E,OAAtEwU,EAAQ7X,KAAK6V,UAAUwD,MAAMc,OAAO8F,cAAczI,KAAK0G,KACvDH,EAAM7Z,SAAS2T,EAAM,GAAG1K,MAAM0K,EAAM,GAAGsK,YAAY,KAAO,GAAI,MAC9DjE,EAAYA,EAAU/Q,MAAM,EAAG0K,EAAMpT,OAAS,IAAM,IAAI+W,OAAO3D,EAAM,GAAGxU,OAAS,GAAK,IAAM6a,EAAU/Q,MAAMnN,KAAK6V,UAAUwD,MAAMc,OAAO8F,cAAcnB,WAItK,CAEA,KAA0E,OAAlEjH,EAAQ7X,KAAK6V,UAAUwD,MAAMc,OAAOgG,UAAU3I,KAAK0G,KACvDA,EAAYA,EAAU/Q,MAAM,EAAG0K,EAAMpT,OAAS,IAAM,IAAI+W,OAAO3D,EAAM,GAAGxU,OAAS,GAAK,IAAM6a,EAAU/Q,MAAMnN,KAAK6V,UAAUwD,MAAMc,OAAOgG,UAAUrB,WAGtJ,KAA+E,OAAvEjH,EAAQ7X,KAAK6V,UAAUwD,MAAMc,OAAOiG,eAAe5I,KAAK0G,KAC5DA,EAAYA,EAAU/Q,MAAM,EAAG0K,EAAMpT,OAAS,KAAOyZ,EAAU/Q,MAAMnN,KAAK6V,UAAUwD,MAAMc,OAAOiG,eAAetB,WAEpH,KAAO5O,GAMH,GALKgS,IACD/D,EAAW,IAEf+D,GAAe,IAEXliB,KAAKqR,QAAQkE,YACVvV,KAAKqR,QAAQkE,WAAW4E,QACxBna,KAAKqR,QAAQkE,WAAW4E,OAAOuC,MAAM+E,MAChCxI,EAAQwI,EAAarZ,KAAK,CAAE0Q,MAAO9Y,MAAQkQ,EAAKgJ,MAChDhJ,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,IACL,MAOnB,GAAIA,EAAQjZ,KAAK6V,UAAU0H,OAAOrN,GAC9BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUjE,IAAI1B,GAC3BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B8d,EAAYjI,EAAOA,EAAO7V,OAAS,GAC/B8d,GAA4B,SAAflI,EAAMxZ,MAAsC,SAAnB0hB,EAAU1hB,MAChD0hB,EAAUtI,KAAOI,EAAMJ,IACvBsI,EAAUpI,MAAQE,EAAMF,MAGxBG,EAAOha,KAAK+Z,QAKpB,GAAIA,EAAQjZ,KAAK6V,UAAU+C,KAAK1I,GAC5BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUiI,QAAQ5N,EAAKlQ,KAAKkZ,OAAO6E,OAChD7N,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B8d,EAAYjI,EAAOA,EAAO7V,OAAS,GAC/B8d,GAA4B,SAAflI,EAAMxZ,MAAsC,SAAnB0hB,EAAU1hB,MAChD0hB,EAAUtI,KAAOI,EAAMJ,IACvBsI,EAAUpI,MAAQE,EAAMF,MAGxBG,EAAOha,KAAK+Z,QAKpB,GAAIA,EAAQjZ,KAAK6V,UAAUoI,SAAS/N,EAAKgO,EAAWC,GAChDjO,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUkJ,SAAS7O,GAChCA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUqJ,GAAGhP,GAC1BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUsJ,IAAIjP,GAC3BA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAIA,EAAQjZ,KAAK6V,UAAUuJ,SAASlP,GAChCA,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,QAIhB,GAAKjZ,KAAK8J,MAAMkP,UAAWC,EAAQjZ,KAAK6V,UAAUwJ,IAAInP,IAAtD,CAQA,GADAkR,EAASlR,EACLlQ,KAAKqR,QAAQkE,YAAcvV,KAAKqR,QAAQkE,WAAW6M,YAAa,CAChE,IAAIT,EAAaC,IACjB,MAAMC,EAAU3R,EAAI/C,MAAM,GAC1B,IAAI2U,EACJ9hB,KAAKqR,QAAQkE,WAAW6M,YAAYrZ,SAASgZ,IACzCD,EAAYC,EAAc3Z,KAAK,CAAE0Q,MAAO9Y,MAAQ6hB,GACvB,iBAAdC,GAA0BA,GAAa,IAC9CH,EAAa3gB,KAAK8a,IAAI6F,EAAYG,GACtC,IAEAH,EAAaC,KAAYD,GAAc,IACvCP,EAASlR,EAAIvK,UAAU,EAAGgc,EAAa,GAE/C,CACA,GAAI1I,EAAQjZ,KAAK6V,UAAU2J,WAAW4B,GAClClR,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QACF,MAAxB4V,EAAMJ,IAAI1L,OAAO,KACjBgR,EAAWlF,EAAMJ,IAAI1L,OAAO,IAEhC+U,GAAe,EACff,EAAYjI,EAAOA,EAAO7V,OAAS,GAC/B8d,GAAgC,SAAnBA,EAAU1hB,MACvB0hB,EAAUtI,KAAOI,EAAMJ,IACvBsI,EAAUpI,MAAQE,EAAMF,MAGxBG,EAAOha,KAAK+Z,QAIpB,GAAI/I,EAAK,CACL,MAAM8R,EAAS,0BAA4B9R,EAAI+R,WAAW,GAC1D,GAAIjiB,KAAKqR,QAAQuE,OAAQ,CACrB,GAAQ5Q,MAAMgd,GACd,KACJ,CAEI,MAAM,IAAIjY,MAAMiY,EAExB,CA3CA,MAHI9R,EAAMA,EAAIvK,UAAUsT,EAAMJ,IAAIxV,QAC9B6V,EAAOha,KAAK+Z,GA+CpB,OAAOC,CACX,EAMJ,MAAMmJ,GACFhR,QACA,WAAAjF,CAAYiF,GACRrR,KAAKqR,QAAUA,GAAWgE,EAC9B,CACA,IAAAoE,CAAKA,EAAM6I,EAAYvK,GACnB,MAAMmC,GAAQoI,GAAc,IAAIzK,MAAM,UAAU,GAEhD,OADA4B,EAAOA,EAAK5C,QAAQ,MAAO,IAAM,KAC5BqD,EAKE,8BACD,GAAOA,GACP,MACCnC,EAAU0B,EAAO,GAAOA,GAAM,IAC/B,kBARK,eACA1B,EAAU0B,EAAO,GAAOA,GAAM,IAC/B,iBAOd,CACA,UAAAgB,CAAW8H,GACP,MAAO,iBAAiBA,kBAC5B,CACA,IAAA7L,CAAKA,EAAM6C,GACP,OAAO7C,CACX,CACA,OAAA2D,CAAQtB,EAAM7G,EAAO2G,GAEjB,MAAO,KAAK3G,KAAS6G,OAAU7G,MACnC,CACA,EAAAsI,GACI,MAAO,QACX,CACA,IAAAI,CAAK4H,EAAMzH,EAASC,GAChB,MAAMvb,EAAOsb,EAAU,KAAO,KAE9B,MAAO,IAAMtb,GADKsb,GAAqB,IAAVC,EAAgB,WAAaA,EAAQ,IAAO,IAC1C,MAAQwH,EAAO,KAAO/iB,EAAO,KAChE,CACA,QAAAgjB,CAAS1J,EAAMsD,EAAMC,GACjB,MAAO,OAAOvD,UAClB,CACA,QAAA2J,CAASpG,GACL,MAAO,WACAA,EAAU,cAAgB,IAC3B,8BACV,CACA,SAAAgB,CAAUvE,GACN,MAAO,MAAMA,SACjB,CACA,KAAA8D,CAAME,EAAQyF,GAGV,OAFIA,IACAA,EAAO,UAAUA,aACd,qBAEDzF,EACA,aACAyF,EACA,YACV,CACA,QAAAG,CAAS1R,GACL,MAAO,SAASA,UACpB,CACA,SAAA2R,CAAU3R,EAAS4R,GACf,MAAMpjB,EAAOojB,EAAM9F,OAAS,KAAO,KAInC,OAHY8F,EAAM7F,MACZ,IAAIvd,YAAeojB,EAAM7F,UACzB,IAAIvd,MACGwR,EAAU,KAAKxR,MAChC,CAIA,MAAAghB,CAAO1H,GACH,MAAO,WAAWA,YACtB,CACA,EAAA8H,CAAG9H,GACC,MAAO,OAAOA,QAClB,CACA,QAAAgG,CAAShG,GACL,MAAO,SAASA,UACpB,CACA,EAAAmG,GACI,MAAO,MACX,CACA,GAAAC,CAAIpG,GACA,MAAO,QAAQA,SACnB,CACA,IAAAH,CAAKvB,EAAM7X,EAAOuZ,GACd,MAAM+J,EAAY1L,GAASC,GAC3B,GAAkB,OAAdyL,EACA,OAAO/J,EAGX,IAAIgK,EAAM,aADV1L,EAAOyL,GACwB,IAK/B,OAJItjB,IACAujB,GAAO,WAAavjB,EAAQ,KAEhCujB,GAAO,IAAMhK,EAAO,OACbgK,CACX,CACA,KAAAjT,CAAMuH,EAAM7X,EAAOuZ,GACf,MAAM+J,EAAY1L,GAASC,GAC3B,GAAkB,OAAdyL,EACA,OAAO/J,EAGX,IAAIgK,EAAM,aADV1L,EAAOyL,WAC8B/J,KAKrC,OAJIvZ,IACAujB,GAAO,WAAWvjB,MAEtBujB,GAAO,IACAA,CACX,CACA,IAAAhK,CAAKA,GACD,OAAOA,CACX,EAOJ,MAAMiK,GAEF,MAAAvC,CAAO1H,GACH,OAAOA,CACX,CACA,EAAA8H,CAAG9H,GACC,OAAOA,CACX,CACA,QAAAgG,CAAShG,GACL,OAAOA,CACX,CACA,GAAAoG,CAAIpG,GACA,OAAOA,CACX,CACA,IAAArC,CAAKqC,GACD,OAAOA,CACX,CACA,IAAAA,CAAKA,GACD,OAAOA,CACX,CACA,IAAAH,CAAKvB,EAAM7X,EAAOuZ,GACd,MAAO,GAAKA,CAChB,CACA,KAAAjJ,CAAMuH,EAAM7X,EAAOuZ,GACf,MAAO,GAAKA,CAChB,CACA,EAAAmG,GACI,MAAO,EACX,EAMJ,MAAM+D,GACF5R,QACAsE,SACAuN,aACA,WAAA9W,CAAYiF,GACRrR,KAAKqR,QAAUA,GAAWgE,GAC1BrV,KAAKqR,QAAQsE,SAAW3V,KAAKqR,QAAQsE,UAAY,IAAI0M,GACrDriB,KAAK2V,SAAW3V,KAAKqR,QAAQsE,SAC7B3V,KAAK2V,SAAStE,QAAUrR,KAAKqR,QAC7BrR,KAAKkjB,aAAe,IAAIF,EAC5B,CAIA,YAAOG,CAAMjK,EAAQ7H,GAEjB,OADe,IAAI4R,GAAQ5R,GACb8R,MAAMjK,EACxB,CAIA,kBAAOkK,CAAYlK,EAAQ7H,GAEvB,OADe,IAAI4R,GAAQ5R,GACb+R,YAAYlK,EAC9B,CAIA,KAAAiK,CAAMjK,EAAQwB,GAAM,GAChB,IAAIqI,EAAM,GACV,IAAK,IAAIjX,EAAI,EAAGA,EAAIoN,EAAO7V,OAAQyI,IAAK,CACpC,MAAMmN,EAAQC,EAAOpN,GAErB,GAAI9L,KAAKqR,QAAQkE,YAAcvV,KAAKqR,QAAQkE,WAAW8N,WAAarjB,KAAKqR,QAAQkE,WAAW8N,UAAUpK,EAAMxZ,MAAO,CAC/G,MAAM6jB,EAAerK,EACfsK,EAAMvjB,KAAKqR,QAAQkE,WAAW8N,UAAUC,EAAa7jB,MAAM2I,KAAK,CAAEob,OAAQxjB,MAAQsjB,GACxF,IAAY,IAARC,IAAkB,CAAC,QAAS,KAAM,UAAW,OAAQ,QAAS,aAAc,OAAQ,OAAQ,YAAa,QAAQrf,SAASof,EAAa7jB,MAAO,CAC9IsjB,GAAOQ,GAAO,GACd,QACJ,CACJ,CACA,OAAQtK,EAAMxZ,MACV,IAAK,QACD,SAEJ,IAAK,KACDsjB,GAAO/iB,KAAK2V,SAAS6E,KACrB,SAEJ,IAAK,UAAW,CACZ,MAAMiJ,EAAexK,EACrB8J,GAAO/iB,KAAK2V,SAAS0E,QAAQra,KAAKojB,YAAYK,EAAavK,QAASuK,EAAalJ,MAAgBva,KAAKojB,YAAYK,EAAavK,OAAQlZ,KAAKkjB,cAzuDhJrM,QAAQC,IAAc,CAACwK,EAAGnM,IAExB,WADVA,EAAIA,EAAEnC,eAEK,IACS,MAAhBmC,EAAEjI,OAAO,GACc,MAAhBiI,EAAEjI,OAAO,GACVxN,OAAOgkB,aAAaC,SAASxO,EAAExP,UAAU,GAAI,KAC7CjG,OAAOgkB,cAAcvO,EAAExP,UAAU,IAEpC,MAiuDK,QACJ,CACA,IAAK,OAAQ,CACT,MAAMie,EAAY3K,EAClB8J,GAAO/iB,KAAK2V,SAAS8D,KAAKmK,EAAU7K,KAAM6K,EAAU1J,OAAQ0J,EAAU7L,SACtE,QACJ,CACA,IAAK,QAAS,CACV,MAAM8L,EAAa5K,EACnB,IAAI8D,EAAS,GAET+G,EAAO,GACX,IAAK,IAAI5G,EAAI,EAAGA,EAAI2G,EAAW9G,OAAO1Z,OAAQ6Z,IAC1C4G,GAAQ9jB,KAAK2V,SAASiN,UAAU5iB,KAAKojB,YAAYS,EAAW9G,OAAOG,GAAGhE,QAAS,CAAE6D,QAAQ,EAAMC,MAAO6G,EAAW7G,MAAME,KAE3HH,GAAU/c,KAAK2V,SAASgN,SAASmB,GACjC,IAAItB,EAAO,GACX,IAAK,IAAItF,EAAI,EAAGA,EAAI2G,EAAW5G,KAAK5Z,OAAQ6Z,IAAK,CAC7C,MAAME,EAAMyG,EAAW5G,KAAKC,GAC5B4G,EAAO,GACP,IAAK,IAAI3G,EAAI,EAAGA,EAAIC,EAAI/Z,OAAQ8Z,IAC5B2G,GAAQ9jB,KAAK2V,SAASiN,UAAU5iB,KAAKojB,YAAYhG,EAAID,GAAGjE,QAAS,CAAE6D,QAAQ,EAAOC,MAAO6G,EAAW7G,MAAMG,KAE9GqF,GAAQxiB,KAAK2V,SAASgN,SAASmB,EACnC,CACAf,GAAO/iB,KAAK2V,SAASkH,MAAME,EAAQyF,GACnC,QACJ,CACA,IAAK,aAAc,CACf,MAAMuB,EAAkB9K,EAClBuJ,EAAOxiB,KAAKmjB,MAAMY,EAAgB7K,QACxC6J,GAAO/iB,KAAK2V,SAAS8E,WAAW+H,GAChC,QACJ,CACA,IAAK,OAAQ,CACT,MAAMwB,EAAY/K,EACZ8B,EAAUiJ,EAAUjJ,QACpBC,EAAQgJ,EAAUhJ,MAClBC,EAAQ+I,EAAU/I,MACxB,IAAIuH,EAAO,GACX,IAAK,IAAItF,EAAI,EAAGA,EAAI8G,EAAU9I,MAAM7X,OAAQ6Z,IAAK,CAC7C,MAAMJ,EAAOkH,EAAU9I,MAAMgC,GACvBZ,EAAUQ,EAAKR,QACfD,EAAOS,EAAKT,KAClB,IAAI4H,EAAW,GACf,GAAInH,EAAKT,KAAM,CACX,MAAMqG,EAAW1iB,KAAK2V,SAAS+M,WAAWpG,GACtCrB,EACI6B,EAAK5D,OAAO7V,OAAS,GAA6B,cAAxByZ,EAAK5D,OAAO,GAAGzZ,MACzCqd,EAAK5D,OAAO,GAAGH,KAAO2J,EAAW,IAAM5F,EAAK5D,OAAO,GAAGH,KAClD+D,EAAK5D,OAAO,GAAGA,QAAU4D,EAAK5D,OAAO,GAAGA,OAAO7V,OAAS,GAAuC,SAAlCyZ,EAAK5D,OAAO,GAAGA,OAAO,GAAGzZ,OACtFqd,EAAK5D,OAAO,GAAGA,OAAO,GAAGH,KAAO2J,EAAW,IAAM5F,EAAK5D,OAAO,GAAGA,OAAO,GAAGH,OAI9E+D,EAAK5D,OAAOgL,QAAQ,CAChBzkB,KAAM,OACNsZ,KAAM2J,EAAW,MAKzBuB,GAAYvB,EAAW,GAE/B,CACAuB,GAAYjkB,KAAKmjB,MAAMrG,EAAK5D,OAAQ+B,GACpCuH,GAAQxiB,KAAK2V,SAAS8M,SAASwB,EAAU5H,IAAQC,EACrD,CACAyG,GAAO/iB,KAAK2V,SAASiF,KAAK4H,EAAMzH,EAASC,GACzC,QACJ,CACA,IAAK,OAAQ,CACT,MAAMmJ,EAAYlL,EAClB8J,GAAO/iB,KAAK2V,SAASe,KAAKyN,EAAUpL,KAAMoL,EAAU5K,OACpD,QACJ,CACA,IAAK,YAAa,CACd,MAAM6K,EAAiBnL,EACvB8J,GAAO/iB,KAAK2V,SAAS2H,UAAUtd,KAAKojB,YAAYgB,EAAelL,SAC/D,QACJ,CACA,IAAK,OAAQ,CACT,IAAImL,EAAYpL,EACZuJ,EAAO6B,EAAUnL,OAASlZ,KAAKojB,YAAYiB,EAAUnL,QAAUmL,EAAUtL,KAC7E,KAAOjN,EAAI,EAAIoN,EAAO7V,QAAiC,SAAvB6V,EAAOpN,EAAI,GAAGrM,MAC1C4kB,EAAYnL,IAASpN,GACrB0W,GAAQ,MAAQ6B,EAAUnL,OAASlZ,KAAKojB,YAAYiB,EAAUnL,QAAUmL,EAAUtL,MAEtFgK,GAAOrI,EAAM1a,KAAK2V,SAAS2H,UAAUkF,GAAQA,EAC7C,QACJ,CACA,QAAS,CACL,MAAMR,EAAS,eAAiB/I,EAAMxZ,KAAO,wBAC7C,GAAIO,KAAKqR,QAAQuE,OAEb,OADA,GAAQ5Q,MAAMgd,GACP,GAGP,MAAM,IAAIjY,MAAMiY,EAExB,EAER,CACA,OAAOe,CACX,CAIA,WAAAK,CAAYlK,EAAQvD,GAChBA,EAAWA,GAAY3V,KAAK2V,SAC5B,IAAIoN,EAAM,GACV,IAAK,IAAIjX,EAAI,EAAGA,EAAIoN,EAAO7V,OAAQyI,IAAK,CACpC,MAAMmN,EAAQC,EAAOpN,GAErB,GAAI9L,KAAKqR,QAAQkE,YAAcvV,KAAKqR,QAAQkE,WAAW8N,WAAarjB,KAAKqR,QAAQkE,WAAW8N,UAAUpK,EAAMxZ,MAAO,CAC/G,MAAM8jB,EAAMvjB,KAAKqR,QAAQkE,WAAW8N,UAAUpK,EAAMxZ,MAAM2I,KAAK,CAAEob,OAAQxjB,MAAQiZ,GACjF,IAAY,IAARsK,IAAkB,CAAC,SAAU,OAAQ,OAAQ,QAAS,SAAU,KAAM,WAAY,KAAM,MAAO,QAAQrf,SAAS+U,EAAMxZ,MAAO,CAC7HsjB,GAAOQ,GAAO,GACd,QACJ,CACJ,CACA,OAAQtK,EAAMxZ,MACV,IAAK,SAAU,CACX,MAAM6kB,EAAcrL,EACpB8J,GAAOpN,EAASoD,KAAKuL,EAAYvL,MACjC,KACJ,CACA,IAAK,OAAQ,CACT,MAAMwL,EAAWtL,EACjB8J,GAAOpN,EAASe,KAAK6N,EAASxL,MAC9B,KACJ,CACA,IAAK,OAAQ,CACT,MAAMyL,EAAYvL,EAClB8J,GAAOpN,EAASiD,KAAK4L,EAAUnN,KAAMmN,EAAUhlB,MAAOQ,KAAKojB,YAAYoB,EAAUtL,OAAQvD,IACzF,KACJ,CACA,IAAK,QAAS,CACV,MAAM8O,EAAaxL,EACnB8J,GAAOpN,EAAS7F,MAAM2U,EAAWpN,KAAMoN,EAAWjlB,MAAOilB,EAAW1L,MACpE,KACJ,CACA,IAAK,SAAU,CACX,MAAM2L,EAAczL,EACpB8J,GAAOpN,EAAS8K,OAAOzgB,KAAKojB,YAAYsB,EAAYxL,OAAQvD,IAC5D,KACJ,CACA,IAAK,KAAM,CACP,MAAMgP,EAAU1L,EAChB8J,GAAOpN,EAASkL,GAAG7gB,KAAKojB,YAAYuB,EAAQzL,OAAQvD,IACpD,KACJ,CACA,IAAK,WAAY,CACb,MAAMiP,EAAgB3L,EACtB8J,GAAOpN,EAASoJ,SAAS6F,EAAc7L,MACvC,KACJ,CACA,IAAK,KACDgK,GAAOpN,EAASuJ,KAChB,MAEJ,IAAK,MAAO,CACR,MAAM2F,EAAW5L,EACjB8J,GAAOpN,EAASwJ,IAAInf,KAAKojB,YAAYyB,EAAS3L,OAAQvD,IACtD,KACJ,CACA,IAAK,OAAQ,CACT,MAAM0O,EAAYpL,EAClB8J,GAAOpN,EAASoD,KAAKsL,EAAUtL,MAC/B,KACJ,CACA,QAAS,CACL,MAAMiJ,EAAS,eAAiB/I,EAAMxZ,KAAO,wBAC7C,GAAIO,KAAKqR,QAAQuE,OAEb,OADA,GAAQ5Q,MAAMgd,GACP,GAGP,MAAM,IAAIjY,MAAMiY,EAExB,EAER,CACA,OAAOe,CACX,EAGJ,MAAM+B,GACFzT,QACA,WAAAjF,CAAYiF,GACRrR,KAAKqR,QAAUA,GAAWgE,EAC9B,CACA0P,wBAA0B,IAAIC,IAAI,CAC9B,aACA,gBAKJ,UAAAC,CAAWC,GACP,OAAOA,CACX,CAIA,WAAAC,CAAYzO,GACR,OAAOA,CACX,EAwRJ,MAAM0O,GAAiB,IArRvB,MACIC,SA9+DO,CACH5Y,OAAO,EACP6I,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,MAAO,KACPC,UAAU,EACVC,SAAU,KACVC,QAAQ,EACRC,UAAW,KACXC,WAAY,MAq+DhBzE,QAAUrR,KAAKslB,WACfnC,MAAQnjB,MAAK,EAAe+gB,GAAOE,IAAKgC,GAAQE,OAChDC,YAAcpjB,MAAK,EAAe+gB,GAAOG,UAAW+B,GAAQG,aAC5DmC,OAAStC,GACTO,OAASP,GAAQE,MACjBqC,SAAWnD,GACXoD,aAAezC,GACf0C,MAAQ3E,GACRjI,MAAQiI,GAAOE,IACf0E,UAAYvM,GACZwM,MAAQd,GACR,WAAA1Y,IAAeyE,GACX7Q,KAAK6lB,OAAOhV,EAChB,CAIA,UAAAiF,CAAWoD,EAAQ4M,GACf,IAAIld,EAAS,GACb,IAAK,MAAMqQ,KAASC,EAEhB,OADAtQ,EAASA,EAAOtE,OAAOwhB,EAAS1d,KAAKpI,KAAMiZ,IACnCA,EAAMxZ,MACV,IAAK,QAAS,CACV,MAAMokB,EAAa5K,EACnB,IAAK,MAAM6K,KAAQD,EAAW9G,OAC1BnU,EAASA,EAAOtE,OAAOtE,KAAK8V,WAAWgO,EAAK5K,OAAQ4M,IAExD,IAAK,MAAM1I,KAAOyG,EAAW5G,KACzB,IAAK,MAAM6G,KAAQ1G,EACfxU,EAASA,EAAOtE,OAAOtE,KAAK8V,WAAWgO,EAAK5K,OAAQ4M,IAG5D,KACJ,CACA,IAAK,OAAQ,CACT,MAAM9B,EAAY/K,EAClBrQ,EAASA,EAAOtE,OAAOtE,KAAK8V,WAAWkO,EAAU9I,MAAO4K,IACxD,KACJ,CACA,QAAS,CACL,MAAMxC,EAAerK,EACjBjZ,KAAKqlB,SAAS9P,YAAYwQ,cAAczC,EAAa7jB,MACrDO,KAAKqlB,SAAS9P,WAAWwQ,YAAYzC,EAAa7jB,MAAMsJ,SAASgd,IAC7Dnd,EAASA,EAAOtE,OAAOtE,KAAK8V,WAAWwN,EAAayC,GAAcD,GAAU,IAG3ExC,EAAapK,SAClBtQ,EAASA,EAAOtE,OAAOtE,KAAK8V,WAAWwN,EAAapK,OAAQ4M,IAEpE,EAGR,OAAOld,CACX,CACA,GAAAid,IAAOhV,GACH,MAAM0E,EAAavV,KAAKqlB,SAAS9P,YAAc,CAAE8N,UAAW,CAAC,EAAG0C,YAAa,CAAC,GAgJ9E,OA/IAlV,EAAK9H,SAASid,IAEV,MAAMC,EAAO,IAAKD,GA8DlB,GA5DAC,EAAKxZ,MAAQzM,KAAKqlB,SAAS5Y,OAASwZ,EAAKxZ,QAAS,EAE9CuZ,EAAKzQ,aACLyQ,EAAKzQ,WAAWxM,SAASmd,IACrB,IAAKA,EAAI7mB,KACL,MAAM,IAAI0K,MAAM,2BAEpB,GAAI,aAAcmc,EAAK,CACnB,MAAMC,EAAe5Q,EAAW8N,UAAU6C,EAAI7mB,MAG1CkW,EAAW8N,UAAU6C,EAAI7mB,MAFzB8mB,EAEiC,YAAatV,GAC1C,IAAI0S,EAAM2C,EAAIvQ,SAAS5E,MAAM/Q,KAAM6Q,GAInC,OAHY,IAAR0S,IACAA,EAAM4C,EAAapV,MAAM/Q,KAAM6Q,IAE5B0S,CACX,EAGiC2C,EAAIvQ,QAE7C,CACA,GAAI,cAAeuQ,EAAK,CACpB,IAAKA,EAAIhU,OAAwB,UAAdgU,EAAIhU,OAAmC,WAAdgU,EAAIhU,MAC5C,MAAM,IAAInI,MAAM,+CAEpB,MAAMqc,EAAW7Q,EAAW2Q,EAAIhU,OAC5BkU,EACAA,EAASlC,QAAQgC,EAAIrQ,WAGrBN,EAAW2Q,EAAIhU,OAAS,CAACgU,EAAIrQ,WAE7BqQ,EAAIlL,QACc,UAAdkL,EAAIhU,MACAqD,EAAWmM,WACXnM,EAAWmM,WAAWxiB,KAAKgnB,EAAIlL,OAG/BzF,EAAWmM,WAAa,CAACwE,EAAIlL,OAGd,WAAdkL,EAAIhU,QACLqD,EAAW6M,YACX7M,EAAW6M,YAAYljB,KAAKgnB,EAAIlL,OAGhCzF,EAAW6M,YAAc,CAAC8D,EAAIlL,QAI9C,CACI,gBAAiBkL,GAAOA,EAAIH,cAC5BxQ,EAAWwQ,YAAYG,EAAI7mB,MAAQ6mB,EAAIH,YAC3C,IAEJE,EAAK1Q,WAAaA,GAGlByQ,EAAKrQ,SAAU,CACf,MAAMA,EAAW3V,KAAKqlB,SAAS1P,UAAY,IAAI0M,GAAUriB,KAAKqlB,UAC9D,IAAK,MAAMgB,KAAQL,EAAKrQ,SAAU,CAC9B,MAAM2Q,EAAeN,EAAKrQ,SAAS0Q,GAC7BE,EAAcF,EACdF,EAAexQ,EAAS4Q,GAE9B5Q,EAAS4Q,GAAe,IAAI1V,KACxB,IAAI0S,EAAM+C,EAAavV,MAAM4E,EAAU9E,GAIvC,OAHY,IAAR0S,IACAA,EAAM4C,EAAapV,MAAM4E,EAAU9E,IAEhC0S,GAAO,EAAE,CAExB,CACA0C,EAAKtQ,SAAWA,CACpB,CACA,GAAIqQ,EAAKnQ,UAAW,CAChB,MAAMA,EAAY7V,KAAKqlB,SAASxP,WAAa,IAAIuD,GAAWpZ,KAAKqlB,UACjE,IAAK,MAAMgB,KAAQL,EAAKnQ,UAAW,CAC/B,MAAM2Q,EAAgBR,EAAKnQ,UAAUwQ,GAC/BI,EAAeJ,EACfK,EAAgB7Q,EAAU4Q,GAEhC5Q,EAAU4Q,GAAgB,IAAI5V,KAC1B,IAAI0S,EAAMiD,EAAczV,MAAM8E,EAAWhF,GAIzC,OAHY,IAAR0S,IACAA,EAAMmD,EAAc3V,MAAM8E,EAAWhF,IAElC0S,CAAG,CAElB,CACA0C,EAAKpQ,UAAYA,CACrB,CAEA,GAAImQ,EAAKvQ,MAAO,CACZ,MAAMA,EAAQzV,KAAKqlB,SAAS5P,OAAS,IAAIqP,GACzC,IAAK,MAAMuB,KAAQL,EAAKvQ,MAAO,CAC3B,MAAMkR,EAAYX,EAAKvQ,MAAM4Q,GACvBO,EAAWP,EACXQ,EAAWpR,EAAMmR,GACnB9B,GAAOgC,iBAAiBC,IAAIV,GAC5B5Q,EAAMmR,GAAaze,IACf,GAAInI,KAAKqlB,SAAS5Y,MACd,OAAOC,QAAQrD,QAAQsd,EAAUve,KAAKqN,EAAOtN,IAAM5G,MAAKgiB,GAC7CsD,EAASze,KAAKqN,EAAO8N,KAGpC,MAAMA,EAAMoD,EAAUve,KAAKqN,EAAOtN,GAClC,OAAO0e,EAASze,KAAKqN,EAAO8N,EAAI,EAIpC9N,EAAMmR,GAAY,IAAI/V,KAClB,IAAI0S,EAAMoD,EAAU5V,MAAM0E,EAAO5E,GAIjC,OAHY,IAAR0S,IACAA,EAAMsD,EAAS9V,MAAM0E,EAAO5E,IAEzB0S,CAAG,CAGtB,CACA0C,EAAKxQ,MAAQA,CACjB,CAEA,GAAIuQ,EAAKlQ,WAAY,CACjB,MAAMA,EAAa9V,KAAKqlB,SAASvP,WAC3BkR,EAAiBhB,EAAKlQ,WAC5BmQ,EAAKnQ,WAAa,SAAUmD,GACxB,IAAIrQ,EAAS,GAKb,OAJAA,EAAO1J,KAAK8nB,EAAe5e,KAAKpI,KAAMiZ,IAClCnD,IACAlN,EAASA,EAAOtE,OAAOwR,EAAW1N,KAAKpI,KAAMiZ,KAE1CrQ,CACX,CACJ,CACA5I,KAAKqlB,SAAW,IAAKrlB,KAAKqlB,YAAaY,EAAM,IAE1CjmB,IACX,CACA,UAAAslB,CAAWpO,GAEP,OADAlX,KAAKqlB,SAAW,IAAKrlB,KAAKqlB,YAAanO,GAChClX,IACX,CACA,GAAe8Y,EAAO0K,GAClB,MAAO,CAACtT,EAAKmB,KACT,MAAM4V,EAAU,IAAK5V,GACf6F,EAAM,IAAKlX,KAAKqlB,YAAa4B,IAEP,IAAxBjnB,KAAKqlB,SAAS5Y,QAAoC,IAAlBwa,EAAQxa,QACnCyK,EAAItB,QACL,GAAQsR,KAAK,sHAEjBhQ,EAAIzK,OAAQ,GAEhB,MAAM0a,EAAannB,MAAK,IAAWkX,EAAItB,SAAUsB,EAAIzK,OAErD,GAAI,MAAOyD,EACP,OAAOiX,EAAW,IAAIpd,MAAM,mDAEhC,GAAmB,iBAARmG,EACP,OAAOiX,EAAW,IAAIpd,MAAM,wCACtBhE,OAAOC,UAAUN,SAAS0C,KAAK8H,GAAO,sBAKhD,GAHIgH,EAAIzB,QACJyB,EAAIzB,MAAMpE,QAAU6F,GAEpBA,EAAIzK,MACJ,OAAOC,QAAQrD,QAAQ6N,EAAIzB,MAAQyB,EAAIzB,MAAMwP,WAAW/U,GAAOA,GAC1D3O,MAAK2O,GAAO4I,EAAM5I,EAAKgH,KACvB3V,MAAK2X,GAAUhC,EAAIpB,WAAapJ,QAAQ0a,IAAIpnB,KAAK8V,WAAWoD,EAAQhC,EAAIpB,aAAavU,MAAK,IAAM2X,IAAUA,IAC1G3X,MAAK2X,GAAUsK,EAAOtK,EAAQhC,KAC9B3V,MAAKmV,GAAQQ,EAAIzB,MAAQyB,EAAIzB,MAAM0P,YAAYzO,GAAQA,IACvD3R,MAAMoiB,GAEf,IACQjQ,EAAIzB,QACJvF,EAAMgH,EAAIzB,MAAMwP,WAAW/U,IAE/B,MAAMgJ,EAASJ,EAAM5I,EAAKgH,GACtBA,EAAIpB,YACJ9V,KAAK8V,WAAWoD,EAAQhC,EAAIpB,YAEhC,IAAIY,EAAO8M,EAAOtK,EAAQhC,GAI1B,OAHIA,EAAIzB,QACJiB,EAAOQ,EAAIzB,MAAM0P,YAAYzO,IAE1BA,CACX,CACA,MAAOzG,GACH,OAAOkX,EAAWlX,EACtB,EAER,CACA,GAAS2F,EAAQnJ,GACb,OAAQwD,IAEJ,GADAA,EAAEoX,SAAW,8DACTzR,EAAQ,CACR,MAAM0R,EAAM,iCACN,GAAOrX,EAAEoX,QAAU,IAAI,GACvB,SACN,OAAI5a,EACOC,QAAQrD,QAAQie,GAEpBA,CACX,CACA,GAAI7a,EACA,OAAOC,QAAQpD,OAAO2G,GAE1B,MAAMA,CAAC,CAEf,GAIJ,SAASsX,GAAOrX,EAAKgH,GACjB,OAAOkO,GAAejC,MAAMjT,EAAKgH,EACrC,CAMAqQ,GAAOlW,QACHkW,GAAOjC,WAAa,SAAUjU,GAI1B,OAHA+T,GAAeE,WAAWjU,GAC1BkW,GAAOlC,SAAWD,GAAeC,SACjCtP,GAAewR,GAAOlC,UACfkC,EACX,EAIJA,GAAOC,YAtxEP,WACI,MAAO,CACH/a,OAAO,EACP6I,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,MAAO,KACPC,UAAU,EACVC,SAAU,KACVC,QAAQ,EACRC,UAAW,KACXC,WAAY,KAEpB,EA0wEAyR,GAAOlC,SAAWhQ,GAIlBkS,GAAO1B,IAAM,YAAahV,GAItB,OAHAuU,GAAeS,OAAOhV,GACtB0W,GAAOlC,SAAWD,GAAeC,SACjCtP,GAAewR,GAAOlC,UACfkC,EACX,EAIAA,GAAOzR,WAAa,SAAUoD,EAAQ4M,GAClC,OAAOV,GAAetP,WAAWoD,EAAQ4M,EAC7C,EAQAyB,GAAOnE,YAAcgC,GAAehC,YAIpCmE,GAAOhC,OAAStC,GAChBsE,GAAO/D,OAASP,GAAQE,MACxBoE,GAAO/B,SAAWnD,GAClBkF,GAAO9B,aAAezC,GACtBuE,GAAO7B,MAAQ3E,GACfwG,GAAOzO,MAAQiI,GAAOE,IACtBsG,GAAO5B,UAAYvM,GACnBmO,GAAO3B,MAAQd,GACfyC,GAAOpE,MAAQoE,GACCA,GAAOlW,QACJkW,GAAOjC,WACdiC,GAAO1B,IACA0B,GAAOzR,WACNyR,GAAOnE,uCC70E0J,GC8BrL,CACA/jB,KAAA,WACAE,MAAA,CACAwZ,KAAA,CACAtZ,KAAAC,OACAE,QAAA,KAGAiB,SAAA,CACA4mB,eAAA,WACA,IAAA9R,EAAA,IAAA4R,GAAA/B,SA+BA,OA9BA7P,EAAAiD,KAAA,SAAAvB,EAAA7X,EAAAuZ,GACA,IAAA2O,EACA,IACAA,EAAAC,mBAAAC,SAAAvQ,IACAR,QAAA,cACA7D,aACA,OAAA/C,GACA,QACA,CAEA,OAAAyX,EAAAhjB,QAAA,cAAAgjB,EAAAhjB,QAAA,UACA,SAGA,IAAAqe,EAAA,YAAA1L,EAAA,8BAKA,OAJA7X,IACAujB,GAAA,WAAAvjB,EAAA,KAEAujB,EAAA,IAAAhK,EAAA,MAEA,EACApD,EAAA7F,MAAA,SAAAuH,EAAA7X,EAAAuZ,GACA,OAAAA,GAGAvZ,CACA,EACAmW,EAAA8E,WAAA,SAAA8H,GACA,OAAAA,CACA,EACAsF,KAAAA,SACAN,GAAA,KAAAxO,KAAAb,OAAA,CACAvC,SAAAA,EACAH,KAAA,EACAsS,WAAA,EACAC,QAAA,EACAzS,QAAA,EACAI,UAAA,EACAsS,UAAA,EACAC,YAAA,EACAC,aAAA,IAEA,CACAC,iBAAA,EACAC,aAAA,CACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,eAIA,gBC7FI,GAAU,CAAC,EAEf,GAAQ9W,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAL1D,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAI5R,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,MAAM,CAACG,YAAY,oBAAoBioB,SAAS,CAAC,UAAYtoB,EAAIY,GAAGZ,EAAI0nB,kBAC9I,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnBuJ,GC2JvL,CACApoB,KAAA,aAEAiP,WAAA,CACAga,SAAAA,GAAAA,EACAC,SAAAA,IAEA9Z,OAAA,CAAAC,EAAA+D,GAEAlT,MAAA,CACA4C,IAAA,CACA1C,KAAAsG,OACAyiB,UAAA,IAIA/mB,KAAA,WACA,OACA0B,sBAAA,EAEA,EAEAtC,SAAA,CACA4nB,YAAA,WACA,yCAAAnkB,OAAA,KAAAnC,IAAA/C,GACA,EACAspB,QAAA,WACA,YAAAvmB,IAAAumB,QACA5lB,EAAA,iCAAA6lB,SAAA,QAAAxmB,IAAAumB,SAAAE,gBAEA,IACA,EACAC,OAAA,WACA,4BAAA1mB,IAAA0mB,OACA,CACA,CACA,cAAA1mB,IAAA0mB,SAIA,KAAA1mB,IAAA0mB,OAAA,UACA,MAAA1mB,IAAA0mB,QAEA,KAAA1mB,IAAA0mB,MACA,EACA3mB,UAAA,WACA,YAAAC,IAAAC,OAAAC,KAAA,SAAAC,GAAA,OAAAlD,GAAAkD,EAAAjD,KAAAiD,EAAA,GACA,EACAF,OAAA,WACA,YAAAI,OAAAC,QAAAqmB,UACAnW,QAAA,SAAArQ,GAAA,mBAAAA,EAAAlD,EAAA,IACA6T,MAAA,SAAAC,EAAAC,GAAA,OAAAD,EAAA7T,KAAA0pB,cAAA5V,EAAA9T,KAAA,GACA,GAEA+D,QAAA,WACA,KAAAjB,IAAAC,OAAAiB,OAAA,IACA,KAAAF,sBAAA,EAEA,eC1MI,GAAU,CAAC,EAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAL1D,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAI5R,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,MAAM,CAACG,YAAY,wBAAwB,CAAEL,EAAIoC,IAAIkQ,QAAUtS,EAAIiE,iBAAiBjE,EAAIoC,KAAMlC,EAAG,MAAM,CAACG,YAAY,+BAA+B,CAACH,EAAG,QAAQ,CAAC+oB,WAAW,CAAC,CAAC3pB,KAAK,QAAQ4pB,QAAQ,UAAU1iB,MAAOxG,EAAIoD,qBAAsB+lB,WAAW,yBAAyB9oB,YAAY,mCAAmCC,MAAM,CAAC,GAAKN,EAAIiR,OAAO,gBAAiBjR,EAAIoC,IAAI/C,IAAI,KAAO,YAAYipB,SAAS,CAAC,MAAQtoB,EAAIoC,IAAI/C,GAAG,QAAU+pB,MAAMC,QAAQrpB,EAAIoD,sBAAsBpD,EAAIspB,GAAGtpB,EAAIoD,qBAAqBpD,EAAIoC,IAAI/C,KAAK,EAAGW,EAAIoD,sBAAuB7C,GAAG,CAAC,OAAS,CAAC,SAASC,GAAQ,IAAI+oB,EAAIvpB,EAAIoD,qBAAqBomB,EAAKhpB,EAAOipB,OAAOC,IAAIF,EAAKjN,QAAuB,GAAG6M,MAAMC,QAAQE,GAAK,CAAC,IAAII,EAAI3pB,EAAIoC,IAAI/C,GAAGuqB,EAAI5pB,EAAIspB,GAAGC,EAAII,GAAQH,EAAKjN,QAASqN,EAAI,IAAI5pB,EAAIoD,qBAAqBmmB,EAAIhlB,OAAO,CAAColB,KAAYC,GAAK,IAAI5pB,EAAIoD,qBAAqBmmB,EAAInc,MAAM,EAAEwc,GAAKrlB,OAAOglB,EAAInc,MAAMwc,EAAI,IAAK,MAAM5pB,EAAIoD,qBAAqBsmB,CAAI,EAAE1pB,EAAI+D,kBAAkB/D,EAAIW,GAAG,KAAKT,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMN,EAAIiR,OAAO,gBAAiBjR,EAAIoC,IAAI/C,MAAM,CAACW,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,uBAAuB/C,EAAIW,GAAG,KAAKT,EAAG,QAAQ,CAACG,YAAY,eAAeC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAI+C,EAAE,WAAY,OAAO,MAAQ,MAAM/C,EAAIW,GAAG,KAAKT,EAAG,MAAMF,EAAIW,GAAG,KAAKT,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,kBAAkB,CAACJ,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,mCAAmC/C,EAAIW,GAAG,KAAMX,EAAI8D,kBAAkB9D,EAAIoC,KAAMlC,EAAG,WAAW,CAACI,MAAM,CAAC,WAAW,gBAAgB,QAAUN,EAAIqC,OAAO,MAAQrC,EAAImC,UAAU,MAAQ,EAAE,MAAQ,OAAO,UAAW,EAAK,mBAAkB,GAAO5B,GAAG,CAAC,kBAAkBP,EAAIoE,mBAAmB,oBAAoBpE,EAAIwE,sBAAsB,OAASxE,EAAIwD,iBAAiB,CAACtD,EAAG,OAAO,CAACI,MAAM,CAAC,KAAO,YAAYupB,KAAK,YAAY,CAAC7pB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,oBAAoB/C,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,+BAA+B,CAAEL,EAAIoC,IAAImD,OAAQrF,EAAG,QAAQ,CAACG,YAAY,iBAAiBC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAI+C,EAAE,WAAY,sBAAuB,CAAEmP,QAASlS,EAAIoC,IAAImD,SAAU,SAAWvF,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIuF,OAAOvF,EAAIoC,IAAI/C,GAAG,KAAKW,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIiQ,aAAcnS,EAAG,QAAQ,CAACG,YAAY,YAAYC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAI+C,EAAE,WAAY,UAAU,SAAW/C,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIqF,OAAOrF,EAAIoC,IAAI/C,GAAG,KAAKW,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIkQ,OAAQpS,EAAG,QAAQ,CAACG,YAAY,SAASC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAI+C,EAAE,WAAW,WAAW,SAAW/C,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIoF,QAAQpF,EAAIoC,IAAI/C,GAAG,KAAKW,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIoC,IAAIkQ,SAAWtS,EAAIoC,IAAImQ,aAAcvS,EAAIoC,IAAIoQ,aAAqTxS,EAAIoC,IAAIkQ,QAAWtS,EAAIoC,IAAImQ,WAA2SvS,EAAIa,KAAnSX,EAAG,QAAQ,CAACG,YAAY,eAAeC,MAAM,CAAC,MAAQN,EAAIkD,yBAAyB,aAAalD,EAAIkD,yBAAyB,KAAO,SAAS,MAAQlD,EAAIgD,sBAAsB,SAAWhD,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAI6E,YAAY7E,EAAIoC,IAAI/C,GAAG,KAAvmBa,EAAG,QAAQ,CAACG,YAAY,iBAAiBC,MAAM,CAAC,MAAQN,EAAIiD,oBAAoB,aAAajD,EAAIiD,oBAAoB,KAAO,SAAS,MAAQjD,EAAI6C,iBAAiB,UAAY7C,EAAIoC,IAAImQ,YAAcvS,EAAIwC,YAAcxC,EAAI4C,WAAWrC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAImF,OAAOnF,EAAIoC,IAAI/C,GAAG,SAA0VW,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,6BAA6B,CAAEL,EAAIoC,IAAI0nB,0BAA2B5pB,EAAG,KAAK,CAACF,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,6FAA6F,YAAY/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAI2nB,0BAA2B7pB,EAAG,KAAK,CAACF,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,6FAA6F,YAAY/C,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIoC,IAAImQ,WAA8VvS,EAAIa,KAAtVX,EAAG,KAAK,CAACF,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,uFAAuF,YAAY7C,EAAG,KAAK,CAACG,YAAY,wBAAwBL,EAAIqV,GAAIrV,EAAIoC,IAAI4nB,qBAAqB,SAASC,EAAIvlB,GAAO,OAAOxE,EAAG,KAAK,CAACoG,IAAI5B,GAAO,CAAC1E,EAAIW,GAAG,eAAeX,EAAIY,GAAGqpB,GAAK,eAAe,IAAG,OAAgBjqB,EAAIW,GAAG,KAAKT,EAAG,IAAI,CAACG,YAAY,8BAA8B,CAAGL,EAAIoC,IAAI8nB,SAAkLlqB,EAAIa,KAA5KX,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAI0oB,YAAY,OAAS,SAAS,IAAM,wBAAwB,CAAC1oB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,kBAAkB,QAAiB/C,EAAIW,GAAG,KAAMX,EAAIoC,IAAI+nB,QAASjqB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIoC,IAAI+nB,QAAQ,OAAS,SAAS,IAAM,wBAAwB,CAACnqB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,kBAAkB,QAAQ/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIgoB,KAAMlqB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIoC,IAAIgoB,KAAK,OAAS,SAAS,IAAM,wBAAwB,CAACpqB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,iBAAiB,QAAQ/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIioB,eAAiBrqB,EAAIoC,IAAIioB,cAAcC,KAAMpqB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIoC,IAAIioB,cAAcC,KAAK,OAAS,SAAS,IAAM,wBAAwB,CAACtqB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,uBAAuB,QAAQ/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIioB,eAAiBrqB,EAAIoC,IAAIioB,cAAcE,MAAOrqB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIoC,IAAIioB,cAAcE,MAAM,OAAS,SAAS,IAAM,wBAAwB,CAACvqB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,wBAAwB,QAAQ/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIoC,IAAIioB,eAAiBrqB,EAAIoC,IAAIioB,cAAcG,UAAWtqB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIoC,IAAIioB,cAAcG,UAAU,OAAS,SAAS,IAAM,wBAAwB,CAACxqB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,4BAA4B,QAAQ/C,EAAIa,OAAOb,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACG,YAAY,2BAA2BC,MAAM,CAAC,KAAON,EAAIoC,IAAIqoB,gBAAgB,EAC/uL,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,oBEoJhCC,EAAAA,QAAA5E,IAAA6E,KAEA,ICzKiL,GDyKjL,CACArrB,KAAA,OACAsrB,kBAAAA,GAAAA,EACArc,WAAA,CACAsc,aAAAA,EAAAA,EACAC,WAAAA,GACAC,QAAAA,GACAC,iBAAAA,EACAC,gBAAAA,EAAAA,EACAC,oBAAAA,EAAAA,EACAC,sBAAAA,EAAAA,EACAC,gBAAAA,EAAAA,EACA5c,SAAAA,EACA6c,aAAAA,EAAAA,EACAC,gBAAAA,EAAAA,EACAC,UAAAA,EAAAA,EACA/C,SAAAA,IAGA9Z,OAAA,CAAAC,GAEAnP,MAAA,CACAqP,SAAA,CACAnP,KAAAC,OACAE,QAAA,aAEAR,GAAA,CACAK,KAAAC,OACAE,QAAA,KAIA6B,KAAA,WACA,OACA8pB,YAAA,GACApc,kBAAA,EAEA,EAEAtO,SAAA,CACA6B,QAAA,WACA,YAAAF,OAAAC,QAAAC,QAAA,aACA,EACA8oB,YAAA,WACA,YAAAhpB,OAAAC,QAAAC,QAAA,OACA,EACAP,IAAA,eAAAsN,EAAA,KACA,YAAA3N,KAAAoS,MAAA,SAAA/R,GAAA,OAAAA,EAAA/C,KAAAqQ,EAAArQ,EAAA,GACA,EACAqsB,WAAA,WACA,YAAAjpB,OAAAC,QAAAipB,aACA,EACA5pB,KAAA,WACA,YAAAU,OAAAC,QAAAsQ,UACA,EACA4Y,YAAA,WACA,YAAAnpB,OAAAC,QAAAmpB,cACA,EACAC,SAAA,WACA,YAAArpB,OAAAC,QAAAmR,aACA,EAEAxE,UAAA,WACA,YAAAjN,IAAAkN,cAAA,KAAAlN,IAAAkN,aAAAC,iBAAA,CACA,EAGAwc,WAAA,WACA,IAAAC,EAAA,SAAAC,GACA,OAAAA,EAAA,UAEAA,EAAA,UAIAA,CACA,EAEAnD,EAAAM,MAAAC,QAAA,KAAAjnB,IAAA0mB,QACA,KAAA1mB,IAAA0mB,OAAAxmB,IAAA0pB,GAAA3a,KAAA,MACA2a,EAAA,KAAA5pB,IAAA0mB,QACAF,EAAA7lB,EAAA,iCAAA6lB,SAAA,QAAAxmB,IAAAumB,SAAAE,gBAEAqD,EAAAnpB,EAAA,qCAAA+lB,OAAAA,EAAAF,QAAAA,IAEA,OACAuD,WAAA,KAAA/pB,IAAA0N,YAAA,KAAAV,iBACA,KAAAhN,IAAA0N,WACA,KAAA1N,IAAA4P,QACAoa,UAAA,KAAAhqB,IAAA0N,YAAA,KAAAV,kBACA9P,KAAA,KAAA8C,IAAA9C,KACA4sB,QAAAA,EAEA,EACAG,UAAA,WACA,gBAAAC,GAAA,OAAAA,EAAAC,aAAAC,GAAAH,SAAA,CACA,EAIAI,aAAA,WAEA,YAAA1qB,KAAA4a,MAAA,SAAAva,GAAA,aAAAA,EAAA+P,KAAA,GACA,GAGA1C,MAAA,CACAZ,SAAA,WACA,KAAA2c,YAAA,EACA,EAEAppB,IAAA,eAAAsqB,EAAAC,EAAApc,EAAA,KAEA,GADA,KAAAnB,kBAAA,EACA,QAAAsd,EAAA,KAAAtqB,WAAA,IAAAsqB,GAAAA,EAAA7c,UAAA,QAAA8c,EAAA,KAAAvqB,WAAA,IAAAuqB,GAAAA,EAAA7c,WAAA,CACA,IAAAC,EAAA,IAAAC,MACAD,EAAAE,OAAA,SAAAC,GACAK,EAAAnB,kBAAA,CACA,EACAW,EAAAI,IAAA,KAAA/N,IAAA0N,UACA,CACA,GAGA8c,YAAA,WACA,KAAAnqB,OAAAiB,SAAA,iBAAAmpB,yBAAA,IACA,KAAApqB,OAAAiB,SAAA,cACA,KAAAjB,OAAAiB,SAAA,aAAAG,OAAA,EAAAD,MAAA,IACA,KAAAnB,OAAAqqB,OAAA,sBAAArqB,OAAAC,QAAAmR,cAAA+X,YACA,EAEAvoB,QAAA,YACA0pB,EAAAA,EAAAA,IAAA,uCAAAC,YACAD,EAAAA,EAAAA,IAAA,sCAAAE,YACA,EACAC,cAAA,YACAC,EAAAA,EAAAA,IAAA,uCAAAH,YACAG,EAAAA,EAAAA,IAAA,sCAAAF,YACA,EAEA1pB,QAAA,CACAypB,UAAA,SAAAvrB,GAAA,IAAAgC,EAAAhC,EAAAgC,MACA,KAAA+nB,YAAA/nB,CACA,EACAwpB,YAAA,WACA,KAAAzB,YAAA,EACA,EAEA4B,eAAA,WACA,KAAAxc,QAAAzR,KAAA,CACAG,KAAA,gBACAsQ,OAAA,CAAAf,SAAA,KAAAA,WAEA,EACAwe,2BAAA,WACArrB,OAAAsrB,KAAA,KAAAxB,SAAAyB,uBACA,gBEzTI,GAAU,CAAC,EAEf,GAAQhc,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAL1D,ICFA,IAXgB,OACd,IxCTW,WAAkB,IAAI5R,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAAC4R,MAAM,CAAE,mBAAoB9R,EAAIoC,KAAK9B,MAAM,CAAC,WAAW,WAAW,gBAAgB,CAAE,eAAgBN,EAAIyrB,aAAc,mBAAmB,CAAE,eAAgBzrB,EAAI2C,WAAY,CAACzC,EAAG,kBAAkB,CAACstB,YAAYxtB,EAAIytB,GAAG,CAAC,CAACnnB,IAAI,OAAO6B,GAAG,WAAW,MAAO,CAACjI,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,yBAAyB,GAAK,CAAEhB,KAAM,QAAS,OAAQ,EAAK,KAAO,0BAA0B,KAAOU,EAAI+C,EAAE,WAAY,gBAAgB/C,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,uBAAuB,GAAK,CAAEhB,KAAM,gBAAiBsQ,OAAQ,CAAEf,SAAU,YAAc,KAAO,wBAAwB,KAAO7O,EAAI0tB,SAAS9C,kBAAkB+C,WAAW3tB,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,wBAAwB,GAAK,CAAEhB,KAAM,gBAAiBsQ,OAAQ,CAAEf,SAAU,aAAe,KAAO,yBAAyB,KAAO7O,EAAI0tB,SAAS9C,kBAAkBgD,YAAY5tB,EAAIW,GAAG,KAAMX,EAAI4rB,YAAc,EAAG1rB,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,uBAAuB,GAAK,CAAEhB,KAAM,gBAAiBsQ,OAAQ,CAAEf,SAAU,YAAc,KAAO,gBAAgB,KAAO7O,EAAI0tB,SAAS9C,kBAAkBiD,SAASL,YAAYxtB,EAAIytB,GAAG,CAAC,CAACnnB,IAAI,UAAU6B,GAAG,WAAW,MAAO,CAACjI,EAAG,kBAAkB,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAI4rB,gBAAgB,EAAEkC,OAAM,IAAO,MAAK,EAAM,YAAY9tB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIysB,aAAcvsB,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,yBAAyB,GAAK,CAAEhB,KAAM,gBAAiBsQ,OAAQ,CAAEf,SAAU,cAAgB,KAAO7O,EAAI0tB,SAAS9C,kBAAkBmD,WAAWP,YAAYxtB,EAAIytB,GAAG,CAAC,CAACnnB,IAAI,OAAO6B,GAAG,WAAW,MAAO,CAACjI,EAAG,mBAAmB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAEwtB,OAAM,IAAO,MAAK,EAAM,aAAa9tB,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,4BAA4B,GAAK,CAAEhB,KAAM,gBAAiBsQ,OAAQ,CAAEf,SAAU,gBAAkB,KAAO,4BAA4B,KAAO7O,EAAI0tB,SAAS9C,kBAAkB,kBAAkB5qB,EAAIW,GAAG,KAAKT,EAAG,yBAAyBF,EAAIW,GAAG,KAAMX,EAAI8rB,SAASkC,gBAAiB,CAAC9tB,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,wBAAwB,GAAK,CAAEhB,KAAM,gBAAiBsQ,OAAQ,CAAEf,SAAU,aAAe,KAAO,gBAAgB,KAAO7O,EAAI0tB,SAAS9C,kBAAkBqD,YAAYjuB,EAAIW,GAAG,KAAKX,EAAIqV,GAAIrV,EAAI0rB,YAAY,SAASwC,GAAK,OAAOhuB,EAAG,sBAAsB,CAACoG,IAAI,iBAAmB4nB,EAAIC,MAAM7tB,MAAM,CAAC,KAAO,iBAAmB4tB,EAAIC,MAAM,GAAK,CAC3zE7uB,KAAM,gBACNsQ,OAAQ,CAAEf,SAAUqf,EAAIC,QACvB,KAAOD,EAAIjiB,cAAc,KAAIjM,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,qBAAqB,KAAON,EAAI+C,EAAE,WAAY,2BAA6B,MAAMxC,GAAG,CAAC,MAAQP,EAAIqtB,8BAA8B,EAAES,OAAM,OAAU9tB,EAAIW,GAAG,KAAKT,EAAG,eAAe,CAACG,YAAY,uBAAuByR,MAAM,CAAE,eAAgB9R,EAAIyrB,cAAe,CAACvrB,EAAG,UAAU,CAACI,MAAM,CAAC,SAAWN,EAAI6O,SAAS,IAAM7O,EAAIoC,IAAI,OAASpC,EAAIwrB,gBAAgB,GAAGxrB,EAAIW,GAAG,KAAMX,EAAIX,IAAMW,EAAIoC,IAAKlC,EAAG,eAAeF,EAAII,GAAG,CAAC0R,MAAM,CAAC,mCAAoC9R,EAAI+rB,WAAWI,YAAY5rB,GAAG,CAAC,MAAQP,EAAIotB,gBAAgBI,YAAYxtB,EAAIytB,GAAG,CAAGztB,EAAI+rB,WAAWI,WAAwJ,KAA5I,CAAC7lB,IAAI,SAAS6B,GAAG,WAAW,MAAO,CAACjI,EAAG,MAAM,CAACG,YAAY,oEAAoE,EAAEytB,OAAM,GAAW,CAACxnB,IAAI,cAAc6B,GAAG,WAAW,MAAO,CAAoB,MAAlBnI,EAAIoC,IAAI+P,OAAmC,MAAlBnS,EAAIoC,IAAI+P,OAAiBnS,EAAIqP,UAAWnP,EAAG,MAAM,CAACG,YAAY,aAAa,CAAoB,MAAlBL,EAAIoC,IAAI+P,MAAejS,EAAG,OAAO,CAACG,YAAY,iCAAiCC,MAAM,CAAC,MAAQN,EAAI+C,EAAE,WAAY,oEAAoE,CAAC/C,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,iBAAiB/C,EAAIa,KAAKb,EAAIW,GAAG,KAAwB,MAAlBX,EAAIoC,IAAI+P,MAAejS,EAAG,OAAO,CAACG,YAAY,0BAA0BC,MAAM,CAAC,MAAQN,EAAI+C,EAAE,WAAY,iIAAiI,CAAC/C,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAI+C,EAAE,WAAY,gBAAgB/C,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIqP,UAAWnP,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIoC,IAAIkN,aAAa8e,iBAAiBpuB,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,IAAI,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIoC,IAAI8P,cAAc,EAAE4b,OAAM,IAAO,MAAK,IAAO,eAAe9tB,EAAI+rB,YAAW,GAAO,CAAC/rB,EAAIW,GAAG,KAAKX,EAAIW,GAAG,KAAKT,EAAG,kBAAkB,CAACI,MAAM,CAAC,GAAK,OAAO,KAAO,uBAAuB,KAAON,EAAI+C,EAAE,WAAY,WAAW,MAAQ,IAAI,CAAC7C,EAAG,aAAa,CAACI,MAAM,CAAC,IAAMN,EAAIoC,QAAQ,GAAGpC,EAAIW,GAAG,KAAMX,EAAIoC,IAAIkN,cAAgBtP,EAAIoC,IAAIyN,SAAS,GAAG0c,aAAaC,GAAGH,UAAWnsB,EAAG,kBAAkB,CAACI,MAAM,CAAC,GAAK,QAAQ,KAAO,6BAA6B,KAAON,EAAI+C,EAAE,WAAY,aAAa,MAAQ,IAAI/C,EAAIqV,GAAIrV,EAAIoC,IAAIyN,UAAU,SAASyc,GAAS,OAAOpsB,EAAG,MAAM,CAACoG,IAAIgmB,EAAQpa,QAAQ7R,YAAY,6BAA6B,CAACH,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAG0rB,EAAQpa,YAAYlS,EAAIW,GAAG,KAAMX,EAAIqsB,UAAUC,GAAUpsB,EAAG,WAAW,CAACI,MAAM,CAAC,KAAON,EAAIqsB,UAAUC,MAAYtsB,EAAIa,MAAM,EAAE,IAAG,GAAGb,EAAIa,MAAM,GAAGb,EAAIa,MAAM,EAC17E,GACsB,IwCOpB,EACA,KACA,WACA,MAI8B,yDCbgCzB,EAAO0G,QAG/D,WAAe,aAEvB,IAAI6kB,EAAkB,WACpB1qB,KAAKouB,YAAc,CAAC,EACpBpuB,KAAKquB,WAAa,GAClBruB,KAAKsuB,cAAe,CACtB,EAEIC,EAAqB,CAAEC,UAAW,CAAC,GAOvCD,EAAmBC,UAAUntB,IAAM,WACjC,OAAOrB,KAAKquB,UACd,EAOAE,EAAmBC,UAAUC,IAAM,SAAUloB,GAC3CvG,KAAKquB,WAAa9nB,EAASA,EAAQ,IAAO,EAC5C,EASAmkB,EAAgB1kB,UAAU0oB,UAAY,SAAoBC,GACxD,MAAQ,GAAM3uB,KAAe,WAAI2uB,CACnC,EAUAjE,EAAgB1kB,UAAU4oB,OAAS,SAAiBD,EAAOE,EAAUpvB,GACnE,IAAI4G,EAAMrG,KAAK0uB,UAAUC,GACrBpoB,EAAQ9G,GAAQ,CAAC0pB,MAAOpjB,QAAQ7B,SAASzE,GACzCqvB,KAAKC,UAAUF,GACfA,EAEJ9sB,OAAOitB,aAAaC,QAAQ5oB,EAAKE,EACnC,EASAmkB,EAAgB1kB,UAAUkpB,OAAS,SAAiBP,GAClD,IAAItoB,EAAMrG,KAAK0uB,UAAUC,GAEzB,OAAO5sB,OAAOitB,aAAa3oB,EAC7B,EAUAqkB,EAAgB1kB,UAAU3E,IAAM,SAAcstB,EAAOQ,EAAcC,GAKjE,QAHwB,IAAjBD,IAA0BA,EAAe,WACzB,IAAhBC,IAAyBA,EAAc1vB,SAEzCM,KAAKsuB,aACR,OAAO,KAGT,GAAItuB,KAAKkvB,OAAOP,GAAQ,CACtB,IAAIlvB,EAAO2vB,EAEX,IAAK,IAAI/oB,KAXIrG,KAWUouB,YACrB,GAAI/nB,IAAQsoB,EAAO,CACjBlvB,EAbSO,KAaKouB,YAAY/nB,GAAK5G,KAC/B,KACF,CAGF,OAAOO,KAAKqvB,SAAS5vB,EAAMO,KAAKkvB,OAAOP,GACzC,CAEA,OAAwB,OAAjBQ,EAAwBA,EAAe,IAChD,EASAzE,EAAgB1kB,UAAUyoB,IAAM,SAAcE,EAAOpoB,GACjD,IAAI+oB,EAAStvB,KAEf,IAAKA,KAAKsuB,aACR,OAAO,KAGT,IAAK,IAAIjoB,KAAOipB,EAAOlB,YAAa,CAClC,IAAI3uB,EAAO6vB,EAAOlB,YAAY/nB,GAAK5G,KAEnC,GAAK4G,IAAQsoB,EAGX,OAFAW,EAAOV,OAAOD,EAAOpoB,EAAO9G,GAErB8G,CAEX,CAIA,OAFAvG,KAAK4uB,OAAOD,EAAOpoB,GAEZA,CACT,EAOAmkB,EAAgB1kB,UAAUZ,OAAS,SAAiBupB,GAClD,OAAK3uB,KAAKsuB,aAIHvsB,OAAOitB,aAAaO,WAAWZ,GAH7B,IAIX,EASAjE,EAAgB1kB,UAAUwpB,YAAc,SAAsBnpB,EAAK5G,EAAM0vB,QAC/C,IAAjBA,IAA0BA,OAAenlB,GAEhDvK,EAAOA,GAAQC,OAEfM,KAAKouB,YAAY/nB,GAAO,CAAE5G,KAAMA,GAE3BO,KAAKkvB,OAAO7oB,IAAyB,OAAjB8oB,GACvBnvB,KAAK4uB,OAAOvoB,EAAK8oB,EAAc1vB,EAEnC,EAUAirB,EAAgB1kB,UAAUqpB,SAAW,SAAmB5vB,EAAM8G,GAC5D,OAAQ9G,GACN,KAAKqP,QACH,MAAiB,SAAVvI,EACT,KAAKzG,OACH,OAAO2vB,WAAWlpB,GACpB,KAAK4iB,MACH,IACE,IAAIuG,EAAQZ,KAAK3L,MAAM5c,GAEvB,OAAO4iB,MAAMC,QAAQsG,GAASA,EAAQ,EACxC,CAAE,MAAOzf,GACP,MAAO,EACT,CACF,KAAKlK,OACH,IACE,OAAO+oB,KAAK3L,MAAM5c,EACpB,CAAE,MAAO0J,GACP,MAAO,CAAC,CACV,CACF,QACE,OAAO1J,EAEb,EAEAR,OAAO4pB,iBAAkBjF,EAAgB1kB,UAAWuoB,GAEpD,IAAIqB,EAAkB,IAAIlF,EA+F1B,MA7FY,CAOVrlB,QAAS,SAAUolB,EAAKpZ,GAGtB,QAFiB,IAAZA,IAAqBA,EAAU,CAAC,QAEd,IAAZwe,KAEPA,EAAQC,QACRD,EAAQE,cACPF,EAAQG,KAA+B,WAAxBH,EAAQG,IAAIC,SAJhC,CAUA,IAAIC,GAAc,EAElB,IACE,IAAItZ,EAAO,4BAEX7U,OAAOitB,aAAaC,QAAQrY,EAAMA,GAClC7U,OAAOitB,aAAaO,WAAW3Y,EACjC,CAAE,MAAO3G,GACPigB,GAAc,EACdN,EAAgBtB,cAAe,EAE/B1Z,EAAQ5P,MAAM,iCAChB,CAEA,IAAI3F,EAAOgS,EAAQhS,MAAQ,eACvB8wB,EAAO9e,EAAQ8e,KAEf9e,EAAQmd,YACVoB,EAAgBpB,UAAYnd,EAAQmd,WAGtC/D,EAAI2F,MAAM,CACRC,aAAc,WACZ,IAAIf,EAAStvB,KAERkwB,GAIDlwB,KAAKytB,SAASpuB,IAChB0G,OAAO6G,KAAK5M,KAAKytB,SAASpuB,IAAO0J,SAAQ,SAAU1C,GACjD,IAAIiqB,EAAShB,EAAO7B,SAASpuB,GAAMgH,GAC/BkqB,EAAM,CAACD,EAAO7wB,KAAM6wB,EAAO1wB,SAC3BH,EAAO8wB,EAAI,GACXpB,EAAeoB,EAAI,GAMvB,GAJAX,EAAgBJ,YAAYnpB,EAAK5G,EAAM0vB,GAEpBppB,OAAOyqB,yBAAyBZ,EAAiBvpB,GAWxDokB,EAAI6F,OAAO1a,QACrBhB,EAAQ6b,IAAKpqB,EAAM,+CAVF,CACjB,IAAIggB,EAAO,CACThlB,IAAK,WAAc,OAAOopB,EAAIuE,aAAa3tB,IAAIgF,EAAK8oB,EAAe,EACnEV,IAAK,SAAU5hB,GAAO,OAAO4d,EAAIuE,aAAaP,IAAIpoB,EAAKwG,EAAM,EAC7D3F,cAAc,GAGhBnB,OAAOI,eAAeypB,EAAiBvpB,EAAKggB,GAC5CoE,EAAIiG,KAAKC,eAAef,EAAiBvpB,EAAK8oB,EAChD,EAIKgB,GAAQG,EAAOH,QAAyB,IAAhBG,EAAOH,OAClCb,EAAO7B,SAAS5sB,SAAWyuB,EAAO7B,SAAS5sB,UAAY,CAAC,EAEnDyuB,EAAO7B,SAAS5sB,SAASwF,KAC5BipB,EAAO7B,SAAS5sB,SAASwF,GAAO,CAC9BhF,IAAK,WAAc,OAAOopB,EAAIuE,aAAa3oB,EAAM,EACjDooB,IAAK,SAAU5hB,GAAO4d,EAAIuE,aAAa3oB,GAAOwG,CAAK,IAI3D,GAEJ,IAGF4d,EAAIprB,GAAQuwB,EACZnF,EAAIzkB,UAAW,IAAM3G,GAASuwB,CAvE9B,CAwEF,EAKD,CA1SgFgB","sources":["webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=62f0f115&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=b8444884&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=ffd9a2d6&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=style&index=0&id=34c0c31f&prod&lang=scss&scoped=true&","webpack://nextcloud/./apps/settings/src/views/Apps.vue?8e68","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue?vue&type=script&lang=js&","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/StarShooting.vue?ea51","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue?vue&type=template&id=2796c6f2&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?26fd","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?1c98","webpack:///nextcloud/apps/settings/src/service/rebuild-navigation.js","webpack:///nextcloud/apps/settings/src/mixins/AppManagement.js","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue","webpack://nextcloud/./apps/settings/src/components/SvgFilterMixin.vue?5bcd","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?be50","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?a9a1","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?af1e","webpack://nextcloud/./apps/settings/src/components/PrefixMixin.vue?c564","webpack:///nextcloud/apps/settings/src/components/PrefixMixin.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ff03","webpack://nextcloud/./apps/settings/src/components/AppList.vue?8acf","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ee21","webpack:///nextcloud/node_modules/marked/lib/marked.esm.js","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?5eab","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?26cf","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?d299","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?72cd","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?2807","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?7e45","webpack:///nextcloud/apps/settings/src/views/Apps.vue","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/views/Apps.vue?4993","webpack://nextcloud/./apps/settings/src/views/Apps.vue?7b97","webpack:///nextcloud/node_modules/vue-localstorage/dist/vue-local-storage.js"],"sourcesContent":["// 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-5be7cbf9]{padding:20px}.app-details__actions-manage[data-v-5be7cbf9]{display:flex}.app-details__actions-manage input[data-v-5be7cbf9]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__dependencies[data-v-5be7cbf9]{opacity:.7}.app-details__documentation[data-v-5be7cbf9]{padding-top:20px}.app-details__documentation a.appslink[data-v-5be7cbf9]{display:block}.app-details__description[data-v-5be7cbf9]{padding-top:20px}.force[data-v-5be7cbf9]{color:var(--color-error);border-color:var(--color-error);background:var(--color-main-background)}.force[data-v-5be7cbf9]:hover,.force[data-v-5be7cbf9]:active{color:var(--color-main-background);border-color:var(--color-error) !important;background:var(--color-error)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppDetails.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,oDACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAIH,4CACC,UAAA,CAED,6CACC,gBAAA,CACA,wDACC,aAAA,CAGF,2CACC,gBAAA,CAIF,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&__dependencies {\\n\\t\\topacity: .7;\\n\\t}\\n\\t&__documentation {\\n\\t\\tpadding-top: 20px;\\n\\t\\ta.appslink {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\t&__description {\\n\\t\\tpadding-top: 20px;\\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\":\"\"}]);\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-bundle-heading[data-v-62f0f115]{display:flex;align-items:center;margin:20px 10px 20px 0}.app-bundle-header[data-v-62f0f115]{margin:0 10px 0 50px;font-weight:bold;font-size:20px;line-height:30px;color:var(--color-text-light)}.apps-store-view[data-v-62f0f115]{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\":\"\"}]);\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-icon[data-v-b8444884]{filter:var(--background-invert-if-bright)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppItem.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,yCAAA\",\"sourcesContent\":[\"\\n.app-icon {\\n\\tfilter: var(--background-invert-if-bright);\\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-ffd9a2d6] h1,.settings-markdown[data-v-ffd9a2d6] h2,.settings-markdown[data-v-ffd9a2d6] h3,.settings-markdown[data-v-ffd9a2d6] h4,.settings-markdown[data-v-ffd9a2d6] h5,.settings-markdown[data-v-ffd9a2d6] h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.settings-markdown[data-v-ffd9a2d6] h1{font-size:36px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h2{font-size:28px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h3{font-size:24px}.settings-markdown[data-v-ffd9a2d6] h4{font-size:21px}.settings-markdown[data-v-ffd9a2d6] h5{font-size:17px}.settings-markdown[data-v-ffd9a2d6] h6{font-size:var(--default-font-size)}.settings-markdown[data-v-ffd9a2d6] 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-ffd9a2d6] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-ffd9a2d6] li{position:relative}.settings-markdown[data-v-ffd9a2d6] ul,.settings-markdown[data-v-ffd9a2d6] ol{padding-left:10px;margin-left:10px}.settings-markdown[data-v-ffd9a2d6] ul li{list-style-type:disc}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-ffd9a2d6] blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Markdown.vue\"],\"names\":[],\"mappings\":\"AAGA,0OAMC,eAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,4BAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,kCAAA,CAGD,wCACC,eAAA,CACA,eAAA,CACA,6CAAA,CACA,kCAAA,CACA,iBAAA,CACA,iBAAA,CAGD,2CACC,6CAAA,CACA,kCAAA,CACA,iBAAA,CAGD,uCACC,iBAAA,CAGD,8EACC,iBAAA,CACA,gBAAA,CAGD,0CACC,oBAAA,CAGD,gDACC,sBAAA,CAGD,sDACC,sBAAA,CAGD,+CACC,gBAAA,CACA,kDAAA,CACA,mCAAA,CACA,aAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.settings-markdown::v-deep {\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n\\tfont-weight: 600;\\n\\tline-height: 120%;\\n\\tmargin-top: 24px;\\n\\tmargin-bottom: 12px;\\n\\tcolor: var(--color-main-text);\\n}\\n\\nh1 {\\n\\tfont-size: 36px;\\n\\tmargin-top: 48px;\\n}\\n\\nh2 {\\n\\tfont-size: 28px;\\n\\tmargin-top: 48px;\\n}\\n\\nh3 {\\n\\tfont-size: 24px;\\n}\\n\\nh4 {\\n\\tfont-size: 21px;\\n}\\n\\nh5 {\\n\\tfont-size: 17px;\\n}\\n\\nh6 {\\n\\tfont-size: var(--default-font-size);\\n}\\n\\npre {\\n\\twhite-space: pre;\\n\\toverflow-x: auto;\\n\\tbackground-color: var(--color-background-dark);\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: 1em 1.3em;\\n\\tmargin-bottom: 1em;\\n}\\n\\np code {\\n\\tbackground-color: var(--color-background-dark);\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: .1em .3em;\\n}\\n\\nli {\\n\\tposition: relative;\\n}\\n\\nul, ol {\\n\\tpadding-left: 10px;\\n\\tmargin-left: 10px;\\n}\\n\\nul li {\\n\\tlist-style-type: disc;\\n}\\n\\nul > li > ul > li {\\n\\tlist-style-type: circle;\\n}\\n\\nul > li > ul > li ul li {\\n\\tlist-style-type: square;\\n}\\n\\nblockquote {\\n\\tpadding-left: 1em;\\n\\tborder-left: 4px solid var(--color-primary-element);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-sidebar[data-v-34c0c31f]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-34c0c31f]:not(.app-sidebar--without-background) .app-sidebar-header--compact .app-sidebar-header__figure{background-size:32px;filter:var(--background-invert-if-bright)}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-34c0c31f].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-34c0c31f].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-34c0c31f] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-34c0c31f] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-34c0c31f]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-34c0c31f] h3{font-size:20px}.app-sidebar-tabs__release[data-v-34c0c31f] h4{font-size:17px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/Apps.vue\"],\"names\":[],\"mappings\":\"AAIE,mIACC,qBAAA,CAGD,6HACC,oBAAA,CAEA,yCAAA,CAKD,4EACC,iBAAA,CAMD,0FACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,4GACC,UAAA,CACA,WAAA,CACA,oBAAA,CAQF,sFACC,2BAAA,CACA,WAAA,CACA,6BAAA,CACA,gBAAA,CAIF,0DAEC,aAAA,CACA,gEACC,UAAA,CAMH,8DACC,OAAA,CACA,UAAA,CAIA,+CACC,2CAAA,CAKA,+CACC,cAAA,CAED,+CACC,cAAA\",\"sourcesContent\":[\"\\n.app-sidebar::v-deep {\\n\\t&:not(.app-sidebar--without-background) {\\n\\t\\t// with full screenshot, let's fill the figure\\n\\t\\t:not(.app-sidebar-header--compact) .app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t\\t// revert sidebar app icon so it is black\\n\\t\\t.app-sidebar-header--compact .app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: 32px;\\n\\n\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t}\\n\\t}\\n\\n\\t.app-sidebar-header__description {\\n\\t\\t.app-version {\\n\\t\\t\\tpadding-left: 10px;\\n\\t\\t}\\n\\t}\\n\\n\\t// default icon slot styling\\n\\t&.app-sidebar--without-background {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\t&--default-app-icon {\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: migrate to components\\n\\t.app-sidebar-header__desc {\\n\\t\\t// allow multi line subtitle for the license\\n\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\toverflow: visible !important;\\n\\t\\t\\theight: auto;\\n\\t\\t\\twhite-space: normal !important;\\n\\t\\t\\tline-height: 16px;\\n\\t\\t}\\n\\t}\\n\\n\\t.app-sidebar-header__action {\\n\\t\\t// align with tab content\\n\\t\\tmargin: 0 20px;\\n\\t\\tinput {\\n\\t\\t\\tmargin: 3px;\\n\\t\\t}\\n\\t}\\n}\\n\\n// Align the appNavigation toggle with the apps header toolbar\\n.app-navigation::v-deep button.app-navigation-toggle {\\n\\ttop: 8px;\\n\\tright: -8px;\\n}\\n\\n.app-sidebar-tabs__release {\\n\\th2 {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t// Overwrite changelog heading styles\\n\\t::v-deep {\\n\\t\\th3 {\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t}\\n\\t\\th4 {\\n\\t\\t\\tfont-size: 17px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcContent',{class:{ 'with-app-sidebar': _vm.app},attrs:{\"app-name\":\"settings\",\"content-class\":{ 'icon-loading': _vm.loadingList },\"navigation-class\":{ 'icon-loading': _vm.loading }}},[_c('NcAppNavigation',{scopedSlots:_vm._u([{key:\"list\",fn:function(){return [_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-your-apps\",\"to\":{ name: 'apps' },\"exact\":true,\"icon\":\"icon-category-installed\",\"name\":_vm.t('settings', 'Your apps')}}),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-enabled\",\"to\":{ name: 'apps-category', params: { category: 'enabled' } },\"icon\":\"icon-category-enabled\",\"name\":_vm.$options.APPS_SECTION_ENUM.enabled}}),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-disabled\",\"to\":{ name: 'apps-category', params: { category: 'disabled' } },\"icon\":\"icon-category-disabled\",\"name\":_vm.$options.APPS_SECTION_ENUM.disabled}}),_vm._v(\" \"),(_vm.updateCount > 0)?_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-updates\",\"to\":{ name: 'apps-category', params: { category: 'updates' } },\"icon\":\"icon-download\",\"name\":_vm.$options.APPS_SECTION_ENUM.updates},scopedSlots:_vm._u([{key:\"counter\",fn:function(){return [_c('NcCounterBubble',[_vm._v(_vm._s(_vm.updateCount))])]},proxy:true}],null,false,54487302)}):_vm._e(),_vm._v(\" \"),(_vm.isSubscribed)?_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-supported\",\"to\":{ name: 'apps-category', params: { category: 'supported' } },\"name\":_vm.$options.APPS_SECTION_ENUM.supported},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconStarShooting',{attrs:{\"size\":20}})]},proxy:true}],null,false,704374136)}):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-your-bundles\",\"to\":{ name: 'apps-category', params: { category: 'app-bundles' } },\"icon\":\"icon-category-app-bundles\",\"name\":_vm.$options.APPS_SECTION_ENUM['app-bundles']}}),_vm._v(\" \"),_c('NcAppNavigationSpacer'),_vm._v(\" \"),(_vm.settings.appstoreEnabled)?[_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-featured\",\"to\":{ name: 'apps-category', params: { category: 'featured' } },\"icon\":\"icon-favorite\",\"name\":_vm.$options.APPS_SECTION_ENUM.featured}}),_vm._v(\" \"),_vm._l((_vm.categories),function(cat){return _c('NcAppNavigationItem',{key:'icon-category-' + cat.ident,attrs:{\"icon\":'icon-category-' + cat.ident,\"to\":{\n\t\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\t\tparams: { category: cat.ident },\n\t\t\t\t\t},\"name\":cat.displayName}})})]:_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-developer-docs\",\"name\":_vm.t('settings', 'Developer documentation') + ' ↗'},on:{\"click\":_vm.openDeveloperDocumentation}})]},proxy:true}])}),_vm._v(\" \"),_c('NcAppContent',{staticClass:\"app-settings-content\",class:{ 'icon-loading': _vm.loadingList }},[_c('AppList',{attrs:{\"category\":_vm.category,\"app\":_vm.app,\"search\":_vm.searchQuery}})],1),_vm._v(\" \"),(_vm.id && _vm.app)?_c('NcAppSidebar',_vm._b({class:{'app-sidebar--without-background': !_vm.appSidebar.background},on:{\"close\":_vm.hideAppDetails},scopedSlots:_vm._u([(!_vm.appSidebar.background)?{key:\"header\",fn:function(){return [_c('div',{staticClass:\"app-sidebar-header__figure--default-app-icon icon-settings-dark\"})]},proxy:true}:null,{key:\"description\",fn:function(){return [(_vm.app.level === 300 || _vm.app.level === 200 || _vm.hasRating)?_c('div',{staticClass:\"app-level\"},[(_vm.app.level === 300)?_c('span',{staticClass:\"supported icon-checkmark-color\",attrs:{\"title\":_vm.t('settings', 'This app is supported via your current Nextcloud subscription.')}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Supported')))]):_vm._e(),_vm._v(\" \"),(_vm.app.level === 200)?_c('span',{staticClass:\"official icon-checkmark\",attrs:{\"title\":_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Featured')))]):_vm._e(),_vm._v(\" \"),(_vm.hasRating)?_c('AppScore',{attrs:{\"score\":_vm.app.appstoreData.ratingOverall}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-version\"},[_c('p',[_vm._v(_vm._s(_vm.app.version))])])]},proxy:true}],null,true)},'NcAppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),_c('NcAppSidebarTab',{attrs:{\"id\":\"desc\",\"icon\":\"icon-category-office\",\"name\":_vm.t('settings', 'Details'),\"order\":0}},[_c('AppDetails',{attrs:{\"app\":_vm.app}})],1),_vm._v(\" \"),(_vm.app.appstoreData && _vm.app.releases[0].translations.en.changelog)?_c('NcAppSidebarTab',{attrs:{\"id\":\"desca\",\"icon\":\"icon-category-organization\",\"name\":_vm.t('settings', 'Changelog'),\"order\":1}},_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(\" \"),(_vm.changelog(release))?_c('Markdown',{attrs:{\"text\":_vm.changelog(release)}}):_vm._e()],1)}),0):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./StarShooting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./StarShooting.vue?vue&type=script&lang=js&\"","\n\n","import { render, staticRenderFns } from \"./StarShooting.vue?vue&type=template&id=2796c6f2&\"\nimport script from \"./StarShooting.vue?vue&type=script&lang=js&\"\nexport * from \"./StarShooting.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 star-shooting-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M18.09 11.77L19.56 18.1L14 14.74L8.44 18.1L9.9 11.77L5 7.5L11.47 6.96L14 1L16.53 6.96L23 7.5L18.09 11.77M2 12.43C2.19 12.43 2.38 12.37 2.55 12.26L5.75 10.15L4.18 8.79L1.45 10.59C.989 10.89 .861 11.5 1.16 12C1.36 12.27 1.68 12.43 2 12.43M1.16 21.55C1.36 21.84 1.68 22 2 22C2.19 22 2.38 21.95 2.55 21.84L6.66 19.13L7 17.76L7.31 16.31L1.45 20.16C.989 20.47 .861 21.09 1.16 21.55M1.45 15.38C.989 15.68 .861 16.3 1.16 16.76C1.36 17.06 1.68 17.21 2 17.21C2.19 17.21 2.38 17.16 2.55 17.05L7.97 13.5L8.24 12.31L7.32 11.5L1.45 15.38Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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!./AppScore.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!./AppScore.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=3b3081d1&\"\nimport script from \"./AppScore.vue?vue&type=script&lang=js&\"\nexport * from \"./AppScore.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('img',{staticClass:\"app-score-image\",attrs:{\"src\":_vm.scoreImage}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default () => {\n\treturn axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\t.then(({ data }) => {\n\t\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\temit('nextcloud:app-menu.refresh', { apps: data.ocs.data })\n\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t})\n}\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author John Molakvoæ \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 .\n *\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport rebuildNavigation from '../service/rebuild-navigation.js'\n\nexport default {\n\tcomputed: {\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map(group => { return { id: group, name: group } })\n\t\t},\n\t\tinstalling() {\n\t\t\treturn this.$store.getters.loading('install')\n\t\t},\n\t\tisLoading() {\n\t\t\treturn this.app && this.$store.getters.loading(this.app.id)\n\t\t},\n\t\tenableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Download and enable')\n\t\t\t}\n\t\t\treturn t('settings', 'Enable')\n\t\t},\n\t\tforceEnableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Allow untested app')\n\t\t\t}\n\t\t\treturn t('settings', 'Allow untested app')\n\t\t},\n\t\tenableButtonTooltip() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tforceEnableButtonTooltip() {\n\t\t\tconst base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn base + ' ' + t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn base\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tif (this.app && this.app.groups && this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasyncFindGroup(query) {\n\t\t\treturn this.$store.dispatch('getGroups', { search: query, limit: 5, offset: 0 })\n\t\t},\n\t\tisLimitedToGroups(app) {\n\t\t\tif (this.app.groups.length || this.groupCheckedAppsData) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tsetGroupLimit() {\n\t\t\tif (!this.groupCheckedAppsData) {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: [] })\n\t\t\t}\n\t\t},\n\t\tcanLimitToGroups(app) {\n\t\t\tif ((app.types && app.types.includes('filesystem'))\n\t\t\t\t\t|| app.types.includes('prelogin')\n\t\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t\t|| app.types.includes('prevent_group_restriction')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\taddGroupLimitation(groupArray) {\n\t\t\tconst group = groupArray.pop()\n\t\t\tconst groups = this.app.groups.concat([]).concat([group.id])\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tconst currentGroups = this.app.groups.concat([])\n\t\t\tconst index = currentGroups.indexOf(group.id)\n\t\t\tif (index > -1) {\n\t\t\t\tcurrentGroups.splice(index, 1)\n\t\t\t}\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tthis.$store.dispatch('forceEnableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tenable(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tdisable(appId) {\n\t\t\tthis.$store.dispatch('disableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tremove(appId) {\n\t\t\tthis.$store.dispatch('uninstallApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tinstall(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tupdate(appId) {\n\t\t\tthis.$store.dispatch('updateApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t},\n}\n","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&\"","\n\n\n","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\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=b8444884&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=b8444884&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=b8444884&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=b8444884&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 \"b8444884\",\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` : `li`,{tag:\"component\",staticClass:\"section\",class:{ selected: _vm.isSelected },on:{\"click\":_vm.showAppDetails}},[_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-image app-image-icon\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-icon`)},on:{\"click\":_vm.showAppDetails}},[((_vm.listView && !_vm.app.preview) || (!_vm.listView && !_vm.screenshotLoaded))?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.listView && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\" \"),(!_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"width\":\"100%\"}}):_vm._e()]),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-name\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-name`)},on:{\"click\":_vm.showAppDetails}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\")]),_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`)}},[(_vm.app.level === 300)?_c('span',{staticClass:\"supported icon-checkmark-color\",attrs:{\"title\":_vm.t('settings', 'This app is supported via your current Nextcloud subscription.'),\"aria-label\":_vm.t('settings', 'This app is supported via your current Nextcloud subscription.')}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Supported')))]):_vm._e(),_vm._v(\" \"),(_vm.app.level === 200)?_c('span',{staticClass:\"official icon-checkmark\",attrs:{\"title\":_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.'),\"aria-label\":_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Featured')))]):_vm._e(),_vm._v(\" \"),(_vm.hasRating && !_vm.listView)?_c('AppScore',{attrs:{\"score\":_vm.app.score}}):_vm._e()],1),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"actions\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-actions`)}},[(_vm.app.error)?_c('div',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.error)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('div',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),(_vm.app.update)?_c('NcButton',{attrs:{\"type\":\"primary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.update(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Update to {update}', {update:_vm.app.update}))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('NcButton',{staticClass:\"uninstall\",attrs:{\"type\":\"tertiary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.remove(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Remove'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('NcButton',{attrs:{\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.disable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings','Disable'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('NcButton',{attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"type\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.enable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.enableButtonText)+\"\\n\\t\\t\")]):(!_vm.app.active)?_c('NcButton',{attrs:{\"title\":_vm.forceEnableButtonTooltip,\"aria-label\":_vm.forceEnableButtonTooltip,\"type\":\"secondary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.forceEnable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.forceEnableButtonText)+\"\\n\\t\\t\")]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./PrefixMixin.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","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\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!./AppList.vue?vue&type=style&index=0&id=62f0f115&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=62f0f115&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=62f0f115&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=62f0f115&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 \"62f0f115\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app-content-inner\"}},[_c('div',{staticClass:\"apps-list\",class:{installed: (_vm.useBundleView || _vm.useListView), store: _vm.useAppStoreView},attrs:{\"id\":\"apps-list\"}},[(_vm.useListView)?[(_vm.showUpdateAll)?_c('div',{staticClass:\"toolbar\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.n('settings', '%n app has an update available', '%n apps have an update available', _vm.counter))+\"\\n\\t\\t\\t\\t\"),(_vm.showUpdateAll)?_c('NcButton',{attrs:{\"id\":\"app-list-update-all\",\"type\":\"primary\"},on:{\"click\":_vm.updateAll}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('settings', 'Update', 'Update all', _vm.counter))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.showUpdateAll)?_c('div',{staticClass:\"toolbar\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'All apps are up-to-date.'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"apps-list-container\",attrs:{\"name\":\"app-list\",\"tag\":\"table\"}},[_c('tr',{key:\"app-list-view-header\",staticClass:\"apps-header\"},[_c('th',{staticClass:\"app-image\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-name\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-version\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-level\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',{staticClass:\"actions\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.apps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})})],2)]:_vm._e(),_vm._v(\" \"),(_vm.useBundleView)?_c('table',{staticClass:\"apps-list-container\"},[_c('tr',{key:\"app-list-view-header\",staticClass:\"apps-header\"},[_c('th',{staticClass:\"app-image\",attrs:{\"id\":\"app-table-col-icon\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-name\",attrs:{\"id\":\"app-table-col-name\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-version\",attrs:{\"id\":\"app-table-col-version\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-level\",attrs:{\"id\":\"app-table-col-level\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',{staticClass:\"actions\",attrs:{\"id\":\"app-table-col-actions\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.bundles),function(bundle){return [_c('tr',{key:bundle.id},[_c('th',{attrs:{\"id\":`app-table-rowgroup-${bundle.id}`,\"colspan\":\"5\",\"scope\":\"rowgroup\"}},[_c('div',{staticClass:\"app-bundle-heading\"},[_c('span',{staticClass:\"app-bundle-header\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(bundle.name)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){return _vm.toggleBundle(bundle.id)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', _vm.bundleToggleText(bundle.id)))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])]),_vm._v(\" \"),_vm._l((_vm.bundleApps(bundle.id)),function(app){return _c('AppItem',{key:bundle.id + app.id,attrs:{\"use-bundle-view\":true,\"headers\":`app-table-rowgroup-${bundle.id}`,\"app\":app,\"category\":_vm.category}})})]})],2):_vm._e(),_vm._v(\" \"),(_vm.useAppStoreView)?_c('ul',{staticClass:\"apps-store-view\"},_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 installed\",attrs:{\"id\":\"apps-list-search\"}},[_c('div',{staticClass:\"apps-list-container\"},[(_vm.search !== '' && _vm.searchApps.length > 0)?[_c('div',{staticClass:\"section\"},[_c('div'),_vm._v(\" \"),_c('td',{attrs:{\"colspan\":\"5\"}},[_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'Results from other categories')))])])]),_vm._v(\" \"),_vm._l((_vm.searchApps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})})]:_vm._e()],2)]),_vm._v(\" \"),(_vm.search !== '' && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0)?_c('div',{staticClass:\"emptycontent emptycontent-search\",attrs:{\"id\":\"apps-list-empty\"}},[_c('div',{staticClass:\"icon-settings-dark\",attrs:{\"id\":\"app-list-empty-icon\"}}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'No apps found for your version')))])]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"searchresults\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * marked v9.0.3 - a markdown parser\n * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = typeof val === 'object' && 'source' in val ? val.source : val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n // TODO: Fix this rules type\n rules;\n lexer;\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline._escapes, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n list.items[list.items.length - 1].text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline._escapes, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline._escapes, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const item = {\n type: 'table',\n raw: cap[0],\n header: splitCells(cap[1]).map(c => {\n return { text: c, tokens: [] };\n }),\n align: cap[2].replace(/^\\||\\| *$/g, '').split('|'),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n if (item.header.length === item.align.length) {\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n const align = item.align[i];\n if (align) {\n if (/^ *-+: *$/.test(align)) {\n item.align[i] = 'right';\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align[i] = 'center';\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align[i] = 'left';\n }\n else {\n item.align[i] = null;\n }\n }\n }\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => {\n return { text: c, tokens: [] };\n });\n }\n // parse child tokens inside headers and cells\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = this.lexer.inline(item.header[j].text);\n }\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = this.lexer.inline(row[k].text);\n }\n }\n return item;\n }\n }\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + match[0].length - 1);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const raw = [...src].slice(0, lLength + match.index + rLength + 1).join('');\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\n// Not all rules are defined in the object literal\n// @ts-expect-error\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^(?!bull )((?:.|\\n(?!\\s*?\\n|bull ))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nblock.lheading = edit(block.lheading)\n .replace(/bull/g, block.bullet) // lists can interrupt\n .getRegex();\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nblock.normal = { ...block };\n/**\n * GFM Block Grammar\n */\nblock.gfm = {\n ...block.normal,\n table: '^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n};\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nblock.pedantic = {\n ...block.normal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\n// Not all rules are defined in the object literal\n// @ts-expect-error\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // | Skip orphan inside strong | Consume to delim | (1) #*** | (2) a***#, a*** | (3) #***a, ***a | (4) ***# | (5) #***# | (6) a***a\n rDelimAst: /^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\`^|~';\ninline.punctuation = edit(inline.punctuation, 'u').replace(/punctuation/g, inline._punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\ninline.anyPunctuation = /\\\\[punct]/g;\ninline._escapes = /\\\\([punct])/g;\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim, 'u')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline.anyPunctuation = edit(inline.anyPunctuation, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline._escapes = edit(inline._escapes, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\ninline.normal = { ...inline };\n/**\n * Pedantic Inline Grammar\n */\ninline.pedantic = {\n ...inline.normal,\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\ninline.gfm = {\n ...inline.normal,\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '
    '\n                + (escaped ? code : escape(code, true))\n                + '
    \\n';\n }\n return '
    '\n            + (escaped ? code : escape(code, true))\n            + '
    \\n';\n }\n blockquote(quote) {\n return `
    \\n${quote}
    \\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `${text}\\n`;\n }\n hr() {\n return '
    \\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n listitem(text, task, checked) {\n return `
  • ${text}
  • \\n`;\n }\n checkbox(checked) {\n return '';\n }\n paragraph(text) {\n return `

    ${text}

    \\n`;\n }\n table(header, body) {\n if (body)\n body = `${body}`;\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n tablerow(content) {\n return `\\n${content}\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `${text}`;\n }\n em(text) {\n return `${text}`;\n }\n codespan(text) {\n return `${text}`;\n }\n br() {\n return '
    ';\n }\n del(text) {\n return `${text}`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    ';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n parser = _Parser.parse;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n lexer = _Lexer.lex;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n values = values.concat(this.walkTokens(genericToken[childTokens], callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n const rendererFunc = pack.renderer[prop];\n const rendererKey = prop;\n const prevRenderer = renderer[rendererKey];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererKey] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n const tokenizerFunc = pack.tokenizer[prop];\n const tokenizerKey = prop;\n const prevTokenizer = tokenizer[tokenizerKey];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[tokenizerKey] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n const hooksFunc = pack.hooks[prop];\n const hooksKey = prop;\n const prevHook = hooks[hooksKey];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksKey] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n hooks[hooksKey] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n const tokens = lexer(src, opt);\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '

    An error occurred:

    '\n                    + escape(e.message + '', true)\n                    + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\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\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!./Markdown.vue?vue&type=style&index=0&id=ffd9a2d6&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=ffd9a2d6&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=ffd9a2d6&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=ffd9a2d6&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 \"ffd9a2d6\",\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/vue-loader/lib/index.js??vue-loader-options!./AppDetails.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!./AppDetails.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!./AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDetails.vue?vue&type=template&id=5be7cbf9&scoped=true&\"\nimport script from \"./AppDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&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 \"5be7cbf9\",\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-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\":_vm.prefix('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\":_vm.prefix('groups_enable', _vm.app.id)}},[_vm._v(_vm._s(_vm.t('settings', 'Limit to groups')))]),_vm._v(\" \"),_c('input',{staticClass:\"group_select\",attrs:{\"type\":\"hidden\",\"title\":_vm.t('settings', 'All'),\"value\":\"\"}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"limitToGroups\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Limit app usage to groups')))])]),_vm._v(\" \"),(_vm.isLimitedToGroups(_vm.app))?_c('NcSelect',{attrs:{\"input-id\":\"limitToGroups\",\"options\":_vm.groups,\"value\":_vm.appGroups,\"limit\":5,\"label\":\"name\",\"multiple\":true,\"close-on-select\":false},on:{\"option:selected\":_vm.addGroupLimitation,\"option:deselected\":_vm.removeGroupLimitation,\"search\":_vm.asyncFindGroup}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings', 'No results')))])]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-details__actions-manage\"},[(_vm.app.update)?_c('input',{staticClass:\"update primary\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Update to {version}', { version: _vm.app.update }),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.update(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('input',{staticClass:\"uninstall\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Remove'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.remove(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings','Disable'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.disable(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('input',{staticClass:\"enable primary\",attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"type\":\"button\",\"value\":_vm.enableButtonText,\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.enable(_vm.app.id)}}}):(!_vm.app.active && !_vm.app.canInstall)?_c('input',{staticClass:\"enable force\",attrs:{\"title\":_vm.forceEnableButtonTooltip,\"aria-label\":_vm.forceEnableButtonTooltip,\"type\":\"button\",\"value\":_vm.forceEnableButtonText,\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.forceEnable(_vm.app.id)}}}):_vm._e()])]),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__dependencies\"},[(_vm.app.missingMinOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.missingMaxOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.canInstall)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:'))+\"\\n\\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\"+_vm._s(dep)+\"\\n\\t\\t\\t\\t\")])}),0)]):_vm._e()]),_vm._v(\" \"),_c('p',{staticClass:\"app-details__documentation\"},[(!_vm.app.internal)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.appstoreUrl,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'View in store'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.website)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.website,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Visit website'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.bugs)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.bugs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Report a bug'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.user)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.user,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'User documentation'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.admin)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.admin,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Admin documentation'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.developer)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.developer,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Developer documentation'))+\" ↗\")]):_vm._e()]),_vm._v(\" \"),_c('Markdown',{staticClass:\"app-details__description\",attrs:{\"text\":_vm.app.description}})],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!./Apps.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!./Apps.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!./Apps.vue?vue&type=style&index=0&id=34c0c31f&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=style&index=0&id=34c0c31f&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Apps.vue?vue&type=template&id=34c0c31f&scoped=true&\"\nimport script from \"./Apps.vue?vue&type=script&lang=js&\"\nexport * from \"./Apps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Apps.vue?vue&type=style&index=0&id=34c0c31f&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 \"34c0c31f\",\n null\n \n)\n\nexport default component.exports","/**\n * vue-local-storage v0.6.0\n * (c) 2017 Alexander Avakov\n * @license MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.VueLocalStorage = factory());\n}(this, (function () { 'use strict';\n\nvar VueLocalStorage = function VueLocalStorage () {\n this._properties = {};\n this._namespace = '';\n this._isSupported = true;\n};\n\nvar prototypeAccessors = { namespace: {} };\n\n/**\n * Namespace getter.\n *\n * @returns {string}\n */\nprototypeAccessors.namespace.get = function () {\n return this._namespace\n};\n\n/**\n * Namespace setter.\n *\n * @param {string} value\n */\nprototypeAccessors.namespace.set = function (value) {\n this._namespace = value ? (value + \".\") : '';\n};\n\n/**\n * Concatenates localStorage key with namespace prefix.\n *\n * @param {string} lsKey\n * @returns {string}\n * @private\n */\nVueLocalStorage.prototype._getLsKey = function _getLsKey (lsKey) {\n return (\"\" + (this._namespace) + lsKey)\n};\n\n/**\n * Set a value to localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @param {*} rawValue\n * @param {*} type\n * @private\n */\nVueLocalStorage.prototype._lsSet = function _lsSet (lsKey, rawValue, type) {\n var key = this._getLsKey(lsKey);\n var value = type && [Array, Object].includes(type)\n ? JSON.stringify(rawValue)\n : rawValue;\n\n window.localStorage.setItem(key, value);\n};\n\n/**\n * Get value from localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @returns {any}\n * @private\n */\nVueLocalStorage.prototype._lsGet = function _lsGet (lsKey) {\n var key = this._getLsKey(lsKey);\n\n return window.localStorage[key]\n};\n\n/**\n * Get value from localStorage\n *\n * @param {String} lsKey\n * @param {*} defaultValue\n * @param {*} defaultType\n * @returns {*}\n */\nVueLocalStorage.prototype.get = function get (lsKey, defaultValue, defaultType) {\n var this$1 = this;\n if ( defaultValue === void 0 ) defaultValue = null;\n if ( defaultType === void 0 ) defaultType = String;\n\n if (!this._isSupported) {\n return null\n }\n\n if (this._lsGet(lsKey)) {\n var type = defaultType;\n\n for (var key in this$1._properties) {\n if (key === lsKey) {\n type = this$1._properties[key].type;\n break\n }\n }\n\n return this._process(type, this._lsGet(lsKey))\n }\n\n return defaultValue !== null ? defaultValue : null\n};\n\n/**\n * Set localStorage value\n *\n * @param {String} lsKey\n * @param {*} value\n * @returns {*}\n */\nVueLocalStorage.prototype.set = function set (lsKey, value) {\n var this$1 = this;\n\n if (!this._isSupported) {\n return null\n }\n\n for (var key in this$1._properties) {\n var type = this$1._properties[key].type;\n\n if ((key === lsKey)) {\n this$1._lsSet(lsKey, value, type);\n\n return value\n }\n }\n\n this._lsSet(lsKey, value);\n\n return value\n};\n\n/**\n * Remove value from localStorage\n *\n * @param {String} lsKey\n */\nVueLocalStorage.prototype.remove = function remove (lsKey) {\n if (!this._isSupported) {\n return null\n }\n\n return window.localStorage.removeItem(lsKey)\n};\n\n/**\n * Add new property to localStorage\n *\n * @param {String} key\n * @param {function} type\n * @param {*} defaultValue\n */\nVueLocalStorage.prototype.addProperty = function addProperty (key, type, defaultValue) {\n if ( defaultValue === void 0 ) defaultValue = undefined;\n\n type = type || String;\n\n this._properties[key] = { type: type };\n\n if (!this._lsGet(key) && defaultValue !== null) {\n this._lsSet(key, defaultValue, type);\n }\n};\n\n/**\n * Process the value before return it from localStorage\n *\n * @param {String} type\n * @param {*} value\n * @returns {*}\n * @private\n */\nVueLocalStorage.prototype._process = function _process (type, value) {\n switch (type) {\n case Boolean:\n return value === 'true'\n case Number:\n return parseFloat(value)\n case Array:\n try {\n var array = JSON.parse(value);\n\n return Array.isArray(array) ? array : []\n } catch (e) {\n return []\n }\n case Object:\n try {\n return JSON.parse(value)\n } catch (e) {\n return {}\n }\n default:\n return value\n }\n};\n\nObject.defineProperties( VueLocalStorage.prototype, prototypeAccessors );\n\nvar vueLocalStorage = new VueLocalStorage();\n\nvar index = {\n /**\n * Install vue-local-storage plugin\n *\n * @param {Vue} Vue\n * @param {Object} options\n */\n install: function (Vue, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof process !== 'undefined' &&\n (\n process.server ||\n process.SERVER_BUILD ||\n (process.env && process.env.VUE_ENV === 'server')\n )\n ) {\n return\n }\n\n var isSupported = true;\n\n try {\n var test = '__vue-localstorage-test__';\n\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n } catch (e) {\n isSupported = false;\n vueLocalStorage._isSupported = false;\n\n console.error('Local storage is not supported');\n }\n\n var name = options.name || 'localStorage';\n var bind = options.bind;\n\n if (options.namespace) {\n vueLocalStorage.namespace = options.namespace;\n }\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n var this$1 = this;\n\n if (!isSupported) {\n return\n }\n\n if (this.$options[name]) {\n Object.keys(this.$options[name]).forEach(function (key) {\n var config = this$1.$options[name][key];\n var ref = [config.type, config.default];\n var type = ref[0];\n var defaultValue = ref[1];\n\n vueLocalStorage.addProperty(key, type, defaultValue);\n\n var existingProp = Object.getOwnPropertyDescriptor(vueLocalStorage, key);\n\n if (!existingProp) {\n var prop = {\n get: function () { return Vue.localStorage.get(key, defaultValue); },\n set: function (val) { return Vue.localStorage.set(key, val); },\n configurable: true\n };\n\n Object.defineProperty(vueLocalStorage, key, prop);\n Vue.util.defineReactive(vueLocalStorage, key, defaultValue);\n } else if (!Vue.config.silent) {\n console.log((key + \": is already defined and will be reused\"));\n }\n\n if ((bind || config.bind) && config.bind !== false) {\n this$1.$options.computed = this$1.$options.computed || {};\n\n if (!this$1.$options.computed[key]) {\n this$1.$options.computed[key] = {\n get: function () { return Vue.localStorage[key]; },\n set: function (val) { Vue.localStorage[key] = val; }\n };\n }\n }\n });\n }\n }\n });\n\n Vue[name] = vueLocalStorage;\n Vue.prototype[(\"$\" + name)] = vueLocalStorage;\n }\n};\n\nreturn index;\n\n})));\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","computed","scoreImage","imageName","Math","round","score","imagePath","axios","get","generateOcsUrl","then","_ref","data","ocs","meta","statuscode","emit","apps","window","dispatchEvent","Event","appGroups","app","groups","map","group","installing","$store","getters","loading","isLoading","enableButtonText","needsDownload","t","forceEnableButtonText","enableButtonTooltip","forceEnableButtonTooltip","base","groupCheckedAppsData","mounted","length","methods","asyncFindGroup","query","dispatch","search","limit","offset","isLimitedToGroups","setGroupLimit","appId","canLimitToGroups","types","includes","addGroupLimitation","groupArray","pop","concat","removeGroupLimitation","currentGroups","index","indexOf","splice","forceEnable","response","rebuildNavigation","catch","error","showError","enable","disable","remove","install","update","filterId","filterUrl","random","toString","substring","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","components","AppScore","NcButton","mixins","AppManagement","SvgFilterMixin","category","listView","Boolean","useBundleView","headers","isSelected","scrolled","screenshotLoaded","hasRating","appstoreData","ratingNumOverall","dataItemTag","watch","_this","$route","params","releases","screenshot","image","Image","onload","e","src","watchers","showAppDetails","event","_this2","_callee","_context","currentTarget","tagName","$router","t0","args","arguments","apply","prefix","content","getDataItemHeaders","columnName","join","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","tag","class","selected","preview","summary","version","level","stopPropagation","canUnInstall","active","canInstall","isCompatible","AppItem","PrefixMixin","counter","filter","hasPendingUpdate","showUpdateAll","useListView","getAllApps","toLowerCase","sort","a","b","sortStringA","sortStringB","OC","Util","naturalSortCompare","installed","bundles","appstore","getServerData","bundle","bundleApps","bundleIds","searchApps","_this3","find","_app","useAppStoreView","allBundlesEnabled","_this4","bundleToggleText","_this5","toggleBundle","disableBundle","enableBundle","console","Notification","show","updateAll","_this6","pLimit","store","n","_l","_defaults","breaks","extensions","gfm","hooks","pedantic","renderer","silent","tokenizer","walkTokens","changeDefaults","newDefaults","escapeTest","escapeReplace","RegExp","source","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","html","encode","test","replace","unescapeTest","caret","edit","regex","opt","getRegex","cleanUrl","href","encodeURI","noopTest","exec","splitCells","tableRow","count","cells","match","str","escaped","curr","split","trim","shift","rtrim","c","invert","l","suffLen","currChar","outputLink","cap","link","raw","lexer","text","inLink","token","tokens","inlineTokens","_Tokenizer","rules","space","block","newline","code","codeBlockStyle","fences","matchIndentToCode","indentToCode","node","matchIndentInNode","indentInNode","indentCodeCompensation","lang","inline","_escapes","heading","trimmed","depth","hr","blockquote","top","blockTokens","list","bull","isordered","ordered","start","loose","items","itemRegex","itemContents","endsWithBlankLine","endEarly","line","repeat","nextLine","indent","trimStart","blankLine","nextBulletRegex","min","hrRegex","fencesBeginRegex","headingBeginRegex","rawLine","ischecked","istask","task","checked","trimEnd","spacers","hasMultipleLineBreaks","some","pre","def","table","item","header","align","rows","j","k","row","lheading","paragraph","escape","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","reflink","links","nolink","emStrong","maskedSrc","prevChar","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","lastIndex","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","url","prevCapZero","_backpedal","inlineText","_paragraph","_label","_title","bullet","listItemStart","_tag","_comment","normal","reflinkSearch","_punctuation","blockSkip","anyPunctuation","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","_Lexer","inlineQueue","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","_","leading","tabs","extTokenizer","startBlock","startIndex","Infinity","tempSrc","tempStart","getStartIndex","errMsg","charCodeAt","keepPrevChar","lastIndexOf","startInline","_Renderer","infostring","quote","body","listitem","checkbox","tablerow","tablecell","flags","cleanHref","out","_TextRenderer","_Parser","textRenderer","parse","parseInline","renderers","genericToken","ret","parser","headingToken","fromCharCode","parseInt","codeToken","tableToken","cell","blockquoteToken","listToken","itemBody","unshift","htmlToken","paragraphToken","textToken","escapeToken","tagToken","linkToken","imageToken","strongToken","emToken","codespanToken","delToken","_Hooks","static","Set","preprocess","markdown","postprocess","markedInstance","defaults","setOptions","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","callback","childTokens","pack","opts","ext","prevRenderer","extLevel","prop","rendererFunc","rendererKey","tokenizerFunc","tokenizerKey","prevTokenizer","hooksFunc","hooksKey","prevHook","passThroughHooks","has","packWalktokens","origOpt","warn","throwError","all","message","msg","marked","getDefaults","renderMarkdown","prot","decodeURIComponent","unescape","dompurify","highlight","tables","sanitize","smartLists","smartypants","SAFE_FOR_JQUERY","ALLOWED_TAGS","domProps","NcSelect","Markdown","required","appstoreUrl","licence","license","toUpperCase","author","getGroups","localeCompare","directives","rawName","expression","Array","isArray","_i","$$a","$$el","target","$$c","$$v","$$i","slot","missingMinOwnCloudVersion","missingMaxOwnCloudVersion","missingDependencies","dep","internal","website","bugs","documentation","user","admin","developer","description","Vue","VueLocalStorage","APPS_SECTION_ENUM","NcAppContent","AppDetails","AppList","IconStarShooting","NcAppNavigation","NcAppNavigationItem","NcAppNavigationSpacer","NcCounterBubble","NcAppSidebar","NcAppSidebarTab","NcContent","searchQuery","loadingList","categories","getCategories","updateCount","getUpdateCount","settings","appSidebar","authorName","xmlNode","subname","background","compact","changelog","release","translations","en","isSubscribed","_this$app","_this$app2","beforeMount","shouldRefetchCategories","commit","subscribe","setSearch","resetSearch","beforeDestroy","unsubscribe","hideAppDetails","openDeveloperDocumentation","open","developerDocumentation","scopedSlots","_u","$options","enabled","disabled","updates","proxy","supported","appstoreEnabled","featured","cat","ident","ratingOverall","_properties","_namespace","_isSupported","prototypeAccessors","namespace","set","_getLsKey","lsKey","_lsSet","rawValue","JSON","stringify","localStorage","setItem","_lsGet","defaultValue","defaultType","_process","this$1","removeItem","addProperty","parseFloat","array","defineProperties","vueLocalStorage","process","server","SERVER_BUILD","env","VUE_ENV","isSupported","bind","mixin","beforeCreate","config","ref","getOwnPropertyDescriptor","log","util","defineReactive","factory"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-apps-view-7418.js?v=9568db075946a8294aaf","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=62f0f115&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=f99bd334&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=ffd9a2d6&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=style&index=0&id=2f31fb7f&prod&lang=scss&scoped=true&","webpack://nextcloud/./apps/settings/src/views/Apps.vue?8e68","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue?vue&type=script&lang=js&","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/StarShooting.vue?ea51","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue?vue&type=template&id=2796c6f2&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?26fd","webpack://nextcloud/./apps/settings/src/components/AppList/AppScore.vue?1c98","webpack:///nextcloud/apps/settings/src/service/rebuild-navigation.js","webpack:///nextcloud/apps/settings/src/mixins/AppManagement.js","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/SvgFilterMixin.vue","webpack://nextcloud/./apps/settings/src/components/SvgFilterMixin.vue?5bcd","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?441f","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?a9a1","webpack://nextcloud/./apps/settings/src/components/AppList/AppItem.vue?af1e","webpack://nextcloud/./apps/settings/src/components/PrefixMixin.vue?c564","webpack:///nextcloud/apps/settings/src/components/PrefixMixin.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ff03","webpack://nextcloud/./apps/settings/src/components/AppList.vue?8acf","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ee21","webpack:///nextcloud/node_modules/marked/lib/marked.esm.js","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?5eab","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?26cf","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?d299","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AppDetails.vue","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?72cd","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?2807","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?7e45","webpack:///nextcloud/apps/settings/src/views/Apps.vue","webpack:///nextcloud/apps/settings/src/views/Apps.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/views/Apps.vue?7cfa","webpack://nextcloud/./apps/settings/src/views/Apps.vue?7b97","webpack:///nextcloud/node_modules/vue-localstorage/dist/vue-local-storage.js"],"sourcesContent":["// 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-5be7cbf9]{padding:20px}.app-details__actions-manage[data-v-5be7cbf9]{display:flex}.app-details__actions-manage input[data-v-5be7cbf9]{flex:0 1 auto;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-details__dependencies[data-v-5be7cbf9]{opacity:.7}.app-details__documentation[data-v-5be7cbf9]{padding-top:20px}.app-details__documentation a.appslink[data-v-5be7cbf9]{display:block}.app-details__description[data-v-5be7cbf9]{padding-top:20px}.force[data-v-5be7cbf9]{color:var(--color-error);border-color:var(--color-error);background:var(--color-main-background)}.force[data-v-5be7cbf9]:hover,.force[data-v-5be7cbf9]:active{color:var(--color-main-background);border-color:var(--color-error) !important;background:var(--color-error)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppDetails.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CAIC,8CAEC,YAAA,CACA,oDACC,aAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAIH,4CACC,UAAA,CAED,6CACC,gBAAA,CACA,wDACC,aAAA,CAGF,2CACC,gBAAA,CAIF,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&__dependencies {\\n\\t\\topacity: .7;\\n\\t}\\n\\t&__documentation {\\n\\t\\tpadding-top: 20px;\\n\\t\\ta.appslink {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\t&__description {\\n\\t\\tpadding-top: 20px;\\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\":\"\"}]);\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-bundle-heading[data-v-62f0f115]{display:flex;align-items:center;margin:20px 10px 20px 0}.app-bundle-header[data-v-62f0f115]{margin:0 10px 0 50px;font-weight:bold;font-size:20px;line-height:30px;color:var(--color-text-light)}.apps-store-view[data-v-62f0f115]{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\":\"\"}]);\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-icon[data-v-f99bd334]{filter:var(--background-invert-if-bright)}.app-image img[data-v-f99bd334]{width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppItem.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA\",\"sourcesContent\":[\"\\n.app-icon {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\\n.app-image img {\\n\\twidth: 100%;\\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-ffd9a2d6] h1,.settings-markdown[data-v-ffd9a2d6] h2,.settings-markdown[data-v-ffd9a2d6] h3,.settings-markdown[data-v-ffd9a2d6] h4,.settings-markdown[data-v-ffd9a2d6] h5,.settings-markdown[data-v-ffd9a2d6] h6{font-weight:600;line-height:120%;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.settings-markdown[data-v-ffd9a2d6] h1{font-size:36px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h2{font-size:28px;margin-top:48px}.settings-markdown[data-v-ffd9a2d6] h3{font-size:24px}.settings-markdown[data-v-ffd9a2d6] h4{font-size:21px}.settings-markdown[data-v-ffd9a2d6] h5{font-size:17px}.settings-markdown[data-v-ffd9a2d6] h6{font-size:var(--default-font-size)}.settings-markdown[data-v-ffd9a2d6] 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-ffd9a2d6] p code{background-color:var(--color-background-dark);border-radius:var(--border-radius);padding:.1em .3em}.settings-markdown[data-v-ffd9a2d6] li{position:relative}.settings-markdown[data-v-ffd9a2d6] ul,.settings-markdown[data-v-ffd9a2d6] ol{padding-left:10px;margin-left:10px}.settings-markdown[data-v-ffd9a2d6] ul li{list-style-type:disc}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li{list-style-type:circle}.settings-markdown[data-v-ffd9a2d6] ul>li>ul>li ul li{list-style-type:square}.settings-markdown[data-v-ffd9a2d6] blockquote{padding-left:1em;border-left:4px solid var(--color-primary-element);color:var(--color-text-maxcontrast);margin-left:0;margin-right:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Markdown.vue\"],\"names\":[],\"mappings\":\"AAGA,0OAMC,eAAA,CACA,gBAAA,CACA,eAAA,CACA,kBAAA,CACA,4BAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CACA,eAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,cAAA,CAGD,uCACC,kCAAA,CAGD,wCACC,eAAA,CACA,eAAA,CACA,6CAAA,CACA,kCAAA,CACA,iBAAA,CACA,iBAAA,CAGD,2CACC,6CAAA,CACA,kCAAA,CACA,iBAAA,CAGD,uCACC,iBAAA,CAGD,8EACC,iBAAA,CACA,gBAAA,CAGD,0CACC,oBAAA,CAGD,gDACC,sBAAA,CAGD,sDACC,sBAAA,CAGD,+CACC,gBAAA,CACA,kDAAA,CACA,mCAAA,CACA,aAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.settings-markdown::v-deep {\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n\\tfont-weight: 600;\\n\\tline-height: 120%;\\n\\tmargin-top: 24px;\\n\\tmargin-bottom: 12px;\\n\\tcolor: var(--color-main-text);\\n}\\n\\nh1 {\\n\\tfont-size: 36px;\\n\\tmargin-top: 48px;\\n}\\n\\nh2 {\\n\\tfont-size: 28px;\\n\\tmargin-top: 48px;\\n}\\n\\nh3 {\\n\\tfont-size: 24px;\\n}\\n\\nh4 {\\n\\tfont-size: 21px;\\n}\\n\\nh5 {\\n\\tfont-size: 17px;\\n}\\n\\nh6 {\\n\\tfont-size: var(--default-font-size);\\n}\\n\\npre {\\n\\twhite-space: pre;\\n\\toverflow-x: auto;\\n\\tbackground-color: var(--color-background-dark);\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: 1em 1.3em;\\n\\tmargin-bottom: 1em;\\n}\\n\\np code {\\n\\tbackground-color: var(--color-background-dark);\\n\\tborder-radius: var(--border-radius);\\n\\tpadding: .1em .3em;\\n}\\n\\nli {\\n\\tposition: relative;\\n}\\n\\nul, ol {\\n\\tpadding-left: 10px;\\n\\tmargin-left: 10px;\\n}\\n\\nul li {\\n\\tlist-style-type: disc;\\n}\\n\\nul > li > ul > li {\\n\\tlist-style-type: circle;\\n}\\n\\nul > li > ul > li ul li {\\n\\tlist-style-type: square;\\n}\\n\\nblockquote {\\n\\tpadding-left: 1em;\\n\\tborder-left: 4px solid var(--color-primary-element);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-sidebar[data-v-2f31fb7f]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-2f31fb7f]:not(.app-sidebar--without-background) .app-sidebar-header--compact .app-sidebar-header__figure{background-size:32px;filter:var(--background-invert-if-bright)}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-2f31fb7f].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-2f31fb7f].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-2f31fb7f] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-2f31fb7f] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-2f31fb7f]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-2f31fb7f] h3{font-size:20px}.app-sidebar-tabs__release[data-v-2f31fb7f] h4{font-size:17px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/Apps.vue\"],\"names\":[],\"mappings\":\"AAIE,mIACC,qBAAA,CAGD,6HACC,oBAAA,CAEA,yCAAA,CAKD,4EACC,iBAAA,CAMD,0FACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,4GACC,UAAA,CACA,WAAA,CACA,oBAAA,CAQF,sFACC,2BAAA,CACA,WAAA,CACA,6BAAA,CACA,gBAAA,CAIF,0DAEC,aAAA,CACA,gEACC,UAAA,CAMH,8DACC,OAAA,CACA,UAAA,CAIA,+CACC,2CAAA,CAKA,+CACC,cAAA,CAED,+CACC,cAAA\",\"sourcesContent\":[\"\\n.app-sidebar::v-deep {\\n\\t&:not(.app-sidebar--without-background) {\\n\\t\\t// with full screenshot, let's fill the figure\\n\\t\\t:not(.app-sidebar-header--compact) .app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t\\t// revert sidebar app icon so it is black\\n\\t\\t.app-sidebar-header--compact .app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: 32px;\\n\\n\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t}\\n\\t}\\n\\n\\t.app-sidebar-header__description {\\n\\t\\t.app-version {\\n\\t\\t\\tpadding-left: 10px;\\n\\t\\t}\\n\\t}\\n\\n\\t// default icon slot styling\\n\\t&.app-sidebar--without-background {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\t&--default-app-icon {\\n\\t\\t\\t\\twidth: 32px;\\n\\t\\t\\t\\theight: 32px;\\n\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: migrate to components\\n\\t.app-sidebar-header__desc {\\n\\t\\t// allow multi line subtitle for the license\\n\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\toverflow: visible !important;\\n\\t\\t\\theight: auto;\\n\\t\\t\\twhite-space: normal !important;\\n\\t\\t\\tline-height: 16px;\\n\\t\\t}\\n\\t}\\n\\n\\t.app-sidebar-header__action {\\n\\t\\t// align with tab content\\n\\t\\tmargin: 0 20px;\\n\\t\\tinput {\\n\\t\\t\\tmargin: 3px;\\n\\t\\t}\\n\\t}\\n}\\n\\n// Align the appNavigation toggle with the apps header toolbar\\n.app-navigation::v-deep button.app-navigation-toggle {\\n\\ttop: 8px;\\n\\tright: -8px;\\n}\\n\\n.app-sidebar-tabs__release {\\n\\th2 {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t// Overwrite changelog heading styles\\n\\t::v-deep {\\n\\t\\th3 {\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t}\\n\\t\\th4 {\\n\\t\\t\\tfont-size: 17px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcContent',{class:{ 'with-app-sidebar': _vm.app},attrs:{\"app-name\":\"settings\"}},[_c('NcAppNavigation',{class:{ 'icon-loading': _vm.loading },scopedSlots:_vm._u([{key:\"list\",fn:function(){return [_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-your-apps\",\"to\":{ name: 'apps' },\"exact\":true,\"icon\":\"icon-category-installed\",\"name\":_vm.t('settings', 'Your apps')}}),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-enabled\",\"to\":{ name: 'apps-category', params: { category: 'enabled' } },\"icon\":\"icon-category-enabled\",\"name\":_vm.$options.APPS_SECTION_ENUM.enabled}}),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-disabled\",\"to\":{ name: 'apps-category', params: { category: 'disabled' } },\"icon\":\"icon-category-disabled\",\"name\":_vm.$options.APPS_SECTION_ENUM.disabled}}),_vm._v(\" \"),(_vm.updateCount > 0)?_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-updates\",\"to\":{ name: 'apps-category', params: { category: 'updates' } },\"icon\":\"icon-download\",\"name\":_vm.$options.APPS_SECTION_ENUM.updates},scopedSlots:_vm._u([{key:\"counter\",fn:function(){return [_c('NcCounterBubble',[_vm._v(_vm._s(_vm.updateCount))])]},proxy:true}],null,false,54487302)}):_vm._e(),_vm._v(\" \"),(_vm.isSubscribed)?_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-supported\",\"to\":{ name: 'apps-category', params: { category: 'supported' } },\"name\":_vm.$options.APPS_SECTION_ENUM.supported},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconStarShooting',{attrs:{\"size\":20}})]},proxy:true}],null,false,704374136)}):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-your-bundles\",\"to\":{ name: 'apps-category', params: { category: 'app-bundles' } },\"icon\":\"icon-category-app-bundles\",\"name\":_vm.$options.APPS_SECTION_ENUM['app-bundles']}}),_vm._v(\" \"),_c('NcAppNavigationSpacer'),_vm._v(\" \"),(_vm.settings.appstoreEnabled)?[_c('NcAppNavigationItem',{attrs:{\"id\":\"app-category-featured\",\"to\":{ name: 'apps-category', params: { category: 'featured' } },\"icon\":\"icon-favorite\",\"name\":_vm.$options.APPS_SECTION_ENUM.featured}}),_vm._v(\" \"),_vm._l((_vm.categories),function(cat){return _c('NcAppNavigationItem',{key:'icon-category-' + cat.ident,attrs:{\"icon\":'icon-category-' + cat.ident,\"to\":{\n\t\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\t\tparams: { category: cat.ident },\n\t\t\t\t\t},\"name\":cat.displayName}})})]:_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"id\":\"app-developer-docs\",\"name\":_vm.t('settings', 'Developer documentation') + ' ↗'},on:{\"click\":_vm.openDeveloperDocumentation}})]},proxy:true}])}),_vm._v(\" \"),_c('NcAppContent',{staticClass:\"app-settings-content\",class:{ 'icon-loading': _vm.loadingList }},[_c('AppList',{attrs:{\"category\":_vm.category,\"app\":_vm.app,\"search\":_vm.searchQuery}})],1),_vm._v(\" \"),(_vm.id && _vm.app)?_c('NcAppSidebar',_vm._b({class:{'app-sidebar--without-background': !_vm.appSidebar.background},on:{\"close\":_vm.hideAppDetails},scopedSlots:_vm._u([(!_vm.appSidebar.background)?{key:\"header\",fn:function(){return [_c('div',{staticClass:\"app-sidebar-header__figure--default-app-icon icon-settings-dark\"})]},proxy:true}:null,{key:\"description\",fn:function(){return [(_vm.app.level === 300 || _vm.app.level === 200 || _vm.hasRating)?_c('div',{staticClass:\"app-level\"},[(_vm.app.level === 300)?_c('span',{staticClass:\"supported icon-checkmark-color\",attrs:{\"title\":_vm.t('settings', 'This app is supported via your current Nextcloud subscription.')}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Supported')))]):_vm._e(),_vm._v(\" \"),(_vm.app.level === 200)?_c('span',{staticClass:\"official icon-checkmark\",attrs:{\"title\":_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Featured')))]):_vm._e(),_vm._v(\" \"),(_vm.hasRating)?_c('AppScore',{attrs:{\"score\":_vm.app.appstoreData.ratingOverall}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-version\"},[_c('p',[_vm._v(_vm._s(_vm.app.version))])])]},proxy:true}],null,true)},'NcAppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),_c('NcAppSidebarTab',{attrs:{\"id\":\"desc\",\"icon\":\"icon-category-office\",\"name\":_vm.t('settings', 'Details'),\"order\":0}},[_c('AppDetails',{attrs:{\"app\":_vm.app}})],1),_vm._v(\" \"),(_vm.app.appstoreData && _vm.app.releases[0].translations.en.changelog)?_c('NcAppSidebarTab',{attrs:{\"id\":\"desca\",\"icon\":\"icon-category-organization\",\"name\":_vm.t('settings', 'Changelog'),\"order\":1}},_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(\" \"),(_vm.changelog(release))?_c('Markdown',{attrs:{\"text\":_vm.changelog(release)}}):_vm._e()],1)}),0):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./StarShooting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./StarShooting.vue?vue&type=script&lang=js&\"","\n\n","import { render, staticRenderFns } from \"./StarShooting.vue?vue&type=template&id=2796c6f2&\"\nimport script from \"./StarShooting.vue?vue&type=script&lang=js&\"\nexport * from \"./StarShooting.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 star-shooting-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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\":\"M18.09 11.77L19.56 18.1L14 14.74L8.44 18.1L9.9 11.77L5 7.5L11.47 6.96L14 1L16.53 6.96L23 7.5L18.09 11.77M2 12.43C2.19 12.43 2.38 12.37 2.55 12.26L5.75 10.15L4.18 8.79L1.45 10.59C.989 10.89 .861 11.5 1.16 12C1.36 12.27 1.68 12.43 2 12.43M1.16 21.55C1.36 21.84 1.68 22 2 22C2.19 22 2.38 21.95 2.55 21.84L6.66 19.13L7 17.76L7.31 16.31L1.45 20.16C.989 20.47 .861 21.09 1.16 21.55M1.45 15.38C.989 15.68 .861 16.3 1.16 16.76C1.36 17.06 1.68 17.21 2 17.21C2.19 17.21 2.38 17.16 2.55 17.05L7.97 13.5L8.24 12.31L7.32 11.5L1.45 15.38Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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!./AppScore.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!./AppScore.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=3b3081d1&\"\nimport script from \"./AppScore.vue?vue&type=script&lang=js&\"\nexport * from \"./AppScore.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('img',{staticClass:\"app-score-image\",attrs:{\"src\":_vm.scoreImage}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { emit } from '@nextcloud/event-bus'\n\nexport default () => {\n\treturn axios.get(generateOcsUrl('core/navigation', 2) + '/apps?format=json')\n\t\t.then(({ data }) => {\n\t\t\tif (data.ocs.meta.statuscode !== 200) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\temit('nextcloud:app-menu.refresh', { apps: data.ocs.data })\n\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t})\n}\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author John Molakvoæ \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 .\n *\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport rebuildNavigation from '../service/rebuild-navigation.js'\n\nexport default {\n\tcomputed: {\n\t\tappGroups() {\n\t\t\treturn this.app.groups.map(group => { return { id: group, name: group } })\n\t\t},\n\t\tinstalling() {\n\t\t\treturn this.$store.getters.loading('install')\n\t\t},\n\t\tisLoading() {\n\t\t\treturn this.app && this.$store.getters.loading(this.app.id)\n\t\t},\n\t\tenableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Download and enable')\n\t\t\t}\n\t\t\treturn t('settings', 'Enable')\n\t\t},\n\t\tforceEnableButtonText() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'Allow untested app')\n\t\t\t}\n\t\t\treturn t('settings', 'Allow untested app')\n\t\t},\n\t\tenableButtonTooltip() {\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tforceEnableButtonTooltip() {\n\t\t\tconst base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn base + ' ' + t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn base\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tif (this.app && this.app.groups && this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasyncFindGroup(query) {\n\t\t\treturn this.$store.dispatch('getGroups', { search: query, limit: 5, offset: 0 })\n\t\t},\n\t\tisLimitedToGroups(app) {\n\t\t\tif (this.app.groups.length || this.groupCheckedAppsData) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tsetGroupLimit() {\n\t\t\tif (!this.groupCheckedAppsData) {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: [] })\n\t\t\t}\n\t\t},\n\t\tcanLimitToGroups(app) {\n\t\t\tif ((app.types && app.types.includes('filesystem'))\n\t\t\t\t\t|| app.types.includes('prelogin')\n\t\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t\t|| app.types.includes('prevent_group_restriction')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\taddGroupLimitation(groupArray) {\n\t\t\tconst group = groupArray.pop()\n\t\t\tconst groups = this.app.groups.concat([]).concat([group.id])\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tconst currentGroups = this.app.groups.concat([])\n\t\t\tconst index = currentGroups.indexOf(group.id)\n\t\t\tif (index > -1) {\n\t\t\t\tcurrentGroups.splice(index, 1)\n\t\t\t}\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tthis.$store.dispatch('forceEnableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tenable(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tdisable(appId) {\n\t\t\tthis.$store.dispatch('disableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tremove(appId) {\n\t\t\tthis.$store.dispatch('uninstallApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tinstall(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tupdate(appId) {\n\t\t\tthis.$store.dispatch('updateApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t},\n}\n","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&\"","\n\n\n","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\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=f99bd334&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=f99bd334&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=f99bd334&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=f99bd334&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 \"f99bd334\",\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` : `li`,{tag:\"component\",staticClass:\"section\",class:{ selected: _vm.isSelected },on:{\"click\":_vm.showAppDetails}},[_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-image app-image-icon\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-icon`)},on:{\"click\":_vm.showAppDetails}},[((_vm.listView && !_vm.app.preview) || (!_vm.listView && !_vm.screenshotLoaded))?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.listView && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\" \"),(!_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"alt\":\"\"}}):_vm._e()]),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-name\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-name`)},on:{\"click\":_vm.showAppDetails}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\")]),_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`)}},[(_vm.app.level === 300)?_c('span',{staticClass:\"supported icon-checkmark-color\",attrs:{\"title\":_vm.t('settings', 'This app is supported via your current Nextcloud subscription.'),\"aria-label\":_vm.t('settings', 'This app is supported via your current Nextcloud subscription.')}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Supported')))]):_vm._e(),_vm._v(\" \"),(_vm.app.level === 200)?_c('span',{staticClass:\"official icon-checkmark\",attrs:{\"title\":_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.'),\"aria-label\":_vm.t('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Featured')))]):_vm._e(),_vm._v(\" \"),(_vm.hasRating && !_vm.listView)?_c('AppScore',{attrs:{\"score\":_vm.app.score}}):_vm._e()],1),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"actions\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-actions`)}},[(_vm.app.error)?_c('div',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.error)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('div',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),(_vm.app.update)?_c('NcButton',{attrs:{\"type\":\"primary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.update(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Update to {update}', {update:_vm.app.update}))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('NcButton',{staticClass:\"uninstall\",attrs:{\"type\":\"tertiary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.remove(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Remove'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('NcButton',{attrs:{\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.disable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings','Disable'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('NcButton',{attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"type\":\"primary\",\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.enable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.enableButtonText)+\"\\n\\t\\t\")]):(!_vm.app.active)?_c('NcButton',{attrs:{\"title\":_vm.forceEnableButtonTooltip,\"aria-label\":_vm.forceEnableButtonTooltip,\"type\":\"secondary\",\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.forceEnable(_vm.app.id)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.forceEnableButtonText)+\"\\n\\t\\t\")]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./PrefixMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./PrefixMixin.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","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\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!./AppList.vue?vue&type=style&index=0&id=62f0f115&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=62f0f115&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=62f0f115&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=62f0f115&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 \"62f0f115\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app-content-inner\"}},[_c('div',{staticClass:\"apps-list\",class:{installed: (_vm.useBundleView || _vm.useListView), store: _vm.useAppStoreView},attrs:{\"id\":\"apps-list\"}},[(_vm.useListView)?[(_vm.showUpdateAll)?_c('div',{staticClass:\"toolbar\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.n('settings', '%n app has an update available', '%n apps have an update available', _vm.counter))+\"\\n\\t\\t\\t\\t\"),(_vm.showUpdateAll)?_c('NcButton',{attrs:{\"id\":\"app-list-update-all\",\"type\":\"primary\"},on:{\"click\":_vm.updateAll}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('settings', 'Update', 'Update all', _vm.counter))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.showUpdateAll)?_c('div',{staticClass:\"toolbar\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'All apps are up-to-date.'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"apps-list-container\",attrs:{\"name\":\"app-list\",\"tag\":\"table\"}},[_c('tr',{key:\"app-list-view-header\",staticClass:\"apps-header\"},[_c('th',{staticClass:\"app-image\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-name\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-version\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-level\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',{staticClass:\"actions\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.apps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})})],2)]:_vm._e(),_vm._v(\" \"),(_vm.useBundleView)?_c('table',{staticClass:\"apps-list-container\"},[_c('tr',{key:\"app-list-view-header\",staticClass:\"apps-header\"},[_c('th',{staticClass:\"app-image\",attrs:{\"id\":\"app-table-col-icon\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Icon')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-name\",attrs:{\"id\":\"app-table-col-name\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Name')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-version\",attrs:{\"id\":\"app-table-col-version\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Version')))])]),_vm._v(\" \"),_c('th',{staticClass:\"app-level\",attrs:{\"id\":\"app-table-col-level\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Level')))])]),_vm._v(\" \"),_c('th',{staticClass:\"actions\",attrs:{\"id\":\"app-table-col-actions\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Actions')))])])]),_vm._v(\" \"),_vm._l((_vm.bundles),function(bundle){return [_c('tr',{key:bundle.id},[_c('th',{attrs:{\"id\":`app-table-rowgroup-${bundle.id}`,\"colspan\":\"5\",\"scope\":\"rowgroup\"}},[_c('div',{staticClass:\"app-bundle-heading\"},[_c('span',{staticClass:\"app-bundle-header\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(bundle.name)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){return _vm.toggleBundle(bundle.id)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', _vm.bundleToggleText(bundle.id)))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])]),_vm._v(\" \"),_vm._l((_vm.bundleApps(bundle.id)),function(app){return _c('AppItem',{key:bundle.id + app.id,attrs:{\"use-bundle-view\":true,\"headers\":`app-table-rowgroup-${bundle.id}`,\"app\":app,\"category\":_vm.category}})})]})],2):_vm._e(),_vm._v(\" \"),(_vm.useAppStoreView)?_c('ul',{staticClass:\"apps-store-view\"},_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 installed\",attrs:{\"id\":\"apps-list-search\"}},[_c('div',{staticClass:\"apps-list-container\"},[(_vm.search !== '' && _vm.searchApps.length > 0)?[_c('div',{staticClass:\"section\"},[_c('div'),_vm._v(\" \"),_c('td',{attrs:{\"colspan\":\"5\"}},[_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'Results from other categories')))])])]),_vm._v(\" \"),_vm._l((_vm.searchApps),function(app){return _c('AppItem',{key:app.id,attrs:{\"app\":app,\"category\":_vm.category}})})]:_vm._e()],2)]),_vm._v(\" \"),(_vm.search !== '' && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0)?_c('div',{staticClass:\"emptycontent emptycontent-search\",attrs:{\"id\":\"apps-list-empty\"}},[_c('div',{staticClass:\"icon-settings-dark\",attrs:{\"id\":\"app-list-empty-icon\"}}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'No apps found for your version')))])]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"searchresults\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * marked v9.0.3 - a markdown parser\n * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = typeof val === 'object' && 'source' in val ? val.source : val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n // TODO: Fix this rules type\n rules;\n lexer;\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline._escapes, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n list.items[list.items.length - 1].text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline._escapes, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline._escapes, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const item = {\n type: 'table',\n raw: cap[0],\n header: splitCells(cap[1]).map(c => {\n return { text: c, tokens: [] };\n }),\n align: cap[2].replace(/^\\||\\| *$/g, '').split('|'),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n if (item.header.length === item.align.length) {\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n const align = item.align[i];\n if (align) {\n if (/^ *-+: *$/.test(align)) {\n item.align[i] = 'right';\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align[i] = 'center';\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align[i] = 'left';\n }\n else {\n item.align[i] = null;\n }\n }\n }\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => {\n return { text: c, tokens: [] };\n });\n }\n // parse child tokens inside headers and cells\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = this.lexer.inline(item.header[j].text);\n }\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = this.lexer.inline(row[k].text);\n }\n }\n return item;\n }\n }\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^
    /i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + match[0].length - 1);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const raw = [...src].slice(0, lLength + match.index + rLength + 1).join('');\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\n// Not all rules are defined in the object literal\n// @ts-expect-error\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^(?!bull )((?:.|\\n(?!\\s*?\\n|bull ))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nblock.lheading = edit(block.lheading)\n .replace(/bull/g, block.bullet) // lists can interrupt\n .getRegex();\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nblock.normal = { ...block };\n/**\n * GFM Block Grammar\n */\nblock.gfm = {\n ...block.normal,\n table: '^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n};\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nblock.pedantic = {\n ...block.normal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\n// Not all rules are defined in the object literal\n// @ts-expect-error\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // | Skip orphan inside strong | Consume to delim | (1) #*** | (2) a***#, a*** | (3) #***a, ***a | (4) ***# | (5) #***# | (6) a***a\n rDelimAst: /^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\`^|~';\ninline.punctuation = edit(inline.punctuation, 'u').replace(/punctuation/g, inline._punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\ninline.anyPunctuation = /\\\\[punct]/g;\ninline._escapes = /\\\\([punct])/g;\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim, 'u')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline.anyPunctuation = edit(inline.anyPunctuation, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline._escapes = edit(inline._escapes, 'gu')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\ninline.normal = { ...inline };\n/**\n * Pedantic Inline Grammar\n */\ninline.pedantic = {\n ...inline.normal,\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\ninline.gfm = {\n ...inline.normal,\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '
    '\n                + (escaped ? code : escape(code, true))\n                + '
    \\n';\n }\n return '
    '\n            + (escaped ? code : escape(code, true))\n            + '
    \\n';\n }\n blockquote(quote) {\n return `
    \\n${quote}
    \\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `${text}\\n`;\n }\n hr() {\n return '
    \\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n listitem(text, task, checked) {\n return `
  • ${text}
  • \\n`;\n }\n checkbox(checked) {\n return '';\n }\n paragraph(text) {\n return `

    ${text}

    \\n`;\n }\n table(header, body) {\n if (body)\n body = `${body}`;\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n tablerow(content) {\n return `\\n${content}\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `${text}`;\n }\n em(text) {\n return `${text}`;\n }\n codespan(text) {\n return `${text}`;\n }\n br() {\n return '
    ';\n }\n del(text) {\n return `${text}`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    ';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n parser = _Parser.parse;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n lexer = _Lexer.lex;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n values = values.concat(this.walkTokens(genericToken[childTokens], callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n const rendererFunc = pack.renderer[prop];\n const rendererKey = prop;\n const prevRenderer = renderer[rendererKey];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererKey] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n const tokenizerFunc = pack.tokenizer[prop];\n const tokenizerKey = prop;\n const prevTokenizer = tokenizer[tokenizerKey];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[tokenizerKey] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n const hooksFunc = pack.hooks[prop];\n const hooksKey = prop;\n const prevHook = hooks[hooksKey];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksKey] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n hooks[hooksKey] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n const tokens = lexer(src, opt);\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '

    An error occurred:

    '\n                    + escape(e.message + '', true)\n                    + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\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\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!./Markdown.vue?vue&type=style&index=0&id=ffd9a2d6&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=ffd9a2d6&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=ffd9a2d6&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=ffd9a2d6&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 \"ffd9a2d6\",\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/vue-loader/lib/index.js??vue-loader-options!./AppDetails.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!./AppDetails.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!./AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppDetails.vue?vue&type=template&id=5be7cbf9&scoped=true&\"\nimport script from \"./AppDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDetails.vue?vue&type=style&index=0&id=5be7cbf9&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 \"5be7cbf9\",\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-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\":_vm.prefix('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\":_vm.prefix('groups_enable', _vm.app.id)}},[_vm._v(_vm._s(_vm.t('settings', 'Limit to groups')))]),_vm._v(\" \"),_c('input',{staticClass:\"group_select\",attrs:{\"type\":\"hidden\",\"title\":_vm.t('settings', 'All'),\"value\":\"\"}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"limitToGroups\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Limit app usage to groups')))])]),_vm._v(\" \"),(_vm.isLimitedToGroups(_vm.app))?_c('NcSelect',{attrs:{\"input-id\":\"limitToGroups\",\"options\":_vm.groups,\"value\":_vm.appGroups,\"limit\":5,\"label\":\"name\",\"multiple\":true,\"close-on-select\":false},on:{\"option:selected\":_vm.addGroupLimitation,\"option:deselected\":_vm.removeGroupLimitation,\"search\":_vm.asyncFindGroup}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings', 'No results')))])]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"app-details__actions-manage\"},[(_vm.app.update)?_c('input',{staticClass:\"update primary\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Update to {version}', { version: _vm.app.update }),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.update(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.canUnInstall)?_c('input',{staticClass:\"uninstall\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings', 'Remove'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.remove(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(_vm.app.active)?_c('input',{staticClass:\"enable\",attrs:{\"type\":\"button\",\"value\":_vm.t('settings','Disable'),\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.disable(_vm.app.id)}}}):_vm._e(),_vm._v(\" \"),(!_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible))?_c('input',{staticClass:\"enable primary\",attrs:{\"title\":_vm.enableButtonTooltip,\"aria-label\":_vm.enableButtonTooltip,\"type\":\"button\",\"value\":_vm.enableButtonText,\"disabled\":!_vm.app.canInstall || _vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.enable(_vm.app.id)}}}):(!_vm.app.active && !_vm.app.canInstall)?_c('input',{staticClass:\"enable force\",attrs:{\"title\":_vm.forceEnableButtonTooltip,\"aria-label\":_vm.forceEnableButtonTooltip,\"type\":\"button\",\"value\":_vm.forceEnableButtonText,\"disabled\":_vm.installing || _vm.isLoading},on:{\"click\":function($event){return _vm.forceEnable(_vm.app.id)}}}):_vm._e()])]),_vm._v(\" \"),_c('ul',{staticClass:\"app-details__dependencies\"},[(_vm.app.missingMinOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.app.missingMaxOwnCloudVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.app.canInstall)?_c('li',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:'))+\"\\n\\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\"+_vm._s(dep)+\"\\n\\t\\t\\t\\t\")])}),0)]):_vm._e()]),_vm._v(\" \"),_c('p',{staticClass:\"app-details__documentation\"},[(!_vm.app.internal)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.appstoreUrl,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'View in store'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.website)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.website,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Visit website'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.bugs)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.bugs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Report a bug'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.user)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.user,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'User documentation'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.admin)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.admin,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Admin documentation'))+\" ↗\")]):_vm._e(),_vm._v(\" \"),(_vm.app.documentation && _vm.app.documentation.developer)?_c('a',{staticClass:\"appslink\",attrs:{\"href\":_vm.app.documentation.developer,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(_vm._s(_vm.t('settings', 'Developer documentation'))+\" ↗\")]):_vm._e()]),_vm._v(\" \"),_c('Markdown',{staticClass:\"app-details__description\",attrs:{\"text\":_vm.app.description}})],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!./Apps.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!./Apps.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!./Apps.vue?vue&type=style&index=0&id=2f31fb7f&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=style&index=0&id=2f31fb7f&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Apps.vue?vue&type=template&id=2f31fb7f&scoped=true&\"\nimport script from \"./Apps.vue?vue&type=script&lang=js&\"\nexport * from \"./Apps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Apps.vue?vue&type=style&index=0&id=2f31fb7f&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 \"2f31fb7f\",\n null\n \n)\n\nexport default component.exports","/**\n * vue-local-storage v0.6.0\n * (c) 2017 Alexander Avakov\n * @license MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.VueLocalStorage = factory());\n}(this, (function () { 'use strict';\n\nvar VueLocalStorage = function VueLocalStorage () {\n this._properties = {};\n this._namespace = '';\n this._isSupported = true;\n};\n\nvar prototypeAccessors = { namespace: {} };\n\n/**\n * Namespace getter.\n *\n * @returns {string}\n */\nprototypeAccessors.namespace.get = function () {\n return this._namespace\n};\n\n/**\n * Namespace setter.\n *\n * @param {string} value\n */\nprototypeAccessors.namespace.set = function (value) {\n this._namespace = value ? (value + \".\") : '';\n};\n\n/**\n * Concatenates localStorage key with namespace prefix.\n *\n * @param {string} lsKey\n * @returns {string}\n * @private\n */\nVueLocalStorage.prototype._getLsKey = function _getLsKey (lsKey) {\n return (\"\" + (this._namespace) + lsKey)\n};\n\n/**\n * Set a value to localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @param {*} rawValue\n * @param {*} type\n * @private\n */\nVueLocalStorage.prototype._lsSet = function _lsSet (lsKey, rawValue, type) {\n var key = this._getLsKey(lsKey);\n var value = type && [Array, Object].includes(type)\n ? JSON.stringify(rawValue)\n : rawValue;\n\n window.localStorage.setItem(key, value);\n};\n\n/**\n * Get value from localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @returns {any}\n * @private\n */\nVueLocalStorage.prototype._lsGet = function _lsGet (lsKey) {\n var key = this._getLsKey(lsKey);\n\n return window.localStorage[key]\n};\n\n/**\n * Get value from localStorage\n *\n * @param {String} lsKey\n * @param {*} defaultValue\n * @param {*} defaultType\n * @returns {*}\n */\nVueLocalStorage.prototype.get = function get (lsKey, defaultValue, defaultType) {\n var this$1 = this;\n if ( defaultValue === void 0 ) defaultValue = null;\n if ( defaultType === void 0 ) defaultType = String;\n\n if (!this._isSupported) {\n return null\n }\n\n if (this._lsGet(lsKey)) {\n var type = defaultType;\n\n for (var key in this$1._properties) {\n if (key === lsKey) {\n type = this$1._properties[key].type;\n break\n }\n }\n\n return this._process(type, this._lsGet(lsKey))\n }\n\n return defaultValue !== null ? defaultValue : null\n};\n\n/**\n * Set localStorage value\n *\n * @param {String} lsKey\n * @param {*} value\n * @returns {*}\n */\nVueLocalStorage.prototype.set = function set (lsKey, value) {\n var this$1 = this;\n\n if (!this._isSupported) {\n return null\n }\n\n for (var key in this$1._properties) {\n var type = this$1._properties[key].type;\n\n if ((key === lsKey)) {\n this$1._lsSet(lsKey, value, type);\n\n return value\n }\n }\n\n this._lsSet(lsKey, value);\n\n return value\n};\n\n/**\n * Remove value from localStorage\n *\n * @param {String} lsKey\n */\nVueLocalStorage.prototype.remove = function remove (lsKey) {\n if (!this._isSupported) {\n return null\n }\n\n return window.localStorage.removeItem(lsKey)\n};\n\n/**\n * Add new property to localStorage\n *\n * @param {String} key\n * @param {function} type\n * @param {*} defaultValue\n */\nVueLocalStorage.prototype.addProperty = function addProperty (key, type, defaultValue) {\n if ( defaultValue === void 0 ) defaultValue = undefined;\n\n type = type || String;\n\n this._properties[key] = { type: type };\n\n if (!this._lsGet(key) && defaultValue !== null) {\n this._lsSet(key, defaultValue, type);\n }\n};\n\n/**\n * Process the value before return it from localStorage\n *\n * @param {String} type\n * @param {*} value\n * @returns {*}\n * @private\n */\nVueLocalStorage.prototype._process = function _process (type, value) {\n switch (type) {\n case Boolean:\n return value === 'true'\n case Number:\n return parseFloat(value)\n case Array:\n try {\n var array = JSON.parse(value);\n\n return Array.isArray(array) ? array : []\n } catch (e) {\n return []\n }\n case Object:\n try {\n return JSON.parse(value)\n } catch (e) {\n return {}\n }\n default:\n return value\n }\n};\n\nObject.defineProperties( VueLocalStorage.prototype, prototypeAccessors );\n\nvar vueLocalStorage = new VueLocalStorage();\n\nvar index = {\n /**\n * Install vue-local-storage plugin\n *\n * @param {Vue} Vue\n * @param {Object} options\n */\n install: function (Vue, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof process !== 'undefined' &&\n (\n process.server ||\n process.SERVER_BUILD ||\n (process.env && process.env.VUE_ENV === 'server')\n )\n ) {\n return\n }\n\n var isSupported = true;\n\n try {\n var test = '__vue-localstorage-test__';\n\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n } catch (e) {\n isSupported = false;\n vueLocalStorage._isSupported = false;\n\n console.error('Local storage is not supported');\n }\n\n var name = options.name || 'localStorage';\n var bind = options.bind;\n\n if (options.namespace) {\n vueLocalStorage.namespace = options.namespace;\n }\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n var this$1 = this;\n\n if (!isSupported) {\n return\n }\n\n if (this.$options[name]) {\n Object.keys(this.$options[name]).forEach(function (key) {\n var config = this$1.$options[name][key];\n var ref = [config.type, config.default];\n var type = ref[0];\n var defaultValue = ref[1];\n\n vueLocalStorage.addProperty(key, type, defaultValue);\n\n var existingProp = Object.getOwnPropertyDescriptor(vueLocalStorage, key);\n\n if (!existingProp) {\n var prop = {\n get: function () { return Vue.localStorage.get(key, defaultValue); },\n set: function (val) { return Vue.localStorage.set(key, val); },\n configurable: true\n };\n\n Object.defineProperty(vueLocalStorage, key, prop);\n Vue.util.defineReactive(vueLocalStorage, key, defaultValue);\n } else if (!Vue.config.silent) {\n console.log((key + \": is already defined and will be reused\"));\n }\n\n if ((bind || config.bind) && config.bind !== false) {\n this$1.$options.computed = this$1.$options.computed || {};\n\n if (!this$1.$options.computed[key]) {\n this$1.$options.computed[key] = {\n get: function () { return Vue.localStorage[key]; },\n set: function (val) { Vue.localStorage[key] = val; }\n };\n }\n }\n });\n }\n }\n });\n\n Vue[name] = vueLocalStorage;\n Vue.prototype[(\"$\" + name)] = vueLocalStorage;\n }\n};\n\nreturn index;\n\n})));\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","computed","scoreImage","imageName","Math","round","score","imagePath","axios","get","generateOcsUrl","then","_ref","data","ocs","meta","statuscode","emit","apps","window","dispatchEvent","Event","appGroups","app","groups","map","group","installing","$store","getters","loading","isLoading","enableButtonText","needsDownload","t","forceEnableButtonText","enableButtonTooltip","forceEnableButtonTooltip","base","groupCheckedAppsData","mounted","length","methods","asyncFindGroup","query","dispatch","search","limit","offset","isLimitedToGroups","setGroupLimit","appId","canLimitToGroups","types","includes","addGroupLimitation","groupArray","pop","concat","removeGroupLimitation","currentGroups","index","indexOf","splice","forceEnable","response","rebuildNavigation","catch","error","showError","enable","disable","remove","install","update","filterId","filterUrl","random","toString","substring","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","components","AppScore","NcButton","mixins","AppManagement","SvgFilterMixin","category","listView","Boolean","useBundleView","headers","isSelected","scrolled","screenshotLoaded","hasRating","appstoreData","ratingNumOverall","dataItemTag","watch","_this","$route","params","releases","screenshot","image","Image","onload","e","src","watchers","showAppDetails","event","_this2","_callee","_context","currentTarget","tagName","$router","t0","args","arguments","apply","prefix","content","getDataItemHeaders","columnName","join","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","tag","class","selected","preview","summary","version","level","stopPropagation","canUnInstall","active","canInstall","isCompatible","AppItem","PrefixMixin","counter","filter","hasPendingUpdate","showUpdateAll","useListView","getAllApps","toLowerCase","sort","a","b","sortStringA","sortStringB","OC","Util","naturalSortCompare","installed","bundles","appstore","getServerData","bundle","bundleApps","bundleIds","searchApps","_this3","find","_app","useAppStoreView","allBundlesEnabled","_this4","bundleToggleText","_this5","toggleBundle","disableBundle","enableBundle","console","Notification","show","updateAll","_this6","pLimit","store","n","_l","_defaults","breaks","extensions","gfm","hooks","pedantic","renderer","silent","tokenizer","walkTokens","changeDefaults","newDefaults","escapeTest","escapeReplace","RegExp","source","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","html","encode","test","replace","unescapeTest","caret","edit","regex","opt","getRegex","cleanUrl","href","encodeURI","noopTest","exec","splitCells","tableRow","count","cells","match","str","escaped","curr","split","trim","shift","rtrim","c","invert","l","suffLen","currChar","outputLink","cap","link","raw","lexer","text","inLink","token","tokens","inlineTokens","_Tokenizer","rules","space","block","newline","code","codeBlockStyle","fences","matchIndentToCode","indentToCode","node","matchIndentInNode","indentInNode","indentCodeCompensation","lang","inline","_escapes","heading","trimmed","depth","hr","blockquote","top","blockTokens","list","bull","isordered","ordered","start","loose","items","itemRegex","itemContents","endsWithBlankLine","endEarly","line","repeat","nextLine","indent","trimStart","blankLine","nextBulletRegex","min","hrRegex","fencesBeginRegex","headingBeginRegex","rawLine","ischecked","istask","task","checked","trimEnd","spacers","hasMultipleLineBreaks","some","pre","def","table","item","header","align","rows","j","k","row","lheading","paragraph","escape","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","reflink","links","nolink","emStrong","maskedSrc","prevChar","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","lastIndex","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","url","prevCapZero","_backpedal","inlineText","_paragraph","_label","_title","bullet","listItemStart","_tag","_comment","normal","reflinkSearch","_punctuation","blockSkip","anyPunctuation","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","_Lexer","inlineQueue","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","_","leading","tabs","extTokenizer","startBlock","startIndex","Infinity","tempSrc","tempStart","getStartIndex","errMsg","charCodeAt","keepPrevChar","lastIndexOf","startInline","_Renderer","infostring","quote","body","listitem","checkbox","tablerow","tablecell","flags","cleanHref","out","_TextRenderer","_Parser","textRenderer","parse","parseInline","renderers","genericToken","ret","parser","headingToken","fromCharCode","parseInt","codeToken","tableToken","cell","blockquoteToken","listToken","itemBody","unshift","htmlToken","paragraphToken","textToken","escapeToken","tagToken","linkToken","imageToken","strongToken","emToken","codespanToken","delToken","_Hooks","static","Set","preprocess","markdown","postprocess","markedInstance","defaults","setOptions","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","callback","childTokens","pack","opts","ext","prevRenderer","extLevel","prop","rendererFunc","rendererKey","tokenizerFunc","tokenizerKey","prevTokenizer","hooksFunc","hooksKey","prevHook","passThroughHooks","has","packWalktokens","origOpt","warn","throwError","all","message","msg","marked","getDefaults","renderMarkdown","prot","decodeURIComponent","unescape","dompurify","highlight","tables","sanitize","smartLists","smartypants","SAFE_FOR_JQUERY","ALLOWED_TAGS","domProps","NcSelect","Markdown","required","appstoreUrl","licence","license","toUpperCase","author","getGroups","localeCompare","directives","rawName","expression","Array","isArray","_i","$$a","$$el","target","$$c","$$v","$$i","slot","missingMinOwnCloudVersion","missingMaxOwnCloudVersion","missingDependencies","dep","internal","website","bugs","documentation","user","admin","developer","description","Vue","VueLocalStorage","APPS_SECTION_ENUM","NcAppContent","AppDetails","AppList","IconStarShooting","NcAppNavigation","NcAppNavigationItem","NcAppNavigationSpacer","NcCounterBubble","NcAppSidebar","NcAppSidebarTab","NcContent","searchQuery","loadingList","categories","getCategories","updateCount","getUpdateCount","settings","appSidebar","authorName","xmlNode","subname","background","compact","changelog","release","translations","en","isSubscribed","_this$app","_this$app2","beforeMount","shouldRefetchCategories","commit","subscribe","setSearch","resetSearch","beforeDestroy","unsubscribe","hideAppDetails","openDeveloperDocumentation","open","developerDocumentation","scopedSlots","_u","$options","enabled","disabled","updates","proxy","supported","appstoreEnabled","featured","cat","ident","ratingOverall","_properties","_namespace","_isSupported","prototypeAccessors","namespace","set","_getLsKey","lsKey","_lsSet","rawValue","JSON","stringify","localStorage","setItem","_lsGet","defaultValue","defaultType","_process","this$1","removeItem","addProperty","parseFloat","array","defineProperties","vueLocalStorage","process","server","SERVER_BUILD","env","VUE_ENV","isSupported","bind","mixin","beforeCreate","config","ref","getOwnPropertyDescriptor","log","util","defineReactive","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-vue-settings-apps-users-management.js b/dist/settings-vue-settings-apps-users-management.js index bdbbdcab1dd69..c107eb406b8d5 100644 --- a/dist/settings-vue-settings-apps-users-management.js +++ b/dist/settings-vue-settings-apps-users-management.js @@ -1,3 +1,3 @@ /*! For license information please see settings-vue-settings-apps-users-management.js.LICENSE.txt */ -!function(){var e,r,o,i={92652:function(t,e,r){"use strict";r.d(e,{J:function(){return o}});var n=r(31352),o=Object.freeze({enabled:(0,n.Iu)("settings","Active apps"),disabled:(0,n.Iu)("settings","Disabled apps"),updates:(0,n.Iu)("settings","Updates"),"app-bundles":(0,n.Iu)("settings","App bundles"),featured:(0,n.Iu)("settings","Featured apps"),supported:(0,n.Iu)("settings","Supported apps")})},38605:function(t,e,r){"use strict";var n=r(17499);e.Z=(0,n.IY)().setApp("settings").detectUser().build()},97268:function(e,r,o){"use strict";var i=o(20144),a=o(2324),u=o(83678),s={name:"App",beforeMount:function(){null!==document.getElementById("serverData")&&this.$store.commit("setServerData",JSON.parse(document.getElementById("serverData").dataset.server))}},c=(0,o(51900).Z)(s,(function(){return(0,this._self._c)("router-view")}),[],!1,null,null,null).exports,f=o(25108);function p(t,e){for(var r in e)t[r]=e[r];return t}var l=/[!'()*]/g,d=function(t){return"%"+t.charCodeAt(0).toString(16)},h=/%2C/g,m=function(t){return encodeURIComponent(t).replace(l,d).replace(h,",")};function g(t){try{return decodeURIComponent(t)}catch(t){}return t}var v=function(t){return null==t||"object"==typeof t?t:String(t)};function y(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach((function(t){var r=t.replace(/\+/g," ").split("="),n=g(r.shift()),o=r.length>0?g(r.join("=")):null;void 0===e[n]?e[n]=o:Array.isArray(e[n])?e[n].push(o):e[n]=[e[n],o]})),e):e}function b(t){var e=t?Object.keys(t).map((function(e){var r=t[e];if(void 0===r)return"";if(null===r)return m(e);if(Array.isArray(r)){var n=[];return r.forEach((function(t){void 0!==t&&(null===t?n.push(m(e)):n.push(m(e)+"="+m(t)))})),n.join("&")}return m(e)+"="+m(r)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var w=/\/?$/;function A(t,e,r,n){var o=n&&n.options.stringifyQuery,i=e.query||{};try{i=L(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:U(e,o),matched:t?x(t):[]};return r&&(a.redirectedFrom=U(r,o)),Object.freeze(a)}function L(t){if(Array.isArray(t))return t.map(L);if(t&&"object"==typeof t){var e={};for(var r in t)e[r]=L(t[r]);return e}return t}var E=A(null,{path:"/"});function x(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function U(t,e){var r=t.path,n=t.query;void 0===n&&(n={});var o=t.hash;return void 0===o&&(o=""),(r||"/")+(e||b)(n)+o}function I(t,e,r){return e===E?t===e:!!e&&(t.path&&e.path?t.path.replace(w,"")===e.path.replace(w,"")&&(r||t.hash===e.hash&&O(t.query,e.query)):!(!t.name||!e.name)&&t.name===e.name&&(r||t.hash===e.hash&&O(t.query,e.query)&&O(t.params,e.params)))}function O(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var r=Object.keys(t).sort(),n=Object.keys(e).sort();return r.length===n.length&&r.every((function(r,o){var i=t[r];if(n[o]!==r)return!1;var a=e[r];return null==i||null==a?i===a:"object"==typeof i&&"object"==typeof a?O(i,a):String(i)===String(a)}))}function P(t){for(var e=0;e=0&&(e=t.slice(n),t=t.slice(0,n));var o=t.indexOf("?");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{path:t,query:r,hash:e}}(o.path||""),c=e&&e.path||"/",f=s.path?k(s.path,c,r||o.append):c,l=function(t,e,r){void 0===e&&(e={});var n,o=r||y;try{n=o(t||"")}catch(t){n={}}for(var i in e){var a=e[i];n[i]=Array.isArray(a)?a.map(v):v(a)}return n}(s.query,o.query,n&&n.options.parseQuery),d=o.hash||s.hash;return d&&"#"!==d.charAt(0)&&(d="#"+d),{_normalized:!0,path:f,query:l,hash:d}}var K,Q=function(){},W={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,r=this.$router,n=this.$route,o=r.resolve(this.to,n,this.append),i=o.location,a=o.route,u=o.href,s={},c=r.options.linkActiveClass,f=r.options.linkExactActiveClass,l=null==c?"router-link-active":c,d=null==f?"router-link-exact-active":f,h=null==this.activeClass?l:this.activeClass,m=null==this.exactActiveClass?d:this.exactActiveClass,g=a.redirectedFrom?A(null,J(a.redirectedFrom),null,r):a;s[m]=I(n,g,this.exactPath),s[h]=this.exact||this.exactPath?s[m]:function(t,e){return 0===t.path.replace(w,"/").indexOf(e.path.replace(w,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var r in e)if(!(r in t))return!1;return!0}(t.query,e.query)}(n,g);var v=s[m]?this.ariaCurrentValue:null,y=function(t){X(t)&&(e.replace?r.replace(i,Q):r.push(i,Q))},b={click:X};Array.isArray(this.event)?this.event.forEach((function(t){b[t]=y})):b[this.event]=y;var L={class:s},E=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:u,route:a,navigate:y,isActive:s[h],isExactActive:s[m]});if(E){if(1===E.length)return E[0];if(E.length>1||!E.length)return 0===E.length?t():t("span",{},E)}if("a"===this.tag)L.on=b,L.attrs={href:u,"aria-current":v};else{var x=tt(this.$slots.default);if(x){x.isStatic=!1;var U=x.data=p({},x.data);for(var O in U.on=U.on||{},U.on){var P=U.on[O];O in b&&(U.on[O]=Array.isArray(P)?P:[P])}for(var _ in b)_ in U.on?U.on[_].push(b[_]):U.on[_]=y;var C=x.data.attrs=p({},x.data.attrs);C.href=u,C["aria-current"]=v}else L.on=b}return t(this.tag,L,this.$slots.default)}};function X(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function tt(t){if(t)for(var e,r=0;r-1&&(s.params[l]=r.params[l]);return s.path=Y(f.path,s.params),u(f,s,a)}if(s.path){s.params={};for(var d=0;d-1}function kt(t,e){return Ct(t)&&t._isRouter&&(null==e||t.type===e)}function Rt(t,e,r){var n=function(o){o>=t.length?r():t[o]?e(t[o],(function(){n(o+1)})):n(o+1)};n(0)}function St(t,e){return jt(t.map((function(t){return Object.keys(t.components).map((function(r){return e(t.components[r],t.instances[r],t,r)}))})))}function jt(t){return Array.prototype.concat.apply([],t)}var Tt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ft(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}var Nt=function(t,e){this.router=t,this.base=function(t){if(!t)if(et){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}(e),this.current=E,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Gt(t,e,r,n){var o=St(t,(function(t,n,o,i){var a=function(t,e){return"function"!=typeof t&&(t=K.extend(t)),t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return r(t,n,o,i)})):r(a,n,o,i)}));return jt(n?o.reverse():o)}function $t(t,e){if(e)return function(){return t.apply(e,arguments)}}Nt.prototype.listen=function(t){this.cb=t},Nt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Nt.prototype.onError=function(t){this.errorCbs.push(t)},Nt.prototype.transitionTo=function(t,e,r){var n,o=this;try{n=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(n,(function(){o.updateRoute(n),e&&e(n),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(n,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(n)})))}),(function(t){r&&r(t),t&&!o.ready&&(kt(t,It.redirected)&&i===E||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Nt.prototype.confirmTransition=function(t,e,r){var n=this,o=this.current;this.pending=t;var i,a,u=function(t){!kt(t)&&Ct(t)&&(n.errorCbs.length?n.errorCbs.forEach((function(e){e(t)})):f.error(t)),r&&r(t)},s=t.matched.length-1,c=o.matched.length-1;if(I(t,o)&&s===c&&t.matched[s]===o.matched[c])return this.ensureURL(),t.hash&&ht(this.router,o,t,!1),u(((a=Pt(i=o,t,It.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var p,l=function(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r0)){var e=this.router,r=e.options.scrollBehavior,n=Et&&r;n&&this.listeners.push(dt());var o=function(){var r=t.current,o=Bt(t.base);t.current===E&&o===t._startLocation||t.transitionTo(o,(function(t){n&&ht(e,t,r,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){xt(R(n.base+t.fullPath)),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Ut(R(n.base+t.fullPath)),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.ensureURL=function(t){if(Bt(this.base)!==this.current.fullPath){var e=R(this.base+this.current.fullPath);t?xt(e):Ut(e)}},e.prototype.getCurrentLocation=function(){return Bt(this.base)},e}(Nt);function Bt(t){var e=window.location.pathname,r=e.toLowerCase(),n=t.toLowerCase();return!t||r!==n&&0!==r.indexOf(R(n+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Dt=function(t){function e(e,r,n){t.call(this,e,r),n&&function(t){var e=Bt(t);if(!/^\/#/.test(e))return window.location.replace(R(t+"/#"+e)),!0}(this.base)||Mt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,r=Et&&e;r&&this.listeners.push(dt());var n=function(){var e=t.current;Mt()&&t.transitionTo(Zt(),(function(n){r&&ht(t.router,n,e,!0),Et||zt(n.fullPath)}))},o=Et?"popstate":"hashchange";window.addEventListener(o,n),this.listeners.push((function(){window.removeEventListener(o,n)}))}},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Vt(t.fullPath),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){zt(t.fullPath),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Zt()!==e&&(t?Vt(e):zt(e))},e.prototype.getCurrentLocation=function(){return Zt()},e}(Nt);function Mt(){var t=Zt();return"/"===t.charAt(0)||(zt("/"+t),!1)}function Zt(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Ht(t){var e=window.location.href,r=e.indexOf("#");return(r>=0?e.slice(0,r):e)+"#"+t}function Vt(t){Et?xt(Ht(t)):window.location.hash=t}function zt(t){Et?Ut(Ht(t)):window.location.replace(Ht(t))}var Yt=function(t){function e(e,r){t.call(this,e,r),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)}),r)},e.prototype.go=function(t){var e=this,r=this.index+t;if(!(r<0||r>=this.stack.length)){var n=this.stack[r];this.confirmTransition(n,(function(){var t=e.current;e.index=r,e.updateRoute(n),e.router.afterHooks.forEach((function(e){e&&e(n,t)}))}),(function(t){kt(t,It.duplicated)&&(e.index=r)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Nt),Jt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=it(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Et&&!1!==t.fallback,this.fallback&&(e="hash"),et||(e="abstract"),this.mode=e,e){case"history":this.history=new qt(this,t.base);break;case"hash":this.history=new Dt(this,t.base,this.fallback);break;case"abstract":this.history=new Yt(this,t.base)}},Kt={currentRoute:{configurable:!0}};Jt.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},Kt.currentRoute.get=function(){return this.history&&this.history.current},Jt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var r=e.apps.indexOf(t);r>-1&&e.apps.splice(r,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var r=this.history;if(r instanceof qt||r instanceof Dt){var n=function(t){r.setupListeners(),function(t){var n=r.current,o=e.options.scrollBehavior;Et&&o&&"fullPath"in t&&ht(e,t,n,!1)}(t)};r.transitionTo(r.getCurrentLocation(),n,n)}r.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Jt.prototype.beforeEach=function(t){return Wt(this.beforeHooks,t)},Jt.prototype.beforeResolve=function(t){return Wt(this.resolveHooks,t)},Jt.prototype.afterEach=function(t){return Wt(this.afterHooks,t)},Jt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Jt.prototype.onError=function(t){this.history.onError(t)},Jt.prototype.push=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise((function(e,r){n.history.push(t,e,r)}));this.history.push(t,e,r)},Jt.prototype.replace=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise((function(e,r){n.history.replace(t,e,r)}));this.history.replace(t,e,r)},Jt.prototype.go=function(t){this.history.go(t)},Jt.prototype.back=function(){this.go(-1)},Jt.prototype.forward=function(){this.go(1)},Jt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Jt.prototype.resolve=function(t,e,r){var n=J(t,e=e||this.history.current,r,this),o=this.match(n,e),i=o.redirectedFrom||o.fullPath,a=function(t,e,r){var n="hash"===r?"#"+e:e;return t?R(t+"/"+n):n}(this.history.base,i,this.mode);return{location:n,route:o,href:a,normalizedTo:n,resolved:o}},Jt.prototype.getRoutes=function(){return this.matcher.getRoutes()},Jt.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==E&&this.history.transitionTo(this.history.getCurrentLocation())},Jt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==E&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Jt.prototype,Kt);var Qt=Jt;function Wt(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}Jt.install=function t(e){if(!t.installed||K!==e){t.installed=!0,K=e;var r=function(t){return void 0!==t},n=function(t,e){var n=t.$options._parentVnode;r(n)&&r(n=n.data)&&r(n=n.registerRouteInstance)&&n(t,e)};e.mixin({beforeCreate:function(){r(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",_),e.component("RouterLink",W);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Jt.version="3.6.5",Jt.isNavigationFailure=kt,Jt.NavigationFailureType=It,Jt.START_LOCATION=E,et&&window.Vue&&window.Vue.use(Jt);var Xt=o(79753),te=o(92652),ee=o(20629),re=o(93664),ne=o(7820),oe=(o(65509),function(t){return t.replace(/\/$/,"")}),ie=function(){return(0,ne.Z)()},ae=function(t,e){return re.Z.get(oe(t),e)},ue=function(t,e){return re.Z.post(oe(t),e)},se=function(t,e){return re.Z.put(oe(t),e)},ce=function(t,e){return re.Z.delete(oe(t),{params:e})},fe=o(42515),pe=o(38605),le=o(25108),de=function(t,e){return 1===e?t.sort((function(t,e){return t.usercount-t.disabled=0){var i=t.groups[o];i.name=n,t.groups.splice(o,1,i),t.groups=de(t.groups,t.orderBy)}},removeGroup:function(t,e){var r=t.groups.findIndex((function(t){return t.id===e}));r>=0&&t.groups.splice(r,1)},addUserGroup:function(t,e){var r=e.userid,n=e.gid,o=t.groups.find((function(t){return t.id===n})),i=t.users.find((function(t){return t.id===r}));o&&i.enabled&&t.userCount>0&&o.usercount++,i.groups.push(n),t.groups=de(t.groups,t.orderBy)},removeUserGroup:function(t,e){var r=e.userid,n=e.gid,o=t.groups.find((function(t){return t.id===n})),i=t.users.find((function(t){return t.id===r}));o&&i.enabled&&t.userCount>0&&o.usercount--;var a=i.groups;a.splice(a.indexOf(n),1),t.groups=de(t.groups,t.orderBy)},addUserSubAdmin:function(t,e){var r=e.userid,n=e.gid;t.users.find((function(t){return t.id===r})).subadmin.push(n)},removeUserSubAdmin:function(t,e){var r=e.userid,n=e.gid,o=t.users.find((function(t){return t.id===r})).subadmin;o.splice(o.indexOf(n),1)},deleteUser:function(t,e){var r=t.users.findIndex((function(t){return t.id===e}));this.commit("updateUserCounts",{user:t.users[r],actionType:"remove"}),t.users.splice(r,1)},addUserData:function(t,e){var r=e.data.ocs.data;t.users.unshift(r),this.commit("updateUserCounts",{user:r,actionType:"create"})},enableDisableUser:function(t,e){var r=e.userid,n=e.enabled,o=t.users.find((function(t){return t.id===r}));o.enabled=n,this.commit("updateUserCounts",{user:o,actionType:n?"enable":"disable"})},updateUserCounts:function(t,e){var r=e.user,n=e.actionType;if(0!==t.userCount){var o=t.groups.find((function(t){return"disabled"===t.id}));switch(n){case"enable":case"disable":o.usercount+=r.enabled?-1:1,t.userCount+=r.enabled?1:-1,r.groups.forEach((function(e){t.groups.find((function(t){return t.id===e})).disabled+=r.enabled?-1:1}));break;case"create":t.userCount++,r.groups.forEach((function(e){t.groups.find((function(t){return t.id===e})).usercount++}));break;case"remove":r.enabled?(t.userCount--,r.groups.forEach((function(e){var r=t.groups.find((function(t){return t.id===e}));r?r.usercount--:le.warn("User group "+e+" does not exist during user removal")}))):(o.usercount--,r.groups.forEach((function(e){t.groups.find((function(t){return t.id===e})).disabled--})));break;default:pe.Z.error("Unknown action type in updateUserCounts: '".concat(n,"'"))}}},setUserData:function(t,e){var r=e.userid,n=e.key,o=e.value;if("quota"===n){var i=OC.Util.computerFileSize(o);t.users.find((function(t){return t.id===r}))[n][n]=null!==i?i:o}else t.users.find((function(t){return t.id===r}))[n]=o},resetUsers:function(t){t.users=[],t.usersOffset=0},setShowConfig:function(t,e){var r=e.key,n=e.value;t.showConfig[r]=n}},ge=re.Z.CancelToken,ve=null,ye={state:{users:[],groups:[],orderBy:1,minPasswordLength:0,usersOffset:0,usersLimit:25,userCount:0,showConfig:{showStoragePath:!1,showUserBackend:!1,showLastLogin:!1,showNewUserForm:!1,showLanguages:!1}},mutations:me,getters:{getUsers:function(t){return t.users},getGroups:function(t){return t.groups},getSubadminGroups:function(t){return t.groups.filter((function(t){return"admin"!==t.id&&"disabled"!==t.id}))},getPasswordPolicyMinLength:function(t){return t.minPasswordLength},getUsersOffset:function(t){return t.usersOffset},getUsersLimit:function(t){return t.usersLimit},getUserCount:function(t){return t.userCount},getShowConfig:function(t){return t.showConfig}},actions:{searchUsers:function(t,e){var r=e.offset,n=e.limit,o=e.search;return o="string"==typeof o?o:"",ae((0,Xt.generateOcsUrl)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:r,limit:n,search:o})).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)}))},getUser:function(t,e){return ae((0,Xt.generateOcsUrl)("cloud/users/".concat(e))).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)}))},getUsers:function(t,e){var r=e.offset,n=e.limit,o=e.search,i=e.group;return ve&&ve.cancel("Operation canceled by another search request."),ve=ge.source(),o=(o="string"==typeof o?o:"").replace(/in:[^\s]+/g,"").trim(),""!==(i="string"==typeof i?i:"")?ae((0,Xt.generateOcsUrl)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(i),offset:r,limit:n,search:o}),{cancelToken:ve.token}).then((function(e){var r=Object.keys(e.data.ocs.data.users).length;return r>0&&t.commit("appendUsers",e.data.ocs.data.users),r})).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)})):ae((0,Xt.generateOcsUrl)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:r,limit:n,search:o}),{cancelToken:ve.token}).then((function(e){var r=Object.keys(e.data.ocs.data.users).length;return r>0&&t.commit("appendUsers",e.data.ocs.data.users),r})).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)}))},getGroups:function(t,e){var r=e.offset,n=e.limit,o=e.search;o="string"==typeof o?o:"";var i=-1===n?"":"&limit=".concat(n);return ae((0,Xt.generateOcsUrl)("cloud/groups?offset={offset}&search={search}",{offset:r,search:o})+i).then((function(e){return Object.keys(e.data.ocs.data.groups).length>0&&(e.data.ocs.data.groups.forEach((function(e){t.commit("addGroup",{gid:e,displayName:e})})),!0)})).catch((function(e){return t.commit("API_FAILURE",e)}))},getUsersFromList:function(t,e){var r=e.offset,n=e.limit,o=e.search;return o="string"==typeof o?o:"",ae((0,Xt.generateOcsUrl)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:r,limit:n,search:o})).then((function(e){return Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)})).catch((function(e){return t.commit("API_FAILURE",e)}))},getUsersFromGroup:function(t,e){var r=e.groupid,n=e.offset,o=e.limit;return ae((0,Xt.generateOcsUrl)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(r),offset:n,limit:o})).then((function(e){return t.commit("getUsersFromList",e.data.ocs.data.users)})).catch((function(e){return t.commit("API_FAILURE",e)}))},getPasswordPolicyMinLength:function(t){return!(!(0,fe.getCapabilities)().password_policy||!(0,fe.getCapabilities)().password_policy.minLength)&&(t.commit("setPasswordPolicyMinLength",(0,fe.getCapabilities)().password_policy.minLength),(0,fe.getCapabilities)().password_policy.minLength)},addGroup:function(t,e){return ie().then((function(r){return ue((0,Xt.generateOcsUrl)("cloud/groups"),{groupid:e}).then((function(r){return t.commit("addGroup",{gid:e,displayName:e}),{gid:e,displayName:e}})).catch((function(t){throw t}))})).catch((function(r){throw t.commit("API_FAILURE",{gid:e,error:r}),r}))},renameGroup:function(t,e){var r=e.groupid,n=e.displayName;return ie().then((function(e){return se((0,Xt.generateOcsUrl)("cloud/groups/{groupId}",{groupId:encodeURIComponent(r)}),{key:"displayname",value:n}).then((function(e){return t.commit("renameGroup",{gid:r,displayName:n}),{groupid:r,displayName:n}})).catch((function(t){throw t}))})).catch((function(e){throw t.commit("API_FAILURE",{groupid:r,error:e}),e}))},removeGroup:function(t,e){return ie().then((function(r){return ce((0,Xt.generateOcsUrl)("cloud/groups/{groupId}",{groupId:encodeURIComponent(e)})).then((function(r){return t.commit("removeGroup",e)})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{gid:e,error:r})}))},addUserGroup:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/groups",{userid:r}),{groupid:n}).then((function(e){return t.commit("addUserGroup",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},removeUserGroup:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ce((0,Xt.generateOcsUrl)("cloud/users/{userid}/groups",{userid:r}),{groupid:n}).then((function(e){return t.commit("removeUserGroup",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){throw t.commit("API_FAILURE",{userid:r,error:e}),e}))},addUserSubAdmin:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/subadmins",{userid:r}),{groupid:n}).then((function(e){return t.commit("addUserSubAdmin",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},removeUserSubAdmin:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ce((0,Xt.generateOcsUrl)("cloud/users/{userid}/subadmins",{userid:r}),{groupid:n}).then((function(e){return t.commit("removeUserSubAdmin",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},wipeUserDevices:function(t,e){return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/wipe",{userid:e})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))},deleteUser:function(t,e){return ie().then((function(r){return ce((0,Xt.generateOcsUrl)("cloud/users/{userid}",{userid:e})).then((function(r){return t.commit("deleteUser",e)})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))},addUser:function(t,e){var r=t.commit,n=t.dispatch,o=e.userid,i=e.password,a=e.displayName,u=e.email,s=e.groups,c=e.subadmin,f=e.quota,p=e.language,l=e.manager;return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("cloud/users"),{userid:o,password:i,displayName:a,email:u,groups:s,subadmin:c,quota:f,language:p,manager:l}).then((function(t){return n("addUserData",o||t.data.ocs.data.id)})).catch((function(t){throw t}))})).catch((function(t){throw r("API_FAILURE",{userid:o,error:t}),t}))},addUserData:function(t,e){return ie().then((function(r){return ae((0,Xt.generateOcsUrl)("cloud/users/{userid}",{userid:e})).then((function(e){return t.commit("addUserData",e)})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))},enableDisableUser:function(t,e){var r=e.userid,n=e.enabled,o=void 0===n||n,i=o?"enable":"disable";return ie().then((function(e){return se((0,Xt.generateOcsUrl)("cloud/users/{userid}/{userStatus}",{userid:r,userStatus:i})).then((function(e){return t.commit("enableDisableUser",{userid:r,enabled:o})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},setUserData:function(t,e){var r=e.userid,n=e.key,o=e.value,i=["email","displayname","manager"];return-1!==["email","language","quota","displayname","password","manager"].indexOf(n)&&"string"==typeof o&&(-1===i.indexOf(n)&&o.length>0||-1!==i.indexOf(n))?ie().then((function(e){return se((0,Xt.generateOcsUrl)("cloud/users/{userid}",{userid:r}),{key:n,value:o}).then((function(e){return t.commit("setUserData",{userid:r,key:n,value:o})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})})):Promise.reject(new Error("Invalid request data"))},sendWelcomeMail:function(t,e){return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/welcome",{userid:e})).then((function(t){return!0})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))}}},be=o(64024),we=o(25108);function Ae(t){return Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ae(t)}function Le(){Le=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function c(t,e,r,o){var i=e&&e.prototype instanceof l?e:l,a=Object.create(i.prototype),u=new U(o||[]);return n(a,"_invoke",{value:A(t,r,u)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var p={};function l(){}function d(){}function h(){}var m={};s(m,i,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(I([])));v&&v!==e&&r.call(v,i)&&(m=v);var y=h.prototype=l.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function o(n,i,a,u){var s=f(t[n],t,i);if("throw"!==s.type){var c=s.arg,p=c.value;return p&&"object"==Ae(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){o("next",t,a,u)}),(function(t){o("throw",t,a,u)})):e.resolve(p).then((function(t){c.value=t,a(c)}),(function(t){return o("throw",t,a,u)}))}u(s.arg)}var i;n(this,"_invoke",{value:function(t,r){function n(){return new e((function(e,n){o(t,r,e,n)}))}return i=i?i.then(n,n):n()}})}function A(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=f(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===p)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function U(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function I(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(u&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),x(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:I(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function Ee(t,e,r,n,o,i,a){try{var u=t[i](a),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).then(n,o)}var xe={APPS_API_FAILURE:function(e,r){(0,be.x2)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+r.error.response.data.data.message,{isHTML:!0}),we.error(e,r)},initCategories:function(t,e){var r=e.categories,n=e.updateCount;t.categories=r,t.updateCount=n},updateCategories:function(t,e){t.gettingCategoriesPromise=e},setUpdateCount:function(t,e){t.updateCount=e},addCategory:function(t,e){t.categories.push(e)},appendCategories:function(t,e){t.categories=e},setAllApps:function(t,e){t.apps=e},setError:function(t,e){var r=e.appId,n=e.error;Array.isArray(r)||(r=[r]),r.forEach((function(e){t.apps.find((function(t){return t.id===e})).error=n}))},clearError:function(t,e){var r=e.appId;e.error,t.apps.find((function(t){return t.id===r})).error=null},enableApp:function(t,e){var r=e.appId,n=e.groups,o=t.apps.find((function(t){return t.id===r}));o.active=!0,o.groups=n},disableApp:function(t,e){var r=t.apps.find((function(t){return t.id===e}));r.active=!1,r.groups=[],r.removable&&(r.canUnInstall=!0)},uninstallApp:function(t,e){t.apps.find((function(t){return t.id===e})).active=!1,t.apps.find((function(t){return t.id===e})).groups=[],t.apps.find((function(t){return t.id===e})).needsDownload=!0,t.apps.find((function(t){return t.id===e})).installed=!1,t.apps.find((function(t){return t.id===e})).canUnInstall=!1,t.apps.find((function(t){return t.id===e})).canInstall=!0},updateApp:function(t,e){var r=t.apps.find((function(t){return t.id===e})),n=r.update;r.update=null,r.version=n,t.updateCount--},resetApps:function(t){t.apps=[]},reset:function(t){t.apps=[],t.categories=[],t.updateCount=0},startLoading:function(t,e){Array.isArray(e)?e.forEach((function(e){i.default.set(t.loading,e,!0)})):i.default.set(t.loading,e,!0)},stopLoading:function(t,e){Array.isArray(e)?e.forEach((function(e){i.default.set(t.loading,e,!1)})):i.default.set(t.loading,e,!1)}},Ue={enableApp:function(e,r){var n,o=r.appId,i=r.groups;return n=Array.isArray(o)?o:[o],ie().then((function(r){return e.commit("startLoading",n),e.commit("startLoading","install"),ue((0,Xt.generateUrl)("settings/apps/enable"),{appIds:n,groups:i}).then((function(r){return e.commit("stopLoading",n),e.commit("stopLoading","install"),n.forEach((function(t){e.commit("enableApp",{appId:t,groups:i})})),ae((0,Xt.generateUrl)("apps/files")).then((function(){r.data.update_required&&((0,be.JQ)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:function(){return window.location.reload()},close:!1}),setTimeout((function(){location.reload()}),5e3))})).catch((function(){Array.isArray(o)||e.commit("setError",{appId:n,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")})}))})).catch((function(t){e.commit("stopLoading",n),e.commit("stopLoading","install"),e.commit("setError",{appId:n,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:o,error:t})}))})).catch((function(t){return e.commit("API_FAILURE",{appId:o,error:t})}))},forceEnableApp:function(t,e){var r,n=e.appId;return e.groups,r=Array.isArray(n)?n:[n],ie().then((function(){return t.commit("startLoading",r),t.commit("startLoading","install"),ue((0,Xt.generateUrl)("settings/apps/force"),{appId:n}).then((function(t){location.reload()})).catch((function(e){t.commit("stopLoading",r),t.commit("stopLoading","install"),t.commit("setError",{appId:r,error:e.response.data.data.message}),t.commit("APPS_API_FAILURE",{appId:n,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:n,error:e})}))},disableApp:function(t,e){var r,n=e.appId;return r=Array.isArray(n)?n:[n],ie().then((function(e){return t.commit("startLoading",r),ue((0,Xt.generateUrl)("settings/apps/disable"),{appIds:r}).then((function(e){return t.commit("stopLoading",r),r.forEach((function(e){t.commit("disableApp",e)})),!0})).catch((function(e){t.commit("stopLoading",r),t.commit("APPS_API_FAILURE",{appId:n,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:n,error:e})}))},uninstallApp:function(t,e){var r=e.appId;return ie().then((function(e){return t.commit("startLoading",r),ae((0,Xt.generateUrl)("settings/apps/uninstall/".concat(r))).then((function(e){return t.commit("stopLoading",r),t.commit("uninstallApp",r),!0})).catch((function(e){t.commit("stopLoading",r),t.commit("APPS_API_FAILURE",{appId:r,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:r,error:e})}))},updateApp:function(t,e){var r=e.appId;return ie().then((function(e){return t.commit("startLoading",r),t.commit("startLoading","install"),ae((0,Xt.generateUrl)("settings/apps/update/".concat(r))).then((function(e){return t.commit("stopLoading","install"),t.commit("stopLoading",r),t.commit("updateApp",r),!0})).catch((function(e){t.commit("stopLoading",r),t.commit("stopLoading","install"),t.commit("APPS_API_FAILURE",{appId:r,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:r,error:e})}))},getAllApps:function(t){return t.commit("startLoading","list"),ae((0,Xt.generateUrl)("settings/apps/list")).then((function(e){return t.commit("setAllApps",e.data.apps),t.commit("stopLoading","list"),!0})).catch((function(e){return t.commit("API_FAILURE",e)}))},getCategories:function(t){var e,r=arguments;return(e=Le().mark((function e(){var n,o,i;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((void 0===(n=(r.length>1&&void 0!==r[1]?r[1]:{}).shouldRefetchCategories)||!n)&&t.state.gettingCategoriesPromise){e.next=20;break}return t.commit("startLoading","categories"),e.prev=3,o=ae((0,Xt.generateUrl)("settings/apps/categories")),t.commit("updateCategories",o),e.next=8,o;case 8:if(!((i=e.sent).data.length>0)){e.next=13;break}return t.commit("appendCategories",i.data),t.commit("stopLoading","categories"),e.abrupt("return",!0);case 13:return t.commit("stopLoading","categories"),e.abrupt("return",!1);case 17:e.prev=17,e.t0=e.catch(3),t.commit("API_FAILURE",e.t0);case 20:return e.abrupt("return",t.state.gettingCategoriesPromise);case 21:case"end":return e.stop()}}),e,null,[[3,17]])})),function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(t){Ee(i,n,o,a,u,"next",t)}function u(t){Ee(i,n,o,a,u,"throw",t)}a(void 0)}))})()}},Ie={state:{apps:[],categories:[],updateCount:0,loading:{},loadingList:!1,gettingCategoriesPromise:null},mutations:xe,getters:{loading:function(t){return function(e){return t.loading[e]}},getCategories:function(t){return t.categories},getAllApps:function(t){return t.apps},getUpdateCount:function(t){return t.updateCount},getCategoryById:function(t){return function(e){return t.categories.find((function(t){return t.id===e}))}}},actions:Ue},Oe={state:{},mutations:{},getters:{},actions:{setAppConfig:function(t,e){var r=e.app,n=e.key,o=e.value;return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:r,key:n}),{value:o}).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{app:r,key:n,value:o,error:e})}))}}},Pe=o(25108);i.default.use(ee.ZP);var _e={API_FAILURE:function(e,r){try{var n=r.error.response.data.ocs.meta.message;(0,be.x2)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+n,{isHTML:!0})}catch(e){(0,be.x2)(t("settings","An error occurred during the request. Unable to proceed."))}Pe.error(e,r)}},Ce=new ee.yh({modules:{users:ye,apps:Ie,settings:{state:{serverData:{}},mutations:{setServerData:function(t,e){t.serverData=e}},getters:{getServerData:function(t){return t.serverData}},actions:{}},oc:Oe},strict:!1,mutations:_e});function ke(t){return ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ke(t)}function Re(){Re=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function c(t,e,r,o){var i=e&&e.prototype instanceof l?e:l,a=Object.create(i.prototype),u=new U(o||[]);return n(a,"_invoke",{value:A(t,r,u)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var p={};function l(){}function d(){}function h(){}var m={};s(m,i,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(I([])));v&&v!==e&&r.call(v,i)&&(m=v);var y=h.prototype=l.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function o(n,i,a,u){var s=f(t[n],t,i);if("throw"!==s.type){var c=s.arg,p=c.value;return p&&"object"==ke(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){o("next",t,a,u)}),(function(t){o("throw",t,a,u)})):e.resolve(p).then((function(t){c.value=t,a(c)}),(function(t){return o("throw",t,a,u)}))}u(s.arg)}var i;n(this,"_invoke",{value:function(t,r){function n(){return new e((function(e,n){o(t,r,e,n)}))}return i=i?i.then(n,n):n()}})}function A(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=f(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===p)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function U(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function I(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(u&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),x(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:I(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function Se(t,e,r,n,o,i,a){try{var u=t[i](a),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).then(n,o)}function je(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){Se(i,n,o,a,u,"next",t)}function u(t){Se(i,n,o,a,u,"throw",t)}a(void 0)}))}}o(43554);var Te=function(){return Promise.all([o.e(7874),o.e(8351)]).then(o.bind(o,95326))},Fe=function(){return Promise.all([o.e(7874),o.e(7418)]).then(o.bind(o,40837))};i.default.use(Qt);var Ne,Ge=document.title,$e=new Qt({mode:"history",base:(0,Xt.generateUrl)(""),linkActiveClass:"active",routes:[{path:"/:index(index.php/)?settings/users",component:Te,props:!0,name:"users",meta:{title:function(){return t("settings","Active users")}},children:[{path:":selectedGroup",name:"group",meta:{title:function(e){return"admin"===e.params.selectedGroup?t("settings","Admins"):"disabled"===e.params.selectedGroup?t("settings","Disabled users"):decodeURIComponent(e.params.selectedGroup)}},component:Te}]},{path:"/:index(index.php/)?settings/apps",component:Fe,props:!0,name:"apps",meta:{title:function(){return t("settings","Your apps")}},children:[{path:":category",name:"apps-category",meta:{title:(Ne=je(Re().mark((function e(r){var n;return Re().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("apps"!==r.name){e.next=2;break}return e.abrupt("return",t("settings","Your apps"));case 2:if(!te.J[r.params.category]){e.next=4;break}return e.abrupt("return",te.J[r.params.category]);case 4:return e.next=6,Ce.dispatch("getCategories");case 6:if(!(n=Ce.getters.getCategoryById(r.params.category)).displayName){e.next=9;break}return e.abrupt("return",n.displayName);case 9:case"end":return e.stop()}}),e)}))),function(t){return Ne.apply(this,arguments)})},component:Fe,children:[{path:":id",name:"apps-details",component:Fe}]}]}]});$e.afterEach(function(){var t=je(Re().mark((function t(e){var r,n,o;return Re().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,null===(r=(n=e.meta).title)||void 0===r?void 0:r.call(n,e);case 2:(o=t.sent)?(document.title="".concat(o," - ").concat(Ge),i=o,a=void 0,(a=document.getElementById("page-heading-level-1"))&&(a.textContent=i)):document.title=Ge;case 4:case"end":return t.stop()}var i,a}),t)})));return function(e){return t.apply(this,arguments)}}());var qe=$e;i.default.use(a.ZP,{defaultHtml:!1}),(0,u.Z)(Ce,qe),o.nc=btoa(OC.requestToken),i.default.prototype.t=t,i.default.prototype.n=n,i.default.prototype.OC=OC,i.default.prototype.OCA=OCA,i.default.prototype.oc_userconfig=oc_userconfig,new i.default({router:qe,store:Ce,render:function(t){return t(c)}}).$mount("#content")},83678:function(t,e){function r(t,e){var n={name:t.name,path:t.path,hash:t.hash,query:t.query,params:t.params,fullPath:t.fullPath,meta:t.meta};return e&&(n.from=r(e)),Object.freeze(n)}e.Z=function(t,e,n){var o=(n||{}).moduleName||"route";t.registerModule(o,{namespaced:!0,state:r(e.currentRoute),mutations:{ROUTE_CHANGED:function(e,n){t.state[o]=r(n.to,n.from)}}});var i,a=!1,u=t.watch((function(t){return t[o]}),(function(t){var r=t.fullPath;r!==i&&(null!=i&&(a=!0,e.push(t)),i=r)}),{sync:!0}),s=e.afterEach((function(e,r){a?a=!1:(i=e.fullPath,t.commit(o+"/ROUTE_CHANGED",{to:e,from:r}))}));return function(){null!=s&&s(),null!=u&&u(),t.unregisterModule(o)}}}},a={};function u(t){var e=a[t];if(void 0!==e)return e.exports;var r=a[t]={id:t,loaded:!1,exports:{}};return i[t].call(r.exports,r,r.exports,u),r.loaded=!0,r.exports}u.m=i,e=[],u.O=function(t,r,n,o){if(!r){var i=1/0;for(f=0;f=o)&&Object.keys(u.O).every((function(t){return u.O[t](r[s])}))?r.splice(s--,1):(a=!1,o0&&e[f-1][2]>o;f--)e[f]=e[f-1];e[f]=[r,n,o]},u.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return u.d(e,{a:e}),e},u.d=function(t,e){for(var r in e)u.o(e,r)&&!u.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},u.f={},u.e=function(t){return Promise.all(Object.keys(u.f).reduce((function(e,r){return u.f[r](t,e),e}),[]))},u.u=function(t){return({7418:"settings-apps-view",8351:"settings-users"}[t]||t)+"-"+t+".js?v="+{2250:"9c98ca37abd9ee1927b3",7418:"c1cae41c530feb8e9906",7996:"39e55a09e2da8534cf16",8351:"44076110fbb7f634ec39"}[t]},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),u.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r={},o="nextcloud:",u.l=function(t,e,n,i){if(r[t])r[t].push(e);else{var a,s;if(void 0!==n)for(var c=document.getElementsByTagName("script"),f=0;f-1&&!t;)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),u.p=t}(),function(){u.b=document.baseURI||self.location.href;var t={8562:0};u.f.j=function(e,r){var n=u.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((function(r,o){n=t[e]=[r,o]}));r.push(n[2]=o);var i=u.p+u.u(e),a=new Error;u.l(i,(function(r){if(u.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;a.message="Loading chunk "+e+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,n[1](a)}}),"chunk-"+e,e)}},u.O.j=function(e){return 0===t[e]};var e=function(e,r){var n,o,i=r[0],a=r[1],s=r[2],c=0;if(i.some((function(e){return 0!==t[e]}))){for(n in a)u.o(a,n)&&(u.m[n]=a[n]);if(s)var f=s(u)}for(e&&e(r);c=0&&(e=t.slice(n),t=t.slice(0,n));var o=t.indexOf("?");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{path:t,query:r,hash:e}}(o.path||""),c=e&&e.path||"/",f=s.path?k(s.path,c,r||o.append):c,l=function(t,e,r){void 0===e&&(e={});var n,o=r||y;try{n=o(t||"")}catch(t){n={}}for(var i in e){var a=e[i];n[i]=Array.isArray(a)?a.map(v):v(a)}return n}(s.query,o.query,n&&n.options.parseQuery),d=o.hash||s.hash;return d&&"#"!==d.charAt(0)&&(d="#"+d),{_normalized:!0,path:f,query:l,hash:d}}var K,Q=function(){},W={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,r=this.$router,n=this.$route,o=r.resolve(this.to,n,this.append),i=o.location,a=o.route,u=o.href,s={},c=r.options.linkActiveClass,f=r.options.linkExactActiveClass,l=null==c?"router-link-active":c,d=null==f?"router-link-exact-active":f,h=null==this.activeClass?l:this.activeClass,m=null==this.exactActiveClass?d:this.exactActiveClass,g=a.redirectedFrom?A(null,J(a.redirectedFrom),null,r):a;s[m]=I(n,g,this.exactPath),s[h]=this.exact||this.exactPath?s[m]:function(t,e){return 0===t.path.replace(w,"/").indexOf(e.path.replace(w,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var r in e)if(!(r in t))return!1;return!0}(t.query,e.query)}(n,g);var v=s[m]?this.ariaCurrentValue:null,y=function(t){X(t)&&(e.replace?r.replace(i,Q):r.push(i,Q))},b={click:X};Array.isArray(this.event)?this.event.forEach((function(t){b[t]=y})):b[this.event]=y;var L={class:s},E=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:u,route:a,navigate:y,isActive:s[h],isExactActive:s[m]});if(E){if(1===E.length)return E[0];if(E.length>1||!E.length)return 0===E.length?t():t("span",{},E)}if("a"===this.tag)L.on=b,L.attrs={href:u,"aria-current":v};else{var x=tt(this.$slots.default);if(x){x.isStatic=!1;var U=x.data=p({},x.data);for(var O in U.on=U.on||{},U.on){var P=U.on[O];O in b&&(U.on[O]=Array.isArray(P)?P:[P])}for(var _ in b)_ in U.on?U.on[_].push(b[_]):U.on[_]=y;var C=x.data.attrs=p({},x.data.attrs);C.href=u,C["aria-current"]=v}else L.on=b}return t(this.tag,L,this.$slots.default)}};function X(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function tt(t){if(t)for(var e,r=0;r-1&&(s.params[l]=r.params[l]);return s.path=Y(f.path,s.params),u(f,s,a)}if(s.path){s.params={};for(var d=0;d-1}function kt(t,e){return Ct(t)&&t._isRouter&&(null==e||t.type===e)}function Rt(t,e,r){var n=function(o){o>=t.length?r():t[o]?e(t[o],(function(){n(o+1)})):n(o+1)};n(0)}function St(t,e){return jt(t.map((function(t){return Object.keys(t.components).map((function(r){return e(t.components[r],t.instances[r],t,r)}))})))}function jt(t){return Array.prototype.concat.apply([],t)}var Tt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ft(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}var Nt=function(t,e){this.router=t,this.base=function(t){if(!t)if(et){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}(e),this.current=E,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Gt(t,e,r,n){var o=St(t,(function(t,n,o,i){var a=function(t,e){return"function"!=typeof t&&(t=K.extend(t)),t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return r(t,n,o,i)})):r(a,n,o,i)}));return jt(n?o.reverse():o)}function $t(t,e){if(e)return function(){return t.apply(e,arguments)}}Nt.prototype.listen=function(t){this.cb=t},Nt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Nt.prototype.onError=function(t){this.errorCbs.push(t)},Nt.prototype.transitionTo=function(t,e,r){var n,o=this;try{n=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(n,(function(){o.updateRoute(n),e&&e(n),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(n,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(n)})))}),(function(t){r&&r(t),t&&!o.ready&&(kt(t,It.redirected)&&i===E||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Nt.prototype.confirmTransition=function(t,e,r){var n=this,o=this.current;this.pending=t;var i,a,u=function(t){!kt(t)&&Ct(t)&&(n.errorCbs.length?n.errorCbs.forEach((function(e){e(t)})):f.error(t)),r&&r(t)},s=t.matched.length-1,c=o.matched.length-1;if(I(t,o)&&s===c&&t.matched[s]===o.matched[c])return this.ensureURL(),t.hash&&ht(this.router,o,t,!1),u(((a=Pt(i=o,t,It.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var p,l=function(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r0)){var e=this.router,r=e.options.scrollBehavior,n=Et&&r;n&&this.listeners.push(dt());var o=function(){var r=t.current,o=Bt(t.base);t.current===E&&o===t._startLocation||t.transitionTo(o,(function(t){n&&ht(e,t,r,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){xt(R(n.base+t.fullPath)),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Ut(R(n.base+t.fullPath)),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.ensureURL=function(t){if(Bt(this.base)!==this.current.fullPath){var e=R(this.base+this.current.fullPath);t?xt(e):Ut(e)}},e.prototype.getCurrentLocation=function(){return Bt(this.base)},e}(Nt);function Bt(t){var e=window.location.pathname,r=e.toLowerCase(),n=t.toLowerCase();return!t||r!==n&&0!==r.indexOf(R(n+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Dt=function(t){function e(e,r,n){t.call(this,e,r),n&&function(t){var e=Bt(t);if(!/^\/#/.test(e))return window.location.replace(R(t+"/#"+e)),!0}(this.base)||Mt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,r=Et&&e;r&&this.listeners.push(dt());var n=function(){var e=t.current;Mt()&&t.transitionTo(Zt(),(function(n){r&&ht(t.router,n,e,!0),Et||zt(n.fullPath)}))},o=Et?"popstate":"hashchange";window.addEventListener(o,n),this.listeners.push((function(){window.removeEventListener(o,n)}))}},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Vt(t.fullPath),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){zt(t.fullPath),ht(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Zt()!==e&&(t?Vt(e):zt(e))},e.prototype.getCurrentLocation=function(){return Zt()},e}(Nt);function Mt(){var t=Zt();return"/"===t.charAt(0)||(zt("/"+t),!1)}function Zt(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Ht(t){var e=window.location.href,r=e.indexOf("#");return(r>=0?e.slice(0,r):e)+"#"+t}function Vt(t){Et?xt(Ht(t)):window.location.hash=t}function zt(t){Et?Ut(Ht(t)):window.location.replace(Ht(t))}var Yt=function(t){function e(e,r){t.call(this,e,r),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)}),r)},e.prototype.go=function(t){var e=this,r=this.index+t;if(!(r<0||r>=this.stack.length)){var n=this.stack[r];this.confirmTransition(n,(function(){var t=e.current;e.index=r,e.updateRoute(n),e.router.afterHooks.forEach((function(e){e&&e(n,t)}))}),(function(t){kt(t,It.duplicated)&&(e.index=r)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Nt),Jt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=it(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Et&&!1!==t.fallback,this.fallback&&(e="hash"),et||(e="abstract"),this.mode=e,e){case"history":this.history=new qt(this,t.base);break;case"hash":this.history=new Dt(this,t.base,this.fallback);break;case"abstract":this.history=new Yt(this,t.base)}},Kt={currentRoute:{configurable:!0}};Jt.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},Kt.currentRoute.get=function(){return this.history&&this.history.current},Jt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var r=e.apps.indexOf(t);r>-1&&e.apps.splice(r,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var r=this.history;if(r instanceof qt||r instanceof Dt){var n=function(t){r.setupListeners(),function(t){var n=r.current,o=e.options.scrollBehavior;Et&&o&&"fullPath"in t&&ht(e,t,n,!1)}(t)};r.transitionTo(r.getCurrentLocation(),n,n)}r.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Jt.prototype.beforeEach=function(t){return Wt(this.beforeHooks,t)},Jt.prototype.beforeResolve=function(t){return Wt(this.resolveHooks,t)},Jt.prototype.afterEach=function(t){return Wt(this.afterHooks,t)},Jt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Jt.prototype.onError=function(t){this.history.onError(t)},Jt.prototype.push=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise((function(e,r){n.history.push(t,e,r)}));this.history.push(t,e,r)},Jt.prototype.replace=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise((function(e,r){n.history.replace(t,e,r)}));this.history.replace(t,e,r)},Jt.prototype.go=function(t){this.history.go(t)},Jt.prototype.back=function(){this.go(-1)},Jt.prototype.forward=function(){this.go(1)},Jt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Jt.prototype.resolve=function(t,e,r){var n=J(t,e=e||this.history.current,r,this),o=this.match(n,e),i=o.redirectedFrom||o.fullPath,a=function(t,e,r){var n="hash"===r?"#"+e:e;return t?R(t+"/"+n):n}(this.history.base,i,this.mode);return{location:n,route:o,href:a,normalizedTo:n,resolved:o}},Jt.prototype.getRoutes=function(){return this.matcher.getRoutes()},Jt.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==E&&this.history.transitionTo(this.history.getCurrentLocation())},Jt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==E&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Jt.prototype,Kt);var Qt=Jt;function Wt(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}Jt.install=function t(e){if(!t.installed||K!==e){t.installed=!0,K=e;var r=function(t){return void 0!==t},n=function(t,e){var n=t.$options._parentVnode;r(n)&&r(n=n.data)&&r(n=n.registerRouteInstance)&&n(t,e)};e.mixin({beforeCreate:function(){r(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",_),e.component("RouterLink",W);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Jt.version="3.6.5",Jt.isNavigationFailure=kt,Jt.NavigationFailureType=It,Jt.START_LOCATION=E,et&&window.Vue&&window.Vue.use(Jt);var Xt=o(79753),te=o(92652),ee=o(20629),re=o(93664),ne=o(7820),oe=(o(65509),function(t){return t.replace(/\/$/,"")}),ie=function(){return(0,ne.Z)()},ae=function(t,e){return re.Z.get(oe(t),e)},ue=function(t,e){return re.Z.post(oe(t),e)},se=function(t,e){return re.Z.put(oe(t),e)},ce=function(t,e){return re.Z.delete(oe(t),{params:e})},fe=o(42515),pe=o(38605),le=o(25108),de=function(t,e){return 1===e?t.sort((function(t,e){return t.usercount-t.disabled=0){var i=t.groups[o];i.name=n,t.groups.splice(o,1,i),t.groups=de(t.groups,t.orderBy)}},removeGroup:function(t,e){var r=t.groups.findIndex((function(t){return t.id===e}));r>=0&&t.groups.splice(r,1)},addUserGroup:function(t,e){var r=e.userid,n=e.gid,o=t.groups.find((function(t){return t.id===n})),i=t.users.find((function(t){return t.id===r}));o&&i.enabled&&t.userCount>0&&o.usercount++,i.groups.push(n),t.groups=de(t.groups,t.orderBy)},removeUserGroup:function(t,e){var r=e.userid,n=e.gid,o=t.groups.find((function(t){return t.id===n})),i=t.users.find((function(t){return t.id===r}));o&&i.enabled&&t.userCount>0&&o.usercount--;var a=i.groups;a.splice(a.indexOf(n),1),t.groups=de(t.groups,t.orderBy)},addUserSubAdmin:function(t,e){var r=e.userid,n=e.gid;t.users.find((function(t){return t.id===r})).subadmin.push(n)},removeUserSubAdmin:function(t,e){var r=e.userid,n=e.gid,o=t.users.find((function(t){return t.id===r})).subadmin;o.splice(o.indexOf(n),1)},deleteUser:function(t,e){var r=t.users.findIndex((function(t){return t.id===e}));this.commit("updateUserCounts",{user:t.users[r],actionType:"remove"}),t.users.splice(r,1)},addUserData:function(t,e){var r=e.data.ocs.data;t.users.unshift(r),this.commit("updateUserCounts",{user:r,actionType:"create"})},enableDisableUser:function(t,e){var r=e.userid,n=e.enabled,o=t.users.find((function(t){return t.id===r}));o.enabled=n,this.commit("updateUserCounts",{user:o,actionType:n?"enable":"disable"})},updateUserCounts:function(t,e){var r=e.user,n=e.actionType;if(0!==t.userCount){var o=t.groups.find((function(t){return"disabled"===t.id}));switch(n){case"enable":case"disable":o.usercount+=r.enabled?-1:1,t.userCount+=r.enabled?1:-1,r.groups.forEach((function(e){t.groups.find((function(t){return t.id===e})).disabled+=r.enabled?-1:1}));break;case"create":t.userCount++,r.groups.forEach((function(e){t.groups.find((function(t){return t.id===e})).usercount++}));break;case"remove":r.enabled?(t.userCount--,r.groups.forEach((function(e){var r=t.groups.find((function(t){return t.id===e}));r?r.usercount--:le.warn("User group "+e+" does not exist during user removal")}))):(o.usercount--,r.groups.forEach((function(e){t.groups.find((function(t){return t.id===e})).disabled--})));break;default:pe.Z.error("Unknown action type in updateUserCounts: '".concat(n,"'"))}}},setUserData:function(t,e){var r=e.userid,n=e.key,o=e.value;if("quota"===n){var i=OC.Util.computerFileSize(o);t.users.find((function(t){return t.id===r}))[n][n]=null!==i?i:o}else t.users.find((function(t){return t.id===r}))[n]=o},resetUsers:function(t){t.users=[],t.usersOffset=0},setShowConfig:function(t,e){var r=e.key,n=e.value;t.showConfig[r]=n}},ge=re.Z.CancelToken,ve=null,ye={state:{users:[],groups:[],orderBy:1,minPasswordLength:0,usersOffset:0,usersLimit:25,userCount:0,showConfig:{showStoragePath:!1,showUserBackend:!1,showLastLogin:!1,showNewUserForm:!1,showLanguages:!1}},mutations:me,getters:{getUsers:function(t){return t.users},getGroups:function(t){return t.groups},getSubadminGroups:function(t){return t.groups.filter((function(t){return"admin"!==t.id&&"disabled"!==t.id}))},getPasswordPolicyMinLength:function(t){return t.minPasswordLength},getUsersOffset:function(t){return t.usersOffset},getUsersLimit:function(t){return t.usersLimit},getUserCount:function(t){return t.userCount},getShowConfig:function(t){return t.showConfig}},actions:{searchUsers:function(t,e){var r=e.offset,n=e.limit,o=e.search;return o="string"==typeof o?o:"",ae((0,Xt.generateOcsUrl)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:r,limit:n,search:o})).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)}))},getUser:function(t,e){return ae((0,Xt.generateOcsUrl)("cloud/users/".concat(e))).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)}))},getUsers:function(t,e){var r=e.offset,n=e.limit,o=e.search,i=e.group;return ve&&ve.cancel("Operation canceled by another search request."),ve=ge.source(),o=(o="string"==typeof o?o:"").replace(/in:[^\s]+/g,"").trim(),""!==(i="string"==typeof i?i:"")?ae((0,Xt.generateOcsUrl)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(i),offset:r,limit:n,search:o}),{cancelToken:ve.token}).then((function(e){var r=Object.keys(e.data.ocs.data.users).length;return r>0&&t.commit("appendUsers",e.data.ocs.data.users),r})).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)})):ae((0,Xt.generateOcsUrl)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:r,limit:n,search:o}),{cancelToken:ve.token}).then((function(e){var r=Object.keys(e.data.ocs.data.users).length;return r>0&&t.commit("appendUsers",e.data.ocs.data.users),r})).catch((function(e){re.Z.isCancel(e)||t.commit("API_FAILURE",e)}))},getGroups:function(t,e){var r=e.offset,n=e.limit,o=e.search;o="string"==typeof o?o:"";var i=-1===n?"":"&limit=".concat(n);return ae((0,Xt.generateOcsUrl)("cloud/groups?offset={offset}&search={search}",{offset:r,search:o})+i).then((function(e){return Object.keys(e.data.ocs.data.groups).length>0&&(e.data.ocs.data.groups.forEach((function(e){t.commit("addGroup",{gid:e,displayName:e})})),!0)})).catch((function(e){return t.commit("API_FAILURE",e)}))},getUsersFromList:function(t,e){var r=e.offset,n=e.limit,o=e.search;return o="string"==typeof o?o:"",ae((0,Xt.generateOcsUrl)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:r,limit:n,search:o})).then((function(e){return Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)})).catch((function(e){return t.commit("API_FAILURE",e)}))},getUsersFromGroup:function(t,e){var r=e.groupid,n=e.offset,o=e.limit;return ae((0,Xt.generateOcsUrl)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(r),offset:n,limit:o})).then((function(e){return t.commit("getUsersFromList",e.data.ocs.data.users)})).catch((function(e){return t.commit("API_FAILURE",e)}))},getPasswordPolicyMinLength:function(t){return!(!(0,fe.getCapabilities)().password_policy||!(0,fe.getCapabilities)().password_policy.minLength)&&(t.commit("setPasswordPolicyMinLength",(0,fe.getCapabilities)().password_policy.minLength),(0,fe.getCapabilities)().password_policy.minLength)},addGroup:function(t,e){return ie().then((function(r){return ue((0,Xt.generateOcsUrl)("cloud/groups"),{groupid:e}).then((function(r){return t.commit("addGroup",{gid:e,displayName:e}),{gid:e,displayName:e}})).catch((function(t){throw t}))})).catch((function(r){throw t.commit("API_FAILURE",{gid:e,error:r}),r}))},renameGroup:function(t,e){var r=e.groupid,n=e.displayName;return ie().then((function(e){return se((0,Xt.generateOcsUrl)("cloud/groups/{groupId}",{groupId:encodeURIComponent(r)}),{key:"displayname",value:n}).then((function(e){return t.commit("renameGroup",{gid:r,displayName:n}),{groupid:r,displayName:n}})).catch((function(t){throw t}))})).catch((function(e){throw t.commit("API_FAILURE",{groupid:r,error:e}),e}))},removeGroup:function(t,e){return ie().then((function(r){return ce((0,Xt.generateOcsUrl)("cloud/groups/{groupId}",{groupId:encodeURIComponent(e)})).then((function(r){return t.commit("removeGroup",e)})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{gid:e,error:r})}))},addUserGroup:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/groups",{userid:r}),{groupid:n}).then((function(e){return t.commit("addUserGroup",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},removeUserGroup:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ce((0,Xt.generateOcsUrl)("cloud/users/{userid}/groups",{userid:r}),{groupid:n}).then((function(e){return t.commit("removeUserGroup",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){throw t.commit("API_FAILURE",{userid:r,error:e}),e}))},addUserSubAdmin:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/subadmins",{userid:r}),{groupid:n}).then((function(e){return t.commit("addUserSubAdmin",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},removeUserSubAdmin:function(t,e){var r=e.userid,n=e.gid;return ie().then((function(e){return ce((0,Xt.generateOcsUrl)("cloud/users/{userid}/subadmins",{userid:r}),{groupid:n}).then((function(e){return t.commit("removeUserSubAdmin",{userid:r,gid:n})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},wipeUserDevices:function(t,e){return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/wipe",{userid:e})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))},deleteUser:function(t,e){return ie().then((function(r){return ce((0,Xt.generateOcsUrl)("cloud/users/{userid}",{userid:e})).then((function(r){return t.commit("deleteUser",e)})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))},addUser:function(t,e){var r=t.commit,n=t.dispatch,o=e.userid,i=e.password,a=e.displayName,u=e.email,s=e.groups,c=e.subadmin,f=e.quota,p=e.language,l=e.manager;return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("cloud/users"),{userid:o,password:i,displayName:a,email:u,groups:s,subadmin:c,quota:f,language:p,manager:l}).then((function(t){return n("addUserData",o||t.data.ocs.data.id)})).catch((function(t){throw t}))})).catch((function(t){throw r("API_FAILURE",{userid:o,error:t}),t}))},addUserData:function(t,e){return ie().then((function(r){return ae((0,Xt.generateOcsUrl)("cloud/users/{userid}",{userid:e})).then((function(e){return t.commit("addUserData",e)})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))},enableDisableUser:function(t,e){var r=e.userid,n=e.enabled,o=void 0===n||n,i=o?"enable":"disable";return ie().then((function(e){return se((0,Xt.generateOcsUrl)("cloud/users/{userid}/{userStatus}",{userid:r,userStatus:i})).then((function(e){return t.commit("enableDisableUser",{userid:r,enabled:o})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})}))},setUserData:function(t,e){var r=e.userid,n=e.key,o=e.value,i=["email","displayname","manager"];return-1!==["email","language","quota","displayname","password","manager"].indexOf(n)&&"string"==typeof o&&(-1===i.indexOf(n)&&o.length>0||-1!==i.indexOf(n))?ie().then((function(e){return se((0,Xt.generateOcsUrl)("cloud/users/{userid}",{userid:r}),{key:n,value:o}).then((function(e){return t.commit("setUserData",{userid:r,key:n,value:o})})).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{userid:r,error:e})})):Promise.reject(new Error("Invalid request data"))},sendWelcomeMail:function(t,e){return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("cloud/users/{userid}/welcome",{userid:e})).then((function(t){return!0})).catch((function(t){throw t}))})).catch((function(r){return t.commit("API_FAILURE",{userid:e,error:r})}))}}},be=o(64024),we=o(25108);function Ae(t){return Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ae(t)}function Le(){Le=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function c(t,e,r,o){var i=e&&e.prototype instanceof l?e:l,a=Object.create(i.prototype),u=new U(o||[]);return n(a,"_invoke",{value:A(t,r,u)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var p={};function l(){}function d(){}function h(){}var m={};s(m,i,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(I([])));v&&v!==e&&r.call(v,i)&&(m=v);var y=h.prototype=l.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function o(n,i,a,u){var s=f(t[n],t,i);if("throw"!==s.type){var c=s.arg,p=c.value;return p&&"object"==Ae(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){o("next",t,a,u)}),(function(t){o("throw",t,a,u)})):e.resolve(p).then((function(t){c.value=t,a(c)}),(function(t){return o("throw",t,a,u)}))}u(s.arg)}var i;n(this,"_invoke",{value:function(t,r){function n(){return new e((function(e,n){o(t,r,e,n)}))}return i=i?i.then(n,n):n()}})}function A(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=f(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===p)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function U(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function I(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(u&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),x(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:I(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function Ee(t,e,r,n,o,i,a){try{var u=t[i](a),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).then(n,o)}var xe={APPS_API_FAILURE:function(e,r){(0,be.x2)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+r.error.response.data.data.message,{isHTML:!0}),we.error(e,r)},initCategories:function(t,e){var r=e.categories,n=e.updateCount;t.categories=r,t.updateCount=n},updateCategories:function(t,e){t.gettingCategoriesPromise=e},setUpdateCount:function(t,e){t.updateCount=e},addCategory:function(t,e){t.categories.push(e)},appendCategories:function(t,e){t.categories=e},setAllApps:function(t,e){t.apps=e},setError:function(t,e){var r=e.appId,n=e.error;Array.isArray(r)||(r=[r]),r.forEach((function(e){t.apps.find((function(t){return t.id===e})).error=n}))},clearError:function(t,e){var r=e.appId;e.error,t.apps.find((function(t){return t.id===r})).error=null},enableApp:function(t,e){var r=e.appId,n=e.groups,o=t.apps.find((function(t){return t.id===r}));o.active=!0,o.groups=n},disableApp:function(t,e){var r=t.apps.find((function(t){return t.id===e}));r.active=!1,r.groups=[],r.removable&&(r.canUnInstall=!0)},uninstallApp:function(t,e){t.apps.find((function(t){return t.id===e})).active=!1,t.apps.find((function(t){return t.id===e})).groups=[],t.apps.find((function(t){return t.id===e})).needsDownload=!0,t.apps.find((function(t){return t.id===e})).installed=!1,t.apps.find((function(t){return t.id===e})).canUnInstall=!1,t.apps.find((function(t){return t.id===e})).canInstall=!0},updateApp:function(t,e){var r=t.apps.find((function(t){return t.id===e})),n=r.update;r.update=null,r.version=n,t.updateCount--},resetApps:function(t){t.apps=[]},reset:function(t){t.apps=[],t.categories=[],t.updateCount=0},startLoading:function(t,e){Array.isArray(e)?e.forEach((function(e){i.default.set(t.loading,e,!0)})):i.default.set(t.loading,e,!0)},stopLoading:function(t,e){Array.isArray(e)?e.forEach((function(e){i.default.set(t.loading,e,!1)})):i.default.set(t.loading,e,!1)}},Ue={enableApp:function(e,r){var n,o=r.appId,i=r.groups;return n=Array.isArray(o)?o:[o],ie().then((function(r){return e.commit("startLoading",n),e.commit("startLoading","install"),ue((0,Xt.generateUrl)("settings/apps/enable"),{appIds:n,groups:i}).then((function(r){return e.commit("stopLoading",n),e.commit("stopLoading","install"),n.forEach((function(t){e.commit("enableApp",{appId:t,groups:i})})),ae((0,Xt.generateUrl)("apps/files")).then((function(){r.data.update_required&&((0,be.JQ)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:function(){return window.location.reload()},close:!1}),setTimeout((function(){location.reload()}),5e3))})).catch((function(){Array.isArray(o)||e.commit("setError",{appId:n,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")})}))})).catch((function(t){e.commit("stopLoading",n),e.commit("stopLoading","install"),e.commit("setError",{appId:n,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:o,error:t})}))})).catch((function(t){return e.commit("API_FAILURE",{appId:o,error:t})}))},forceEnableApp:function(t,e){var r,n=e.appId;return e.groups,r=Array.isArray(n)?n:[n],ie().then((function(){return t.commit("startLoading",r),t.commit("startLoading","install"),ue((0,Xt.generateUrl)("settings/apps/force"),{appId:n}).then((function(t){location.reload()})).catch((function(e){t.commit("stopLoading",r),t.commit("stopLoading","install"),t.commit("setError",{appId:r,error:e.response.data.data.message}),t.commit("APPS_API_FAILURE",{appId:n,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:n,error:e})}))},disableApp:function(t,e){var r,n=e.appId;return r=Array.isArray(n)?n:[n],ie().then((function(e){return t.commit("startLoading",r),ue((0,Xt.generateUrl)("settings/apps/disable"),{appIds:r}).then((function(e){return t.commit("stopLoading",r),r.forEach((function(e){t.commit("disableApp",e)})),!0})).catch((function(e){t.commit("stopLoading",r),t.commit("APPS_API_FAILURE",{appId:n,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:n,error:e})}))},uninstallApp:function(t,e){var r=e.appId;return ie().then((function(e){return t.commit("startLoading",r),ae((0,Xt.generateUrl)("settings/apps/uninstall/".concat(r))).then((function(e){return t.commit("stopLoading",r),t.commit("uninstallApp",r),!0})).catch((function(e){t.commit("stopLoading",r),t.commit("APPS_API_FAILURE",{appId:r,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:r,error:e})}))},updateApp:function(t,e){var r=e.appId;return ie().then((function(e){return t.commit("startLoading",r),t.commit("startLoading","install"),ae((0,Xt.generateUrl)("settings/apps/update/".concat(r))).then((function(e){return t.commit("stopLoading","install"),t.commit("stopLoading",r),t.commit("updateApp",r),!0})).catch((function(e){t.commit("stopLoading",r),t.commit("stopLoading","install"),t.commit("APPS_API_FAILURE",{appId:r,error:e})}))})).catch((function(e){return t.commit("API_FAILURE",{appId:r,error:e})}))},getAllApps:function(t){return t.commit("startLoading","list"),ae((0,Xt.generateUrl)("settings/apps/list")).then((function(e){return t.commit("setAllApps",e.data.apps),t.commit("stopLoading","list"),!0})).catch((function(e){return t.commit("API_FAILURE",e)}))},getCategories:function(t){var e,r=arguments;return(e=Le().mark((function e(){var n,o,i;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((void 0===(n=(r.length>1&&void 0!==r[1]?r[1]:{}).shouldRefetchCategories)||!n)&&t.state.gettingCategoriesPromise){e.next=20;break}return t.commit("startLoading","categories"),e.prev=3,o=ae((0,Xt.generateUrl)("settings/apps/categories")),t.commit("updateCategories",o),e.next=8,o;case 8:if(!((i=e.sent).data.length>0)){e.next=13;break}return t.commit("appendCategories",i.data),t.commit("stopLoading","categories"),e.abrupt("return",!0);case 13:return t.commit("stopLoading","categories"),e.abrupt("return",!1);case 17:e.prev=17,e.t0=e.catch(3),t.commit("API_FAILURE",e.t0);case 20:return e.abrupt("return",t.state.gettingCategoriesPromise);case 21:case"end":return e.stop()}}),e,null,[[3,17]])})),function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(t){Ee(i,n,o,a,u,"next",t)}function u(t){Ee(i,n,o,a,u,"throw",t)}a(void 0)}))})()}},Ie={state:{apps:[],categories:[],updateCount:0,loading:{},loadingList:!1,gettingCategoriesPromise:null},mutations:xe,getters:{loading:function(t){return function(e){return t.loading[e]}},getCategories:function(t){return t.categories},getAllApps:function(t){return t.apps},getUpdateCount:function(t){return t.updateCount},getCategoryById:function(t){return function(e){return t.categories.find((function(t){return t.id===e}))}}},actions:Ue},Oe={state:{},mutations:{},getters:{},actions:{setAppConfig:function(t,e){var r=e.app,n=e.key,o=e.value;return ie().then((function(t){return ue((0,Xt.generateOcsUrl)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:r,key:n}),{value:o}).catch((function(t){throw t}))})).catch((function(e){return t.commit("API_FAILURE",{app:r,key:n,value:o,error:e})}))}}},Pe=o(25108);i.default.use(ee.ZP);var _e={API_FAILURE:function(e,r){try{var n=r.error.response.data.ocs.meta.message;(0,be.x2)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+n,{isHTML:!0})}catch(e){(0,be.x2)(t("settings","An error occurred during the request. Unable to proceed."))}Pe.error(e,r)}},Ce=new ee.yh({modules:{users:ye,apps:Ie,settings:{state:{serverData:{}},mutations:{setServerData:function(t,e){t.serverData=e}},getters:{getServerData:function(t){return t.serverData}},actions:{}},oc:Oe},strict:!1,mutations:_e});function ke(t){return ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ke(t)}function Re(){Re=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function c(t,e,r,o){var i=e&&e.prototype instanceof l?e:l,a=Object.create(i.prototype),u=new U(o||[]);return n(a,"_invoke",{value:A(t,r,u)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var p={};function l(){}function d(){}function h(){}var m={};s(m,i,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(I([])));v&&v!==e&&r.call(v,i)&&(m=v);var y=h.prototype=l.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function o(n,i,a,u){var s=f(t[n],t,i);if("throw"!==s.type){var c=s.arg,p=c.value;return p&&"object"==ke(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){o("next",t,a,u)}),(function(t){o("throw",t,a,u)})):e.resolve(p).then((function(t){c.value=t,a(c)}),(function(t){return o("throw",t,a,u)}))}u(s.arg)}var i;n(this,"_invoke",{value:function(t,r){function n(){return new e((function(e,n){o(t,r,e,n)}))}return i=i?i.then(n,n):n()}})}function A(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=f(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===p)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function x(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function U(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function I(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(u&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),x(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:I(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function Se(t,e,r,n,o,i,a){try{var u=t[i](a),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).then(n,o)}function je(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){Se(i,n,o,a,u,"next",t)}function u(t){Se(i,n,o,a,u,"throw",t)}a(void 0)}))}}o(43554);var Te=function(){return Promise.all([o.e(7874),o.e(8351)]).then(o.bind(o,95326))},Fe=function(){return Promise.all([o.e(7874),o.e(7418)]).then(o.bind(o,48039))};i.default.use(Qt);var Ne,Ge=document.title,$e=new Qt({mode:"history",base:(0,Xt.generateUrl)(""),linkActiveClass:"active",routes:[{path:"/:index(index.php/)?settings/users",component:Te,props:!0,name:"users",meta:{title:function(){return t("settings","Active users")}},children:[{path:":selectedGroup",name:"group",meta:{title:function(e){return"admin"===e.params.selectedGroup?t("settings","Admins"):"disabled"===e.params.selectedGroup?t("settings","Disabled users"):decodeURIComponent(e.params.selectedGroup)}},component:Te}]},{path:"/:index(index.php/)?settings/apps",component:Fe,props:!0,name:"apps",meta:{title:function(){return t("settings","Your apps")}},children:[{path:":category",name:"apps-category",meta:{title:(Ne=je(Re().mark((function e(r){var n;return Re().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("apps"!==r.name){e.next=2;break}return e.abrupt("return",t("settings","Your apps"));case 2:if(!te.J[r.params.category]){e.next=4;break}return e.abrupt("return",te.J[r.params.category]);case 4:return e.next=6,Ce.dispatch("getCategories");case 6:if(!(n=Ce.getters.getCategoryById(r.params.category)).displayName){e.next=9;break}return e.abrupt("return",n.displayName);case 9:case"end":return e.stop()}}),e)}))),function(t){return Ne.apply(this,arguments)})},component:Fe,children:[{path:":id",name:"apps-details",component:Fe}]}]}]});$e.afterEach(function(){var t=je(Re().mark((function t(e){var r,n,o;return Re().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,null===(r=(n=e.meta).title)||void 0===r?void 0:r.call(n,e);case 2:(o=t.sent)?(document.title="".concat(o," - ").concat(Ge),i=o,a=void 0,(a=document.getElementById("page-heading-level-1"))&&(a.textContent=i)):document.title=Ge;case 4:case"end":return t.stop()}var i,a}),t)})));return function(e){return t.apply(this,arguments)}}());var qe=$e;i.default.use(a.ZP,{defaultHtml:!1}),(0,u.Z)(Ce,qe),o.nc=btoa(OC.requestToken),i.default.prototype.t=t,i.default.prototype.n=n,i.default.prototype.OC=OC,i.default.prototype.OCA=OCA,i.default.prototype.oc_userconfig=oc_userconfig,new i.default({router:qe,store:Ce,render:function(t){return t(c)}}).$mount("#content")},83678:function(t,e){function r(t,e){var n={name:t.name,path:t.path,hash:t.hash,query:t.query,params:t.params,fullPath:t.fullPath,meta:t.meta};return e&&(n.from=r(e)),Object.freeze(n)}e.Z=function(t,e,n){var o=(n||{}).moduleName||"route";t.registerModule(o,{namespaced:!0,state:r(e.currentRoute),mutations:{ROUTE_CHANGED:function(e,n){t.state[o]=r(n.to,n.from)}}});var i,a=!1,u=t.watch((function(t){return t[o]}),(function(t){var r=t.fullPath;r!==i&&(null!=i&&(a=!0,e.push(t)),i=r)}),{sync:!0}),s=e.afterEach((function(e,r){a?a=!1:(i=e.fullPath,t.commit(o+"/ROUTE_CHANGED",{to:e,from:r}))}));return function(){null!=s&&s(),null!=u&&u(),t.unregisterModule(o)}}}},a={};function u(t){var e=a[t];if(void 0!==e)return e.exports;var r=a[t]={id:t,loaded:!1,exports:{}};return i[t].call(r.exports,r,r.exports,u),r.loaded=!0,r.exports}u.m=i,e=[],u.O=function(t,r,n,o){if(!r){var i=1/0;for(f=0;f=o)&&Object.keys(u.O).every((function(t){return u.O[t](r[s])}))?r.splice(s--,1):(a=!1,o0&&e[f-1][2]>o;f--)e[f]=e[f-1];e[f]=[r,n,o]},u.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return u.d(e,{a:e}),e},u.d=function(t,e){for(var r in e)u.o(e,r)&&!u.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},u.f={},u.e=function(t){return Promise.all(Object.keys(u.f).reduce((function(e,r){return u.f[r](t,e),e}),[]))},u.u=function(t){return({7418:"settings-apps-view",8351:"settings-users"}[t]||t)+"-"+t+".js?v="+{2250:"9c98ca37abd9ee1927b3",7418:"9568db075946a8294aaf",7996:"39e55a09e2da8534cf16",8351:"44076110fbb7f634ec39"}[t]},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),u.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r={},o="nextcloud:",u.l=function(t,e,n,i){if(r[t])r[t].push(e);else{var a,s;if(void 0!==n)for(var c=document.getElementsByTagName("script"),f=0;f-1&&!t;)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),u.p=t}(),function(){u.b=document.baseURI||self.location.href;var t={8562:0};u.f.j=function(e,r){var n=u.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((function(r,o){n=t[e]=[r,o]}));r.push(n[2]=o);var i=u.p+u.u(e),a=new Error;u.l(i,(function(r){if(u.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;a.message="Loading chunk "+e+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,n[1](a)}}),"chunk-"+e,e)}},u.O.j=function(e){return 0===t[e]};var e=function(e,r){var n,o,i=r[0],a=r[1],s=r[2],c=0;if(i.some((function(e){return 0!==t[e]}))){for(n in a)u.o(a,n)&&(u.m[n]=a[n]);if(s)var f=s(u)}for(e&&e(r);c 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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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(function(key) { return __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:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(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\tscript.timeout = 120;\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 = function(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(function(fn) { return 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 * @copyright 2022, Julia Kirschenheuter \n *\n * @author Julia Kirschenheuter \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 .\n *\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\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 * @copyright 2020 Christoph Wurst \n *\n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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!./App.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=50420604&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an
    element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author Christoph Wurst \n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \n * @author Sujith Haridasan \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 .\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nconst sanitize = function(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) {\n\t\treturn axios.post(sanitize(url), data)\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 * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author Arthur Schiwon \n * @author Christoph Wurst \n * @author Daniel Calviño Sánchez \n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \n * @author Vincent Petry \n * @author Stephan Orbaugh \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 .\n *\n */\n\nimport api from './api.js'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\nconst orderGroups = function(groups, orderBy) {\n\t/* const SORT_USERCOUNT = 1;\n\t * const SORT_GROUPNAME = 2;\n\t * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n\t */\n\tif (orderBy === 1) {\n\t\treturn groups.sort((a, b) => a.usercount - a.disabled < b.usercount - b.disabled)\n\t} else {\n\t\treturn groups.sort((a, b) => a.name.localeCompare(b.name))\n\t}\n}\n\nconst defaults = {\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [],\n\torderBy: 1,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tuserCount: 0,\n\tshowConfig: {\n\t\tshowStoragePath: false,\n\t\tshowUserBackend: false,\n\t\tshowLastLogin: false,\n\t\tshowNewUserForm: false,\n\t\tshowLanguages: false,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\tinitGroups(state, { groups, orderBy, userCount }) {\n\t\tstate.groups = groups.map(group => Object.assign({}, defaults.group, group))\n\t\tstate.orderBy = orderBy\n\t\tstate.userCount = userCount\n\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\n\t},\n\taddGroup(state, { gid, displayName }) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === gid) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = Object.assign({}, defaults.group, {\n\t\t\t\tid: gid,\n\t\t\t\tname: displayName,\n\t\t\t})\n\t\t\tstate.groups.unshift(group)\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t\t} catch (e) {\n\t\t\tconsole.error('Can\\'t create group', e)\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex(groupSearch => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex(groupSearch => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find(groupSearch => groupSearch.id === gid)\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find(groupSearch => groupSearch.id === gid)\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find(user => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find(user => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex(user => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst disabledGroup = state.groups.find(group => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\tcase 'enable':\n\t\tcase 'disable':\n\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tstate.groups\n\t\t\t\t\t.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t .usercount++ // increment group total count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'remove':\n\t\t\tif (user.enabled) {\n\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\tconsole.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = OC.Util.computerFileSize(value)\n\t\t\tstate.users.find(user => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find(user => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSubadminGroups(state) {\n\t\t// Can't be subadmin of admin or disabled\n\t\treturn state.groups.filter(group => group.id !== 'admin' && group.id !== 'disabled')\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\t/**\n\t\t * Adding filters in the search bar such as in:files, in:users, etc.\n\t\t * collides with this particular search, so we need to remove them\n\t\t * here and leave only the original search query\n\t\t */\n\t\tsearch = search.replace(/in:[^\\s]+/g, '').trim()\n\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { gid: group, displayName: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('addGroup', { gid, displayName: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\twipeUserDevices(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tsetUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tif (['email', 'language', 'quota', 'displayname', 'password', 'manager'].indexOf(key) !== -1) {\n\t\t\t// We allow empty email or displayname\n\t\t\tif (typeof value === 'string'\n\t\t\t\t&& (\n\t\t\t\t\t(allowedEmpty.indexOf(key) === -1 && value.length > 0)\n\t\t\t\t\t|| allowedEmpty.indexOf(key) !== -1\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn api.requireAdmin().then((response) => {\n\t\t\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\t\t\t\t.then((response) => context.commit('setUserData', { userid, key, value }))\n\t\t\t\t\t\t.catch((error) => { throw error })\n\t\t\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject(new Error('Invalid request data'))\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(response => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2018 Julius Härtl \n *\n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport api from './api.js'\nimport Vue from 'vue'\nimport { generateUrl } from '@nextcloud/router'\nimport { showError, showInfo } from '@nextcloud/dialogs'\n\nconst state = {\n\tapps: [],\n\tcategories: [],\n\tupdateCount: 0,\n\tloading: {},\n\tloadingList: false,\n\tgettingCategoriesPromise: null,\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
    ' + error.error.response.data.data.message, { isHTML: true })\n\t\tconsole.error(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, error }) {\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\tapp.groups = groups\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},\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},\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\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\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\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\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t\t\t})\n\n\t\t\t\t\t// check for server health\n\t\t\t\t\treturn api.get(generateUrl('apps/files'))\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t\t'settings',\n\t\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\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\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\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\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}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tforceEnableApp(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\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// TODO: find a cleaner solution\n\t\t\t\t\tlocation.reload()\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}).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((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\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', apps)\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\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then((response) => {\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((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then((response) => {\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\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.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(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\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 * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport api from './api.js'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Julius Härtl \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 .\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport users from './users.js'\nimport apps from './apps.js'\nimport settings from './settings.js'\nimport oc from './oc.js'\nimport { showError } from '@nextcloud/dialogs'\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production'\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('settings', 'An error occurred during the request. Unable to proceed.') + '
    ' + message, { isHTML: true })\n\t\t} catch (e) {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tconsole.error(state, error)\n\t},\n}\n\nexport default new Store({\n\tmodules: {\n\t\tusers,\n\t\tapps,\n\t\tsettings,\n\t\toc,\n\t},\n\tstrict: debug,\n\n\tmutations,\n})\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\n\nconst state = {\n\tserverData: {},\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport Vue from 'vue'\nimport Router from 'vue-router'\nimport { generateUrl } from '@nextcloud/router'\nimport { APPS_SECTION_ENUM } from './constants/AppsConstants.js'\nimport store from './store/index.js'\nimport { setPageHeading } from '../../../core/src/OCP/accessibility.js'\n\n// Dynamic loading\nconst Users = () => import(/* webpackChunkName: 'settings-users' */'./views/Users.vue')\nconst Apps = () => import(/* webpackChunkName: 'settings-apps-view' */'./views/Apps.vue')\n\nVue.use(Router)\n\n/*\n * This is the list of routes where the vuejs app will\n * take over php to provide data\n * You need to forward the php routing (routes.php) to\n * the settings-vue template, where the vue-router will\n * ensure the proper route.\n * ⚠️ Routes needs to match the php routes.\n */\nconst baseTitle = document.title\nconst router = new Router({\n\tmode: 'history',\n\t// if index.php is in the url AND we got this far, then it's working:\n\t// let's keep using index.php in the url\n\tbase: generateUrl(''),\n\tlinkActiveClass: 'active',\n\troutes: [\n\t\t{\n\t\t\tpath: '/:index(index.php/)?settings/users',\n\t\t\tcomponent: Users,\n\t\t\tprops: true,\n\t\t\tname: 'users',\n\t\t\tmeta: {\n\t\t\t\ttitle: () => {\n\t\t\t\t\treturn t('settings', 'Active users')\n\t\t\t\t},\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: ':selectedGroup',\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ttitle: (to) => {\n\t\t\t\t\t\t\tif (to.params.selectedGroup === 'admin') {\n\t\t\t\t\t\t\t\treturn t('settings', 'Admins')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (to.params.selectedGroup === 'disabled') {\n\t\t\t\t\t\t\t\treturn t('settings', 'Disabled users')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn decodeURIComponent(to.params.selectedGroup)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcomponent: Users,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tpath: '/:index(index.php/)?settings/apps',\n\t\t\tcomponent: Apps,\n\t\t\tprops: true,\n\t\t\tname: 'apps',\n\t\t\tmeta: {\n\t\t\t\ttitle: () => {\n\t\t\t\t\treturn t('settings', 'Your apps')\n\t\t\t\t},\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: ':category',\n\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ttitle: async (to) => {\n\t\t\t\t\t\t\tif (to.name === 'apps') {\n\t\t\t\t\t\t\t\treturn t('settings', 'Your apps')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (APPS_SECTION_ENUM[to.params.category]) {\n\t\t\t\t\t\t\t\treturn APPS_SECTION_ENUM[to.params.category]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait store.dispatch('getCategories')\n\t\t\t\t\t\t\tconst category = store.getters.getCategoryById(to.params.category)\n\t\t\t\t\t\t\tif (category.displayName) {\n\t\t\t\t\t\t\t\treturn category.displayName\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\tcomponent: Apps,\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: ':id',\n\t\t\t\t\t\t\tname: 'apps-details',\n\t\t\t\t\t\t\tcomponent: Apps,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t],\n})\n\nrouter.afterEach(async (to) => {\n\tconst metaTitle = await to.meta.title?.(to)\n\tif (metaTitle) {\n\t\tdocument.title = `${metaTitle} - ${baseTitle}`\n\t\tsetPageHeading(metaTitle)\n\t} else {\n\t\tdocument.title = baseTitle\n\t}\n})\n\nexport default router\n","/**\n * @copyright Copyright (c) 2022 Joas Schilling \n *\n * @author Joas Schilling \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 .\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\n/**\n * Set the page heading\n *\n * @param {string} heading page title from the history api\n * @since 27.0.0\n */\nexport function setPageHeading(heading) {\n\tconst headingEl = document.getElementById('page-heading-level-1')\n\tif (headingEl) {\n\t\theadingEl.textContent = heading\n\t}\n}\nexport default {\n\t/**\n\t * @return {boolean} Whether the user opted-out of shortcuts so that they should not be registered\n\t */\n\tdisableKeyboardShortcuts() {\n\t\treturn loadState('theming', 'shortcutsDisabled', false)\n\t},\n\tsetPageHeading,\n}\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author rakekniven \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport Vue from 'vue'\nimport VTooltip from 'v-tooltip'\nimport { sync } from 'vuex-router-sync'\n\nimport App from './App.vue'\nimport router from './router.js'\nimport store from './store/index.js'\n\nVue.use(VTooltip, { defaultHtml: false })\n\nsync(store, router)\n\n// CSP config for webpack dynamic chunk loading\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(OC.requestToken)\n\n// bind to window\nVue.prototype.t = t\nVue.prototype.n = n\nVue.prototype.OC = OC\nVue.prototype.OCA = OCA\n// eslint-disable-next-line camelcase\nVue.prototype.oc_userconfig = oc_userconfig\n\nconst app = new Vue({\n\trouter,\n\tstore,\n\trender: h => h(App),\n}).$mount('#content')\n\nexport { app, router, store }\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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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 = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(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 = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"7418\":\"settings-apps-view\",\"8351\":\"settings-users\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"2250\":\"9c98ca37abd9ee1927b3\",\"7418\":\"c1cae41c530feb8e9906\",\"7996\":\"39e55a09e2da8534cf16\",\"8351\":\"44076110fbb7f634ec39\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8562;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\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) 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(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = 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\t8562: 0\n};\n\n__webpack_require__.f.j = function(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(function(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 = function(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 = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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(function(id) { return 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 = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\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, [7874], function() { return __webpack_require__(97268); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","APPS_SECTION_ENUM","Object","freeze","enabled","t","disabled","updates","featured","supported","getLoggerBuilder","setApp","detectUser","build","name","beforeMount","document","getElementById","$store","commit","JSON","parse","dataset","server","_c","this","_self","extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","castQueryParamValue","value","String","parseQuery","query","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","Array","isArray","push","stringifyQuery","obj","keys","map","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","e","route","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","START","unshift","parent","ref","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bVal","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","props","type","default","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","current","hook","prepatch","vnode","componentInstance","init","propsToPass","config","resolveProps","attrs","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","RegExp","groups","source","match","prefix","delimiter","optional","repeat","partial","asterisk","pattern","attachKeys","regexpToRegexp","flags","arrayToRegexp","tokensToRegExp","stringToRegexp","parse_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","PATH_REGEXP","tokens","index","defaultDelimiter","exec","m","escaped","offset","slice","next","capture","group","modifier","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","matches","opts","pretty","token","TypeError","stringify","j","test","re","sensitive","strict","end","endsWithDelimiter","compile","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","hashIndex","indexOf","queryIndex","parsePath","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","_Vue","noop","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","target","queryIncludes","isIncludedRoute","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","history","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","isValidPosition","isNumber","normalizePosition","v","hashStartsWithNumberRE","isObject","selector","el","querySelector","docRect","documentElement","getBoundingClientRect","elRect","left","top","getElementPosition","style","scrollTo","ua","supportsPushState","navigator","userAgent","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationCancelledError","createRouterError","message","error","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","flatMapComponents","flatten","concat","apply","hasSymbol","Symbol","toStringTag","once","called","args","arguments","History","baseEl","normalizeBase","pending","ready","readyCbs","readyErrorCbs","errorCbs","listeners","extractGuards","records","bind","reverse","guards","def","guard","extractGuard","bindGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","max","Math","updated","activated","deactivated","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","hasAsync","cid","resolvedDef","__esModule","resolved","reject","reason","msg","comp","iterator","createNavigationAbortedError","createNavigationRedirectedError","enterGuards","bindEnterGuard","extractEnterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","get","$once","routeOrError","handleInitialScroll","_route","beforeEach","registerHook","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","VueRouter$1","list","install","Vue","installed","isDef","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","destroyed","defineProperty","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","version","START_LOCATION","use","sanitize","confirmPassword","axios","post","put","delete","orderGroups","orderBy","usercount","localeCompare","defaults","id","canAdd","canRemove","mutations","appendUsers","usersObj","existingUsers","users","_ref","newUsers","values","_ref2","includes","usersOffset","usersLimit","setPasswordPolicyMinLength","minPasswordLength","initGroups","_ref3","userCount","assign","addGroup","_ref4","gid","displayName","find","renameGroup","_ref5","groupIndex","findIndex","groupSearch","updatedGroup","removeGroup","addUserGroup","_ref6","userid","user","removeUserGroup","_ref7","addUserSubAdmin","_ref8","subadmin","removeUserSubAdmin","_ref9","deleteUser","userIndex","actionType","addUserData","response","ocs","enableDisableUser","_ref10","updateUserCounts","_ref11","disabledGroup","userGroup","warn","logger","setUserData","_ref12","humanValue","OC","Util","computerFileSize","resetUsers","setShowConfig","_ref13","showConfig","CancelToken","searchRequestCancelSource","showStoragePath","showUserBackend","showLastLogin","showNewUserForm","showLanguages","getters","getUsers","getGroups","getSubadminGroups","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getUserCount","getShowConfig","actions","searchUsers","context","_ref14","limit","api","generateOcsUrl","isCancel","getUser","userId","_ref15","cancel","cancelToken","usersCount","_ref16","limitParam","getUsersFromList","_ref17","getUsersFromGroup","_ref18","groupid","groupId","getCapabilities","password_policy","minLength","_ref19","_ref20","_ref21","_ref22","_ref23","wipeUserDevices","addUser","_ref24","_ref25","dispatch","password","email","quota","language","manager","_ref26","_ref26$enabled","userStatus","_ref27","allowedEmpty","sendWelcomeMail","_regeneratorRuntime","exports","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","enumerable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","_typeof","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","doneResult","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","async","iter","object","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","APPS_API_FAILURE","showError","isHTML","initCategories","categories","updateCount","updateCategories","categoriesPromise","gettingCategoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","setError","appId","_id","clearError","enableApp","active","disableApp","removable","canUnInstall","uninstallApp","needsDownload","canInstall","updateApp","update","resetApps","startLoading","loading","stopLoading","generateUrl","appIds","_appId","update_required","showInfo","onClick","reload","close","setTimeout","forceEnableApp","getAllApps","getCategories","_arguments","_callee","_ref10$shouldRefetchC","categoriesPromiseResponse","_context","shouldRefetchCategories","t0","loadingList","getUpdateCount","getCategoryById","selectedCategoryId","setAppConfig","Vuex","API_FAILURE","Store","modules","settings","serverData","setServerData","getServerData","oc","process","_asyncToGenerator","Users","Apps","Router","_title","baseTitle","title","selectedGroup","store","_x","_callee2","_to$meta$title","_to$meta","metaTitle","_context2","heading","headingEl","textContent","_x2","VTooltip","defaultHtml","sync","__webpack_nonce__","btoa","requestToken","OCA","oc_userconfig","App","$mount","cloneRoute","moduleName","registerModule","namespaced","transition","currentPath","isTimeTraveling","storeUnwatch","watch","afterEachUnHook","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","r","getter","d","definition","o","f","chunkId","all","reduce","promises","u","g","globalThis","Function","prop","script","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","head","appendChild","nmd","paths","scriptUrl","importScripts","currentScript","p","baseURI","installedChunks","installedChunkData","promise","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=5e82675a296644e6803a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/settings/src/constants/AppsConstants.js","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/App.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/App.vue","webpack://nextcloud/./apps/settings/src/App.vue?536c","webpack://nextcloud/./apps/settings/src/App.vue?4d15","webpack:///nextcloud/node_modules/vue-router/dist/vue-router.esm.js","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/store/settings.js","webpack:///nextcloud/apps/settings/src/router.js","webpack:///nextcloud/core/src/OCP/accessibility.js","webpack:///nextcloud/apps/settings/src/main-apps-users-management.js","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/global","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 = function(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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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(function(key) { return __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:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(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\tscript.timeout = 120;\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 = function(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(function(fn) { return 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 * @copyright 2022, Julia Kirschenheuter \n *\n * @author Julia Kirschenheuter \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 .\n *\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\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 * @copyright 2020 Christoph Wurst \n *\n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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!./App.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=50420604&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an
    element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author Christoph Wurst \n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \n * @author Sujith Haridasan \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 .\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nconst sanitize = function(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) {\n\t\treturn axios.post(sanitize(url), data)\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 * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author Arthur Schiwon \n * @author Christoph Wurst \n * @author Daniel Calviño Sánchez \n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \n * @author Vincent Petry \n * @author Stephan Orbaugh \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 .\n *\n */\n\nimport api from './api.js'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport logger from '../logger.js'\n\nconst orderGroups = function(groups, orderBy) {\n\t/* const SORT_USERCOUNT = 1;\n\t * const SORT_GROUPNAME = 2;\n\t * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n\t */\n\tif (orderBy === 1) {\n\t\treturn groups.sort((a, b) => a.usercount - a.disabled < b.usercount - b.disabled)\n\t} else {\n\t\treturn groups.sort((a, b) => a.name.localeCompare(b.name))\n\t}\n}\n\nconst defaults = {\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [],\n\torderBy: 1,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tuserCount: 0,\n\tshowConfig: {\n\t\tshowStoragePath: false,\n\t\tshowUserBackend: false,\n\t\tshowLastLogin: false,\n\t\tshowNewUserForm: false,\n\t\tshowLanguages: false,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\tinitGroups(state, { groups, orderBy, userCount }) {\n\t\tstate.groups = groups.map(group => Object.assign({}, defaults.group, group))\n\t\tstate.orderBy = orderBy\n\t\tstate.userCount = userCount\n\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\n\t},\n\taddGroup(state, { gid, displayName }) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === gid) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = Object.assign({}, defaults.group, {\n\t\t\t\tid: gid,\n\t\t\t\tname: displayName,\n\t\t\t})\n\t\t\tstate.groups.unshift(group)\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t\t} catch (e) {\n\t\t\tconsole.error('Can\\'t create group', e)\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex(groupSearch => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex(groupSearch => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find(groupSearch => groupSearch.id === gid)\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find(groupSearch => groupSearch.id === gid)\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t\tstate.groups = orderGroups(state.groups, state.orderBy)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find(user => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find(user => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex(user => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find(user => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst disabledGroup = state.groups.find(group => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\tcase 'enable':\n\t\tcase 'disable':\n\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tstate.groups\n\t\t\t\t\t.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t .usercount++ // increment group total count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'remove':\n\t\t\tif (user.enabled) {\n\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\tconsole.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = OC.Util.computerFileSize(value)\n\t\t\tstate.users.find(user => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find(user => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSubadminGroups(state) {\n\t\t// Can't be subadmin of admin or disabled\n\t\treturn state.groups.filter(group => group.id !== 'admin' && group.id !== 'disabled')\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\t/**\n\t\t * Adding filters in the search bar such as in:files, in:users, etc.\n\t\t * collides with this particular search, so we need to remove them\n\t\t * here and leave only the original search query\n\t\t */\n\t\tsearch = search.replace(/in:[^\\s]+/g, '').trim()\n\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { gid: group, displayName: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('addGroup', { gid, displayName: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\twipeUserDevices(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tsetUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tif (['email', 'language', 'quota', 'displayname', 'password', 'manager'].indexOf(key) !== -1) {\n\t\t\t// We allow empty email or displayname\n\t\t\tif (typeof value === 'string'\n\t\t\t\t&& (\n\t\t\t\t\t(allowedEmpty.indexOf(key) === -1 && value.length > 0)\n\t\t\t\t\t|| allowedEmpty.indexOf(key) !== -1\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn api.requireAdmin().then((response) => {\n\t\t\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\t\t\t\t.then((response) => context.commit('setUserData', { userid, key, value }))\n\t\t\t\t\t\t.catch((error) => { throw error })\n\t\t\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject(new Error('Invalid request data'))\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(response => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2018 Julius Härtl \n *\n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport api from './api.js'\nimport Vue from 'vue'\nimport { generateUrl } from '@nextcloud/router'\nimport { showError, showInfo } from '@nextcloud/dialogs'\n\nconst state = {\n\tapps: [],\n\tcategories: [],\n\tupdateCount: 0,\n\tloading: {},\n\tloadingList: false,\n\tgettingCategoriesPromise: null,\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
    ' + error.error.response.data.data.message, { isHTML: true })\n\t\tconsole.error(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, error }) {\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\tapp.groups = groups\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},\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},\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\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\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\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\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t\t\t})\n\n\t\t\t\t\t// check for server health\n\t\t\t\t\treturn api.get(generateUrl('apps/files'))\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t\t'settings',\n\t\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\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\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\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\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}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tforceEnableApp(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\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// TODO: find a cleaner solution\n\t\t\t\t\tlocation.reload()\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}).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((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\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', apps)\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\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then((response) => {\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((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then((response) => {\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\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.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(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\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 * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport api from './api.js'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Julius Härtl \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 .\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport users from './users.js'\nimport apps from './apps.js'\nimport settings from './settings.js'\nimport oc from './oc.js'\nimport { showError } from '@nextcloud/dialogs'\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production'\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('settings', 'An error occurred during the request. Unable to proceed.') + '
    ' + message, { isHTML: true })\n\t\t} catch (e) {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tconsole.error(state, error)\n\t},\n}\n\nexport default new Store({\n\tmodules: {\n\t\tusers,\n\t\tapps,\n\t\tsettings,\n\t\toc,\n\t},\n\tstrict: debug,\n\n\tmutations,\n})\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\n\nconst state = {\n\tserverData: {},\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport Vue from 'vue'\nimport Router from 'vue-router'\nimport { generateUrl } from '@nextcloud/router'\nimport { APPS_SECTION_ENUM } from './constants/AppsConstants.js'\nimport store from './store/index.js'\nimport { setPageHeading } from '../../../core/src/OCP/accessibility.js'\n\n// Dynamic loading\nconst Users = () => import(/* webpackChunkName: 'settings-users' */'./views/Users.vue')\nconst Apps = () => import(/* webpackChunkName: 'settings-apps-view' */'./views/Apps.vue')\n\nVue.use(Router)\n\n/*\n * This is the list of routes where the vuejs app will\n * take over php to provide data\n * You need to forward the php routing (routes.php) to\n * the settings-vue template, where the vue-router will\n * ensure the proper route.\n * ⚠️ Routes needs to match the php routes.\n */\nconst baseTitle = document.title\nconst router = new Router({\n\tmode: 'history',\n\t// if index.php is in the url AND we got this far, then it's working:\n\t// let's keep using index.php in the url\n\tbase: generateUrl(''),\n\tlinkActiveClass: 'active',\n\troutes: [\n\t\t{\n\t\t\tpath: '/:index(index.php/)?settings/users',\n\t\t\tcomponent: Users,\n\t\t\tprops: true,\n\t\t\tname: 'users',\n\t\t\tmeta: {\n\t\t\t\ttitle: () => {\n\t\t\t\t\treturn t('settings', 'Active users')\n\t\t\t\t},\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: ':selectedGroup',\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ttitle: (to) => {\n\t\t\t\t\t\t\tif (to.params.selectedGroup === 'admin') {\n\t\t\t\t\t\t\t\treturn t('settings', 'Admins')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (to.params.selectedGroup === 'disabled') {\n\t\t\t\t\t\t\t\treturn t('settings', 'Disabled users')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn decodeURIComponent(to.params.selectedGroup)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcomponent: Users,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tpath: '/:index(index.php/)?settings/apps',\n\t\t\tcomponent: Apps,\n\t\t\tprops: true,\n\t\t\tname: 'apps',\n\t\t\tmeta: {\n\t\t\t\ttitle: () => {\n\t\t\t\t\treturn t('settings', 'Your apps')\n\t\t\t\t},\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: ':category',\n\t\t\t\t\tname: 'apps-category',\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\ttitle: async (to) => {\n\t\t\t\t\t\t\tif (to.name === 'apps') {\n\t\t\t\t\t\t\t\treturn t('settings', 'Your apps')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (APPS_SECTION_ENUM[to.params.category]) {\n\t\t\t\t\t\t\t\treturn APPS_SECTION_ENUM[to.params.category]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait store.dispatch('getCategories')\n\t\t\t\t\t\t\tconst category = store.getters.getCategoryById(to.params.category)\n\t\t\t\t\t\t\tif (category.displayName) {\n\t\t\t\t\t\t\t\treturn category.displayName\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\tcomponent: Apps,\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: ':id',\n\t\t\t\t\t\t\tname: 'apps-details',\n\t\t\t\t\t\t\tcomponent: Apps,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t],\n})\n\nrouter.afterEach(async (to) => {\n\tconst metaTitle = await to.meta.title?.(to)\n\tif (metaTitle) {\n\t\tdocument.title = `${metaTitle} - ${baseTitle}`\n\t\tsetPageHeading(metaTitle)\n\t} else {\n\t\tdocument.title = baseTitle\n\t}\n})\n\nexport default router\n","/**\n * @copyright Copyright (c) 2022 Joas Schilling \n *\n * @author Joas Schilling \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 .\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\n/**\n * Set the page heading\n *\n * @param {string} heading page title from the history api\n * @since 27.0.0\n */\nexport function setPageHeading(heading) {\n\tconst headingEl = document.getElementById('page-heading-level-1')\n\tif (headingEl) {\n\t\theadingEl.textContent = heading\n\t}\n}\nexport default {\n\t/**\n\t * @return {boolean} Whether the user opted-out of shortcuts so that they should not be registered\n\t */\n\tdisableKeyboardShortcuts() {\n\t\treturn loadState('theming', 'shortcutsDisabled', false)\n\t},\n\tsetPageHeading,\n}\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author rakekniven \n * @author Roeland Jago Douma \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 .\n *\n */\n\nimport Vue from 'vue'\nimport VTooltip from 'v-tooltip'\nimport { sync } from 'vuex-router-sync'\n\nimport App from './App.vue'\nimport router from './router.js'\nimport store from './store/index.js'\n\nVue.use(VTooltip, { defaultHtml: false })\n\nsync(store, router)\n\n// CSP config for webpack dynamic chunk loading\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(OC.requestToken)\n\n// bind to window\nVue.prototype.t = t\nVue.prototype.n = n\nVue.prototype.OC = OC\nVue.prototype.OCA = OCA\n// eslint-disable-next-line camelcase\nVue.prototype.oc_userconfig = oc_userconfig\n\nconst app = new Vue({\n\trouter,\n\tstore,\n\trender: h => h(App),\n}).$mount('#content')\n\nexport { app, router, store }\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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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 = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(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 = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"7418\":\"settings-apps-view\",\"8351\":\"settings-users\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"2250\":\"9c98ca37abd9ee1927b3\",\"7418\":\"9568db075946a8294aaf\",\"7996\":\"39e55a09e2da8534cf16\",\"8351\":\"44076110fbb7f634ec39\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8562;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\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) 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(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = 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\t8562: 0\n};\n\n__webpack_require__.f.j = function(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(function(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 = function(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 = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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(function(id) { return 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 = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\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, [7874], function() { return __webpack_require__(97268); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","APPS_SECTION_ENUM","Object","freeze","enabled","t","disabled","updates","featured","supported","getLoggerBuilder","setApp","detectUser","build","name","beforeMount","document","getElementById","$store","commit","JSON","parse","dataset","server","_c","this","_self","extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","castQueryParamValue","value","String","parseQuery","query","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","Array","isArray","push","stringifyQuery","obj","keys","map","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","e","route","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","START","unshift","parent","ref","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bVal","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","props","type","default","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","current","hook","prepatch","vnode","componentInstance","init","propsToPass","config","resolveProps","attrs","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","RegExp","groups","source","match","prefix","delimiter","optional","repeat","partial","asterisk","pattern","attachKeys","regexpToRegexp","flags","arrayToRegexp","tokensToRegExp","stringToRegexp","parse_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","PATH_REGEXP","tokens","index","defaultDelimiter","exec","m","escaped","offset","slice","next","capture","group","modifier","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","matches","opts","pretty","token","TypeError","stringify","j","test","re","sensitive","strict","end","endsWithDelimiter","compile","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","hashIndex","indexOf","queryIndex","parsePath","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","_Vue","noop","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","target","queryIncludes","isIncludedRoute","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","history","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","isValidPosition","isNumber","normalizePosition","v","hashStartsWithNumberRE","isObject","selector","el","querySelector","docRect","documentElement","getBoundingClientRect","elRect","left","top","getElementPosition","style","scrollTo","ua","supportsPushState","navigator","userAgent","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationCancelledError","createRouterError","message","error","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","flatMapComponents","flatten","concat","apply","hasSymbol","Symbol","toStringTag","once","called","args","arguments","History","baseEl","normalizeBase","pending","ready","readyCbs","readyErrorCbs","errorCbs","listeners","extractGuards","records","bind","reverse","guards","def","guard","extractGuard","bindGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","max","Math","updated","activated","deactivated","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","hasAsync","cid","resolvedDef","__esModule","resolved","reject","reason","msg","comp","iterator","createNavigationAbortedError","createNavigationRedirectedError","enterGuards","bindEnterGuard","extractEnterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","get","$once","routeOrError","handleInitialScroll","_route","beforeEach","registerHook","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","VueRouter$1","list","install","Vue","installed","isDef","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","destroyed","defineProperty","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","version","START_LOCATION","use","sanitize","confirmPassword","axios","post","put","delete","orderGroups","orderBy","usercount","localeCompare","defaults","id","canAdd","canRemove","mutations","appendUsers","usersObj","existingUsers","users","_ref","newUsers","values","_ref2","includes","usersOffset","usersLimit","setPasswordPolicyMinLength","minPasswordLength","initGroups","_ref3","userCount","assign","addGroup","_ref4","gid","displayName","find","renameGroup","_ref5","groupIndex","findIndex","groupSearch","updatedGroup","removeGroup","addUserGroup","_ref6","userid","user","removeUserGroup","_ref7","addUserSubAdmin","_ref8","subadmin","removeUserSubAdmin","_ref9","deleteUser","userIndex","actionType","addUserData","response","ocs","enableDisableUser","_ref10","updateUserCounts","_ref11","disabledGroup","userGroup","warn","logger","setUserData","_ref12","humanValue","OC","Util","computerFileSize","resetUsers","setShowConfig","_ref13","showConfig","CancelToken","searchRequestCancelSource","showStoragePath","showUserBackend","showLastLogin","showNewUserForm","showLanguages","getters","getUsers","getGroups","getSubadminGroups","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getUserCount","getShowConfig","actions","searchUsers","context","_ref14","limit","api","generateOcsUrl","isCancel","getUser","userId","_ref15","cancel","cancelToken","usersCount","_ref16","limitParam","getUsersFromList","_ref17","getUsersFromGroup","_ref18","groupid","groupId","getCapabilities","password_policy","minLength","_ref19","_ref20","_ref21","_ref22","_ref23","wipeUserDevices","addUser","_ref24","_ref25","dispatch","password","email","quota","language","manager","_ref26","_ref26$enabled","userStatus","_ref27","allowedEmpty","sendWelcomeMail","_regeneratorRuntime","exports","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","enumerable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","_typeof","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","doneResult","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","async","iter","object","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","APPS_API_FAILURE","showError","isHTML","initCategories","categories","updateCount","updateCategories","categoriesPromise","gettingCategoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","setError","appId","_id","clearError","enableApp","active","disableApp","removable","canUnInstall","uninstallApp","needsDownload","canInstall","updateApp","update","resetApps","startLoading","loading","stopLoading","generateUrl","appIds","_appId","update_required","showInfo","onClick","reload","close","setTimeout","forceEnableApp","getAllApps","getCategories","_arguments","_callee","_ref10$shouldRefetchC","categoriesPromiseResponse","_context","shouldRefetchCategories","t0","loadingList","getUpdateCount","getCategoryById","selectedCategoryId","setAppConfig","Vuex","API_FAILURE","Store","modules","settings","serverData","setServerData","getServerData","oc","process","_asyncToGenerator","Users","Apps","Router","_title","baseTitle","title","selectedGroup","store","_x","_callee2","_to$meta$title","_to$meta","metaTitle","_context2","heading","headingEl","textContent","_x2","VTooltip","defaultHtml","sync","__webpack_nonce__","btoa","requestToken","OCA","oc_userconfig","App","$mount","cloneRoute","moduleName","registerModule","namespaced","transition","currentPath","isTimeTraveling","storeUnwatch","watch","afterEachUnHook","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","r","getter","d","definition","o","f","chunkId","all","reduce","promises","u","g","globalThis","Function","prop","script","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","head","appendChild","nmd","paths","scriptUrl","importScripts","currentScript","p","baseURI","installedChunks","installedChunkData","promise","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file