From bfb444c731928b460f32043917b99f7c957cf2af Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Mon, 3 Feb 2025 22:51:37 +0100 Subject: [PATCH] chore(assets): Recompile assets Signed-off-by: Grigorii K. Shartsev --- apps/settings/css/settings.css | 2 +- apps/settings/css/settings.css.map | 2 +- dist/settings-apps-view-4529.js | 4 ++-- dist/settings-apps-view-4529.js.map | 2 +- dist/settings-vue-settings-apps-users-management.js | 4 ++-- dist/settings-vue-settings-apps-users-management.js.map | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/settings/css/settings.css b/apps/settings/css/settings.css index 577a2b086f8f6..d5bc2df691088 100644 --- a/apps/settings/css/settings.css +++ b/apps/settings/css/settings.css @@ -1 +1 @@ -input#openid,input#webdav{width:20em}.clear{clear:both}.nav-icon-personal-settings{background-image:var(--icon-personal-dark)}.nav-icon-security{background-image:var(--icon-toggle-filelist-dark)}.nav-icon-clientsbox{background-image:var(--icon-change-dark)}.nav-icon-federated-cloud{background-image:var(--icon-share-dark)}.nav-icon-second-factor-backup-codes,.nav-icon-ssl-root-certificate{background-image:var(--icon-password-dark)}#personal-settings-avatar-container{display:inline-grid;grid-template-columns:1fr;grid-template-rows:2fr 1fr 2fr;vertical-align:top}.profile-settings-container{display:inline-grid;grid-template-columns:1fr 1fr 1fr}.personal-show-container{width:100%}.personal-settings-setting-box .section{padding:10px 30px}.personal-settings-setting-box .section .headerbar-label{margin-bottom:0}.personal-settings-setting-box .section input[type=text],.personal-settings-setting-box .section input[type=email],.personal-settings-setting-box .section input[type=tel],.personal-settings-setting-box .section input[type=url]{width:100%}.personal-settings-setting-box-profile{grid-row:3/5}.personal-settings-setting-box-detail{grid-row:5}.personal-settings-setting-box-detail--without-profile{grid-row:3}select#timezone{width:100%}#personal-settings{display:grid;padding:20px;max-width:1700px;grid-template-columns:repeat(auto-fill, minmax(min(100%, 300px), 1fr));grid-column-gap:10px}#personal-settings .section{padding:10px 10px;border:0}#personal-settings .section h2{margin-bottom:12px}#personal-settings .section h3>label{font-weight:bold}#personal-settings .personal-info{margin-right:10%;margin-bottom:12px;margin-top:12px}#personal-settings .personal-info[class^=icon-],#personal-settings .personal-info[class*=" icon-"]{background-position:0px 2px;padding-left:30px;opacity:.7}.development-notice{text-align:center}.development-notice a:not(.link-button){text-decoration:underline}.link-button{display:inline-block;margin:16px;padding:14px 20px;background-color:var(--color-primary-element);color:var(--color-primary-element-text);border-radius:var(--border-radius-pill);border:1px solid var(--color-primary-element);box-shadow:0 2px 9px var(--color-box-shadow)}.link-button:active,.link-button:hover,.link-button:focus,.link-button:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.link-button.icon-file{padding-left:48px;background-position:24px}.personal-settings-container{display:inline-grid;grid-template-columns:1fr 1fr 1fr}.personal-settings-container:after{clear:both}.personal-settings-container>div h3{position:relative;display:inline-flex;flex-wrap:nowrap;justify-content:flex-start;width:100%;align-items:center;gap:8px}.personal-settings-container>div h3>label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.personal-settings-container>div>form span[class^=icon-checkmark],.personal-settings-container>div>form span[class^=icon-error]{position:relative;right:8px;top:-28px;pointer-events:none;float:right}.personal-settings-container .verify{position:relative;left:100%;top:0;height:0}.personal-settings-container .verify img{padding:12px 7px 6px}.personal-settings-container .verify-action{cursor:pointer}.personal-settings-container input:disabled{background-color:#fff;color:#000;border:none;opacity:100}.verification-dialog{display:none;right:-9px;top:40px;width:275px}.verification-dialog p{padding:10px}.verification-dialog .verificationCode{font-family:monospace;display:block;overflow-wrap:break-word}.federation-menu{position:relative;cursor:pointer;width:44px;height:44px;padding:10px;margin:0;background:none;border:none}.federation-menu:hover,.federation-menu:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.federation-menu:hover .icon-federation-menu,.federation-menu:focus .icon-federation-menu{opacity:.8}.federation-menu .icon-federation-menu{padding-left:16px;background-size:16px;background-position:left center;opacity:.3;cursor:inherit}.federation-menu .icon-federation-menu .icon-triangle-s{display:inline-block;vertical-align:middle;cursor:inherit}.federation-menu .federationScopeMenu{top:44px}.federation-menu .federationScopeMenu.popovermenu .menuitem{font-size:12.8px;line-height:1.6em}.federation-menu .federationScopeMenu.popovermenu .menuitem .menuitem-text-detail{opacity:.75}.federation-menu .federationScopeMenu.popovermenu .menuitem.active{box-shadow:inset 2px 0 var(--color-primary-element)}.federation-menu .federationScopeMenu.popovermenu .menuitem.active .menuitem-text{font-weight:bold}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled{opacity:.5;cursor:default}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled *{cursor:default}.clientsbox img{height:60px}#sslCertificate tr.expired{background-color:rgba(255,0,0,.5)}#sslCertificate td{padding:5px}#displaynameerror,#displaynamechanged{display:none}input#identity{width:20em}#showWizard{display:inline-block}.msg.success{color:#fff;background-color:#47a447;padding:3px}.msg.error{color:#fff;background-color:#d2322d;padding:3px}table.nostyle label{margin-right:2em}table.nostyle td{padding:.2em 0}#security-password #passwordform{display:flex;flex-wrap:wrap;flex-direction:column;gap:1rem}#security-password #passwordform .input-control{display:flex;flex-wrap:wrap;flex-direction:column}#security-password #passwordform .input-control label{margin-bottom:.5rem}#security-password #passwordform #pass1,#security-password #passwordform .personal-show-container{flex-shrink:1;width:300px;min-width:150px}#security-password #passwordform .personal-show-container #pass2{position:relative;top:.5rem}#security-password #passwordform .personal-show-container .personal-show-label{top:34px !important;margin-right:0;margin-top:0 !important;right:3px}#security-password #passwordform #pass2{width:100%}#security-password #passwordform .password-state{display:inline-block}#security-password #passwordform .strengthify-wrapper{position:absolute;left:0;width:100%;border-radius:0 0 2px 2px;margin-top:5px;overflow:hidden;height:3px}#two-factor-auth h3{margin-top:24px}#two-factor-auth li>div{margin-left:20px}#two-factor-auth .two-factor-provider-settings-icon{width:16px;height:16px;vertical-align:sub;filter:var(--background-invert-if-dark)}.isgroup .groupname{width:85%;display:block;overflow:hidden;text-overflow:ellipsis}.isgroup.active .groupname{width:65%}li.active .delete,li.active .rename{display:block}.app-navigation-entry-utils .delete,.app-navigation-entry-utils .rename{display:none}#usersearchform{position:absolute;top:2px;right:0}#usersearchform input{width:150px}#usersearchform label{font-weight:bold}table.grid{width:100%}table.grid th{height:2em;padding:0 1em 0 0;border-bottom:1px solid var(--color-border);text-align:left;font-weight:normal}table.grid td{border-bottom:1px solid var(--color-border);padding:0 1em 0 0;text-align:left;font-weight:normal}td.name,th.name{padding-left:.8em;min-width:5em;max-width:12em;text-overflow:ellipsis;overflow:hidden}td.password,th.password{padding-left:.8em}td.password>img,th.password>img{visibility:hidden}td.displayName>img,th.displayName>img{visibility:hidden}td.password,td.mailAddress,th.password,th.mailAddress{min-width:5em;max-width:12em;cursor:pointer}td.password span,td.mailAddress span,th.password span,th.mailAddress span{width:90%;display:inline-block;text-overflow:ellipsis;overflow:hidden}td.mailAddress,th.mailAddress{cursor:pointer}td.password>span,th.password>span{margin-right:1.2em;color:#c7c7c7}span.usersLastLoginTooltip{white-space:nowrap}#app-content>svg.app-filter{float:left;height:0;width:0}#app-category-app-bundles{margin-bottom:20px}.appinfo{margin:1em 40px}#app-navigation img{margin-bottom:-3px;margin-right:6px;width:16px}#app-navigation li span.no-icon{padding-left:32px}#app-navigation ul li.active>span.utils .delete,#app-navigation ul li.active>span.utils .rename{display:block}#app-navigation .appwarning{background:#fcc}#app-navigation.appwarning:hover{background:#fbb}#app-navigation .app-external{color:var(--color-text-maxcontrast)}span.version{margin-left:1em;margin-right:1em;color:var(--color-text-maxcontrast)}.app-version{color:var(--color-text-maxcontrast)}.app-level span{color:var(--color-text-maxcontrast);background-color:rgba(0,0,0,0);border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);padding:3px 6px}.app-level a{padding:10px;margin:-6px;white-space:nowrap}.app-level .official{background-position:left center;background-position:5px center;padding-left:25px}.app-level .supported{border-color:var(--color-success);background-position:left center;background-position:5px center;padding-left:25px;color:var(--color-success)}.app-score{position:relative;top:4px;opacity:.5}.app-settings-content #searchresults{display:none}#apps-list.store .section{border:0}#apps-list.store .app-name{display:block;margin:5px 0}#apps-list.store .app-image-icon .icon-settings-dark{width:100%;height:150px;background-size:45px;opacity:.5}#apps-list.store .app-score-image{height:14px}#apps-list.store .actions{margin-top:10px}#apps-list.store .actions button{margin:10px 0}#app-sidebar #app-details-view h2 .icon-settings-dark,#app-sidebar #app-details-view h2 svg{display:inline-block;width:16px;height:16px;margin-right:10px;opacity:.7}#app-sidebar #app-details-view .app-level{clear:right;width:100%}#app-sidebar #app-details-view .app-level .supported,#app-sidebar #app-details-view .app-level .official{vertical-align:top}#app-sidebar #app-details-view .app-level .app-score-image{float:right}#app-sidebar #app-details-view .app-author,#app-sidebar #app-details-view .app-licence{color:var(--color-text-maxcontrast)}#app-sidebar #app-details-view .app-dependencies{margin:10px 0}#app-sidebar #app-details-view .app-description p{margin:10px 0}#app-sidebar #app-details-view .close{position:absolute;top:0;right:0;padding:14px;opacity:.5;z-index:1;width:44px;height:44px}#app-sidebar #app-details-view .actions{display:flex;align-items:center}#app-sidebar #app-details-view .actions .app-groups{padding:5px}#app-sidebar #app-details-view .appslink{text-decoration:underline;margin-right:5px}#app-sidebar #app-details-view .app-level,#app-sidebar #app-details-view .actions,#app-sidebar #app-details-view .documentation,#app-sidebar #app-details-view .app-dependencies,#app-sidebar #app-details-view .app-description{margin:20px 0}@media only screen and (min-width: 1601px){.store .section{width:25%}.with-app-sidebar .store .section{width:33%}}@media only screen and (max-width: 1600px){.store .section{width:25%}.with-app-sidebar .store .section{width:33%}}@media only screen and (max-width: 1400px){.store .section{width:33%}.with-app-sidebar .store .section{width:50%}}@media only screen and (max-width: 900px){.store .section{width:50%}.with-app-sidebar .store .section{width:100%}}@media only screen and (max-width: 1024px){.store .section{width:50%}}@media only screen and (max-width: 480px){.store .section{width:100%}}@media only screen and (max-width: 900px){.apps-list.installed .app-version,.apps-list.installed .app-level{display:none !important}}@media only screen and (max-width: 500px){.apps-list.installed .app-groups{display:none !important}}.section{margin-bottom:0}.section:not(:last-child){border-bottom:1px solid var(--color-border)}.section h2{margin-bottom:22px}.section h2 .icon-info{padding:6px 20px;vertical-align:text-bottom;display:inline-block}.followupsection{display:block;padding:0 30px 30px 30px}.app-image{position:relative;height:150px;opacity:1;overflow:hidden}.app-description-toggle-show,.app-description-toggle-hide{clear:both;padding:7px 0;cursor:pointer;opacity:.5}.app-description-container{clear:both;position:relative;top:7px}.app-description{clear:both}#app-category-1{margin-bottom:18px}#app-category-925{text-transform:capitalize}.app-dependencies{color:#ce3702}.missing-dependencies{list-style:initial;list-style-type:initial;list-style-position:inside}.apps-list{display:flex;flex-wrap:wrap;align-content:flex-start}.apps-list .app-list-move{transition:transform 1s}.apps-list #app-list-update-all{margin-left:10px}.apps-list .toolbar{height:60px;padding:8px;padding-left:60px;width:100%;background-color:var(--color-main-background);position:sticky;top:0;z-index:1;display:flex;align-items:center}.apps-list.installed{margin-bottom:100px}.apps-list.installed .apps-list-container{display:table;width:100%;height:auto;white-space:normal}.apps-list.installed .section{display:table-row;padding:0;margin:0}.apps-list.installed .section>*{display:table-cell;height:initial;vertical-align:middle;float:none;border-bottom:1px solid var(--color-border);padding:6px;box-sizing:border-box}.apps-list.installed .section>.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:end}.apps-list.installed .section.selected{background-color:var(--color-background-dark)}.apps-list.installed .groups-enable{margin-top:0}.apps-list.installed .groups-enable label{margin-right:3px}.apps-list.installed .app-image{width:44px;height:auto;text-align:right}.apps-list.installed .app-image-icon svg,.apps-list.installed .app-image-icon .icon-settings-dark{margin-top:5px;width:20px;height:20px;opacity:.5;background-size:cover;display:inline-block}.apps-list.installed .actions{text-align:right}.apps-list.installed .actions .icon-loading-small{display:inline-block;top:4px;margin-right:10px}.apps-list:not(.installed) .app-image-icon svg{position:absolute;bottom:43px;width:64px;height:64px;opacity:.1}.apps-list.hidden{display:none}.apps-list .section{position:relative;flex:0 0 auto}.apps-list .section h2.app-name{display:block;margin:8px 0}.apps-list .section:hover{background-color:var(--color-background-dark)}.apps-list .app-description p{margin:10px 0}.apps-list .app-description ul{list-style:disc}.apps-list .app-description ol{list-style:decimal}.apps-list .app-description ol ol,.apps-list .app-description ol ul{padding-left:15px}.apps-list .app-description>ul,.apps-list .app-description>ol{margin-left:19px}.apps-list .app-description ul ol,.apps-list .app-description ul ul{padding-left:15px}.apps-list .apps-header{position:relative}.apps-list .apps-header div{display:table-cell;height:70px}.apps-list .apps-header h2{padding-left:6px;padding-top:15px;margin-bottom:12px}.apps-list .apps-header h2 .enable{position:relative;top:-1px;margin-left:12px}.apps-list .apps-header h2+.section{margin-top:50px}@media(max-width: 512px){.apps-list.installed .section>.actions{display:table-cell}}#apps-list-search .section h2{margin-bottom:0}#log{white-space:normal;margin-bottom:14px}#lessLog{display:none}table.grid td.date{white-space:nowrap}#log-section p{margin-top:20px}#security-warning-state-ok span,#security-warning-state-warning span,#security-warning-state-failure span,#security-warning-state-loading span{vertical-align:middle}#security-warning-state-ok span.message,#security-warning-state-warning span.message,#security-warning-state-failure span.message,#security-warning-state-loading span.message{padding:12px}#security-warning-state-ok span.icon,#security-warning-state-warning span.icon,#security-warning-state-failure span.icon,#security-warning-state-loading span.icon{width:32px;height:32px;background-position:center center;display:inline-block;border-radius:50%}#security-warning-state-ok span.icon-checkmark-white,#security-warning-state-warning span.icon-checkmark-white,#security-warning-state-failure span.icon-checkmark-white,#security-warning-state-loading span.icon-checkmark-white{background-color:var(--color-success)}#security-warning-state-ok span.icon-error-white,#security-warning-state-warning span.icon-error-white,#security-warning-state-failure span.icon-error-white,#security-warning-state-loading span.icon-error-white{background-color:var(--color-warning)}#security-warning-state-ok span.icon-close-white,#security-warning-state-warning span.icon-close-white,#security-warning-state-failure span.icon-close-white,#security-warning-state-loading span.icon-close-white{background-color:var(--color-error)}#shareAPI.loading>div{display:none}#shareAPI p{padding-bottom:.8em}#shareAPI .indent{padding-left:28px}#shareAPI .double-indent{padding-left:56px}#shareAPI .nocheckbox{padding-left:20px}#shareAPI #s2id_linksExcludedGroups{width:200px !important}#shareApiDefaultPermissionsSection label{margin-right:20px}#fileSharingSettings h3{display:inline-block}#publicShareDisclaimerText{width:calc(100% - 23px);max-width:600px;height:150px;margin-left:20px;box-sizing:border-box}.icon-info{padding:11px 20px;vertical-align:text-bottom;opacity:.5}#two-factor-auth h2,#shareAPI h2,#mail_general_settings h2{display:inline-block}.mail_settings p label:first-child{display:inline-block;width:300px;text-align:right}.mail_settings p select:nth-child(2),.mail_settings p input:not([type=button]){width:143px}@media(max-width: 768px){.mail_settings p label:first-child{width:unset;text-align:left;display:block;margin-top:calc(var(--default-grid-baseline)*2)}}#mail_smtpport{width:60px}.cronlog{margin-left:10px}.status{display:inline-block;height:16px;width:16px;vertical-align:text-bottom}.status.success{border-radius:50%}#selectGroups select{box-sizing:border-box;display:inline-block;height:36px;padding:7px 10px}#log .log-message{word-break:break-all;min-width:180px}span.success{background-color:var(--color-success);border-radius:var(--border-radius)}span.error{background-color:var(--color-error)}span.indeterminate{background-color:var(--color-warning);border-radius:40% 0}doesnotexist:-o-prefocus,.strengthify-wrapper{left:185px;width:129px}.trusted-domain-warning{color:#fff;padding:5px;background:#ce3702;border-radius:5px;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace}#postsetupchecks ul{margin-left:44px;list-style:disc}#postsetupchecks ul li{margin:10px 0}#postsetupchecks ul ul{list-style:circle}#postsetupchecks .loading{height:50px;background-position:left center}#postsetupchecks .errors,#postsetupchecks .errors a{color:var(--color-error)}#postsetupchecks .warnings,#postsetupchecks .warnings a{color:var(--color-warning)}#postsetupchecks .hint{margin:20px 0}#security-warning a{text-decoration:underline}#security-warning .extra-top-margin{margin-top:12px}.security-warning__heading{display:flex;flex-wrap:wrap;margin-bottom:calc(var(--default-grid-baseline)*8)}.security-warning__heading>h2{margin-bottom:0px}.security-warning__heading>a{width:44px}#admin-tips li{list-style:initial}#admin-tips li a{display:inline-block;padding:3px 0}#warning{color:red}.settings-hint{margin-top:-12px;margin-bottom:12px;opacity:.7}.animated{animation:blink-animation 1s steps(5, start) 4}@keyframes blink-animation{to{opacity:.6}}@-webkit-keyframes blink-animation{to{opacity:1}}/*# sourceMappingURL=settings.css.map */ +input#openid,input#webdav{width:20em}.clear{clear:both}.nav-icon-personal-settings{background-image:var(--icon-personal-dark)}.nav-icon-security{background-image:var(--icon-toggle-filelist-dark)}.nav-icon-clientsbox{background-image:var(--icon-change-dark)}.nav-icon-federated-cloud{background-image:var(--icon-share-dark)}.nav-icon-second-factor-backup-codes,.nav-icon-ssl-root-certificate{background-image:var(--icon-password-dark)}#personal-settings-avatar-container{display:inline-grid;grid-template-columns:1fr;grid-template-rows:2fr 1fr 2fr;vertical-align:top}.profile-settings-container{display:inline-grid;grid-template-columns:1fr 1fr 1fr}.personal-show-container{width:100%}.personal-settings-setting-box .section{padding:10px 30px}.personal-settings-setting-box .section .headerbar-label{margin-bottom:0}.personal-settings-setting-box .section input[type=text],.personal-settings-setting-box .section input[type=email],.personal-settings-setting-box .section input[type=tel],.personal-settings-setting-box .section input[type=url]{width:100%}.personal-settings-setting-box-profile{grid-row:3/5}.personal-settings-setting-box-detail{grid-row:5}.personal-settings-setting-box-detail--without-profile{grid-row:3}select#timezone{width:100%}#personal-settings{display:grid;padding:20px;max-width:1700px;grid-template-columns:repeat(auto-fill, minmax(min(100%, 300px), 1fr));grid-column-gap:10px}#personal-settings .section{padding:10px 10px;border:0}#personal-settings .section h2{margin-bottom:12px}#personal-settings .section h3>label{font-weight:bold}#personal-settings .personal-info{margin-right:10%;margin-bottom:12px;margin-top:12px}#personal-settings .personal-info[class^=icon-],#personal-settings .personal-info[class*=" icon-"]{background-position:0px 2px;padding-left:30px;opacity:.7}.development-notice{text-align:center}.development-notice a:not(.link-button){text-decoration:underline}.link-button{display:inline-block;margin:16px;padding:14px 20px;background-color:var(--color-primary-element);color:var(--color-primary-element-text);border-radius:var(--border-radius-pill);border:1px solid var(--color-primary-element);box-shadow:0 2px 9px var(--color-box-shadow)}.link-button:active,.link-button:hover,.link-button:focus,.link-button:focus-visible{box-shadow:0 0 0 4px var(--color-main-background) !important;outline:2px solid var(--color-main-text) !important}.link-button.icon-file{padding-left:48px;background-position:24px}.personal-settings-container{display:inline-grid;grid-template-columns:1fr 1fr 1fr}.personal-settings-container:after{clear:both}.personal-settings-container>div h3{position:relative;display:inline-flex;flex-wrap:nowrap;justify-content:flex-start;width:100%;align-items:center;gap:8px}.personal-settings-container>div h3>label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.personal-settings-container>div>form span[class^=icon-checkmark],.personal-settings-container>div>form span[class^=icon-error]{position:relative;right:8px;top:-28px;pointer-events:none;float:right}.personal-settings-container .verify{position:relative;left:100%;top:0;height:0}.personal-settings-container .verify img{padding:12px 7px 6px}.personal-settings-container .verify-action{cursor:pointer}.personal-settings-container input:disabled{background-color:#fff;color:#000;border:none;opacity:100}.verification-dialog{display:none;right:-9px;top:40px;width:275px}.verification-dialog p{padding:10px}.verification-dialog .verificationCode{font-family:monospace;display:block;overflow-wrap:break-word}.federation-menu{position:relative;cursor:pointer;width:44px;height:44px;padding:10px;margin:0;background:none;border:none}.federation-menu:hover,.federation-menu:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.federation-menu:hover .icon-federation-menu,.federation-menu:focus .icon-federation-menu{opacity:.8}.federation-menu .icon-federation-menu{padding-left:16px;background-size:16px;background-position:left center;opacity:.3;cursor:inherit}.federation-menu .icon-federation-menu .icon-triangle-s{display:inline-block;vertical-align:middle;cursor:inherit}.federation-menu .federationScopeMenu{top:44px}.federation-menu .federationScopeMenu.popovermenu .menuitem{font-size:12.8px;line-height:1.6em}.federation-menu .federationScopeMenu.popovermenu .menuitem .menuitem-text-detail{opacity:.75}.federation-menu .federationScopeMenu.popovermenu .menuitem.active{box-shadow:inset 2px 0 var(--color-primary-element)}.federation-menu .federationScopeMenu.popovermenu .menuitem.active .menuitem-text{font-weight:bold}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled{opacity:.5;cursor:default}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled *{cursor:default}.clientsbox img{height:60px}#sslCertificate tr.expired{background-color:rgba(255,0,0,.5)}#sslCertificate td{padding:5px}#displaynameerror,#displaynamechanged{display:none}input#identity{width:20em}#showWizard{display:inline-block}.msg.success{color:#fff;background-color:#47a447;padding:3px}.msg.error{color:#fff;background-color:#d2322d;padding:3px}table.nostyle label{margin-right:2em}table.nostyle td{padding:.2em 0}#security-password #passwordform{display:flex;flex-wrap:wrap;flex-direction:column;gap:1rem}#security-password #passwordform .input-control{display:flex;flex-wrap:wrap;flex-direction:column}#security-password #passwordform .input-control label{margin-bottom:.5rem}#security-password #passwordform #pass1,#security-password #passwordform .personal-show-container{flex-shrink:1;width:300px;min-width:150px}#security-password #passwordform .personal-show-container #pass2{position:relative;top:.5rem}#security-password #passwordform .personal-show-container .personal-show-label{top:34px !important;margin-right:0;margin-top:0 !important;right:3px}#security-password #passwordform #pass2{width:100%}#security-password #passwordform .password-state{display:inline-block}#security-password #passwordform .strengthify-wrapper{position:absolute;left:0;width:100%;border-radius:0 0 2px 2px;margin-top:5px;overflow:hidden;height:3px}#two-factor-auth h3{margin-top:24px}#two-factor-auth li>div{margin-left:20px}#two-factor-auth .two-factor-provider-settings-icon{width:16px;height:16px;vertical-align:sub;filter:var(--background-invert-if-dark)}.isgroup .groupname{width:85%;display:block;overflow:hidden;text-overflow:ellipsis}.isgroup.active .groupname{width:65%}li.active .delete,li.active .rename{display:block}.app-navigation-entry-utils .delete,.app-navigation-entry-utils .rename{display:none}#usersearchform{position:absolute;top:2px;right:0}#usersearchform input{width:150px}#usersearchform label{font-weight:bold}table.grid{width:100%}table.grid th{height:2em;padding:0 1em 0 0;border-bottom:1px solid var(--color-border);text-align:left;font-weight:normal}table.grid td{border-bottom:1px solid var(--color-border);padding:0 1em 0 0;text-align:left;font-weight:normal}td.name,th.name{padding-left:.8em;min-width:5em;max-width:12em;text-overflow:ellipsis;overflow:hidden}td.password,th.password{padding-left:.8em}td.password>img,th.password>img{visibility:hidden}td.displayName>img,th.displayName>img{visibility:hidden}td.password,td.mailAddress,th.password,th.mailAddress{min-width:5em;max-width:12em;cursor:pointer}td.password span,td.mailAddress span,th.password span,th.mailAddress span{width:90%;display:inline-block;text-overflow:ellipsis;overflow:hidden}td.mailAddress,th.mailAddress{cursor:pointer}td.password>span,th.password>span{margin-right:1.2em;color:#c7c7c7}span.usersLastLoginTooltip{white-space:nowrap}#app-content>svg.app-filter{float:left;height:0;width:0}#app-category-app-bundles{margin-bottom:20px}.appinfo{margin:1em 40px}#app-navigation img{margin-bottom:-3px;margin-right:6px;width:16px}#app-navigation li span.no-icon{padding-left:32px}#app-navigation ul li.active>span.utils .delete,#app-navigation ul li.active>span.utils .rename{display:block}#app-navigation .appwarning{background:#fcc}#app-navigation.appwarning:hover{background:#fbb}#app-navigation .app-external{color:var(--color-text-maxcontrast)}span.version{margin-left:1em;margin-right:1em;color:var(--color-text-maxcontrast)}.app-version{color:var(--color-text-maxcontrast)}.app-level span{color:var(--color-text-maxcontrast);background-color:rgba(0,0,0,0);border:1px solid var(--color-text-maxcontrast);border-radius:var(--border-radius);padding:3px 6px}.app-level a{padding:10px;margin:-6px;white-space:nowrap}.app-level .official{background-position:left center;background-position:5px center;padding-left:25px}.app-level .supported{border-color:var(--color-success);background-position:left center;background-position:5px center;padding-left:25px;color:var(--color-success)}.app-score{position:relative;top:4px;opacity:.5}.app-settings-content #searchresults{display:none}#apps-list.store .section{position:relative;border:0}#apps-list.store .app-name{display:block;margin:5px 0}#apps-list.store .app-image-icon .icon-settings-dark{width:100%;height:150px;background-size:45px;opacity:.5}#apps-list.store .app-score-image{height:14px}#apps-list.store .actions{margin-top:10px}#apps-list.store .actions button{margin:10px 0}#app-sidebar #app-details-view h2 .icon-settings-dark,#app-sidebar #app-details-view h2 svg{display:inline-block;width:16px;height:16px;margin-right:10px;opacity:.7}#app-sidebar #app-details-view .app-level{clear:right;width:100%}#app-sidebar #app-details-view .app-level .supported,#app-sidebar #app-details-view .app-level .official{vertical-align:top}#app-sidebar #app-details-view .app-level .app-score-image{float:right}#app-sidebar #app-details-view .app-author,#app-sidebar #app-details-view .app-licence{color:var(--color-text-maxcontrast)}#app-sidebar #app-details-view .app-dependencies{margin:10px 0}#app-sidebar #app-details-view .app-description p{margin:10px 0}#app-sidebar #app-details-view .close{position:absolute;top:0;right:0;padding:14px;opacity:.5;z-index:1;width:44px;height:44px}#app-sidebar #app-details-view .actions{display:flex;align-items:center}#app-sidebar #app-details-view .actions .app-groups{padding:5px}#app-sidebar #app-details-view .appslink{text-decoration:underline;margin-right:5px}#app-sidebar #app-details-view .app-level,#app-sidebar #app-details-view .actions,#app-sidebar #app-details-view .documentation,#app-sidebar #app-details-view .app-dependencies,#app-sidebar #app-details-view .app-description{margin:20px 0}@media only screen and (min-width: 1601px){.store .section{width:25%}.with-app-sidebar .store .section{width:33%}}@media only screen and (max-width: 1600px){.store .section{width:25%}.with-app-sidebar .store .section{width:33%}}@media only screen and (max-width: 1400px){.store .section{width:33%}.with-app-sidebar .store .section{width:50%}}@media only screen and (max-width: 900px){.store .section{width:50%}.with-app-sidebar .store .section{width:100%}}@media only screen and (max-width: 1024px){.store .section{width:50%}}@media only screen and (max-width: 480px){.store .section{width:100%}}@media only screen and (max-width: 900px){.apps-list.installed .app-version,.apps-list.installed .app-level{display:none !important}}@media only screen and (max-width: 512px){.apps-list.installed .app-image{display:none !important}}@media only screen and (max-width: 500px){.apps-list.installed .app-groups{display:none !important}}.section{margin-bottom:0}.section:not(:last-child){border-bottom:1px solid var(--color-border)}.section h2{margin-bottom:22px}.section h2 .icon-info{padding:6px 20px;vertical-align:text-bottom;display:inline-block}.followupsection{display:block;padding:0 30px 30px 30px}.app-image{position:relative;height:150px;opacity:1;overflow:hidden}.app-description-toggle-show,.app-description-toggle-hide{clear:both;padding:7px 0;cursor:pointer;opacity:.5}.app-description-container{clear:both;position:relative;top:7px}.app-description{clear:both}#app-category-1{margin-bottom:18px}#app-category-925{text-transform:capitalize}.app-dependencies{color:#ce3702}.missing-dependencies{list-style:initial;list-style-type:initial;list-style-position:inside}.apps-list{display:flex;flex-wrap:wrap;align-content:flex-start}.apps-list .app-list-move{transition:transform 1s}.apps-list #app-list-update-all{margin-left:10px}.apps-list .toolbar{height:60px;padding:8px;padding-left:60px;width:100%;background-color:var(--color-main-background);position:sticky;top:0;z-index:1;display:flex;align-items:center}.apps-list.installed{margin-bottom:100px}.apps-list.installed .apps-list-container{position:relative;display:table;width:100%;height:auto;white-space:normal}.apps-list.installed .section{display:table-row;padding:0;margin:0}.apps-list.installed .section>*{display:table-cell;height:initial;vertical-align:middle;float:none;border-bottom:1px solid var(--color-border);padding:6px;box-sizing:border-box}.apps-list.installed .section>.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:end}.apps-list.installed .section.selected{background-color:var(--color-background-dark)}.apps-list.installed .groups-enable{margin-top:0}.apps-list.installed .groups-enable label{margin-right:3px}.apps-list.installed .app-image{width:44px;height:auto;text-align:right}.apps-list.installed .app-image-icon svg,.apps-list.installed .app-image-icon .icon-settings-dark{margin-top:5px;width:20px;height:20px;opacity:.5;background-size:cover;display:inline-block}.apps-list.installed .actions{text-align:right}.apps-list.installed .actions .icon-loading-small{display:inline-block;top:4px;margin-right:10px}.apps-list:not(.installed) .app-image-icon svg{position:absolute;bottom:43px;width:64px;height:64px;opacity:.1}.apps-list.hidden{display:none}.apps-list .section{flex:0 0 auto}.apps-list .section h2.app-name{display:block;margin:8px 0}.apps-list .section:hover{background-color:var(--color-background-dark)}.apps-list .app-description p{margin:10px 0}.apps-list .app-description ul{list-style:disc}.apps-list .app-description ol{list-style:decimal}.apps-list .app-description ol ol,.apps-list .app-description ol ul{padding-left:15px}.apps-list .app-description>ul,.apps-list .app-description>ol{margin-left:19px}.apps-list .app-description ul ol,.apps-list .app-description ul ul{padding-left:15px}.apps-list .apps-header{position:relative}.apps-list .apps-header div{display:table-cell;height:70px}.apps-list .apps-header h2{padding-left:6px;padding-top:15px;margin-bottom:12px}.apps-list .apps-header h2 .enable{position:relative;top:-1px;margin-left:12px}.apps-list .apps-header h2+.section{margin-top:50px}@media(max-width: 512px){.apps-list.installed .section>.actions{display:table-cell}}#apps-list-search .section h2{margin-bottom:0}#log{white-space:normal;margin-bottom:14px}#lessLog{display:none}table.grid td.date{white-space:nowrap}#log-section p{margin-top:20px}#security-warning-state-ok span,#security-warning-state-warning span,#security-warning-state-failure span,#security-warning-state-loading span{vertical-align:middle}#security-warning-state-ok span.message,#security-warning-state-warning span.message,#security-warning-state-failure span.message,#security-warning-state-loading span.message{padding:12px}#security-warning-state-ok span.icon,#security-warning-state-warning span.icon,#security-warning-state-failure span.icon,#security-warning-state-loading span.icon{width:32px;height:32px;background-position:center center;display:inline-block;border-radius:50%}#security-warning-state-ok span.icon-checkmark-white,#security-warning-state-warning span.icon-checkmark-white,#security-warning-state-failure span.icon-checkmark-white,#security-warning-state-loading span.icon-checkmark-white{background-color:var(--color-success)}#security-warning-state-ok span.icon-error-white,#security-warning-state-warning span.icon-error-white,#security-warning-state-failure span.icon-error-white,#security-warning-state-loading span.icon-error-white{background-color:var(--color-warning)}#security-warning-state-ok span.icon-close-white,#security-warning-state-warning span.icon-close-white,#security-warning-state-failure span.icon-close-white,#security-warning-state-loading span.icon-close-white{background-color:var(--color-error)}#shareAPI.loading>div{display:none}#shareAPI p{padding-bottom:.8em}#shareAPI .indent{padding-left:28px}#shareAPI .double-indent{padding-left:56px}#shareAPI .nocheckbox{padding-left:20px}#shareAPI #s2id_linksExcludedGroups{width:200px !important}#shareApiDefaultPermissionsSection label{margin-right:20px}#fileSharingSettings h3{display:inline-block}#publicShareDisclaimerText{width:calc(100% - 23px);max-width:600px;height:150px;margin-left:20px;box-sizing:border-box}.icon-info{padding:11px 20px;vertical-align:text-bottom;opacity:.5}#two-factor-auth h2,#shareAPI h2,#mail_general_settings h2{display:inline-block}.mail_settings p label:first-child{display:inline-block;width:300px;text-align:right}.mail_settings p select:nth-child(2),.mail_settings p input:not([type=button]){width:143px}@media(max-width: 768px){.mail_settings p label:first-child{width:unset;text-align:left;display:block;margin-top:calc(var(--default-grid-baseline)*2)}}#mail_smtpport{width:60px}.cronlog{margin-left:10px}.status{display:inline-block;height:16px;width:16px;vertical-align:text-bottom}.status.success{border-radius:50%}#selectGroups select{box-sizing:border-box;display:inline-block;height:36px;padding:7px 10px}#log .log-message{word-break:break-all;min-width:180px}span.success{background-color:var(--color-success);border-radius:var(--border-radius)}span.error{background-color:var(--color-error)}span.indeterminate{background-color:var(--color-warning);border-radius:40% 0}doesnotexist:-o-prefocus,.strengthify-wrapper{left:185px;width:129px}.trusted-domain-warning{color:#fff;padding:5px;background:#ce3702;border-radius:5px;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace}#postsetupchecks ul{margin-left:44px;list-style:disc}#postsetupchecks ul li{margin:10px 0}#postsetupchecks ul ul{list-style:circle}#postsetupchecks .loading{height:50px;background-position:left center}#postsetupchecks .errors,#postsetupchecks .errors a{color:var(--color-error)}#postsetupchecks .warnings,#postsetupchecks .warnings a{color:var(--color-warning)}#postsetupchecks .hint{margin:20px 0}#security-warning a{text-decoration:underline}#security-warning .extra-top-margin{margin-top:12px}.security-warning__heading{display:flex;flex-wrap:wrap;margin-bottom:calc(var(--default-grid-baseline)*8)}.security-warning__heading>h2{margin-bottom:0px}.security-warning__heading>a{width:44px}#admin-tips li{list-style:initial}#admin-tips li a{display:inline-block;padding:3px 0}#warning{color:red}.settings-hint{margin-top:-12px;margin-bottom:12px;opacity:.7}.animated{animation:blink-animation 1s steps(5, start) 4}@keyframes blink-animation{to{opacity:.6}}@-webkit-keyframes blink-animation{to{opacity:1}}/*# sourceMappingURL=settings.css.map */ diff --git a/apps/settings/css/settings.css.map b/apps/settings/css/settings.css.map index db95d950dbe27..9e5c6d09158de 100644 --- a/apps/settings/css/settings.css.map +++ b/apps/settings/css/settings.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAQC,0BACC,WAKF,OACC,WAID,4BC8CC,2CD1CD,mBC0CC,kDDtCD,qBCsCC,yCDlCD,0BCkCC,wCD9BD,oEC8BC,2CD1BD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,uEACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,iBACA,mBACA,gBAGD,mGACC,4BACA,kBACA,WAMF,oBACC,kBACA,wCACC,0BAIF,aACC,qBACA,YACA,kBACA,8CACA,wCACA,wCACA,8CACA,6CAEA,qFAIC,6DACA,oDAGD,uBACC,kBACA,yBAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,UACA,UACA,oBACA,YAKH,qCACC,kBACA,UACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,WACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,WACA,YACA,aACA,SACA,gBACA,YAEA,8CAEC,+CACA,wCAEA,0FACC,WAIF,uCACC,kBACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,SAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,iBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,eACA,wBACA,UAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,OACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,iBAGD,oDACC,WACA,YACA,mBACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,QAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,kBACA,4CACA,gBACA,mBAGD,cACC,4CACA,kBACA,gBACA,mBAKD,gBACC,kBACA,cACA,eACA,uBACA,gBAGD,wBACC,kBAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,mBACA,cAIF,2BACC,mBAID,4BACC,WACA,SACA,QAGD,0BACC,mBAGD,SACC,gBAKA,oBACC,mBACA,iBACA,WAGD,gCACC,kBAIA,gGACC,cAIF,4BACC,gBAGD,iCACC,gBAGD,8BACC,oCAIF,aACC,gBACA,iBACA,oCAGD,aACC,oCAIA,gBACC,oCACA,+BACA,+CACA,mCACA,gBAGD,aACC,aACA,YACA,mBAGD,qBACC,gCACA,+BACA,kBAGD,sBACC,kCACA,gCACA,+BACA,kBACA,2BAIF,WACC,kBACA,QACA,WAIA,qCACC,aAMD,0BACC,SAGD,2BACC,cACA,aAGD,qDACC,WACA,aACA,qBACA,WAGD,kCACC,YAGD,0BACC,gBAEA,iCACC,cAOD,4FAEC,qBACA,WACA,YACA,kBACA,WAIF,0CACC,YACA,WAEA,yGAEC,mBAGD,2DACC,YAIF,uFACC,oCAGD,iDACC,cAGD,kDACC,cAGD,sCACC,kBACA,MACA,QACA,aACA,WACA,UACA,WACA,YAGD,wCACC,aACA,mBAEA,oDACC,YAIF,yCACC,0BACA,iBAGD,iOAKC,cAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,0CACC,gBACC,UAED,kCACC,YAIF,2CACC,gBACC,WAIF,0CACC,gBACC,YAKF,0CAEE,kEACC,yBAKH,0CACC,iCACC,yBAIF,SACC,gBAEA,0BACC,4CAID,YACC,mBAEA,uBACC,iBACA,2BACA,qBAKH,iBACC,cACA,yBAGD,WACC,kBACA,aACA,UACA,gBAGD,0DACC,WACA,cACA,eACA,WAGD,2BACC,WACA,kBACA,QAGD,iBACC,WAGD,gBACC,mBAKD,kBACC,0BAGD,kBACC,cAGD,sBACC,mBACA,wBACA,2BAGD,WA4GC,aACA,eACA,yBA1GA,0BACC,wBAGD,gCACC,iBAGD,oBACC,OAXgB,KAYhB,QAbiB,IAejB,aAdgB,KAehB,WACA,8CACA,gBACA,MACA,UACA,aACA,mBAGD,qBAQC,oBAPA,0CACC,cACA,WACA,YACA,mBAKD,8BACC,kBACA,UACA,SAEA,gCACC,mBACA,eACA,sBACA,WACA,4CACA,YACA,sBAGD,uCACC,aACA,QACA,eACA,oBAGD,uCACC,8CAKF,oCACC,aAEA,0CACC,iBAIF,gCACC,WACA,YACA,iBAGD,kGAEC,eACA,WACA,YACA,WACA,sBACA,qBAGD,8BACC,iBAEA,kDACC,qBACA,QACA,kBAKH,+CACC,kBACA,YAEA,WACA,YACA,WAOD,kBACC,aAGD,oBACC,kBACA,cAEA,gCACC,cACA,aAGD,0BACC,8CAKD,8BACC,cAGD,+BACC,gBAGD,+BACC,mBAEA,oEACC,kBAKD,8DACC,iBAKD,oEACC,kBAMH,wBACC,kBAEA,4BACC,mBACA,YAGD,2BACC,iBACA,iBACA,mBACA,mCACC,kBACA,SACA,iBAGD,oCACC,gBAOJ,yBACC,uCACC,oBAMA,8BACC,gBAMH,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAOA,+IACC,sBAEA,+KACC,aAGD,mKACC,WACA,YACA,kCACA,qBACA,kBAGD,mOACC,sCAGD,mNACC,sCAGD,mNACC,oCAMF,sBACC,aAGD,YACC,oBAGD,kBACC,kBAGD,yBACC,kBAGD,sBACC,kBAGD,oCACC,uBAIF,yCACC,kBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,iBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,iBAGD,+EAEC,YAIF,yBACC,mCACC,YACA,gBACA,cACA,iDAIF,eACC,WAGD,SACC,iBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,WACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAIA,oBACC,iBACA,gBAEA,uBACC,cAGD,uBACC,kBAIF,0BACC,YACA,gCAGD,oDACC,yBAGD,wDACC,2BAGD,uBACC,cAKD,oBACC,0BAGD,oCACC,gBAIF,2BACC,aACA,eACA,mDAEA,8BACC,kBAGD,6BACC,WAIF,eACC,mBAEA,iBACC,qBACA,cAIF,SACC,UAGD,eACC,iBACA,mBACA,WAGD,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAQC,0BACC,WAKF,OACC,WAID,4BC8CC,2CD1CD,mBC0CC,kDDtCD,qBCsCC,yCDlCD,0BCkCC,wCD9BD,oEC8BC,2CD1BD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,uEACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,iBACA,mBACA,gBAGD,mGACC,4BACA,kBACA,WAMF,oBACC,kBACA,wCACC,0BAIF,aACC,qBACA,YACA,kBACA,8CACA,wCACA,wCACA,8CACA,6CAEA,qFAIC,6DACA,oDAGD,uBACC,kBACA,yBAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,UACA,UACA,oBACA,YAKH,qCACC,kBACA,UACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,WACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,WACA,YACA,aACA,SACA,gBACA,YAEA,8CAEC,+CACA,wCAEA,0FACC,WAIF,uCACC,kBACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,SAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,iBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,eACA,wBACA,UAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,OACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,iBAGD,oDACC,WACA,YACA,mBACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,QAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,kBACA,4CACA,gBACA,mBAGD,cACC,4CACA,kBACA,gBACA,mBAKD,gBACC,kBACA,cACA,eACA,uBACA,gBAGD,wBACC,kBAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,mBACA,cAIF,2BACC,mBAID,4BACC,WACA,SACA,QAGD,0BACC,mBAGD,SACC,gBAKA,oBACC,mBACA,iBACA,WAGD,gCACC,kBAIA,gGACC,cAIF,4BACC,gBAGD,iCACC,gBAGD,8BACC,oCAIF,aACC,gBACA,iBACA,oCAGD,aACC,oCAIA,gBACC,oCACA,+BACA,+CACA,mCACA,gBAGD,aACC,aACA,YACA,mBAGD,qBACC,gCACA,+BACA,kBAGD,sBACC,kCACA,gCACA,+BACA,kBACA,2BAIF,WACC,kBACA,QACA,WAIA,qCACC,aAMD,0BACC,kBACA,SAGD,2BACC,cACA,aAGD,qDACC,WACA,aACA,qBACA,WAGD,kCACC,YAGD,0BACC,gBAEA,iCACC,cAOD,4FAEC,qBACA,WACA,YACA,kBACA,WAIF,0CACC,YACA,WAEA,yGAEC,mBAGD,2DACC,YAIF,uFACC,oCAGD,iDACC,cAGD,kDACC,cAGD,sCACC,kBACA,MACA,QACA,aACA,WACA,UACA,WACA,YAGD,wCACC,aACA,mBAEA,oDACC,YAIF,yCACC,0BACA,iBAGD,iOAKC,cAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,0CACC,gBACC,UAED,kCACC,YAIF,2CACC,gBACC,WAIF,0CACC,gBACC,YAKF,0CAEE,kEACC,yBAMH,0CAEE,gCACC,yBAKH,0CACC,iCACC,yBAIF,SACC,gBAEA,0BACC,4CAID,YACC,mBAEA,uBACC,iBACA,2BACA,qBAKH,iBACC,cACA,yBAGD,WACC,kBACA,aACA,UACA,gBAGD,0DACC,WACA,cACA,eACA,WAGD,2BACC,WACA,kBACA,QAGD,iBACC,WAGD,gBACC,mBAKD,kBACC,0BAGD,kBACC,cAGD,sBACC,mBACA,wBACA,2BAGD,WA+GC,aACA,eACA,yBA7GA,0BACC,wBAGD,gCACC,iBAGD,oBACC,OAXgB,KAYhB,QAbiB,IAejB,aAdgB,KAehB,WACA,8CACA,gBACA,MACA,UACA,aACA,mBAGD,qBAWC,oBAVA,0CAGC,kBACA,cACA,WACA,YACA,mBAKD,8BACC,kBACA,UACA,SAEA,gCACC,mBACA,eACA,sBACA,WACA,4CACA,YACA,sBAGD,uCACC,aACA,QACA,eACA,oBAGD,uCACC,8CAKF,oCACC,aAEA,0CACC,iBAIF,gCACC,WACA,YACA,iBAGD,kGAEC,eACA,WACA,YACA,WACA,sBACA,qBAGD,8BACC,iBAEA,kDACC,qBACA,QACA,kBAKH,+CACC,kBACA,YAEA,WACA,YACA,WAOD,kBACC,aAGD,oBACC,cAEA,gCACC,cACA,aAGD,0BACC,8CAKD,8BACC,cAGD,+BACC,gBAGD,+BACC,mBAEA,oEACC,kBAKD,8DACC,iBAKD,oEACC,kBAMH,wBACC,kBAEA,4BACC,mBACA,YAGD,2BACC,iBACA,iBACA,mBACA,mCACC,kBACA,SACA,iBAGD,oCACC,gBAOJ,yBACC,uCACC,oBAMA,8BACC,gBAMH,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAOA,+IACC,sBAEA,+KACC,aAGD,mKACC,WACA,YACA,kCACA,qBACA,kBAGD,mOACC,sCAGD,mNACC,sCAGD,mNACC,oCAMF,sBACC,aAGD,YACC,oBAGD,kBACC,kBAGD,yBACC,kBAGD,sBACC,kBAGD,oCACC,uBAIF,yCACC,kBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,iBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,iBAGD,+EAEC,YAIF,yBACC,mCACC,YACA,gBACA,cACA,iDAIF,eACC,WAGD,SACC,iBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,WACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAIA,oBACC,iBACA,gBAEA,uBACC,cAGD,uBACC,kBAIF,0BACC,YACA,gCAGD,oDACC,yBAGD,wDACC,2BAGD,uBACC,cAKD,oBACC,0BAGD,oCACC,gBAIF,2BACC,aACA,eACA,mDAEA,8BACC,kBAGD,6BACC,WAIF,eACC,mBAEA,iBACC,qBACA,cAIF,SACC,UAGD,eACC,iBACA,mBACA,WAGD,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"} \ No newline at end of file diff --git a/dist/settings-apps-view-4529.js b/dist/settings-apps-view-4529.js index 29ae5b521fa53..e0f7a514316d2 100644 --- a/dist/settings-apps-view-4529.js +++ b/dist/settings-apps-view-4529.js @@ -1,2 +1,2 @@ -(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[4529],{68837:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.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:""}]);const o=r},61671:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.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:""}]);const o=r},4554:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.id,'.app-icon[data-v-79bd4dc4]{filter:var(--background-invert-if-bright)}.app-image img[data-v-79bd4dc4]{width:100%}.app-name--link[data-v-79bd4dc4]::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0}',"",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppItem.vue"],names:[],mappings:"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA,CAGD,wCACE,UAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA",sourcesContent:["\n.app-icon {\n\tfilter: var(--background-invert-if-bright);\n}\n\n.app-image img {\n\twidth: 100%;\n}\n\n.app-name--link::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n"],sourceRoot:""}]);const o=r},44958:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.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:""}]);const o=r},64653:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.id,".app-sidebar[data-v-4e6c328e]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-4e6c328e]: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-4e6c328e] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-4e6c328e] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-4e6c328e]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-4e6c328e] h3{font-size:20px}.app-sidebar-tabs__release[data-v-4e6c328e] 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:""}]);const o=r},86470:(e,n,s)=>{"use strict";s.r(n),s.d(n,{default:()=>We});var a=s(61338),i=s(85471),r=s(35973),o=s.n(r),l=s(18195),p=s(42530),c=s(52439),d=s(66687),u=s(89802),h=s(46503),g=s(28331),f=s(22378);const A={name:"StarShootingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var m=s(14486);const b=(0,m.A)(A,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon star-shooting-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var k=s(63814);const v={name:"AppScore",props:["score"],computed:{appScore(){return Math.round(10*this.score)},scoreImage(){const e="rating/s"+this.appScore+".svg";return(0,k.d0)("core",e)}}},_=(0,m.A)(v,(function(){var e=this;return(0,e._self._c)("img",{staticClass:"app-score-image",attrs:{src:e.scoreImage,alt:e.t("settings","Rating: {score}/10",{score:e.appScore})}})}),[],!1,null,null,null).exports;var x=s(85168),C=s(65043);const w=()=>C.Ay.get((0,k.KT)("core/navigation",2)+"/apps?format=json").then((e=>{let{data:t}=e;200===t.ocs.meta.statuscode&&((0,a.Ic)("nextcloud:app-menu.refresh",{apps:t.ocs.data}),window.dispatchEvent(new Event("resize")))})),y={computed:{appGroups(){return this.app.groups.map((e=>({id:e,name:e})))},installing(){return this.$store.getters.loading("install")},isLoading(){return this.app&&this.$store.getters.loading(this.app.id)},enableButtonText(){return this.app.needsDownload?t("settings","Download and enable"):t("settings","Enable")},forceEnableButtonText(){return this.app.needsDownload,t("settings","Allow untested app")},enableButtonTooltip(){return this.app.needsDownload?t("settings","The app will be downloaded from the App Store"):null},forceEnableButtonTooltip(){const e=t("settings","This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.");return this.app.needsDownload?e+" "+t("settings","The app will be downloaded from the App Store"):e}},data:()=>({groupCheckedAppsData:!1}),mounted(){this.app&&this.app.groups&&this.app.groups.length>0&&(this.groupCheckedAppsData=!0)},methods:{asyncFindGroup(e){return this.$store.dispatch("getGroups",{search:e,limit:5,offset:0})},isLimitedToGroups(e){return!(!this.app.groups.length&&!this.groupCheckedAppsData)},setGroupLimit(){this.groupCheckedAppsData||this.$store.dispatch("enableApp",{appId:this.app.id,groups:[]})},canLimitToGroups:e=>!(e.types&&e.types.includes("filesystem")||e.types.includes("prelogin")||e.types.includes("authentication")||e.types.includes("logging")||e.types.includes("prevent_group_restriction")),addGroupLimitation(e){const t=e.pop(),n=this.app.groups.concat([]).concat([t.id]);this.$store.dispatch("enableApp",{appId:this.app.id,groups:n})},removeGroupLimitation(e){const t=this.app.groups.concat([]),n=t.indexOf(e.id);n>-1&&t.splice(n,1),this.$store.dispatch("enableApp",{appId:this.app.id,groups:t})},forceEnable(e){this.$store.dispatch("forceEnableApp",{appId:e,groups:[]}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},enable(e){this.$store.dispatch("enableApp",{appId:e,groups:[]}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},disable(e){this.$store.dispatch("disableApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},remove(e){this.$store.dispatch("uninstallApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},install(e){this.$store.dispatch("enableApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},update(e){this.$store.dispatch("updateApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))}}},S={name:"SvgFilterMixin",data:()=>({filterId:""}),computed:{filterUrl(){return"url(#".concat(this.filterId,")")}},mounted(){this.filterId="invertIconApps-"+Math.random().toString(36).substring(2)}},$=(0,m.A)(S,void 0,void 0,!1,null,null,null).exports;var I=s(54332);const T={name:"AppItem",components:{AppScore:_,NcButton:I.A},mixins:[y,$],props:{app:{},category:{},listView:{type:Boolean,default:!0},useBundleView:{type:Boolean,default:!1},headers:{type:String,default:null}},data:()=>({isSelected:!1,scrolled:!1,screenshotLoaded:!1}),computed:{hasRating(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},dataItemTag(){return this.listView?"td":"div"}},watch:{"$route.params.id"(e){this.isSelected=this.app.id===e}},mounted(){if(this.isSelected=this.app.id===this.$route.params.id,this.app.releases&&this.app.screenshot){const e=new Image;e.onload=e=>{this.screenshotLoaded=!0},e.src=this.app.screenshot}},watchers:{},methods:{prefix:(e,t)=>e+"_"+t,getDataItemHeaders(e){return this.useBundleView?[this.headers,e].join(" "):null}}};var z=s(85072),D=s.n(z),B=s(97825),N=s.n(B),E=s(77659),L=s.n(E),R=s(55056),P=s.n(R),O=s(10540),M=s.n(O),U=s(41113),G=s.n(U),q=s(4554),V={};V.styleTagTransform=G(),V.setAttributes=P(),V.insert=L().bind(null,"head"),V.domAPI=N(),V.insertStyleElement=M(),D()(q.A,V),q.A&&q.A.locals&&q.A.locals;const Q=(0,m.A)(T,(function(){var e=this,t=e._self._c;return t(e.listView?"tr":"li",{tag:"component",staticClass:"section",class:{selected:e.isSelected}},[t(e.dataItemTag,{tag:"component",staticClass:"app-image app-image-icon",attrs:{headers:e.getDataItemHeaders("app-table-col-icon")}},[e.listView&&!e.app.preview||!e.listView&&!e.screenshotLoaded?t("div",{staticClass:"icon-settings-dark"}):e.listView&&e.app.preview?t("svg",{attrs:{width:"32",height:"32",viewBox:"0 0 32 32"}},[t("image",{staticClass:"app-icon",attrs:{x:"0",y:"0",width:"32",height:"32",preserveAspectRatio:"xMinYMin meet","xlink:href":e.app.preview}})]):e._e(),e._v(" "),!e.listView&&e.app.screenshot&&e.screenshotLoaded?t("img",{attrs:{src:e.app.screenshot,alt:""}}):e._e()]),e._v(" "),t(e.dataItemTag,{tag:"component",staticClass:"app-name",attrs:{headers:e.getDataItemHeaders("app-table-col-name")}},[t("router-link",{staticClass:"app-name--link",attrs:{to:{name:"apps-details",params:{category:e.category,id:e.app.id}},"aria-label":e.t("settings","Show details for {appName} app",{appName:e.app.name})}},[e._v("\n\t\t\t"+e._s(e.app.name)+"\n\t\t")])],1),e._v(" "),e.listView?e._e():t(e.dataItemTag,{tag:"component",staticClass:"app-summary",attrs:{headers:e.getDataItemHeaders("app-version")}},[e._v("\n\t\t"+e._s(e.app.summary)+"\n\t")]),e._v(" "),e.listView?t(e.dataItemTag,{tag:"component",staticClass:"app-version",attrs:{headers:e.getDataItemHeaders("app-table-col-version")}},[e.app.version?t("span",[e._v(e._s(e.app.version))]):e.app.appstoreData.releases[0].version?t("span",[e._v(e._s(e.app.appstoreData.releases[0].version))]):e._e()]):e._e(),e._v(" "),t(e.dataItemTag,{tag:"component",staticClass:"app-level",attrs:{headers:e.getDataItemHeaders("app-table-col-level")}},[300===e.app.level?t("span",{staticClass:"supported icon-checkmark-color",attrs:{title:e.t("settings","This app is supported via your current Nextcloud subscription."),"aria-label":e.t("settings","This app is supported via your current Nextcloud subscription.")}},[e._v("\n\t\t\t"+e._s(e.t("settings","Supported")))]):e._e(),e._v(" "),200===e.app.level?t("span",{staticClass:"official icon-checkmark",attrs:{title:e.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use."),"aria-label":e.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[e._v("\n\t\t\t"+e._s(e.t("settings","Featured")))]):e._e(),e._v(" "),e.hasRating&&!e.listView?t("AppScore",{attrs:{score:e.app.score}}):e._e()],1),e._v(" "),t(e.dataItemTag,{tag:"component",staticClass:"actions",attrs:{headers:e.getDataItemHeaders("app-table-col-actions")}},[e.app.error?t("div",{staticClass:"warning"},[e._v("\n\t\t\t"+e._s(e.app.error)+"\n\t\t")]):e._e(),e._v(" "),e.isLoading?t("div",{staticClass:"icon icon-loading-small"}):e._e(),e._v(" "),e.app.update?t("NcButton",{attrs:{type:"primary",disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.update(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Update to {update}",{update:e.app.update}))+"\n\t\t")]):e._e(),e._v(" "),e.app.canUnInstall?t("NcButton",{staticClass:"uninstall",attrs:{type:"tertiary",disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.remove(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Remove"))+"\n\t\t")]):e._e(),e._v(" "),e.app.active?t("NcButton",{attrs:{disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.disable(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Disable"))+"\n\t\t")]):e._e(),e._v(" "),e.app.active||!e.app.canInstall&&!e.app.isCompatible?e.app.active?e._e():t("NcButton",{attrs:{title:e.forceEnableButtonTooltip,"aria-label":e.forceEnableButtonTooltip,type:"secondary",disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.forceEnable(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.forceEnableButtonText)+"\n\t\t")]):t("NcButton",{attrs:{title:e.enableButtonTooltip,"aria-label":e.enableButtonTooltip,type:"primary",disabled:!e.app.canInstall||e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.enable(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.enableButtonText)+"\n\t\t")])],1)],1)}),[],!1,null,"79bd4dc4",null).exports,j=(0,m.A)({name:"PrefixMixin",methods:{prefix:(e,t)=>e+"_"+t}},void 0,void 0,!1,null,null,null).exports;function Z(e,t,n){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,n)}function F(e,t,n){return e.set(Y(e,t),n),n}function H(e,t){return e.get(Y(e,t))}function Y(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function K(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class W{constructor(e){K(this,"value",void 0),K(this,"next",void 0),this.value=e}}var J=new WeakMap,X=new WeakMap,ee=new WeakMap;class te{constructor(){Z(this,J,void 0),Z(this,X,void 0),Z(this,ee,void 0),this.clear()}enqueue(e){var t;const n=new W(e);H(J,this)?(H(X,this).next=n,F(X,this,n)):(F(J,this,n),F(X,this,n)),F(ee,this,(t=H(ee,this),++t))}dequeue(){var e;const t=H(J,this);if(t)return F(J,this,H(J,this).next),F(ee,this,(e=H(ee,this),--e)),t.value}clear(){F(J,this,void 0),F(X,this,void 0),F(ee,this,0)}get size(){return H(ee,this)}*[Symbol.iterator](){let e=H(J,this);for(;e;)yield e.value,e=e.next}}function ne(e){if(!Number.isInteger(e)&&e!==Number.POSITIVE_INFINITY||!(e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=new te;let n=0;const s=async(e,s,a)=>{n++;const i=(async()=>e(...a))();s(i);try{await i}catch{}n--,t.size>0&&t.dequeue()()},a=function(a){for(var i=arguments.length,r=new Array(i>1?i-1:0),o=1;o{((a,i,r)=>{t.enqueue(s.bind(void 0,a,i,r)),(async()=>{await Promise.resolve(),n0&&t.dequeue()()})()})(a,i,r)}))};return Object.defineProperties(a,{activeCount:{get:()=>n},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),a}var se=s(96763);const ae={name:"AppList",components:{AppItem:Q,NcButton:I.A},mixins:[j],props:["category","app","search"],computed:{counter(){return this.apps.filter((e=>e.update)).length},loading(){return this.$store.getters.loading("list")},hasPendingUpdate(){return this.apps.filter((e=>e.update)).length>0},showUpdateAll(){return this.hasPendingUpdate&&this.useListView},apps(){const e=this.$store.getters.getAllApps.filter((e=>-1!==e.name.toLowerCase().search(this.search.toLowerCase()))).sort((function(e,t){const n=""+(e.active?0:1)+(e.update?0:1)+e.name,s=""+(t.active?0:1)+(t.update?0:1)+t.name;return OC.Util.naturalSortCompare(n,s)}));return"installed"===this.category?e.filter((e=>e.installed)):"enabled"===this.category?e.filter((e=>e.active&&e.installed)):"disabled"===this.category?e.filter((e=>!e.active&&e.installed)):"app-bundles"===this.category?e.filter((e=>e.bundles)):"updates"===this.category?e.filter((e=>e.update)):"supported"===this.category?e.filter((e=>300===e.level)):"featured"===this.category?e.filter((e=>200===e.level)):e.filter((e=>e.appstore&&void 0!==e.category&&(e.category===this.category||e.category.indexOf(this.category)>-1)))},bundles(){return this.$store.getters.getServerData.bundles.filter((e=>this.bundleApps(e.id).length>0))},bundleApps:()=>function(e){return this.$store.getters.getAllApps.filter((t=>void 0!==t.bundleIds&&t.bundleIds.includes(e)))},searchApps(){return""===this.search?[]:this.$store.getters.getAllApps.filter((e=>-1!==e.name.toLowerCase().search(this.search.toLowerCase())&&!this.apps.find((t=>t.id===e.id))))},useAppStoreView(){return!this.useListView&&!this.useBundleView},useListView(){return"installed"===this.category||"enabled"===this.category||"disabled"===this.category||"updates"===this.category||"featured"===this.category||"supported"===this.category},useBundleView(){return"app-bundles"===this.category},allBundlesEnabled(){return e=>0===this.bundleApps(e).filter((e=>!e.active)).length},bundleToggleText(){return e=>this.allBundlesEnabled(e)?t("settings","Disable all"):t("settings","Download and enable all")}},methods:{toggleBundle(e){return this.allBundlesEnabled(e)?this.disableBundle(e):this.enableBundle(e)},enableBundle(e){const t=this.bundleApps(e).map((e=>e.id));this.$store.dispatch("enableApp",{appId:t,groups:[]}).catch((e=>{se.error(e),OC.Notification.show(e)}))},disableBundle(e){const t=this.bundleApps(e).map((e=>e.id));this.$store.dispatch("disableApp",{appId:t,groups:[]}).catch((e=>{OC.Notification.show(e)}))},updateAll(){const e=ne(1);this.apps.filter((e=>e.update)).map((t=>e((()=>this.$store.dispatch("updateApp",{appId:t.id})))))}}};var ie=s(61671),re={};re.styleTagTransform=G(),re.setAttributes=P(),re.insert=L().bind(null,"head"),re.domAPI=N(),re.insertStyleElement=M(),D()(ie.A,re),ie.A&&ie.A.locals&&ie.A.locals;const oe=(0,m.A)(ae,(function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"app-content-inner"}},[t("div",{staticClass:"apps-list",class:{installed:e.useBundleView||e.useListView,store:e.useAppStoreView},attrs:{id:"apps-list"}},[e.useListView?[e.showUpdateAll?t("div",{staticClass:"toolbar"},[e._v("\n\t\t\t\t"+e._s(e.n("settings","%n app has an update available","%n apps have an update available",e.counter))+"\n\t\t\t\t"),e.showUpdateAll?t("NcButton",{attrs:{id:"app-list-update-all",type:"primary"},on:{click:e.updateAll}},[e._v("\n\t\t\t\t\t"+e._s(e.n("settings","Update","Update all",e.counter))+"\n\t\t\t\t")]):e._e()],1):e._e(),e._v(" "),e.showUpdateAll?e._e():t("div",{staticClass:"toolbar"},[e._v("\n\t\t\t\t"+e._s(e.t("settings","All apps are up-to-date."))+"\n\t\t\t")]),e._v(" "),t("transition-group",{staticClass:"apps-list-container",attrs:{name:"app-list",tag:"table"}},[t("tr",{key:"app-list-view-header",staticClass:"apps-header"},[t("th",{staticClass:"app-image"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Icon")))])]),e._v(" "),t("th",{staticClass:"app-name"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Name")))])]),e._v(" "),t("th",{staticClass:"app-version"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Version")))])]),e._v(" "),t("th",{staticClass:"app-level"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Level")))])]),e._v(" "),t("th",{staticClass:"actions"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Actions")))])])]),e._v(" "),e._l(e.apps,(function(n){return t("AppItem",{key:n.id,attrs:{app:n,category:e.category}})}))],2)]:e._e(),e._v(" "),e.useBundleView?t("table",{staticClass:"apps-list-container"},[t("tr",{key:"app-list-view-header",staticClass:"apps-header"},[t("th",{staticClass:"app-image",attrs:{id:"app-table-col-icon"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Icon")))])]),e._v(" "),t("th",{staticClass:"app-name",attrs:{id:"app-table-col-name"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Name")))])]),e._v(" "),t("th",{staticClass:"app-version",attrs:{id:"app-table-col-version"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Version")))])]),e._v(" "),t("th",{staticClass:"app-level",attrs:{id:"app-table-col-level"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Level")))])]),e._v(" "),t("th",{staticClass:"actions",attrs:{id:"app-table-col-actions"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Actions")))])])]),e._v(" "),e._l(e.bundles,(function(n){return[t("tr",{key:n.id},[t("th",{attrs:{id:"app-table-rowgroup-".concat(n.id),colspan:"5",scope:"rowgroup"}},[t("div",{staticClass:"app-bundle-heading"},[t("span",{staticClass:"app-bundle-header"},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(n.name)+"\n\t\t\t\t\t\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"secondary"},on:{click:function(t){return e.toggleBundle(n.id)}}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(e.t("settings",e.bundleToggleText(n.id)))+"\n\t\t\t\t\t\t\t")])],1)])]),e._v(" "),e._l(e.bundleApps(n.id),(function(s){return t("AppItem",{key:n.id+s.id,attrs:{"use-bundle-view":!0,headers:"app-table-rowgroup-".concat(n.id),app:s,category:e.category}})}))]}))],2):e._e(),e._v(" "),e.useAppStoreView?t("ul",{staticClass:"apps-store-view"},e._l(e.apps,(function(n){return t("AppItem",{key:n.id,attrs:{app:n,category:e.category,"list-view":!1}})})),1):e._e()],2),e._v(" "),t("div",{staticClass:"apps-list installed",attrs:{id:"apps-list-search"}},[t("div",{staticClass:"apps-list-container"},[""!==e.search&&e.searchApps.length>0?[t("div",{staticClass:"section"},[t("div"),e._v(" "),t("td",{attrs:{colspan:"5"}},[t("h2",[e._v(e._s(e.t("settings","Results from other categories")))])])]),e._v(" "),e._l(e.searchApps,(function(n){return t("AppItem",{key:n.id,attrs:{app:n,category:e.category}})}))]:e._e()],2)]),e._v(" "),""===e.search||e.loading||0!==e.searchApps.length||0!==e.apps.length?e._e():t("div",{staticClass:"emptycontent emptycontent-search",attrs:{id:"apps-list-empty"}},[t("div",{staticClass:"icon-settings-dark",attrs:{id:"app-list-empty-icon"}}),e._v(" "),t("h2",[e._v(e._s(e.t("settings","No apps found for your version")))])]),e._v(" "),t("div",{attrs:{id:"searchresults"}})])}),[],!1,null,"62f0f115",null).exports;var le=s(67607),pe=s(96763);let ce={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function de(e){ce=e}const ue=/[&<>"']/,he=new RegExp(ue.source,"g"),ge=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,fe=new RegExp(ge.source,"g"),Ae={"&":"&","<":"<",">":">",'"':""","'":"'"},me=e=>Ae[e];function be(e,t){if(t){if(ue.test(e))return e.replace(he,me)}else if(ge.test(e))return e.replace(fe,me);return e}const ke=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,ve=/(^|[^\[])\^/g;function _e(e,t){e="string"==typeof e?e:e.source,t=t||"";const n={replace:(t,s)=>(s=(s="object"==typeof s&&"source"in s?s.source:s).replace(ve,"$1"),e=e.replace(t,s),n),getRegex:()=>new RegExp(e,t)};return n}function xe(e){try{e=encodeURI(e).replace(/%25/g,"%")}catch(e){return null}return e}const Ce={exec:()=>null};function we(e,t){const n=e.replace(/\|/g,((e,t,n)=>{let s=!1,a=t;for(;--a>=0&&"\\"===n[a];)s=!s;return s?"|":" |"})).split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:ye(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t){const n=e.match(/^(\s+)(?:```)/);if(null===n)return t;const s=n[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[n]=t;return n.length>=s.length?e.slice(s.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=ye(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=ye(t[0].replace(/^ *>[ \t]?/gm,""),"\n"),n=this.lexer.state.top;this.lexer.state.top=!0;const s=this.lexer.blockTokens(e);return this.lexer.state.top=n,{type:"blockquote",raw:t[0],tokens:s,text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim();const s=n.length>1,a={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 i=new RegExp(`^( {0,3}${n})((?:[\t ][^\\n]*)?(?:\\n|$))`);let r="",o="",l=!1;for(;e;){let n=!1;if(!(t=i.exec(e)))break;if(this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let s=t[2].split("\n",1)[0].replace(/^\t+/,(e=>" ".repeat(3*e.length))),p=e.split("\n",1)[0],c=0;this.options.pedantic?(c=2,o=s.trimStart()):(c=t[2].search(/[^ ]/),c=c>4?1:c,o=s.slice(c),c+=t[1].length);let d=!1;if(!s&&/^ *$/.test(p)&&(r+=p+"\n",e=e.substring(p.length+1),n=!0),!n){const t=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+|$)`),a=new RegExp(`^ {0,${Math.min(3,c-1)}}(?:\`\`\`|~~~)`),i=new RegExp(`^ {0,${Math.min(3,c-1)}}#`);for(;e;){const l=e.split("\n",1)[0];if(p=l,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),a.test(p))break;if(i.test(p))break;if(t.test(p))break;if(n.test(e))break;if(p.search(/[^ ]/)>=c||!p.trim())o+="\n"+p.slice(c);else{if(d)break;if(s.search(/[^ ]/)>=4)break;if(a.test(s))break;if(i.test(s))break;if(n.test(s))break;o+="\n"+p}d||p.trim()||(d=!0),r+=l+"\n",e=e.substring(l.length+1),s=p.slice(c)}}a.loose||(l?a.loose=!0:/\n *\n *$/.test(r)&&(l=!0));let u,h=null;this.options.gfm&&(h=/^\[[ xX]\] /.exec(o),h&&(u="[ ] "!==h[0],o=o.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:r,task:!!h,checked:u,loose:!1,text:o,tokens:[]}),a.raw+=r}a.items[a.items.length-1].raw=r.trimEnd(),a.items[a.items.length-1].text=o.trimEnd(),a.raw=a.raw.trimEnd();for(let e=0;e"space"===e.type)),n=t.length>0&&t.some((e=>/\n.*\n/.test(e.raw)));a.loose=n}if(a.loose)for(let e=0;e$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:n,title:s}}}table(e){const t=this.rules.block.table.exec(e);if(t){if(!/[:|]/.test(t[2]))return;const e={type:"table",raw:t[0],header:we(t[1]).map((e=>({text:e,tokens:[]}))),align:t[2].replace(/^\||\| *$/g,"").split("|"),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){let t,n,s,a,i=e.align.length;for(t=0;t({text:e,tokens:[]})));for(i=e.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=ye(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let s=0;s-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],s="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],s=e[3])}else s=t[3]?t[3].slice(1,-1):"";return n=n.trim(),/^$/.test(e)?n.slice(1):n.slice(1,-1)),Se(t,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=(n[2]||n[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return Se(n,e,n[0],this.lexer)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrong.lDelim.exec(e);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 a,i,r=n,o=0;const l="*"===s[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);null!=(s=l.exec(t));){if(a=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!a)continue;if(i=[...a].length,s[3]||s[4]){r+=i;continue}if((s[5]||s[6])&&n%3&&!((n+i)%3)){o+=i;continue}if(r-=i,r>0)continue;i=Math.min(i,i+r+o);const t=[...s[0]][0].length,l=e.slice(0,n+s.index+t+i);if(Math.min(n,i)%2){const e=l.slice(1,-1);return{type:"em",raw:l,text:e,tokens:this.lexer.inlineTokens(e)}}const p=l.slice(2,-2);return{type:"strong",raw:l,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const n=/[^ ]/.test(e),s=/^ /.test(e)&&/ $/.test(e);return n&&s&&(e=e.substring(1,e.length-1)),e=be(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=be(t[1]),n="mailto:"+e):(e=be(t[1]),n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=be(t[0]),n="mailto:"+e;else{let s;do{s=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])[0]}while(s!==t[0]);e=be(t[0]),n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){let e;return e=this.lexer.state.inRawBlock?t[0]:be(t[0]),{type:"text",raw:t[0],text:e}}}}const Ie={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:Ce,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?'|\([^()]*\))/};Ie.def=_e(Ie.def).replace("label",Ie._label).replace("title",Ie._title).getRegex(),Ie.bullet=/(?:[*+-]|\d{1,9}[.)])/,Ie.listItemStart=_e(/^( *)(bull) */).replace("bull",Ie.bullet).getRegex(),Ie.list=_e(Ie.list).replace(/bull/g,Ie.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ie.def.source+")").getRegex(),Ie._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",Ie._comment=/|$)/,Ie.html=_e(Ie.html,"i").replace("comment",Ie._comment).replace("tag",Ie._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ie.lheading=_e(Ie.lheading).replace(/bull/g,Ie.bullet).getRegex(),Ie.paragraph=_e(Ie._paragraph).replace("hr",Ie.hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").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",Ie._tag).getRegex(),Ie.blockquote=_e(Ie.blockquote).replace("paragraph",Ie.paragraph).getRegex(),Ie.normal={...Ie},Ie.gfm={...Ie.normal,table:"^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},Ie.gfm.table=_e(Ie.gfm.table).replace("hr",Ie.hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").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",Ie._tag).getRegex(),Ie.gfm.paragraph=_e(Ie._paragraph).replace("hr",Ie.hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ie.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",Ie._tag).getRegex(),Ie.pedantic={...Ie.normal,html:_e("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Ie._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:Ce,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:_e(Ie.normal._paragraph).replace("hr",Ie.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Ie.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const Te={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ce,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:Ce,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`^|~"};Te.punctuation=_e(Te.punctuation,"u").replace(/punctuation/g,Te._punctuation).getRegex(),Te.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,Te.anyPunctuation=/\\[punct]/g,Te._escapes=/\\([punct])/g,Te._comment=_e(Ie._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Te.emStrong.lDelim=_e(Te.emStrong.lDelim,"u").replace(/punct/g,Te._punctuation).getRegex(),Te.emStrong.rDelimAst=_e(Te.emStrong.rDelimAst,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te.emStrong.rDelimUnd=_e(Te.emStrong.rDelimUnd,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te.anyPunctuation=_e(Te.anyPunctuation,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te._escapes=_e(Te._escapes,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Te._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])?)+(?![-_])/,Te.autolink=_e(Te.autolink).replace("scheme",Te._scheme).replace("email",Te._email).getRegex(),Te._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Te.tag=_e(Te.tag).replace("comment",Te._comment).replace("attribute",Te._attribute).getRegex(),Te._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Te._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Te._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Te.link=_e(Te.link).replace("label",Te._label).replace("href",Te._href).replace("title",Te._title).getRegex(),Te.reflink=_e(Te.reflink).replace("label",Te._label).replace("ref",Ie._label).getRegex(),Te.nolink=_e(Te.nolink).replace("ref",Ie._label).getRegex(),Te.reflinkSearch=_e(Te.reflinkSearch,"g").replace("reflink",Te.reflink).replace("nolink",Te.nolink).getRegex(),Te.normal={...Te},Te.pedantic={...Te.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:_e(/^!?\[(label)\]\((.*?)\)/).replace("label",Te._label).getRegex(),reflink:_e(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Te._label).getRegex()},Te.gfm={...Te.normal,escape:_e(Te.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]*?(?:(?=[\\t+" ".repeat(n.length)));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((s=>!!(n=s.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.space(e))e=e.substring(n.raw.length),1===n.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),s=t[t.length-1],!s||"paragraph"!==s.type&&"text"!==s.type?t.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(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),s=t[t.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(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else{if(a=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startBlock.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(n=this.tokenizer.paragraph(a)))s=t[t.length-1],i&&"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):t.push(n),i=a.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),s=t[t.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):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){pe.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,s,a,i,r,o,l=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(i=this.tokenizer.rules.inline.reflinkSearch.exec(l));)e.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(i=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(i=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,i.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(r||(o=""),r=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((s=>!!(n=s.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),s=t[t.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),s=t[t.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,l,o))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e))){if(a=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startInline.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(a))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(o=n.raw.slice(-1)),r=!0,s=t[t.length-1],s&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){pe.error(t);break}throw new Error(t)}}else e=e.substring(n.raw.length),t.push(n);return t}}class De{options;constructor(e){this.options=e||ce}code(e,t,n){const s=(t||"").match(/^\S*/)?.[0];return e=e.replace(/\n$/,"")+"\n",s?'
'+(n?e:be(e,!0))+"
\n":"
"+(n?e:be(e,!0))+"
\n"}blockquote(e){return`
\n${e}
\n`}html(e,t){return e}heading(e,t,n){return`${e}\n`}hr(){return"
\n"}list(e,t,n){const s=t?"ol":"ul";return"<"+s+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"}listitem(e,t,n){return`
  • ${e}
  • \n`}checkbox(e){return"'}paragraph(e){return`

    ${e}

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

    An error occurred:

    "+be(n.message+"",!0)+"
    ";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Re(e,t){return Le.parse(e,t)}Re.options=Re.setOptions=function(e){return Le.setOptions(e),Re.defaults=Le.defaults,de(Re.defaults),Re},Re.getDefaults=function(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}},Re.defaults=ce,Re.use=function(...e){return Le.use(...e),Re.defaults=Le.defaults,de(Re.defaults),Re},Re.walkTokens=function(e,t){return Le.walkTokens(e,t)},Re.parseInline=Le.parseInline,Re.Parser=Ne,Re.parser=Ne.parse,Re.Renderer=De,Re.TextRenderer=Be,Re.Lexer=ze,Re.lexer=ze.lex,Re.Tokenizer=$e,Re.Hooks=Ee,Re.parse=Re,Re.options,Re.setOptions,Re.use,Re.walkTokens,Re.parseInline,Ne.parse,ze.lex;var Pe=s(42838),Oe=s.n(Pe);const Me={name:"Markdown",props:{text:{type:String,default:""}},computed:{renderMarkdown(){const e=new Re.Renderer;return e.link=function(e,t,n){let s;try{s=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0!==s.indexOf("http:")&&0!==s.indexOf("https:"))return"";let a='
    ",a},e.image=function(e,t,n){return n||t},e.blockquote=function(e){return e},Oe().sanitize(Re(this.text.trim(),{renderer:e,gfm:!1,highlight:!1,tables:!1,breaks:!1,pedantic:!1,sanitize:!0,smartLists:!0,smartypants:!1}),{SAFE_FOR_JQUERY:!0,ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","strong","p","a","ul","ol","li","em","del","blockquote"]})}}};var Ue=s(44958),Ge={};Ge.styleTagTransform=G(),Ge.setAttributes=P(),Ge.insert=L().bind(null,"head"),Ge.domAPI=N(),Ge.insertStyleElement=M(),D()(Ue.A,Ge),Ue.A&&Ue.A.locals&&Ue.A.locals;const qe=(0,m.A)(Me,(function(){var e=this;return(0,e._self._c)("div",{staticClass:"settings-markdown",domProps:{innerHTML:e._s(e.renderMarkdown)}})}),[],!1,null,"ffd9a2d6",null).exports,Ve={name:"AppDetails",components:{NcSelect:le.A,Markdown:qe},mixins:[y,j],props:{app:{type:Object,required:!0}},data:()=>({groupCheckedAppsData:!1}),computed:{appstoreUrl(){return"https://apps.nextcloud.com/apps/".concat(this.app.id)},licence(){return this.app.licence?t("settings","{license}-licensed",{license:(""+this.app.licence).toUpperCase()}):null},author(){return"string"==typeof this.app.author?[{"@value":this.app.author}]:this.app.author["@value"]?[this.app.author]:this.app.author},appGroups(){return this.app.groups.map((e=>({id:e,name:e})))},groups(){return this.$store.getters.getGroups.filter((e=>"disabled"!==e.id)).sort(((e,t)=>e.name.localeCompare(t.name)))}},mounted(){this.app.groups.length>0&&(this.groupCheckedAppsData=!0)}};var Qe=s(68837),je={};je.styleTagTransform=G(),je.setAttributes=P(),je.insert=L().bind(null,"head"),je.domAPI=N(),je.insertStyleElement=M(),D()(Qe.A,je),Qe.A&&Qe.A.locals&&Qe.A.locals;const Ze=(0,m.A)(Ve,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"app-details"},[t("div",{staticClass:"app-details__actions"},[e.app.active&&e.canLimitToGroups(e.app)?t("div",{staticClass:"app-details__actions-groups"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.groupCheckedAppsData,expression:"groupCheckedAppsData"}],staticClass:"groups-enable__checkbox checkbox",attrs:{id:e.prefix("groups_enable",e.app.id),type:"checkbox"},domProps:{value:e.app.id,checked:Array.isArray(e.groupCheckedAppsData)?e._i(e.groupCheckedAppsData,e.app.id)>-1:e.groupCheckedAppsData},on:{change:[function(t){var n=e.groupCheckedAppsData,s=t.target,a=!!s.checked;if(Array.isArray(n)){var i=e.app.id,r=e._i(n,i);s.checked?r<0&&(e.groupCheckedAppsData=n.concat([i])):r>-1&&(e.groupCheckedAppsData=n.slice(0,r).concat(n.slice(r+1)))}else e.groupCheckedAppsData=a},e.setGroupLimit]}}),e._v(" "),t("label",{attrs:{for:e.prefix("groups_enable",e.app.id)}},[e._v(e._s(e.t("settings","Limit to groups")))]),e._v(" "),t("input",{staticClass:"group_select",attrs:{type:"hidden",title:e.t("settings","All"),value:""}}),e._v(" "),t("br"),e._v(" "),t("label",{attrs:{for:"limitToGroups"}},[t("span",[e._v(e._s(e.t("settings","Limit app usage to groups")))])]),e._v(" "),e.isLimitedToGroups(e.app)?t("NcSelect",{attrs:{"input-id":"limitToGroups",options:e.groups,value:e.appGroups,limit:5,label:"name",multiple:!0,"close-on-select":!1},on:{"option:selected":e.addGroupLimitation,"option:deselected":e.removeGroupLimitation,search:e.asyncFindGroup}},[t("span",{attrs:{slot:"noResult"},slot:"noResult"},[e._v(e._s(e.t("settings","No results")))])]):e._e()],1):e._e(),e._v(" "),t("div",{staticClass:"app-details__actions-manage"},[e.app.update?t("input",{staticClass:"update primary",attrs:{type:"button",value:e.t("settings","Update to {version}",{version:e.app.update}),disabled:e.installing||e.isLoading},on:{click:function(t){return e.update(e.app.id)}}}):e._e(),e._v(" "),e.app.canUnInstall?t("input",{staticClass:"uninstall",attrs:{type:"button",value:e.t("settings","Remove"),disabled:e.installing||e.isLoading},on:{click:function(t){return e.remove(e.app.id)}}}):e._e(),e._v(" "),e.app.active?t("input",{staticClass:"enable",attrs:{type:"button",value:e.t("settings","Disable"),disabled:e.installing||e.isLoading},on:{click:function(t){return e.disable(e.app.id)}}}):e._e(),e._v(" "),e.app.active||!e.app.canInstall&&!e.app.isCompatible?e.app.active||e.app.canInstall?e._e():t("input",{staticClass:"enable force",attrs:{title:e.forceEnableButtonTooltip,"aria-label":e.forceEnableButtonTooltip,type:"button",value:e.forceEnableButtonText,disabled:e.installing||e.isLoading},on:{click:function(t){return e.forceEnable(e.app.id)}}}):t("input",{staticClass:"enable primary",attrs:{title:e.enableButtonTooltip,"aria-label":e.enableButtonTooltip,type:"button",value:e.enableButtonText,disabled:!e.app.canInstall||e.installing||e.isLoading},on:{click:function(t){return e.enable(e.app.id)}}})])]),e._v(" "),t("ul",{staticClass:"app-details__dependencies"},[e.app.missingMinOwnCloudVersion?t("li",[e._v("\n\t\t\t"+e._s(e.t("settings","This app has no minimum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):e._e(),e._v(" "),e.app.missingMaxOwnCloudVersion?t("li",[e._v("\n\t\t\t"+e._s(e.t("settings","This app has no maximum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):e._e(),e._v(" "),e.app.canInstall?e._e():t("li",[e._v("\n\t\t\t"+e._s(e.t("settings","This app cannot be installed because the following dependencies are not fulfilled:"))+"\n\t\t\t"),t("ul",{staticClass:"missing-dependencies"},e._l(e.app.missingDependencies,(function(n,s){return t("li",{key:s},[e._v("\n\t\t\t\t\t"+e._s(n)+"\n\t\t\t\t")])})),0)])]),e._v(" "),t("p",{staticClass:"app-details__documentation"},[e.app.internal?e._e():t("a",{staticClass:"appslink",attrs:{href:e.appstoreUrl,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","View in store"))+" ↗")]),e._v(" "),e.app.website?t("a",{staticClass:"appslink",attrs:{href:e.app.website,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Visit website"))+" ↗")]):e._e(),e._v(" "),e.app.bugs?t("a",{staticClass:"appslink",attrs:{href:e.app.bugs,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Report a bug"))+" ↗")]):e._e(),e._v(" "),e.app.documentation&&e.app.documentation.user?t("a",{staticClass:"appslink",attrs:{href:e.app.documentation.user,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","User documentation"))+" ↗")]):e._e(),e._v(" "),e.app.documentation&&e.app.documentation.admin?t("a",{staticClass:"appslink",attrs:{href:e.app.documentation.admin,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Admin documentation"))+" ↗")]):e._e(),e._v(" "),e.app.documentation&&e.app.documentation.developer?t("a",{staticClass:"appslink",attrs:{href:e.app.documentation.developer,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Developer documentation"))+" ↗")]):e._e()]),e._v(" "),t("Markdown",{staticClass:"app-details__description",attrs:{text:e.app.description}})],1)}),[],!1,null,"5be7cbf9",null).exports;var Fe=s(92973);i.Ay.use(o());const He={name:"Apps",APPS_SECTION_ENUM:Fe.l,components:{NcAppContent:l.A,AppDetails:Ze,AppList:oe,IconStarShooting:b,NcAppNavigation:p.A,NcAppNavigationItem:c.A,NcAppNavigationSpacer:d.A,NcCounterBubble:g.A,AppScore:_,NcAppSidebar:u.N,NcAppSidebarTab:h.A,NcContent:f.A,Markdown:qe},mixins:[y],props:{category:{type:String,default:"installed"},id:{type:String,default:""}},data:()=>({searchQuery:"",screenshotLoaded:!1}),computed:{pageHeading(){return this.$options.APPS_SECTION_ENUM[this.category]?this.$options.APPS_SECTION_ENUM[this.category]:this.$store.getters.getCategoryById(this.category).displayName},loading(){return this.$store.getters.loading("categories")},loadingList(){return this.$store.getters.loading("list")},app(){return this.apps.find((e=>e.id===this.id))},categories(){return this.$store.getters.getCategories},apps(){return this.$store.getters.getAllApps},updateCount(){return this.$store.getters.getUpdateCount},settings(){return this.$store.getters.getServerData},hasRating(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},appSidebar(){const e=e=>e["@value"]?e["@value"]:e,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()}),a=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:a}},changelog:()=>e=>e.translations.en.changelog,isSubscribed(){return this.apps.some((e=>300===e.level))}},watch:{category(){this.searchQuery=""},app(){var e,t;if(this.screenshotLoaded=!1,null!==(e=this.app)&&void 0!==e&&e.releases&&null!==(t=this.app)&&void 0!==t&&t.screenshot){const e=new Image;e.onload=e=>{this.screenshotLoaded=!0},e.src=this.app.screenshot}}},beforeMount(){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(){(0,a.B1)("nextcloud:unified-search.search",this.setSearch),(0,a.B1)("nextcloud:unified-search.reset",this.resetSearch)},beforeDestroy(){(0,a.al)("nextcloud:unified-search.search",this.setSearch),(0,a.al)("nextcloud:unified-search.reset",this.resetSearch)},methods:{setSearch(e){let{query:t}=e;this.searchQuery=t},resetSearch(){this.searchQuery=""},hideAppDetails(){this.$router.push({name:"apps-category",params:{category:this.category}})},openDeveloperDocumentation(){window.open(this.settings.developerDocumentation)}}};var Ye=s(64653),Ke={};Ke.styleTagTransform=G(),Ke.setAttributes=P(),Ke.insert=L().bind(null,"head"),Ke.domAPI=N(),Ke.insertStyleElement=M(),D()(Ye.A,Ke),Ye.A&&Ye.A.locals&&Ye.A.locals;const We=(0,m.A)(He,(function(){var e=this,t=e._self._c;return t("NcContent",{class:{"with-app-sidebar":e.app},attrs:{"app-name":"settings"}},[t("NcAppNavigation",{class:{"icon-loading":e.loading},attrs:{"aria-label":e.t("settings","Apps")},scopedSlots:e._u([{key:"list",fn:function(){return[t("NcAppNavigationItem",{attrs:{id:"app-category-your-apps",to:{name:"apps"},exact:!0,icon:"icon-category-installed",name:e.$options.APPS_SECTION_ENUM.installed}}),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-category-enabled",to:{name:"apps-category",params:{category:"enabled"}},icon:"icon-category-enabled",name:e.$options.APPS_SECTION_ENUM.enabled}}),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-category-disabled",to:{name:"apps-category",params:{category:"disabled"}},icon:"icon-category-disabled",name:e.$options.APPS_SECTION_ENUM.disabled}}),e._v(" "),e.updateCount>0?t("NcAppNavigationItem",{attrs:{id:"app-category-updates",to:{name:"apps-category",params:{category:"updates"}},icon:"icon-download",name:e.$options.APPS_SECTION_ENUM.updates},scopedSlots:e._u([{key:"counter",fn:function(){return[t("NcCounterBubble",[e._v(e._s(e.updateCount))])]},proxy:!0}],null,!1,54487302)}):e._e(),e._v(" "),e.isSubscribed?t("NcAppNavigationItem",{attrs:{id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"}},name:e.$options.APPS_SECTION_ENUM.supported},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconStarShooting",{attrs:{size:20}})]},proxy:!0}],null,!1,704374136)}):e._e(),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-category-your-bundles",to:{name:"apps-category",params:{category:"app-bundles"}},icon:"icon-category-app-bundles",name:e.$options.APPS_SECTION_ENUM["app-bundles"]}}),e._v(" "),t("NcAppNavigationSpacer"),e._v(" "),e.settings.appstoreEnabled?[t("NcAppNavigationItem",{attrs:{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"}},icon:"icon-favorite",name:e.$options.APPS_SECTION_ENUM.featured}}),e._v(" "),e._l(e.categories,(function(e){return t("NcAppNavigationItem",{key:"icon-category-"+e.ident,attrs:{icon:"icon-category-"+e.ident,to:{name:"apps-category",params:{category:e.ident}},name:e.displayName}})}))]:e._e(),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-developer-docs",name:e.t("settings","Developer documentation")+" ↗"},on:{click:e.openDeveloperDocumentation}})]},proxy:!0}])}),e._v(" "),t("NcAppContent",{staticClass:"app-settings-content",class:{"icon-loading":e.loadingList},attrs:{"page-heading":e.pageHeading}},[t("AppList",{attrs:{category:e.category,app:e.app,search:e.searchQuery}})],1),e._v(" "),e.id&&e.app?t("NcAppSidebar",e._b({class:{"app-sidebar--without-background":!e.appSidebar.background},on:{close:e.hideAppDetails},scopedSlots:e._u([e.appSidebar.background?null:{key:"header",fn:function(){return[t("div",{staticClass:"app-sidebar-header__figure--default-app-icon icon-settings-dark"})]},proxy:!0},{key:"description",fn:function(){return[300===e.app.level||200===e.app.level||e.hasRating?t("div",{staticClass:"app-level"},[300===e.app.level?t("span",{staticClass:"supported icon-checkmark-color",attrs:{title:e.t("settings","This app is supported via your current Nextcloud subscription.")}},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Supported")))]):e._e(),e._v(" "),200===e.app.level?t("span",{staticClass:"official icon-checkmark",attrs:{title:e.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Featured")))]):e._e(),e._v(" "),e.hasRating?t("AppScore",{attrs:{score:e.app.appstoreData.ratingOverall}}):e._e()],1):e._e(),e._v(" "),t("div",{staticClass:"app-version"},[t("p",[e._v(e._s(e.app.version))])])]},proxy:!0}],null,!0)},"NcAppSidebar",e.appSidebar,!1),[e._v(" "),e._v(" "),t("NcAppSidebarTab",{attrs:{id:"desc",icon:"icon-category-office",name:e.t("settings","Details"),order:0}},[t("AppDetails",{attrs:{app:e.app}})],1),e._v(" "),e.app.appstoreData&&e.app.releases[0].translations.en.changelog?t("NcAppSidebarTab",{attrs:{id:"desca",icon:"icon-category-organization",name:e.t("settings","Changelog"),order:1}},e._l(e.app.releases,(function(n){return t("div",{key:n.version,staticClass:"app-sidebar-tabs__release"},[t("h2",[e._v(e._s(n.version))]),e._v(" "),e.changelog(n)?t("Markdown",{attrs:{text:e.changelog(n)}}):e._e()],1)})),0):e._e()],1):e._e()],1)}),[],!1,null,"4e6c328e",null).exports},35973:function(e,t,n){var s=n(65606),a=n(96763);e.exports=function(){"use strict";var e=function(){this._properties={},this._namespace="",this._isSupported=!0},t={namespace:{}};t.namespace.get=function(){return this._namespace},t.namespace.set=function(e){this._namespace=e?e+".":""},e.prototype._getLsKey=function(e){return""+this._namespace+e},e.prototype._lsSet=function(e,t,n){var s=this._getLsKey(e),a=n&&[Array,Object].includes(n)?JSON.stringify(t):t;window.localStorage.setItem(s,a)},e.prototype._lsGet=function(e){var t=this._getLsKey(e);return window.localStorage[t]},e.prototype.get=function(e,t,n){if(void 0===t&&(t=null),void 0===n&&(n=String),!this._isSupported)return null;if(this._lsGet(e)){var s=n;for(var a in this._properties)if(a===e){s=this._properties[a].type;break}return this._process(s,this._lsGet(e))}return null!==t?t:null},e.prototype.set=function(e,t){var n=this;if(!this._isSupported)return null;for(var s in n._properties){var a=n._properties[s].type;if(s===e)return n._lsSet(e,t,a),t}return this._lsSet(e,t),t},e.prototype.remove=function(e){return this._isSupported?window.localStorage.removeItem(e):null},e.prototype.addProperty=function(e,t,n){void 0===n&&(n=void 0),t=t||String,this._properties[e]={type:t},this._lsGet(e)||null===n||this._lsSet(e,n,t)},e.prototype._process=function(e,t){switch(e){case Boolean:return"true"===t;case Number:return parseFloat(t);case Array:try{var n=JSON.parse(t);return Array.isArray(n)?n:[]}catch(e){return[]}case Object:try{return JSON.parse(t)}catch(e){return{}}default:return t}},Object.defineProperties(e.prototype,t);var n=new e;return{install:function(e,t){if(void 0===t&&(t={}),void 0===s||!(s.server||s.SERVER_BUILD||s.env&&"server"===s.env.VUE_ENV)){var i=!0;try{var r="__vue-localstorage-test__";window.localStorage.setItem(r,r),window.localStorage.removeItem(r)}catch(e){i=!1,n._isSupported=!1,a.error("Local storage is not supported")}var o=t.name||"localStorage",l=t.bind;t.namespace&&(n.namespace=t.namespace),e.mixin({beforeCreate:function(){var t=this;i&&this.$options[o]&&Object.keys(this.$options[o]).forEach((function(s){var i=t.$options[o][s],r=[i.type,i.default],p=r[0],c=r[1];if(n.addProperty(s,p,c),Object.getOwnPropertyDescriptor(n,s))e.config.silent||a.log(s+": is already defined and will be reused");else{var d={get:function(){return e.localStorage.get(s,c)},set:function(t){return e.localStorage.set(s,t)},configurable:!0};Object.defineProperty(n,s,d),e.util.defineReactive(n,s,c)}(l||i.bind)&&!1!==i.bind&&(t.$options.computed=t.$options.computed||{},t.$options.computed[s]||(t.$options.computed[s]={get:function(){return e.localStorage[s]},set:function(t){e.localStorage[s]=t}}))}))}}),e[o]=n,e.prototype["$"+o]=n}}}}()}}]); -//# sourceMappingURL=settings-apps-view-4529.js.map?v=a16db7cca874de047399 \ No newline at end of file +(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[4529],{68837:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.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:""}]);const o=r},61671:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.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:""}]);const o=r},11240:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.id,'.app-icon[data-v-f40de422]{filter:var(--background-invert-if-bright)}.app-image img[data-v-f40de422]{width:100%}.apps-list-container .app-name[data-v-f40de422]{padding:0 6px}.apps-list-container .app-name--link[data-v-f40de422]{--app-item-padding: 6px;--app-item-height: calc(2 * 6px + var(--default-clickable-area));height:var(--app-item-height);display:flex;align-items:center}.apps-list-container .app-name--link[data-v-f40de422]::after{content:"";position:absolute;left:0;right:0;height:var(--app-item-height)}.apps-list-container .actions[data-v-f40de422]{display:flex !important;flex-wrap:nowrap !important}.apps-store-view .app-name--link[data-v-f40de422]::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0}',"",{version:3,sources:["webpack://./apps/settings/src/components/AppList/AppItem.vue"],names:[],mappings:"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA,CAUA,gDACC,aAAA,CAGD,sDAEC,uBAAA,CACA,gEAAA,CACA,6BAAA,CACA,YAAA,CACA,kBAAA,CAGD,6DACC,UAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,6BAAA,CAGD,+CAEC,uBAAA,CACA,2BAAA,CAOD,yDACC,UAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA",sourcesContent:["\n.app-icon {\n\tfilter: var(--background-invert-if-bright);\n}\n\n.app-image img {\n\twidth: 100%;\n}\n\n// Note: because of Safari bug, we cannot position link overlay relative to the table row\n// See: https://bugs.webkit.org/show_bug.cgi?id=240961\n// So we need to manually position it relative to the entire table container and cell\n// This is a simple solution to fix the bag in Nextcloud 28\n// Nextcloud 29+ has a proper fix in a refactored app list\n// See: https://github.com/nextcloud/server/pull/44236/\n.apps-list-container {\n\t.app-name {\n\t\tpadding: 0 6px;\n\t}\n\n\t.app-name--link {\n\t\t// table cell padding defined by settings.scss\n\t\t--app-item-padding: 6px;\n\t\t--app-item-height: calc(2 * 6px + var(--default-clickable-area));\n\t\theight: var(--app-item-height);\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.app-name--link::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\theight: var(--app-item-height);\n\t}\n\n\t.actions {\n\t\t// Prevent table to have increased height when action buttons takes much space\n\t\tdisplay: flex !important;\n\t\tflex-wrap: nowrap !important;\n\t}\n}\n\n// In the store view we can stretch the link to the entire cell,\n// because it is a block and it can have position relative\n.apps-store-view {\n\t.app-name--link::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t}\n}\n"],sourceRoot:""}]);const o=r},44958:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.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:""}]);const o=r},64653:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(71354),a=n.n(s),i=n(76314),r=n.n(i)()(a());r.push([e.id,".app-sidebar[data-v-4e6c328e]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-4e6c328e]: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-4e6c328e] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-4e6c328e] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-4e6c328e]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-4e6c328e] h3{font-size:20px}.app-sidebar-tabs__release[data-v-4e6c328e] 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:""}]);const o=r},17183:(e,n,s)=>{"use strict";s.r(n),s.d(n,{default:()=>We});var a=s(61338),i=s(85471),r=s(35973),o=s.n(r),l=s(18195),p=s(42530),c=s(52439),d=s(66687),u=s(89802),h=s(46503),g=s(28331),f=s(22378);const A={name:"StarShootingIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var m=s(14486);const b=(0,m.A)(A,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon star-shooting-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var k=s(63814);const v={name:"AppScore",props:["score"],computed:{appScore(){return Math.round(10*this.score)},scoreImage(){const e="rating/s"+this.appScore+".svg";return(0,k.d0)("core",e)}}},_=(0,m.A)(v,(function(){var e=this;return(0,e._self._c)("img",{staticClass:"app-score-image",attrs:{src:e.scoreImage,alt:e.t("settings","Rating: {score}/10",{score:e.appScore})}})}),[],!1,null,null,null).exports;var x=s(85168),C=s(65043);const w=()=>C.Ay.get((0,k.KT)("core/navigation",2)+"/apps?format=json").then((e=>{let{data:t}=e;200===t.ocs.meta.statuscode&&((0,a.Ic)("nextcloud:app-menu.refresh",{apps:t.ocs.data}),window.dispatchEvent(new Event("resize")))})),y={computed:{appGroups(){return this.app.groups.map((e=>({id:e,name:e})))},installing(){return this.$store.getters.loading("install")},isLoading(){return this.app&&this.$store.getters.loading(this.app.id)},enableButtonText(){return this.app.needsDownload?t("settings","Download and enable"):t("settings","Enable")},forceEnableButtonText(){return this.app.needsDownload,t("settings","Allow untested app")},enableButtonTooltip(){return this.app.needsDownload?t("settings","The app will be downloaded from the App Store"):null},forceEnableButtonTooltip(){const e=t("settings","This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.");return this.app.needsDownload?e+" "+t("settings","The app will be downloaded from the App Store"):e}},data:()=>({groupCheckedAppsData:!1}),mounted(){this.app&&this.app.groups&&this.app.groups.length>0&&(this.groupCheckedAppsData=!0)},methods:{asyncFindGroup(e){return this.$store.dispatch("getGroups",{search:e,limit:5,offset:0})},isLimitedToGroups(e){return!(!this.app.groups.length&&!this.groupCheckedAppsData)},setGroupLimit(){this.groupCheckedAppsData||this.$store.dispatch("enableApp",{appId:this.app.id,groups:[]})},canLimitToGroups:e=>!(e.types&&e.types.includes("filesystem")||e.types.includes("prelogin")||e.types.includes("authentication")||e.types.includes("logging")||e.types.includes("prevent_group_restriction")),addGroupLimitation(e){const t=e.pop(),n=this.app.groups.concat([]).concat([t.id]);this.$store.dispatch("enableApp",{appId:this.app.id,groups:n})},removeGroupLimitation(e){const t=this.app.groups.concat([]),n=t.indexOf(e.id);n>-1&&t.splice(n,1),this.$store.dispatch("enableApp",{appId:this.app.id,groups:t})},forceEnable(e){this.$store.dispatch("forceEnableApp",{appId:e,groups:[]}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},enable(e){this.$store.dispatch("enableApp",{appId:e,groups:[]}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},disable(e){this.$store.dispatch("disableApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},remove(e){this.$store.dispatch("uninstallApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},install(e){this.$store.dispatch("enableApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))},update(e){this.$store.dispatch("updateApp",{appId:e}).then((e=>{w()})).catch((e=>{(0,x.Qg)(e)}))}}},S={name:"SvgFilterMixin",data:()=>({filterId:""}),computed:{filterUrl(){return"url(#".concat(this.filterId,")")}},mounted(){this.filterId="invertIconApps-"+Math.random().toString(36).substring(2)}},$=(0,m.A)(S,void 0,void 0,!1,null,null,null).exports;var I=s(54332);const T={name:"AppItem",components:{AppScore:_,NcButton:I.A},mixins:[y,$],props:{app:{},category:{},listView:{type:Boolean,default:!0},useBundleView:{type:Boolean,default:!1},headers:{type:String,default:null}},data:()=>({isSelected:!1,scrolled:!1,screenshotLoaded:!1}),computed:{hasRating(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},dataItemTag(){return this.listView?"td":"div"}},watch:{"$route.params.id"(e){this.isSelected=this.app.id===e}},mounted(){if(this.isSelected=this.app.id===this.$route.params.id,this.app.releases&&this.app.screenshot){const e=new Image;e.onload=e=>{this.screenshotLoaded=!0},e.src=this.app.screenshot}},watchers:{},methods:{prefix:(e,t)=>e+"_"+t,getDataItemHeaders(e){return this.useBundleView?[this.headers,e].join(" "):null}}};var D=s(85072),z=s.n(D),B=s(97825),N=s.n(B),E=s(77659),L=s.n(E),R=s(55056),P=s.n(R),O=s(10540),M=s.n(O),U=s(41113),G=s.n(U),q=s(11240),V={};V.styleTagTransform=G(),V.setAttributes=P(),V.insert=L().bind(null,"head"),V.domAPI=N(),V.insertStyleElement=M(),z()(q.A,V),q.A&&q.A.locals&&q.A.locals;const Q=(0,m.A)(T,(function(){var e=this,t=e._self._c;return t(e.listView?"tr":"li",{tag:"component",staticClass:"section",class:{selected:e.isSelected}},[t(e.dataItemTag,{tag:"component",staticClass:"app-image app-image-icon",attrs:{headers:e.getDataItemHeaders("app-table-col-icon")}},[e.listView&&!e.app.preview||!e.listView&&!e.screenshotLoaded?t("div",{staticClass:"icon-settings-dark"}):e.listView&&e.app.preview?t("svg",{attrs:{width:"32",height:"32",viewBox:"0 0 32 32"}},[t("image",{staticClass:"app-icon",attrs:{x:"0",y:"0",width:"32",height:"32",preserveAspectRatio:"xMinYMin meet","xlink:href":e.app.preview}})]):e._e(),e._v(" "),!e.listView&&e.app.screenshot&&e.screenshotLoaded?t("img",{attrs:{src:e.app.screenshot,alt:""}}):e._e()]),e._v(" "),t(e.dataItemTag,{tag:"component",staticClass:"app-name",attrs:{headers:e.getDataItemHeaders("app-table-col-name")}},[t("router-link",{staticClass:"app-name--link",attrs:{to:{name:"apps-details",params:{category:e.category,id:e.app.id}},"aria-label":e.t("settings","Show details for {appName} app",{appName:e.app.name})}},[e._v("\n\t\t\t"+e._s(e.app.name)+"\n\t\t")])],1),e._v(" "),e.listView?e._e():t(e.dataItemTag,{tag:"component",staticClass:"app-summary",attrs:{headers:e.getDataItemHeaders("app-version")}},[e._v("\n\t\t"+e._s(e.app.summary)+"\n\t")]),e._v(" "),e.listView?t(e.dataItemTag,{tag:"component",staticClass:"app-version",attrs:{headers:e.getDataItemHeaders("app-table-col-version")}},[e.app.version?t("span",[e._v(e._s(e.app.version))]):e.app.appstoreData.releases[0].version?t("span",[e._v(e._s(e.app.appstoreData.releases[0].version))]):e._e()]):e._e(),e._v(" "),t(e.dataItemTag,{tag:"component",staticClass:"app-level",attrs:{headers:e.getDataItemHeaders("app-table-col-level")}},[300===e.app.level?t("span",{staticClass:"supported icon-checkmark-color",attrs:{title:e.t("settings","This app is supported via your current Nextcloud subscription."),"aria-label":e.t("settings","This app is supported via your current Nextcloud subscription.")}},[e._v("\n\t\t\t"+e._s(e.t("settings","Supported")))]):e._e(),e._v(" "),200===e.app.level?t("span",{staticClass:"official icon-checkmark",attrs:{title:e.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use."),"aria-label":e.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[e._v("\n\t\t\t"+e._s(e.t("settings","Featured")))]):e._e(),e._v(" "),e.hasRating&&!e.listView?t("AppScore",{attrs:{score:e.app.score}}):e._e()],1),e._v(" "),t(e.dataItemTag,{tag:"component",staticClass:"actions",attrs:{headers:e.getDataItemHeaders("app-table-col-actions")}},[e.app.error?t("div",{staticClass:"warning"},[e._v("\n\t\t\t"+e._s(e.app.error)+"\n\t\t")]):e._e(),e._v(" "),e.isLoading?t("div",{staticClass:"icon icon-loading-small"}):e._e(),e._v(" "),e.app.update?t("NcButton",{attrs:{type:"primary",disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.update(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Update to {update}",{update:e.app.update}))+"\n\t\t")]):e._e(),e._v(" "),e.app.canUnInstall?t("NcButton",{staticClass:"uninstall",attrs:{type:"tertiary",disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.remove(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Remove"))+"\n\t\t")]):e._e(),e._v(" "),e.app.active?t("NcButton",{attrs:{disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.disable(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.t("settings","Disable"))+"\n\t\t")]):e._e(),e._v(" "),e.app.active||!e.app.canInstall&&!e.app.isCompatible?e.app.active?e._e():t("NcButton",{attrs:{title:e.forceEnableButtonTooltip,"aria-label":e.forceEnableButtonTooltip,type:"secondary",disabled:e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.forceEnable(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.forceEnableButtonText)+"\n\t\t")]):t("NcButton",{attrs:{title:e.enableButtonTooltip,"aria-label":e.enableButtonTooltip,type:"primary",disabled:!e.app.canInstall||e.installing||e.isLoading},on:{click:function(t){return t.stopPropagation(),e.enable(e.app.id)}}},[e._v("\n\t\t\t"+e._s(e.enableButtonText)+"\n\t\t")])],1)],1)}),[],!1,null,"f40de422",null).exports,j=(0,m.A)({name:"PrefixMixin",methods:{prefix:(e,t)=>e+"_"+t}},void 0,void 0,!1,null,null,null).exports;function Z(e,t,n){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,n)}function F(e,t,n){return e.set(Y(e,t),n),n}function H(e,t){return e.get(Y(e,t))}function Y(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function K(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class W{constructor(e){K(this,"value",void 0),K(this,"next",void 0),this.value=e}}var J=new WeakMap,X=new WeakMap,ee=new WeakMap;class te{constructor(){Z(this,J,void 0),Z(this,X,void 0),Z(this,ee,void 0),this.clear()}enqueue(e){var t;const n=new W(e);H(J,this)?(H(X,this).next=n,F(X,this,n)):(F(J,this,n),F(X,this,n)),F(ee,this,(t=H(ee,this),++t))}dequeue(){var e;const t=H(J,this);if(t)return F(J,this,H(J,this).next),F(ee,this,(e=H(ee,this),--e)),t.value}clear(){F(J,this,void 0),F(X,this,void 0),F(ee,this,0)}get size(){return H(ee,this)}*[Symbol.iterator](){let e=H(J,this);for(;e;)yield e.value,e=e.next}}function ne(e){if(!Number.isInteger(e)&&e!==Number.POSITIVE_INFINITY||!(e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=new te;let n=0;const s=async(e,s,a)=>{n++;const i=(async()=>e(...a))();s(i);try{await i}catch{}n--,t.size>0&&t.dequeue()()},a=function(a){for(var i=arguments.length,r=new Array(i>1?i-1:0),o=1;o{((a,i,r)=>{t.enqueue(s.bind(void 0,a,i,r)),(async()=>{await Promise.resolve(),n0&&t.dequeue()()})()})(a,i,r)}))};return Object.defineProperties(a,{activeCount:{get:()=>n},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),a}var se=s(96763);const ae={name:"AppList",components:{AppItem:Q,NcButton:I.A},mixins:[j],props:["category","app","search"],computed:{counter(){return this.apps.filter((e=>e.update)).length},loading(){return this.$store.getters.loading("list")},hasPendingUpdate(){return this.apps.filter((e=>e.update)).length>0},showUpdateAll(){return this.hasPendingUpdate&&this.useListView},apps(){const e=this.$store.getters.getAllApps.filter((e=>-1!==e.name.toLowerCase().search(this.search.toLowerCase()))).sort((function(e,t){const n=""+(e.active?0:1)+(e.update?0:1)+e.name,s=""+(t.active?0:1)+(t.update?0:1)+t.name;return OC.Util.naturalSortCompare(n,s)}));return"installed"===this.category?e.filter((e=>e.installed)):"enabled"===this.category?e.filter((e=>e.active&&e.installed)):"disabled"===this.category?e.filter((e=>!e.active&&e.installed)):"app-bundles"===this.category?e.filter((e=>e.bundles)):"updates"===this.category?e.filter((e=>e.update)):"supported"===this.category?e.filter((e=>300===e.level)):"featured"===this.category?e.filter((e=>200===e.level)):e.filter((e=>e.appstore&&void 0!==e.category&&(e.category===this.category||e.category.indexOf(this.category)>-1)))},bundles(){return this.$store.getters.getServerData.bundles.filter((e=>this.bundleApps(e.id).length>0))},bundleApps:()=>function(e){return this.$store.getters.getAllApps.filter((t=>void 0!==t.bundleIds&&t.bundleIds.includes(e)))},searchApps(){return""===this.search?[]:this.$store.getters.getAllApps.filter((e=>-1!==e.name.toLowerCase().search(this.search.toLowerCase())&&!this.apps.find((t=>t.id===e.id))))},useAppStoreView(){return!this.useListView&&!this.useBundleView},useListView(){return"installed"===this.category||"enabled"===this.category||"disabled"===this.category||"updates"===this.category||"featured"===this.category||"supported"===this.category},useBundleView(){return"app-bundles"===this.category},allBundlesEnabled(){return e=>0===this.bundleApps(e).filter((e=>!e.active)).length},bundleToggleText(){return e=>this.allBundlesEnabled(e)?t("settings","Disable all"):t("settings","Download and enable all")}},methods:{toggleBundle(e){return this.allBundlesEnabled(e)?this.disableBundle(e):this.enableBundle(e)},enableBundle(e){const t=this.bundleApps(e).map((e=>e.id));this.$store.dispatch("enableApp",{appId:t,groups:[]}).catch((e=>{se.error(e),OC.Notification.show(e)}))},disableBundle(e){const t=this.bundleApps(e).map((e=>e.id));this.$store.dispatch("disableApp",{appId:t,groups:[]}).catch((e=>{OC.Notification.show(e)}))},updateAll(){const e=ne(1);this.apps.filter((e=>e.update)).map((t=>e((()=>this.$store.dispatch("updateApp",{appId:t.id})))))}}};var ie=s(61671),re={};re.styleTagTransform=G(),re.setAttributes=P(),re.insert=L().bind(null,"head"),re.domAPI=N(),re.insertStyleElement=M(),z()(ie.A,re),ie.A&&ie.A.locals&&ie.A.locals;const oe=(0,m.A)(ae,(function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"app-content-inner"}},[t("div",{staticClass:"apps-list",class:{installed:e.useBundleView||e.useListView,store:e.useAppStoreView},attrs:{id:"apps-list"}},[e.useListView?[e.showUpdateAll?t("div",{staticClass:"toolbar"},[e._v("\n\t\t\t\t"+e._s(e.n("settings","%n app has an update available","%n apps have an update available",e.counter))+"\n\t\t\t\t"),e.showUpdateAll?t("NcButton",{attrs:{id:"app-list-update-all",type:"primary"},on:{click:e.updateAll}},[e._v("\n\t\t\t\t\t"+e._s(e.n("settings","Update","Update all",e.counter))+"\n\t\t\t\t")]):e._e()],1):e._e(),e._v(" "),e.showUpdateAll?e._e():t("div",{staticClass:"toolbar"},[e._v("\n\t\t\t\t"+e._s(e.t("settings","All apps are up-to-date."))+"\n\t\t\t")]),e._v(" "),t("transition-group",{staticClass:"apps-list-container",attrs:{name:"app-list",tag:"table"}},[t("tr",{key:"app-list-view-header",staticClass:"apps-header"},[t("th",{staticClass:"app-image"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Icon")))])]),e._v(" "),t("th",{staticClass:"app-name"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Name")))])]),e._v(" "),t("th",{staticClass:"app-version"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Version")))])]),e._v(" "),t("th",{staticClass:"app-level"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Level")))])]),e._v(" "),t("th",{staticClass:"actions"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Actions")))])])]),e._v(" "),e._l(e.apps,(function(n){return t("AppItem",{key:n.id,attrs:{app:n,category:e.category}})}))],2)]:e._e(),e._v(" "),e.useBundleView?t("table",{staticClass:"apps-list-container"},[t("tr",{key:"app-list-view-header",staticClass:"apps-header"},[t("th",{staticClass:"app-image",attrs:{id:"app-table-col-icon"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Icon")))])]),e._v(" "),t("th",{staticClass:"app-name",attrs:{id:"app-table-col-name"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Name")))])]),e._v(" "),t("th",{staticClass:"app-version",attrs:{id:"app-table-col-version"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Version")))])]),e._v(" "),t("th",{staticClass:"app-level",attrs:{id:"app-table-col-level"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Level")))])]),e._v(" "),t("th",{staticClass:"actions",attrs:{id:"app-table-col-actions"}},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("settings","Actions")))])])]),e._v(" "),e._l(e.bundles,(function(n){return[t("tr",{key:n.id},[t("th",{attrs:{id:"app-table-rowgroup-".concat(n.id),colspan:"5",scope:"rowgroup"}},[t("div",{staticClass:"app-bundle-heading"},[t("span",{staticClass:"app-bundle-header"},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(n.name)+"\n\t\t\t\t\t\t\t")]),e._v(" "),t("NcButton",{attrs:{type:"secondary"},on:{click:function(t){return e.toggleBundle(n.id)}}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(e.t("settings",e.bundleToggleText(n.id)))+"\n\t\t\t\t\t\t\t")])],1)])]),e._v(" "),e._l(e.bundleApps(n.id),(function(s){return t("AppItem",{key:n.id+s.id,attrs:{"use-bundle-view":!0,headers:"app-table-rowgroup-".concat(n.id),app:s,category:e.category}})}))]}))],2):e._e(),e._v(" "),e.useAppStoreView?t("ul",{staticClass:"apps-store-view"},e._l(e.apps,(function(n){return t("AppItem",{key:n.id,attrs:{app:n,category:e.category,"list-view":!1}})})),1):e._e()],2),e._v(" "),t("div",{staticClass:"apps-list installed",attrs:{id:"apps-list-search"}},[t("div",{staticClass:"apps-list-container"},[""!==e.search&&e.searchApps.length>0?[t("div",{staticClass:"section"},[t("div"),e._v(" "),t("td",{attrs:{colspan:"5"}},[t("h2",[e._v(e._s(e.t("settings","Results from other categories")))])])]),e._v(" "),e._l(e.searchApps,(function(n){return t("AppItem",{key:n.id,attrs:{app:n,category:e.category}})}))]:e._e()],2)]),e._v(" "),""===e.search||e.loading||0!==e.searchApps.length||0!==e.apps.length?e._e():t("div",{staticClass:"emptycontent emptycontent-search",attrs:{id:"apps-list-empty"}},[t("div",{staticClass:"icon-settings-dark",attrs:{id:"app-list-empty-icon"}}),e._v(" "),t("h2",[e._v(e._s(e.t("settings","No apps found for your version")))])]),e._v(" "),t("div",{attrs:{id:"searchresults"}})])}),[],!1,null,"62f0f115",null).exports;var le=s(67607),pe=s(96763);let ce={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function de(e){ce=e}const ue=/[&<>"']/,he=new RegExp(ue.source,"g"),ge=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,fe=new RegExp(ge.source,"g"),Ae={"&":"&","<":"<",">":">",'"':""","'":"'"},me=e=>Ae[e];function be(e,t){if(t){if(ue.test(e))return e.replace(he,me)}else if(ge.test(e))return e.replace(fe,me);return e}const ke=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,ve=/(^|[^\[])\^/g;function _e(e,t){e="string"==typeof e?e:e.source,t=t||"";const n={replace:(t,s)=>(s=(s="object"==typeof s&&"source"in s?s.source:s).replace(ve,"$1"),e=e.replace(t,s),n),getRegex:()=>new RegExp(e,t)};return n}function xe(e){try{e=encodeURI(e).replace(/%25/g,"%")}catch(e){return null}return e}const Ce={exec:()=>null};function we(e,t){const n=e.replace(/\|/g,((e,t,n)=>{let s=!1,a=t;for(;--a>=0&&"\\"===n[a];)s=!s;return s?"|":" |"})).split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:ye(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t){const n=e.match(/^(\s+)(?:```)/);if(null===n)return t;const s=n[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[n]=t;return n.length>=s.length?e.slice(s.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=ye(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=ye(t[0].replace(/^ *>[ \t]?/gm,""),"\n"),n=this.lexer.state.top;this.lexer.state.top=!0;const s=this.lexer.blockTokens(e);return this.lexer.state.top=n,{type:"blockquote",raw:t[0],tokens:s,text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim();const s=n.length>1,a={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 i=new RegExp(`^( {0,3}${n})((?:[\t ][^\\n]*)?(?:\\n|$))`);let r="",o="",l=!1;for(;e;){let n=!1;if(!(t=i.exec(e)))break;if(this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let s=t[2].split("\n",1)[0].replace(/^\t+/,(e=>" ".repeat(3*e.length))),p=e.split("\n",1)[0],c=0;this.options.pedantic?(c=2,o=s.trimStart()):(c=t[2].search(/[^ ]/),c=c>4?1:c,o=s.slice(c),c+=t[1].length);let d=!1;if(!s&&/^ *$/.test(p)&&(r+=p+"\n",e=e.substring(p.length+1),n=!0),!n){const t=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+|$)`),a=new RegExp(`^ {0,${Math.min(3,c-1)}}(?:\`\`\`|~~~)`),i=new RegExp(`^ {0,${Math.min(3,c-1)}}#`);for(;e;){const l=e.split("\n",1)[0];if(p=l,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),a.test(p))break;if(i.test(p))break;if(t.test(p))break;if(n.test(e))break;if(p.search(/[^ ]/)>=c||!p.trim())o+="\n"+p.slice(c);else{if(d)break;if(s.search(/[^ ]/)>=4)break;if(a.test(s))break;if(i.test(s))break;if(n.test(s))break;o+="\n"+p}d||p.trim()||(d=!0),r+=l+"\n",e=e.substring(l.length+1),s=p.slice(c)}}a.loose||(l?a.loose=!0:/\n *\n *$/.test(r)&&(l=!0));let u,h=null;this.options.gfm&&(h=/^\[[ xX]\] /.exec(o),h&&(u="[ ] "!==h[0],o=o.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:r,task:!!h,checked:u,loose:!1,text:o,tokens:[]}),a.raw+=r}a.items[a.items.length-1].raw=r.trimEnd(),a.items[a.items.length-1].text=o.trimEnd(),a.raw=a.raw.trimEnd();for(let e=0;e"space"===e.type)),n=t.length>0&&t.some((e=>/\n.*\n/.test(e.raw)));a.loose=n}if(a.loose)for(let e=0;e$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:n,title:s}}}table(e){const t=this.rules.block.table.exec(e);if(t){if(!/[:|]/.test(t[2]))return;const e={type:"table",raw:t[0],header:we(t[1]).map((e=>({text:e,tokens:[]}))),align:t[2].replace(/^\||\| *$/g,"").split("|"),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){let t,n,s,a,i=e.align.length;for(t=0;t({text:e,tokens:[]})));for(i=e.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=ye(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let s=0;s-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],s="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],s=e[3])}else s=t[3]?t[3].slice(1,-1):"";return n=n.trim(),/^$/.test(e)?n.slice(1):n.slice(1,-1)),Se(t,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:s?s.replace(this.rules.inline._escapes,"$1"):s},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=(n[2]||n[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return Se(n,e,n[0],this.lexer)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrong.lDelim.exec(e);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 a,i,r=n,o=0;const l="*"===s[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);null!=(s=l.exec(t));){if(a=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!a)continue;if(i=[...a].length,s[3]||s[4]){r+=i;continue}if((s[5]||s[6])&&n%3&&!((n+i)%3)){o+=i;continue}if(r-=i,r>0)continue;i=Math.min(i,i+r+o);const t=[...s[0]][0].length,l=e.slice(0,n+s.index+t+i);if(Math.min(n,i)%2){const e=l.slice(1,-1);return{type:"em",raw:l,text:e,tokens:this.lexer.inlineTokens(e)}}const p=l.slice(2,-2);return{type:"strong",raw:l,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const n=/[^ ]/.test(e),s=/^ /.test(e)&&/ $/.test(e);return n&&s&&(e=e.substring(1,e.length-1)),e=be(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=be(t[1]),n="mailto:"+e):(e=be(t[1]),n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=be(t[0]),n="mailto:"+e;else{let s;do{s=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])[0]}while(s!==t[0]);e=be(t[0]),n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){let e;return e=this.lexer.state.inRawBlock?t[0]:be(t[0]),{type:"text",raw:t[0],text:e}}}}const Ie={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:Ce,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?'|\([^()]*\))/};Ie.def=_e(Ie.def).replace("label",Ie._label).replace("title",Ie._title).getRegex(),Ie.bullet=/(?:[*+-]|\d{1,9}[.)])/,Ie.listItemStart=_e(/^( *)(bull) */).replace("bull",Ie.bullet).getRegex(),Ie.list=_e(Ie.list).replace(/bull/g,Ie.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ie.def.source+")").getRegex(),Ie._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",Ie._comment=/|$)/,Ie.html=_e(Ie.html,"i").replace("comment",Ie._comment).replace("tag",Ie._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ie.lheading=_e(Ie.lheading).replace(/bull/g,Ie.bullet).getRegex(),Ie.paragraph=_e(Ie._paragraph).replace("hr",Ie.hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").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",Ie._tag).getRegex(),Ie.blockquote=_e(Ie.blockquote).replace("paragraph",Ie.paragraph).getRegex(),Ie.normal={...Ie},Ie.gfm={...Ie.normal,table:"^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},Ie.gfm.table=_e(Ie.gfm.table).replace("hr",Ie.hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").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",Ie._tag).getRegex(),Ie.gfm.paragraph=_e(Ie._paragraph).replace("hr",Ie.hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ie.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",Ie._tag).getRegex(),Ie.pedantic={...Ie.normal,html:_e("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Ie._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:Ce,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:_e(Ie.normal._paragraph).replace("hr",Ie.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Ie.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const Te={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ce,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:Ce,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`^|~"};Te.punctuation=_e(Te.punctuation,"u").replace(/punctuation/g,Te._punctuation).getRegex(),Te.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,Te.anyPunctuation=/\\[punct]/g,Te._escapes=/\\([punct])/g,Te._comment=_e(Ie._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Te.emStrong.lDelim=_e(Te.emStrong.lDelim,"u").replace(/punct/g,Te._punctuation).getRegex(),Te.emStrong.rDelimAst=_e(Te.emStrong.rDelimAst,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te.emStrong.rDelimUnd=_e(Te.emStrong.rDelimUnd,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te.anyPunctuation=_e(Te.anyPunctuation,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te._escapes=_e(Te._escapes,"gu").replace(/punct/g,Te._punctuation).getRegex(),Te._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Te._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])?)+(?![-_])/,Te.autolink=_e(Te.autolink).replace("scheme",Te._scheme).replace("email",Te._email).getRegex(),Te._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Te.tag=_e(Te.tag).replace("comment",Te._comment).replace("attribute",Te._attribute).getRegex(),Te._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Te._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Te._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Te.link=_e(Te.link).replace("label",Te._label).replace("href",Te._href).replace("title",Te._title).getRegex(),Te.reflink=_e(Te.reflink).replace("label",Te._label).replace("ref",Ie._label).getRegex(),Te.nolink=_e(Te.nolink).replace("ref",Ie._label).getRegex(),Te.reflinkSearch=_e(Te.reflinkSearch,"g").replace("reflink",Te.reflink).replace("nolink",Te.nolink).getRegex(),Te.normal={...Te},Te.pedantic={...Te.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:_e(/^!?\[(label)\]\((.*?)\)/).replace("label",Te._label).getRegex(),reflink:_e(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Te._label).getRegex()},Te.gfm={...Te.normal,escape:_e(Te.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]*?(?:(?=[\\t+" ".repeat(n.length)));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((s=>!!(n=s.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.space(e))e=e.substring(n.raw.length),1===n.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),s=t[t.length-1],!s||"paragraph"!==s.type&&"text"!==s.type?t.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(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),s=t[t.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(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else{if(a=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startBlock.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(n=this.tokenizer.paragraph(a)))s=t[t.length-1],i&&"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):t.push(n),i=a.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),s=t[t.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):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){pe.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,s,a,i,r,o,l=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(i=this.tokenizer.rules.inline.reflinkSearch.exec(l));)e.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(i=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(i=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,i.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(r||(o=""),r=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((s=>!!(n=s.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),s=t[t.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),s=t[t.length-1],s&&"text"===n.type&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,l,o))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e))){if(a=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startInline.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(a))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(o=n.raw.slice(-1)),r=!0,s=t[t.length-1],s&&"text"===s.type?(s.raw+=n.raw,s.text+=n.text):t.push(n);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){pe.error(t);break}throw new Error(t)}}else e=e.substring(n.raw.length),t.push(n);return t}}class ze{options;constructor(e){this.options=e||ce}code(e,t,n){const s=(t||"").match(/^\S*/)?.[0];return e=e.replace(/\n$/,"")+"\n",s?'
    '+(n?e:be(e,!0))+"
    \n":"
    "+(n?e:be(e,!0))+"
    \n"}blockquote(e){return`
    \n${e}
    \n`}html(e,t){return e}heading(e,t,n){return`${e}\n`}hr(){return"
    \n"}list(e,t,n){const s=t?"ol":"ul";return"<"+s+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"}listitem(e,t,n){return`
  • ${e}
  • \n`}checkbox(e){return"'}paragraph(e){return`

    ${e}

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

    An error occurred:

    "+be(n.message+"",!0)+"
    ";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Re(e,t){return Le.parse(e,t)}Re.options=Re.setOptions=function(e){return Le.setOptions(e),Re.defaults=Le.defaults,de(Re.defaults),Re},Re.getDefaults=function(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}},Re.defaults=ce,Re.use=function(...e){return Le.use(...e),Re.defaults=Le.defaults,de(Re.defaults),Re},Re.walkTokens=function(e,t){return Le.walkTokens(e,t)},Re.parseInline=Le.parseInline,Re.Parser=Ne,Re.parser=Ne.parse,Re.Renderer=ze,Re.TextRenderer=Be,Re.Lexer=De,Re.lexer=De.lex,Re.Tokenizer=$e,Re.Hooks=Ee,Re.parse=Re,Re.options,Re.setOptions,Re.use,Re.walkTokens,Re.parseInline,Ne.parse,De.lex;var Pe=s(42838),Oe=s.n(Pe);const Me={name:"Markdown",props:{text:{type:String,default:""}},computed:{renderMarkdown(){const e=new Re.Renderer;return e.link=function(e,t,n){let s;try{s=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0!==s.indexOf("http:")&&0!==s.indexOf("https:"))return"";let a='
    ",a},e.image=function(e,t,n){return n||t},e.blockquote=function(e){return e},Oe().sanitize(Re(this.text.trim(),{renderer:e,gfm:!1,highlight:!1,tables:!1,breaks:!1,pedantic:!1,sanitize:!0,smartLists:!0,smartypants:!1}),{SAFE_FOR_JQUERY:!0,ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","strong","p","a","ul","ol","li","em","del","blockquote"]})}}};var Ue=s(44958),Ge={};Ge.styleTagTransform=G(),Ge.setAttributes=P(),Ge.insert=L().bind(null,"head"),Ge.domAPI=N(),Ge.insertStyleElement=M(),z()(Ue.A,Ge),Ue.A&&Ue.A.locals&&Ue.A.locals;const qe=(0,m.A)(Me,(function(){var e=this;return(0,e._self._c)("div",{staticClass:"settings-markdown",domProps:{innerHTML:e._s(e.renderMarkdown)}})}),[],!1,null,"ffd9a2d6",null).exports,Ve={name:"AppDetails",components:{NcSelect:le.A,Markdown:qe},mixins:[y,j],props:{app:{type:Object,required:!0}},data:()=>({groupCheckedAppsData:!1}),computed:{appstoreUrl(){return"https://apps.nextcloud.com/apps/".concat(this.app.id)},licence(){return this.app.licence?t("settings","{license}-licensed",{license:(""+this.app.licence).toUpperCase()}):null},author(){return"string"==typeof this.app.author?[{"@value":this.app.author}]:this.app.author["@value"]?[this.app.author]:this.app.author},appGroups(){return this.app.groups.map((e=>({id:e,name:e})))},groups(){return this.$store.getters.getGroups.filter((e=>"disabled"!==e.id)).sort(((e,t)=>e.name.localeCompare(t.name)))}},mounted(){this.app.groups.length>0&&(this.groupCheckedAppsData=!0)}};var Qe=s(68837),je={};je.styleTagTransform=G(),je.setAttributes=P(),je.insert=L().bind(null,"head"),je.domAPI=N(),je.insertStyleElement=M(),z()(Qe.A,je),Qe.A&&Qe.A.locals&&Qe.A.locals;const Ze=(0,m.A)(Ve,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"app-details"},[t("div",{staticClass:"app-details__actions"},[e.app.active&&e.canLimitToGroups(e.app)?t("div",{staticClass:"app-details__actions-groups"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.groupCheckedAppsData,expression:"groupCheckedAppsData"}],staticClass:"groups-enable__checkbox checkbox",attrs:{id:e.prefix("groups_enable",e.app.id),type:"checkbox"},domProps:{value:e.app.id,checked:Array.isArray(e.groupCheckedAppsData)?e._i(e.groupCheckedAppsData,e.app.id)>-1:e.groupCheckedAppsData},on:{change:[function(t){var n=e.groupCheckedAppsData,s=t.target,a=!!s.checked;if(Array.isArray(n)){var i=e.app.id,r=e._i(n,i);s.checked?r<0&&(e.groupCheckedAppsData=n.concat([i])):r>-1&&(e.groupCheckedAppsData=n.slice(0,r).concat(n.slice(r+1)))}else e.groupCheckedAppsData=a},e.setGroupLimit]}}),e._v(" "),t("label",{attrs:{for:e.prefix("groups_enable",e.app.id)}},[e._v(e._s(e.t("settings","Limit to groups")))]),e._v(" "),t("input",{staticClass:"group_select",attrs:{type:"hidden",title:e.t("settings","All"),value:""}}),e._v(" "),t("br"),e._v(" "),t("label",{attrs:{for:"limitToGroups"}},[t("span",[e._v(e._s(e.t("settings","Limit app usage to groups")))])]),e._v(" "),e.isLimitedToGroups(e.app)?t("NcSelect",{attrs:{"input-id":"limitToGroups",options:e.groups,value:e.appGroups,limit:5,label:"name",multiple:!0,"close-on-select":!1},on:{"option:selected":e.addGroupLimitation,"option:deselected":e.removeGroupLimitation,search:e.asyncFindGroup}},[t("span",{attrs:{slot:"noResult"},slot:"noResult"},[e._v(e._s(e.t("settings","No results")))])]):e._e()],1):e._e(),e._v(" "),t("div",{staticClass:"app-details__actions-manage"},[e.app.update?t("input",{staticClass:"update primary",attrs:{type:"button",value:e.t("settings","Update to {version}",{version:e.app.update}),disabled:e.installing||e.isLoading},on:{click:function(t){return e.update(e.app.id)}}}):e._e(),e._v(" "),e.app.canUnInstall?t("input",{staticClass:"uninstall",attrs:{type:"button",value:e.t("settings","Remove"),disabled:e.installing||e.isLoading},on:{click:function(t){return e.remove(e.app.id)}}}):e._e(),e._v(" "),e.app.active?t("input",{staticClass:"enable",attrs:{type:"button",value:e.t("settings","Disable"),disabled:e.installing||e.isLoading},on:{click:function(t){return e.disable(e.app.id)}}}):e._e(),e._v(" "),e.app.active||!e.app.canInstall&&!e.app.isCompatible?e.app.active||e.app.canInstall?e._e():t("input",{staticClass:"enable force",attrs:{title:e.forceEnableButtonTooltip,"aria-label":e.forceEnableButtonTooltip,type:"button",value:e.forceEnableButtonText,disabled:e.installing||e.isLoading},on:{click:function(t){return e.forceEnable(e.app.id)}}}):t("input",{staticClass:"enable primary",attrs:{title:e.enableButtonTooltip,"aria-label":e.enableButtonTooltip,type:"button",value:e.enableButtonText,disabled:!e.app.canInstall||e.installing||e.isLoading},on:{click:function(t){return e.enable(e.app.id)}}})])]),e._v(" "),t("ul",{staticClass:"app-details__dependencies"},[e.app.missingMinOwnCloudVersion?t("li",[e._v("\n\t\t\t"+e._s(e.t("settings","This app has no minimum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):e._e(),e._v(" "),e.app.missingMaxOwnCloudVersion?t("li",[e._v("\n\t\t\t"+e._s(e.t("settings","This app has no maximum Nextcloud version assigned. This will be an error in the future."))+"\n\t\t")]):e._e(),e._v(" "),e.app.canInstall?e._e():t("li",[e._v("\n\t\t\t"+e._s(e.t("settings","This app cannot be installed because the following dependencies are not fulfilled:"))+"\n\t\t\t"),t("ul",{staticClass:"missing-dependencies"},e._l(e.app.missingDependencies,(function(n,s){return t("li",{key:s},[e._v("\n\t\t\t\t\t"+e._s(n)+"\n\t\t\t\t")])})),0)])]),e._v(" "),t("p",{staticClass:"app-details__documentation"},[e.app.internal?e._e():t("a",{staticClass:"appslink",attrs:{href:e.appstoreUrl,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","View in store"))+" ↗")]),e._v(" "),e.app.website?t("a",{staticClass:"appslink",attrs:{href:e.app.website,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Visit website"))+" ↗")]):e._e(),e._v(" "),e.app.bugs?t("a",{staticClass:"appslink",attrs:{href:e.app.bugs,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Report a bug"))+" ↗")]):e._e(),e._v(" "),e.app.documentation&&e.app.documentation.user?t("a",{staticClass:"appslink",attrs:{href:e.app.documentation.user,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","User documentation"))+" ↗")]):e._e(),e._v(" "),e.app.documentation&&e.app.documentation.admin?t("a",{staticClass:"appslink",attrs:{href:e.app.documentation.admin,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Admin documentation"))+" ↗")]):e._e(),e._v(" "),e.app.documentation&&e.app.documentation.developer?t("a",{staticClass:"appslink",attrs:{href:e.app.documentation.developer,target:"_blank",rel:"noreferrer noopener"}},[e._v(e._s(e.t("settings","Developer documentation"))+" ↗")]):e._e()]),e._v(" "),t("Markdown",{staticClass:"app-details__description",attrs:{text:e.app.description}})],1)}),[],!1,null,"5be7cbf9",null).exports;var Fe=s(92973);i.Ay.use(o());const He={name:"Apps",APPS_SECTION_ENUM:Fe.l,components:{NcAppContent:l.A,AppDetails:Ze,AppList:oe,IconStarShooting:b,NcAppNavigation:p.A,NcAppNavigationItem:c.A,NcAppNavigationSpacer:d.A,NcCounterBubble:g.A,AppScore:_,NcAppSidebar:u.N,NcAppSidebarTab:h.A,NcContent:f.A,Markdown:qe},mixins:[y],props:{category:{type:String,default:"installed"},id:{type:String,default:""}},data:()=>({searchQuery:"",screenshotLoaded:!1}),computed:{pageHeading(){return this.$options.APPS_SECTION_ENUM[this.category]?this.$options.APPS_SECTION_ENUM[this.category]:this.$store.getters.getCategoryById(this.category).displayName},loading(){return this.$store.getters.loading("categories")},loadingList(){return this.$store.getters.loading("list")},app(){return this.apps.find((e=>e.id===this.id))},categories(){return this.$store.getters.getCategories},apps(){return this.$store.getters.getAllApps},updateCount(){return this.$store.getters.getUpdateCount},settings(){return this.$store.getters.getServerData},hasRating(){return this.app.appstoreData&&this.app.appstoreData.ratingNumOverall>5},appSidebar(){const e=e=>e["@value"]?e["@value"]:e,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()}),a=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:a}},changelog:()=>e=>e.translations.en.changelog,isSubscribed(){return this.apps.some((e=>300===e.level))}},watch:{category(){this.searchQuery=""},app(){var e,t;if(this.screenshotLoaded=!1,null!==(e=this.app)&&void 0!==e&&e.releases&&null!==(t=this.app)&&void 0!==t&&t.screenshot){const e=new Image;e.onload=e=>{this.screenshotLoaded=!0},e.src=this.app.screenshot}}},beforeMount(){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(){(0,a.B1)("nextcloud:unified-search.search",this.setSearch),(0,a.B1)("nextcloud:unified-search.reset",this.resetSearch)},beforeDestroy(){(0,a.al)("nextcloud:unified-search.search",this.setSearch),(0,a.al)("nextcloud:unified-search.reset",this.resetSearch)},methods:{setSearch(e){let{query:t}=e;this.searchQuery=t},resetSearch(){this.searchQuery=""},hideAppDetails(){this.$router.push({name:"apps-category",params:{category:this.category}})},openDeveloperDocumentation(){window.open(this.settings.developerDocumentation)}}};var Ye=s(64653),Ke={};Ke.styleTagTransform=G(),Ke.setAttributes=P(),Ke.insert=L().bind(null,"head"),Ke.domAPI=N(),Ke.insertStyleElement=M(),z()(Ye.A,Ke),Ye.A&&Ye.A.locals&&Ye.A.locals;const We=(0,m.A)(He,(function(){var e=this,t=e._self._c;return t("NcContent",{class:{"with-app-sidebar":e.app},attrs:{"app-name":"settings"}},[t("NcAppNavigation",{class:{"icon-loading":e.loading},attrs:{"aria-label":e.t("settings","Apps")},scopedSlots:e._u([{key:"list",fn:function(){return[t("NcAppNavigationItem",{attrs:{id:"app-category-your-apps",to:{name:"apps"},exact:!0,icon:"icon-category-installed",name:e.$options.APPS_SECTION_ENUM.installed}}),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-category-enabled",to:{name:"apps-category",params:{category:"enabled"}},icon:"icon-category-enabled",name:e.$options.APPS_SECTION_ENUM.enabled}}),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-category-disabled",to:{name:"apps-category",params:{category:"disabled"}},icon:"icon-category-disabled",name:e.$options.APPS_SECTION_ENUM.disabled}}),e._v(" "),e.updateCount>0?t("NcAppNavigationItem",{attrs:{id:"app-category-updates",to:{name:"apps-category",params:{category:"updates"}},icon:"icon-download",name:e.$options.APPS_SECTION_ENUM.updates},scopedSlots:e._u([{key:"counter",fn:function(){return[t("NcCounterBubble",[e._v(e._s(e.updateCount))])]},proxy:!0}],null,!1,54487302)}):e._e(),e._v(" "),e.isSubscribed?t("NcAppNavigationItem",{attrs:{id:"app-category-supported",to:{name:"apps-category",params:{category:"supported"}},name:e.$options.APPS_SECTION_ENUM.supported},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconStarShooting",{attrs:{size:20}})]},proxy:!0}],null,!1,704374136)}):e._e(),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-category-your-bundles",to:{name:"apps-category",params:{category:"app-bundles"}},icon:"icon-category-app-bundles",name:e.$options.APPS_SECTION_ENUM["app-bundles"]}}),e._v(" "),t("NcAppNavigationSpacer"),e._v(" "),e.settings.appstoreEnabled?[t("NcAppNavigationItem",{attrs:{id:"app-category-featured",to:{name:"apps-category",params:{category:"featured"}},icon:"icon-favorite",name:e.$options.APPS_SECTION_ENUM.featured}}),e._v(" "),e._l(e.categories,(function(e){return t("NcAppNavigationItem",{key:"icon-category-"+e.ident,attrs:{icon:"icon-category-"+e.ident,to:{name:"apps-category",params:{category:e.ident}},name:e.displayName}})}))]:e._e(),e._v(" "),t("NcAppNavigationItem",{attrs:{id:"app-developer-docs",name:e.t("settings","Developer documentation")+" ↗"},on:{click:e.openDeveloperDocumentation}})]},proxy:!0}])}),e._v(" "),t("NcAppContent",{staticClass:"app-settings-content",class:{"icon-loading":e.loadingList},attrs:{"page-heading":e.pageHeading}},[t("AppList",{attrs:{category:e.category,app:e.app,search:e.searchQuery}})],1),e._v(" "),e.id&&e.app?t("NcAppSidebar",e._b({class:{"app-sidebar--without-background":!e.appSidebar.background},on:{close:e.hideAppDetails},scopedSlots:e._u([e.appSidebar.background?null:{key:"header",fn:function(){return[t("div",{staticClass:"app-sidebar-header__figure--default-app-icon icon-settings-dark"})]},proxy:!0},{key:"description",fn:function(){return[300===e.app.level||200===e.app.level||e.hasRating?t("div",{staticClass:"app-level"},[300===e.app.level?t("span",{staticClass:"supported icon-checkmark-color",attrs:{title:e.t("settings","This app is supported via your current Nextcloud subscription.")}},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Supported")))]):e._e(),e._v(" "),200===e.app.level?t("span",{staticClass:"official icon-checkmark",attrs:{title:e.t("settings","Featured apps are developed by and within the community. They offer central functionality and are ready for production use.")}},[e._v("\n\t\t\t\t\t"+e._s(e.t("settings","Featured")))]):e._e(),e._v(" "),e.hasRating?t("AppScore",{attrs:{score:e.app.appstoreData.ratingOverall}}):e._e()],1):e._e(),e._v(" "),t("div",{staticClass:"app-version"},[t("p",[e._v(e._s(e.app.version))])])]},proxy:!0}],null,!0)},"NcAppSidebar",e.appSidebar,!1),[e._v(" "),e._v(" "),t("NcAppSidebarTab",{attrs:{id:"desc",icon:"icon-category-office",name:e.t("settings","Details"),order:0}},[t("AppDetails",{attrs:{app:e.app}})],1),e._v(" "),e.app.appstoreData&&e.app.releases[0].translations.en.changelog?t("NcAppSidebarTab",{attrs:{id:"desca",icon:"icon-category-organization",name:e.t("settings","Changelog"),order:1}},e._l(e.app.releases,(function(n){return t("div",{key:n.version,staticClass:"app-sidebar-tabs__release"},[t("h2",[e._v(e._s(n.version))]),e._v(" "),e.changelog(n)?t("Markdown",{attrs:{text:e.changelog(n)}}):e._e()],1)})),0):e._e()],1):e._e()],1)}),[],!1,null,"4e6c328e",null).exports},35973:function(e,t,n){var s=n(65606),a=n(96763);e.exports=function(){"use strict";var e=function(){this._properties={},this._namespace="",this._isSupported=!0},t={namespace:{}};t.namespace.get=function(){return this._namespace},t.namespace.set=function(e){this._namespace=e?e+".":""},e.prototype._getLsKey=function(e){return""+this._namespace+e},e.prototype._lsSet=function(e,t,n){var s=this._getLsKey(e),a=n&&[Array,Object].includes(n)?JSON.stringify(t):t;window.localStorage.setItem(s,a)},e.prototype._lsGet=function(e){var t=this._getLsKey(e);return window.localStorage[t]},e.prototype.get=function(e,t,n){if(void 0===t&&(t=null),void 0===n&&(n=String),!this._isSupported)return null;if(this._lsGet(e)){var s=n;for(var a in this._properties)if(a===e){s=this._properties[a].type;break}return this._process(s,this._lsGet(e))}return null!==t?t:null},e.prototype.set=function(e,t){var n=this;if(!this._isSupported)return null;for(var s in n._properties){var a=n._properties[s].type;if(s===e)return n._lsSet(e,t,a),t}return this._lsSet(e,t),t},e.prototype.remove=function(e){return this._isSupported?window.localStorage.removeItem(e):null},e.prototype.addProperty=function(e,t,n){void 0===n&&(n=void 0),t=t||String,this._properties[e]={type:t},this._lsGet(e)||null===n||this._lsSet(e,n,t)},e.prototype._process=function(e,t){switch(e){case Boolean:return"true"===t;case Number:return parseFloat(t);case Array:try{var n=JSON.parse(t);return Array.isArray(n)?n:[]}catch(e){return[]}case Object:try{return JSON.parse(t)}catch(e){return{}}default:return t}},Object.defineProperties(e.prototype,t);var n=new e;return{install:function(e,t){if(void 0===t&&(t={}),void 0===s||!(s.server||s.SERVER_BUILD||s.env&&"server"===s.env.VUE_ENV)){var i=!0;try{var r="__vue-localstorage-test__";window.localStorage.setItem(r,r),window.localStorage.removeItem(r)}catch(e){i=!1,n._isSupported=!1,a.error("Local storage is not supported")}var o=t.name||"localStorage",l=t.bind;t.namespace&&(n.namespace=t.namespace),e.mixin({beforeCreate:function(){var t=this;i&&this.$options[o]&&Object.keys(this.$options[o]).forEach((function(s){var i=t.$options[o][s],r=[i.type,i.default],p=r[0],c=r[1];if(n.addProperty(s,p,c),Object.getOwnPropertyDescriptor(n,s))e.config.silent||a.log(s+": is already defined and will be reused");else{var d={get:function(){return e.localStorage.get(s,c)},set:function(t){return e.localStorage.set(s,t)},configurable:!0};Object.defineProperty(n,s,d),e.util.defineReactive(n,s,c)}(l||i.bind)&&!1!==i.bind&&(t.$options.computed=t.$options.computed||{},t.$options.computed[s]||(t.$options.computed[s]={get:function(){return e.localStorage[s]},set:function(t){e.localStorage[s]=t}}))}))}}),e[o]=n,e.prototype["$"+o]=n}}}}()}}]); +//# sourceMappingURL=settings-apps-view-4529.js.map?v=7af5d54e542cee8b975e \ No newline at end of file diff --git a/dist/settings-apps-view-4529.js.map b/dist/settings-apps-view-4529.js.map index 396d2e0ba9816..fa47eceb2895e 100644 --- a/dist/settings-apps-view-4529.js.map +++ b/dist/settings-apps-view-4529.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-apps-view-4529.js?v=a16db7cca874de047399","mappings":"2JAGIA,E,MAA0B,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,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sSAAuS,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,8HAA8H,eAAiB,CAAC,0TAA0T,WAAa,MAEh5B,S,kFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,sNAAuN,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gEAAgE,MAAQ,GAAG,SAAW,sGAAsG,eAAiB,CAAC,sOAAsO,WAAa,MAE5tB,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,kkDAAmkD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yDAAyD,MAAQ,GAAG,SAAW,0bAA0b,eAAiB,CAAC,wqCAAwqC,WAAa,MAEv1G,S,mFCJIH,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,u0CAAw0C,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gDAAgD,MAAQ,GAAG,SAAW,uSAAuS,eAAiB,CAAC,8oDAA8oD,WAAa,MAEt6G,S,8DCPA,I,kICoBA,MCpB+G,EDoB/G,CACEC,KAAM,mBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,M,eEff,SAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,0CAA0CC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,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,UACniC,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBhC,I,WC4BA,MC5B0L,ED4B1L,CACAvB,KAAA,WACAE,MAAA,UACAsB,SAAA,CACAC,QAAAA,GACA,OAAAC,KAAAC,MAAA,QAAAC,MACA,EACAC,UAAAA,GACA,MAAAC,EAAA,gBAAAL,SAAA,OACA,OAAAM,EAAAA,EAAAA,IAAA,OAAAD,EACA,IEpBA,GAXgB,OACd,GCRW,WAAkB,IAAIpB,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,MAAM,CAACG,YAAY,kBAAkBC,MAAM,CAAC,IAAMN,EAAImB,WAAW,IAAMnB,EAAIsB,EAAE,WAAY,qBAAsB,CAACJ,MAAMlB,EAAIe,aAChM,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,Q,0BEdhC,YACQQ,EAAAA,GAAMC,KAAIC,EAAAA,EAAAA,IAAe,kBAAmB,GAAK,qBACtDC,MAAKC,IAAc,IAAb,KAAEC,GAAMD,EACmB,MAA7BC,EAAKC,IAAIC,KAAKC,cAIlBC,EAAAA,EAAAA,IAAK,6BAA8B,CAAEC,KAAML,EAAKC,IAAID,OACpDM,OAAOC,cAAc,IAAIC,MAAM,WAAU,ICa5C,GACCtB,SAAU,CACTuB,SAAAA,GACC,OAAOpC,KAAKqC,IAAIC,OAAOC,KAAIC,IAAkB,CAAEpD,GAAIoD,EAAOnD,KAAMmD,KACjE,EACAC,UAAAA,GACC,OAAOzC,KAAK0C,OAAOC,QAAQC,QAAQ,UACpC,EACAC,SAAAA,GACC,OAAO7C,KAAKqC,KAAOrC,KAAK0C,OAAOC,QAAQC,QAAQ5C,KAAKqC,IAAIjD,GACzD,EACA0D,gBAAAA,GACC,OAAI9C,KAAKqC,IAAIU,cACL1B,EAAE,WAAY,uBAEfA,EAAE,WAAY,SACtB,EACA2B,qBAAAA,GACC,OAAIhD,KAAKqC,IAAIU,cACL1B,EAAE,WAAY,qBAGvB,EACA4B,mBAAAA,GACC,OAAIjD,KAAKqC,IAAIU,cACL1B,EAAE,WAAY,iDAEf,IACR,EACA6B,wBAAAA,GACC,MAAMC,EAAO9B,EAAE,WAAY,8KAC3B,OAAIrB,KAAKqC,IAAIU,cACLI,EAAO,IAAM9B,EAAE,WAAY,iDAE5B8B,CACR,GAGDxB,KAAIA,KACI,CACNyB,sBAAsB,IAIxBC,OAAAA,GACKrD,KAAKqC,KAAOrC,KAAKqC,IAAIC,QAAUtC,KAAKqC,IAAIC,OAAOgB,OAAS,IAC3DtD,KAAKoD,sBAAuB,EAE9B,EAEAG,QAAS,CACRC,cAAAA,CAAeC,GACd,OAAOzD,KAAK0C,OAAOgB,SAAS,YAAa,CAAEC,OAAQF,EAAOG,MAAO,EAAGC,OAAQ,GAC7E,EACAC,iBAAAA,CAAkBzB,GACjB,SAAIrC,KAAKqC,IAAIC,OAAOgB,SAAUtD,KAAKoD,qBAIpC,EACAW,aAAAA,GACM/D,KAAKoD,sBACTpD,KAAK0C,OAAOgB,SAAS,YAAa,CAAEM,MAAOhE,KAAKqC,IAAIjD,GAAIkD,OAAQ,IAElE,EACA2B,iBAAiB5B,KACXA,EAAI6B,OAAS7B,EAAI6B,MAAMC,SAAS,eAChC9B,EAAI6B,MAAMC,SAAS,aACnB9B,EAAI6B,MAAMC,SAAS,mBACnB9B,EAAI6B,MAAMC,SAAS,YACnB9B,EAAI6B,MAAMC,SAAS,8BAKzBC,kBAAAA,CAAmBC,GAClB,MAAM7B,EAAQ6B,EAAWC,MACnBhC,EAAStC,KAAKqC,IAAIC,OAAOiC,OAAO,IAAIA,OAAO,CAAC/B,EAAMpD,KACxDY,KAAK0C,OAAOgB,SAAS,YAAa,CAAEM,MAAOhE,KAAKqC,IAAIjD,GAAIkD,UACzD,EACAkC,qBAAAA,CAAsBhC,GACrB,MAAMiC,EAAgBzE,KAAKqC,IAAIC,OAAOiC,OAAO,IACvCG,EAAQD,EAAcE,QAAQnC,EAAMpD,IACtCsF,GAAS,GACZD,EAAcG,OAAOF,EAAO,GAE7B1E,KAAK0C,OAAOgB,SAAS,YAAa,CAAEM,MAAOhE,KAAKqC,IAAIjD,GAAIkD,OAAQmC,GACjE,EACAI,WAAAA,CAAYb,GACXhE,KAAK0C,OAAOgB,SAAS,iBAAkB,CAAEM,QAAO1B,OAAQ,KACtDb,MAAMqD,IAAeC,GAAmB,IACxCC,OAAOC,KAAYC,EAAAA,EAAAA,IAAUD,EAAM,GACtC,EACAE,MAAAA,CAAOnB,GACNhE,KAAK0C,OAAOgB,SAAS,YAAa,CAAEM,QAAO1B,OAAQ,KACjDb,MAAMqD,IAAeC,GAAmB,IACxCC,OAAOC,KAAYC,EAAAA,EAAAA,IAAUD,EAAM,GACtC,EACAG,OAAAA,CAAQpB,GACPhE,KAAK0C,OAAOgB,SAAS,aAAc,CAAEM,UACnCvC,MAAMqD,IAAeC,GAAmB,IACxCC,OAAOC,KAAYC,EAAAA,EAAAA,IAAUD,EAAM,GACtC,EACAI,MAAAA,CAAOrB,GACNhE,KAAK0C,OAAOgB,SAAS,eAAgB,CAAEM,UACrCvC,MAAMqD,IAAeC,GAAmB,IACxCC,OAAOC,KAAYC,EAAAA,EAAAA,IAAUD,EAAM,GACtC,EACAK,OAAAA,CAAQtB,GACPhE,KAAK0C,OAAOgB,SAAS,YAAa,CAAEM,UAClCvC,MAAMqD,IAAeC,GAAmB,IACxCC,OAAOC,KAAYC,EAAAA,EAAAA,IAAUD,EAAM,GACtC,EACAM,MAAAA,CAAOvB,GACNhE,KAAK0C,OAAOgB,SAAS,YAAa,CAAEM,UAClCvC,MAAMqD,IAAeC,GAAmB,IACxCC,OAAOC,KAAYC,EAAAA,EAAAA,IAAUD,EAAM,GACtC,IC9IwL,ECuB1L,CACA5F,KAAA,iBACAsC,KAAAA,KACA,CACA6D,SAAA,KAGA3E,SAAA,CACA4E,SAAAA,GACA,cAAAlB,OAAA,KAAAiB,SAAA,IACA,GAEAnC,OAAAA,GACA,KAAAmC,SAAA,kBAAAzE,KAAA2E,SAAAC,SAAA,IAAAC,UAAA,EACA,GCnBA,GAXgB,OACd,OARE,OAAQ,GAWV,EACA,KACA,KACA,MAI8B,Q,eCgHhC,MClIyL,EDkIzL,CACAvG,KAAA,UACAwG,WAAA,CACAC,SAAA,EACAC,SAAAA,EAAAA,GAEAC,OAAA,CAAAC,EAAAC,GACA3G,MAAA,CACA8C,IAAA,GACA8D,SAAA,GACAC,SAAA,CACA3G,KAAA4G,QACAzG,SAAA,GAEA0G,cAAA,CACA7G,KAAA4G,QACAzG,SAAA,GAEA2G,QAAA,CACA9G,KAAAC,OACAE,QAAA,OAGA+B,KAAAA,KACA,CACA6E,YAAA,EACAC,UAAA,EACAC,kBAAA,IAGA7F,SAAA,CACA8F,SAAAA,GACA,YAAAtE,IAAAuE,cAAA,KAAAvE,IAAAuE,aAAAC,iBAAA,CACA,EACAC,WAAAA,GACA,YAAAV,SAAA,UACA,GAEAW,MAAA,CACA,mBAAA3H,GACA,KAAAoH,WAAA,KAAAnE,IAAAjD,KAAAA,CACA,GAEAiE,OAAAA,GAEA,GADA,KAAAmD,WAAA,KAAAnE,IAAAjD,KAAA,KAAA4H,OAAAC,OAAA7H,GACA,KAAAiD,IAAA6E,UAAA,KAAA7E,IAAA8E,WAAA,CACA,MAAAC,EAAA,IAAAC,MACAD,EAAAE,OAAAC,IACA,KAAAb,kBAAA,GAEAU,EAAAI,IAAA,KAAAnF,IAAA8E,UACA,CACA,EACAM,SAAA,CAEA,EACAlE,QAAA,CACAmE,OAAAA,CAAAA,EAAAC,IACAD,EAAA,IAAAC,EAGAC,kBAAAA,CAAAC,GACA,YAAAvB,cAAA,MAAAC,QAAAsB,GAAAC,KAAA,SACA,I,sIEtLIC,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,OCP1D,SAXgB,OACd,GCTW,WAAkB,IAAItI,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAGF,EAAIqG,SAAW,KAAH,KAAe,CAACkC,IAAI,YAAYlI,YAAY,UAAUmI,MAAM,CAAEC,SAAUzI,EAAIyG,aAAc,CAACvG,EAAGF,EAAI+G,YAAY,CAACwB,IAAI,YAAYlI,YAAY,2BAA2BC,MAAM,CAAC,QAAUN,EAAI6H,mBAAmB,wBAAwB,CAAG7H,EAAIqG,WAAarG,EAAIsC,IAAIoG,UAAc1I,EAAIqG,WAAarG,EAAI2G,iBAAmBzG,EAAG,MAAM,CAACG,YAAY,uBAAwBL,EAAIqG,UAAYrG,EAAIsC,IAAIoG,QAASxI,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,EAAIsC,IAAIoG,aAAa1I,EAAIa,KAAKb,EAAIW,GAAG,MAAOX,EAAIqG,UAAYrG,EAAIsC,IAAI8E,YAAcpH,EAAI2G,iBAAkBzG,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMN,EAAIsC,IAAI8E,WAAW,IAAM,MAAMpH,EAAIa,OAAOb,EAAIW,GAAG,KAAKT,EAAGF,EAAI+G,YAAY,CAACwB,IAAI,YAAYlI,YAAY,WAAWC,MAAM,CAAC,QAAUN,EAAI6H,mBAAmB,wBAAwB,CAAC3H,EAAG,cAAc,CAACG,YAAY,iBAAiBC,MAAM,CAAC,GAAK,CAAEhB,KAAM,eAAgB4H,OAAQ,CAAEd,SAAUpG,EAAIoG,SAAU/G,GAAIW,EAAIsC,IAAIjD,KAAM,aAAaW,EAAIsB,EAAE,WAAY,iCAAkC,CAAEqH,QAAQ3I,EAAIsC,IAAIhD,SAAU,CAACU,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsC,IAAIhD,MAAM,aAAa,GAAGU,EAAIW,GAAG,KAAOX,EAAIqG,SAAoLrG,EAAIa,KAA9KX,EAAGF,EAAI+G,YAAY,CAACwB,IAAI,YAAYlI,YAAY,cAAcC,MAAM,CAAC,QAAUN,EAAI6H,mBAAmB,iBAAiB,CAAC7H,EAAIW,GAAG,SAASX,EAAIY,GAAGZ,EAAIsC,IAAIsG,SAAS,UAAmB5I,EAAIW,GAAG,KAAMX,EAAIqG,SAAUnG,EAAGF,EAAI+G,YAAY,CAACwB,IAAI,YAAYlI,YAAY,cAAcC,MAAM,CAAC,QAAUN,EAAI6H,mBAAmB,2BAA2B,CAAE7H,EAAIsC,IAAIuG,QAAS3I,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsC,IAAIuG,YAAa7I,EAAIsC,IAAIuE,aAAaM,SAAS,GAAG0B,QAAS3I,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsC,IAAIuE,aAAaM,SAAS,GAAG0B,YAAY7I,EAAIa,OAAOb,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAGF,EAAI+G,YAAY,CAACwB,IAAI,YAAYlI,YAAY,YAAYC,MAAM,CAAC,QAAUN,EAAI6H,mBAAmB,yBAAyB,CAAoB,MAAlB7H,EAAIsC,IAAIwG,MAAe5I,EAAG,OAAO,CAACG,YAAY,iCAAiCC,MAAM,CAAC,MAAQN,EAAIsB,EAAE,WAAY,kEAAkE,aAAatB,EAAIsB,EAAE,WAAY,oEAAoE,CAACtB,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,iBAAiBtB,EAAIa,KAAKb,EAAIW,GAAG,KAAwB,MAAlBX,EAAIsC,IAAIwG,MAAe5I,EAAG,OAAO,CAACG,YAAY,0BAA0BC,MAAM,CAAC,MAAQN,EAAIsB,EAAE,WAAY,+HAA+H,aAAatB,EAAIsB,EAAE,WAAY,iIAAiI,CAACtB,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,gBAAgBtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI4G,YAAc5G,EAAIqG,SAAUnG,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIsC,IAAIpB,SAASlB,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAKT,EAAGF,EAAI+G,YAAY,CAACwB,IAAI,YAAYlI,YAAY,UAAUC,MAAM,CAAC,QAAUN,EAAI6H,mBAAmB,2BAA2B,CAAE7H,EAAIsC,IAAI4C,MAAOhF,EAAG,MAAM,CAACG,YAAY,WAAW,CAACL,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsC,IAAI4C,OAAO,YAAYlF,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI8C,UAAW5C,EAAG,MAAM,CAACG,YAAY,4BAA4BL,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAIkD,OAAQtF,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,UAAU,SAAWN,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOuI,kBAAyB/I,EAAIwF,OAAOxF,EAAIsC,IAAIjD,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,qBAAsB,CAACkE,OAAOxF,EAAIsC,IAAIkD,UAAU,YAAYxF,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAI0G,aAAc9I,EAAG,WAAW,CAACG,YAAY,YAAYC,MAAM,CAAC,KAAO,WAAW,SAAWN,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOuI,kBAAyB/I,EAAIsF,OAAOtF,EAAIsC,IAAIjD,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,WAAW,YAAYtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAI2G,OAAQ/I,EAAG,WAAW,CAACI,MAAM,CAAC,SAAWN,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOuI,kBAAyB/I,EAAIqF,QAAQrF,EAAIsC,IAAIjD,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAW,YAAY,YAAYtB,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIsC,IAAI2G,SAAWjJ,EAAIsC,IAAI4G,aAAclJ,EAAIsC,IAAI6G,aAAmVnJ,EAAIsC,IAAI2G,OAAyUjJ,EAAIa,KAArUX,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAImD,yBAAyB,aAAanD,EAAImD,yBAAyB,KAAO,YAAY,SAAWnD,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOuI,kBAAyB/I,EAAI8E,YAAY9E,EAAIsC,IAAIjD,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIiD,uBAAuB,YAAzoB/C,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIkD,oBAAoB,aAAalD,EAAIkD,oBAAoB,KAAO,UAAU,UAAYlD,EAAIsC,IAAI4G,YAAclJ,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOuI,kBAAyB/I,EAAIoF,OAAOpF,EAAIsC,IAAIjD,GAAG,IAAI,CAACW,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAI+C,kBAAkB,aAAyW,IAAI,EAC1vJ,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEDhC,GAXgB,OCgBhB,CACAzD,KAAA,cACAkE,QAAA,CACAmE,OAAAA,CAAAA,EAAAC,IACAD,EAAA,IAAAC,SD3BI,OAAQ,GAWV,EACA,KACA,KACA,MAI8B,Q,2xBEbhC,MAAMwB,EAILC,WAAAA,CAAYC,GAAOC,EAAA,qBAAAA,EAAA,oBAClBtJ,KAAKqJ,MAAQA,CACd,EACA,IAAAE,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,GAAA,IAAAF,QAEc,MAAMG,GAKpBP,WAAAA,GAAcQ,EAAA,KAAAL,OAAA,GAAAK,EAAA,KAAAH,OAAA,GAAAG,EAAA,KAAAF,QAAA,GACb1J,KAAK6J,OACN,CAEAC,OAAAA,CAAQT,GAAO,IAAAU,EACd,MAAMC,EAAO,IAAIb,EAAKE,GAEtBY,EAAAV,EAAIvJ,OACHiK,EAAAR,EAAAzJ,MAAWkK,KAAOF,EAClBG,EAAAV,EAAAzJ,KAAagK,KAEbG,EAAAZ,EAAAvJ,KAAagK,GACbG,EAAAV,EAAAzJ,KAAagK,IAGdG,EAAAT,GAAA1J,MAAI+J,EAAAE,EAAAP,GAAJ1J,QAAI+J,GACL,CAEAK,OAAAA,GAAU,IAAAC,EACT,MAAMC,EAAOL,EAAAV,EAAGvJ,MAChB,GAAKsK,EAML,OAFAH,EAAAZ,EAAAvJ,KAAaiK,EAAAV,EAAAvJ,MAAWkK,MACxBC,EAAAT,GAAA1J,MAAIqK,EAAAJ,EAAAP,GAAJ1J,QAAIqK,IACGC,EAAQjB,KAChB,CAEAQ,KAAAA,GACCM,EAAAZ,EAAAvJ,UAAauK,GACbJ,EAAAV,EAAAzJ,UAAauK,GACbJ,EAAAT,GAAA1J,KAAa,EACd,CAEA,QAAIH,GACH,OAAAoK,EAAAP,GAAO1J,KACR,CAEA,EAAGwK,OAAOC,YACT,IAAIH,EAAOL,EAAAV,EAAGvJ,MAEd,KAAOsK,SACAA,EAAQjB,MACdiB,EAAUA,EAAQJ,IAEpB,EC/Dc,SAASQ,GAAOC,GAC9B,IAAO7K,OAAO8K,UAAUD,IAAgBA,IAAgB7K,OAAO+K,qBAAsBF,EAAc,GAClG,MAAM,IAAIG,UAAU,uDAGrB,MAAMC,EAAQ,IAAIpB,GAClB,IAAIqB,EAAc,EAElB,MAQMC,EAAMC,MAAOC,EAAIC,EAASC,KAC/BL,IAEA,MAAMM,EAAS,UAAaH,KAAME,GAAnB,GAEfD,EAAQE,GAER,UACOA,CACP,CAAE,MAAO,CAhBTN,IAEID,EAAMlL,KAAO,GAChBkL,EAAMX,SAANW,EAeK,EAmBDQ,EAAY,SAACJ,GAAE,QAAAK,EAAAC,UAAAnI,OAAK+H,EAAI,IAAAK,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJN,EAAIM,EAAA,GAAAF,UAAAE,GAAA,OAAK,IAAIC,SAAQR,IAhB/BtB,EAACqB,EAAIC,EAASC,KAC7BN,EAAMjB,QAAQmB,EAAIY,UAAKtB,EAAWY,EAAIC,EAASC,IAE/C,iBAKOO,QAAQR,UAEVJ,EAAcL,GAAeI,EAAMlL,KAAO,GAC7CkL,EAAMX,SAANW,EAED,EAVD,EAUI,EAIJjB,CAAQqB,EAAIC,EAASC,EAAK,GACzB,EAgBF,OAdAS,OAAOC,iBAAiBR,EAAW,CAClCP,YAAa,CACZzJ,IAAKA,IAAMyJ,GAEZgB,aAAc,CACbzK,IAAKA,IAAMwJ,EAAMlL,MAElBoM,WAAY,CACX5C,MAAOA,KACN0B,EAAMlB,OAAO,KAKT0B,CACR,C,gBC+EA,MClJmL,GDkJnL,CACAlM,KAAA,UACAwG,WAAA,CACAqG,QAAA,EACAnG,SAAAA,EAAAA,GAEAC,OAAA,CAAAmG,GACA5M,MAAA,4BACAsB,SAAA,CACAuL,OAAAA,GACA,YAAApK,KAAAqK,QAAAhK,GAAAA,EAAAkD,SAAAjC,MACA,EACAV,OAAAA,GACA,YAAAF,OAAAC,QAAAC,QAAA,OACA,EACA0J,gBAAAA,GACA,YAAAtK,KAAAqK,QAAAhK,GAAAA,EAAAkD,SAAAjC,OAAA,CACA,EACAiJ,aAAAA,GACA,YAAAD,kBAAA,KAAAE,WACA,EACAxK,IAAAA,GACA,MAAAA,EAAA,KAAAU,OAAAC,QAAA8J,WACAJ,QAAAhK,IAAA,IAAAA,EAAAhD,KAAAqN,cAAA/I,OAAA,KAAAA,OAAA+I,iBACAC,MAAA,SAAAC,EAAAC,GACA,MAAAC,EAAA,IAAAF,EAAA5D,OAAA,MAAA4D,EAAArH,OAAA,KAAAqH,EAAAvN,KACA0N,EAAA,IAAAF,EAAA7D,OAAA,MAAA6D,EAAAtH,OAAA,KAAAsH,EAAAxN,KACA,OAAA2N,GAAAC,KAAAC,mBAAAJ,EAAAC,EACA,IAEA,yBAAA5G,SACAnE,EAAAqK,QAAAhK,GAAAA,EAAA8K,YAEA,iBAAAhH,SACAnE,EAAAqK,QAAAhK,GAAAA,EAAA2G,QAAA3G,EAAA8K,YAEA,kBAAAhH,SACAnE,EAAAqK,QAAAhK,IAAAA,EAAA2G,QAAA3G,EAAA8K,YAEA,qBAAAhH,SACAnE,EAAAqK,QAAAhK,GAAAA,EAAA+K,UAEA,iBAAAjH,SACAnE,EAAAqK,QAAAhK,GAAAA,EAAAkD,SAEA,mBAAAY,SAEAnE,EAAAqK,QAAAhK,GAAA,MAAAA,EAAAwG,QAEA,kBAAA1C,SAEAnE,EAAAqK,QAAAhK,GAAA,MAAAA,EAAAwG,QAGA7G,EAAAqK,QAAAhK,GACAA,EAAAgL,eAAA9C,IAAAlI,EAAA8D,WACA9D,EAAA8D,WAAA,KAAAA,UAAA9D,EAAA8D,SAAAxB,QAAA,KAAAwB,WAAA,IAEA,EACAiH,OAAAA,GACA,YAAA1K,OAAAC,QAAA2K,cAAAF,QAAAf,QAAAkB,GAAA,KAAAC,WAAAD,EAAAnO,IAAAkE,OAAA,GACA,EACAkK,WAAAA,IACA,SAAAD,GACA,YAAA7K,OAAAC,QAAA8J,WACAJ,QAAAhK,QACAkI,IAAAlI,EAAAoL,WAAApL,EAAAoL,UAAAtJ,SAAAoJ,IAEA,EAEAG,UAAAA,GACA,gBAAA/J,OACA,GAEA,KAAAjB,OAAAC,QAAA8J,WACAJ,QAAAhK,IACA,IAAAA,EAAAhD,KAAAqN,cAAA/I,OAAA,KAAAA,OAAA+I,iBACA,KAAA1K,KAAA2L,MAAAC,GAAAA,EAAAxO,KAAAiD,EAAAjD,MAIA,EACAyO,eAAAA,GACA,YAAArB,cAAA,KAAAlG,aACA,EACAkG,WAAAA,GACA,yBAAArG,UAAA,iBAAAA,UAAA,kBAAAA,UAAA,iBAAAA,UAAA,kBAAAA,UAAA,mBAAAA,QACA,EACAG,aAAAA,GACA,2BAAAH,QACA,EACA2H,iBAAAA,GACA,OAAA1O,GACA,SAAAoO,WAAApO,GAAAiN,QAAAhK,IAAAA,EAAA2G,SAAA1F,MAEA,EACAyK,gBAAAA,GACA,OAAA3O,GACA,KAAA0O,kBAAA1O,GACAiC,EAAA,0BAEAA,EAAA,qCAEA,GAEAkC,QAAA,CACAyK,YAAAA,CAAA5O,GACA,YAAA0O,kBAAA1O,GACA,KAAA6O,cAAA7O,GAEA,KAAA8O,aAAA9O,EACA,EACA8O,YAAAA,CAAA9O,GACA,MAAA4C,EAAA,KAAAwL,WAAApO,GAAAmD,KAAAF,GAAAA,EAAAjD,KACA,KAAAsD,OAAAgB,SAAA,aAAAM,MAAAhC,EAAAM,OAAA,KACA0C,OAAAC,IACAkJ,GAAAlJ,MAAAA,GACA+H,GAAAoB,aAAAC,KAAApJ,EAAA,GAEA,EACAgJ,aAAAA,CAAA7O,GACA,MAAA4C,EAAA,KAAAwL,WAAApO,GAAAmD,KAAAF,GAAAA,EAAAjD,KACA,KAAAsD,OAAAgB,SAAA,cAAAM,MAAAhC,EAAAM,OAAA,KACA0C,OAAAC,IACA+H,GAAAoB,aAAAC,KAAApJ,EAAA,GAEA,EACAqJ,SAAAA,GACA,MAAA1K,EAAA8G,GAAA,GACA,KAAA1I,KACAqK,QAAAhK,GAAAA,EAAAkD,SACAhD,KAAAF,GAAAuB,GAAA,SAAAlB,OAAAgB,SAAA,aAAAM,MAAA3B,EAAAjD,QAEA,I,gBE5QI,GAAU,CAAC,EAEf,GAAQ4I,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ItBTW,WAAkB,IAAItI,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,sBAAsB,CAACJ,EAAG,MAAM,CAACG,YAAY,YAAYmI,MAAM,CAAC4E,UAAYpN,EAAIuG,eAAiBvG,EAAIyM,YAAc+B,MAAOxO,EAAI8N,iBAAiBxN,MAAM,CAAC,GAAK,cAAc,CAAEN,EAAIyM,YAAa,CAAEzM,EAAIwM,cAAetM,EAAG,MAAM,CAACG,YAAY,WAAW,CAACL,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIyO,EAAE,WAAY,iCAAkC,mCAAoCzO,EAAIqM,UAAU,cAAerM,EAAIwM,cAAetM,EAAG,WAAW,CAACI,MAAM,CAAC,GAAK,sBAAsB,KAAO,WAAWC,GAAG,CAAC,MAAQP,EAAIuO,YAAY,CAACvO,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyO,EAAE,WAAY,SAAU,aAAczO,EAAIqM,UAAU,gBAAgBrM,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIwM,cAAyIxM,EAAIa,KAA9HX,EAAG,MAAM,CAACG,YAAY,WAAW,CAACL,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,6BAA6B,cAAuBtB,EAAIW,GAAG,KAAKT,EAAG,mBAAmB,CAACG,YAAY,sBAAsBC,MAAM,CAAC,KAAO,WAAW,IAAM,UAAU,CAACJ,EAAG,KAAK,CAACwO,IAAI,uBAAuBrO,YAAY,eAAe,CAACH,EAAG,KAAK,CAACG,YAAY,aAAa,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,cAActB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,YAAY,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,cAActB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,eAAe,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,iBAAiBtB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,aAAa,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,eAAetB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,WAAW,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,mBAAmBtB,EAAIW,GAAG,KAAKX,EAAI2O,GAAI3O,EAAIiC,MAAM,SAASK,GAAK,OAAOpC,EAAG,UAAU,CAACwO,IAAIpM,EAAIjD,GAAGiB,MAAM,CAAC,IAAMgC,EAAI,SAAWtC,EAAIoG,WAAW,KAAI,IAAIpG,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIuG,cAAerG,EAAG,QAAQ,CAACG,YAAY,uBAAuB,CAACH,EAAG,KAAK,CAACwO,IAAI,uBAAuBrO,YAAY,eAAe,CAACH,EAAG,KAAK,CAACG,YAAY,YAAYC,MAAM,CAAC,GAAK,uBAAuB,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,cAActB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,WAAWC,MAAM,CAAC,GAAK,uBAAuB,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,cAActB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,cAAcC,MAAM,CAAC,GAAK,0BAA0B,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,iBAAiBtB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,YAAYC,MAAM,CAAC,GAAK,wBAAwB,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,eAAetB,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,UAAUC,MAAM,CAAC,GAAK,0BAA0B,CAACJ,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,mBAAmBtB,EAAIW,GAAG,KAAKX,EAAI2O,GAAI3O,EAAIqN,SAAS,SAASG,GAAQ,MAAO,CAACtN,EAAG,KAAK,CAACwO,IAAIlB,EAAOnO,IAAI,CAACa,EAAG,KAAK,CAACI,MAAM,CAAC,GAAI,sBAAAkE,OAAuBgJ,EAAOnO,IAAK,QAAU,IAAI,MAAQ,aAAa,CAACa,EAAG,MAAM,CAACG,YAAY,sBAAsB,CAACH,EAAG,OAAO,CAACG,YAAY,qBAAqB,CAACL,EAAIW,GAAG,qBAAqBX,EAAIY,GAAG4M,EAAOlO,MAAM,sBAAsBU,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,aAAaC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIiO,aAAaT,EAAOnO,GAAG,IAAI,CAACW,EAAIW,GAAG,qBAAqBX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAYtB,EAAIgO,iBAAiBR,EAAOnO,MAAM,uBAAuB,OAAOW,EAAIW,GAAG,KAAKX,EAAI2O,GAAI3O,EAAIyN,WAAWD,EAAOnO,KAAK,SAASiD,GAAK,OAAOpC,EAAG,UAAU,CAACwO,IAAIlB,EAAOnO,GAAKiD,EAAIjD,GAAGiB,MAAM,CAAC,mBAAkB,EAAK,QAAS,sBAAAkE,OAAuBgJ,EAAOnO,IAAK,IAAMiD,EAAI,SAAWtC,EAAIoG,WAAW,IAAG,KAAI,GAAGpG,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI8N,gBAAiB5N,EAAG,KAAK,CAACG,YAAY,mBAAmBL,EAAI2O,GAAI3O,EAAIiC,MAAM,SAASK,GAAK,OAAOpC,EAAG,UAAU,CAACwO,IAAIpM,EAAIjD,GAAGiB,MAAM,CAAC,IAAMgC,EAAI,SAAWtC,EAAIoG,SAAS,aAAY,IAAQ,IAAG,GAAGpG,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,sBAAsBC,MAAM,CAAC,GAAK,qBAAqB,CAACJ,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAAiB,KAAfL,EAAI4D,QAAiB5D,EAAI2N,WAAWpK,OAAS,EAAG,CAACrD,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,EAAIsB,EAAE,WAAY,yCAAyCtB,EAAIW,GAAG,KAAKX,EAAI2O,GAAI3O,EAAI2N,YAAY,SAASrL,GAAK,OAAOpC,EAAG,UAAU,CAACwO,IAAIpM,EAAIjD,GAAGiB,MAAM,CAAC,IAAMgC,EAAI,SAAWtC,EAAIoG,WAAW,KAAIpG,EAAIa,MAAM,KAAKb,EAAIW,GAAG,KAAqB,KAAfX,EAAI4D,QAAkB5D,EAAI6C,SAAqC,IAA1B7C,EAAI2N,WAAWpK,QAAoC,IAApBvD,EAAIiC,KAAKsB,OAAqRvD,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,EAAIsB,EAAE,WAAY,wCAAiDtB,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,oBAC9rJ,GACsB,IsBUpB,EACA,KACA,WACA,MAI8B,QCnBhC,I,wBC4BA,IAAIsO,GAbO,CACHzD,OAAO,EACP0D,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,MAAMC,EAAM,CACRN,QAAS,CAAC9Q,EAAMqR,KAEZA,GADAA,EAAqB,iBAARA,GAAoB,WAAYA,EAAMA,EAAIhB,OAASgB,GACtDP,QAAQE,GAAO,MACzBE,EAAQA,EAAMJ,QAAQ9Q,EAAMqR,GACrBD,GAEXE,SAAU,IACC,IAAIlB,OAAOc,EAAOC,IAGjC,OAAOC,CACX,CACA,SAASG,GAASC,GACd,IACIA,EAAOC,UAAUD,GAAMV,QAAQ,OAAQ,IAC3C,CACA,MAAO5I,GACH,OAAO,IACX,CACA,OAAOsJ,CACX,CACA,MAAME,GAAW,CAAEC,KAAM,IAAM,MAC/B,SAASC,GAAWC,EAAUC,GAG1B,MAcIC,EAdQF,EAASf,QAAQ,OAAO,CAACkB,EAAOxN,EAAQyN,KAChD,IAAIC,GAAU,EACVC,EAAO3N,EACX,OAAS2N,GAAQ,GAAmB,OAAdF,EAAIE,IACtBD,GAAWA,EACf,OAAIA,EAGO,IAIA,IACX,IACYE,MAAM,OACtB,IAAIC,EAAI,EAQR,GANKN,EAAM,GAAGO,QACVP,EAAMQ,QAENR,EAAM9N,OAAS,IAAM8N,EAAMA,EAAM9N,OAAS,GAAGqO,QAC7CP,EAAM9M,MAEN6M,EACA,GAAIC,EAAM9N,OAAS6N,EACfC,EAAMxM,OAAOuM,QAGb,KAAOC,EAAM9N,OAAS6N,GAClBC,EAAMlS,KAAK,IAGvB,KAAOwS,EAAIN,EAAM9N,OAAQoO,IAErBN,EAAMM,GAAKN,EAAMM,GAAGC,OAAOxB,QAAQ,QAAS,KAEhD,OAAOiB,CACX,CASA,SAASS,GAAMP,EAAKQ,EAAGC,GACnB,MAAMC,EAAIV,EAAIhO,OACd,GAAU,IAAN0O,EACA,MAAO,GAGX,IAAIC,EAAU,EAEd,KAAOA,EAAUD,GAAG,CAChB,MAAME,EAAWZ,EAAIa,OAAOH,EAAIC,EAAU,GAC1C,GAAIC,IAAaJ,GAAMC,EAGlB,IAAIG,IAAaJ,IAAKC,EAIvB,MAHAE,GAIJ,MAPIA,GAQR,CACA,OAAOX,EAAIc,MAAM,EAAGJ,EAAIC,EAC5B,CAuBA,SAASI,GAAWC,EAAKC,EAAMC,EAAKC,GAChC,MAAM5B,EAAO0B,EAAK1B,KACZrR,EAAQ+S,EAAK/S,MAAQ,GAAO+S,EAAK/S,OAAS,KAC1CkT,EAAOJ,EAAI,GAAGnC,QAAQ,cAAe,MAC3C,GAAyB,MAArBmC,EAAI,GAAGH,OAAO,GAAY,CAC1BM,EAAME,MAAMC,QAAS,EACrB,MAAMC,EAAQ,CACVpT,KAAM,OACN+S,MACA3B,OACArR,QACAkT,OACAI,OAAQL,EAAMM,aAAaL,IAG/B,OADAD,EAAME,MAAMC,QAAS,EACdC,CACX,CACA,MAAO,CACHpT,KAAM,QACN+S,MACA3B,OACArR,QACAkT,KAAM,GAAOA,GAErB,CAyBA,MAAMM,GACFjL,QAEAkL,MACAR,MACA,WAAArJ,CAAYrB,GACR/H,KAAK+H,QAAUA,GAAW4G,EAC9B,CACA,KAAAuE,CAAM1L,GACF,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMC,QAAQpC,KAAKxJ,GAC1C,GAAI8K,GAAOA,EAAI,GAAGhP,OAAS,EACvB,MAAO,CACH7D,KAAM,QACN+S,IAAKF,EAAI,GAGrB,CACA,IAAAe,CAAK7L,GACD,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAME,KAAKrC,KAAKxJ,GACvC,GAAI8K,EAAK,CACL,MAAMI,EAAOJ,EAAI,GAAGnC,QAAQ,YAAa,IACzC,MAAO,CACH1Q,KAAM,OACN+S,IAAKF,EAAI,GACTgB,eAAgB,WAChBZ,KAAO1S,KAAK+H,QAAQiH,SAEd0D,EADAb,GAAMa,EAAM,MAG1B,CACJ,CACA,MAAAa,CAAO/L,GACH,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMI,OAAOvC,KAAKxJ,GACzC,GAAI8K,EAAK,CACL,MAAME,EAAMF,EAAI,GACVI,EA3DlB,SAAgCF,EAAKE,GACjC,MAAMc,EAAoBhB,EAAInB,MAAM,iBACpC,GAA0B,OAAtBmC,EACA,OAAOd,EAEX,MAAMe,EAAeD,EAAkB,GACvC,OAAOd,EACFjB,MAAM,MACNlP,KAAIyH,IACL,MAAM0J,EAAoB1J,EAAKqH,MAAM,QACrC,GAA0B,OAAtBqC,EACA,OAAO1J,EAEX,MAAO2J,GAAgBD,EACvB,OAAIC,EAAarQ,QAAUmQ,EAAanQ,OAC7B0G,EAAKoI,MAAMqB,EAAanQ,QAE5B0G,CAAI,IAEVlC,KAAK,KACd,CAuCyB8L,CAAuBpB,EAAKF,EAAI,IAAM,IACnD,MAAO,CACH7S,KAAM,OACN+S,MACAqB,KAAMvB,EAAI,GAAKA,EAAI,GAAGX,OAAOxB,QAAQnQ,KAAKiT,MAAMa,OAAOC,SAAU,MAAQzB,EAAI,GAC7EI,OAER,CACJ,CACA,OAAAsB,CAAQxM,GACJ,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMa,QAAQhD,KAAKxJ,GAC1C,GAAI8K,EAAK,CACL,IAAII,EAAOJ,EAAI,GAAGX,OAElB,GAAI,KAAKzB,KAAKwC,GAAO,CACjB,MAAMuB,EAAUpC,GAAMa,EAAM,KACxB1S,KAAK+H,QAAQiH,SACb0D,EAAOuB,EAAQtC,OAETsC,IAAW,KAAK/D,KAAK+D,KAE3BvB,EAAOuB,EAAQtC,OAEvB,CACA,MAAO,CACHlS,KAAM,UACN+S,IAAKF,EAAI,GACT4B,MAAO5B,EAAI,GAAGhP,OACdoP,OACAI,OAAQ9S,KAAKyS,MAAMqB,OAAOpB,GAElC,CACJ,CACA,EAAAyB,CAAG3M,GACC,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMgB,GAAGnD,KAAKxJ,GACrC,GAAI8K,EACA,MAAO,CACH7S,KAAM,KACN+S,IAAKF,EAAI,GAGrB,CACA,UAAA8B,CAAW5M,GACP,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMiB,WAAWpD,KAAKxJ,GAC7C,GAAI8K,EAAK,CACL,MAAMI,EAAOb,GAAMS,EAAI,GAAGnC,QAAQ,eAAgB,IAAK,MACjDkE,EAAMrU,KAAKyS,MAAME,MAAM0B,IAC7BrU,KAAKyS,MAAME,MAAM0B,KAAM,EACvB,MAAMvB,EAAS9S,KAAKyS,MAAM6B,YAAY5B,GAEtC,OADA1S,KAAKyS,MAAME,MAAM0B,IAAMA,EAChB,CACH5U,KAAM,aACN+S,IAAKF,EAAI,GACTQ,SACAJ,OAER,CACJ,CACA,IAAA6B,CAAK/M,GACD,IAAI8K,EAAMtS,KAAKiT,MAAME,MAAMoB,KAAKvD,KAAKxJ,GACrC,GAAI8K,EAAK,CACL,IAAIkC,EAAOlC,EAAI,GAAGX,OAClB,MAAM8C,EAAYD,EAAKlR,OAAS,EAC1BiR,EAAO,CACT9U,KAAM,OACN+S,IAAK,GACLkC,QAASD,EACTE,MAAOF,GAAaD,EAAKpC,MAAM,GAAI,GAAK,GACxCwC,OAAO,EACPC,MAAO,IAEXL,EAAOC,EAAY,aAAaD,EAAKpC,OAAO,KAAO,KAAKoC,IACpDxU,KAAK+H,QAAQiH,WACbwF,EAAOC,EAAYD,EAAO,SAG9B,MAAMM,EAAY,IAAIrF,OAAO,WAAW+E,kCACxC,IAAIhC,EAAM,GACNuC,EAAe,GACfC,GAAoB,EAExB,KAAOxN,GAAK,CACR,IAAIyN,GAAW,EACf,KAAM3C,EAAMwC,EAAU9D,KAAKxJ,IACvB,MAEJ,GAAIxH,KAAKiT,MAAME,MAAMgB,GAAGjE,KAAK1I,GACzB,MAEJgL,EAAMF,EAAI,GACV9K,EAAMA,EAAI5B,UAAU4M,EAAIlP,QACxB,IAAI4R,EAAO5C,EAAI,GAAGb,MAAM,KAAM,GAAG,GAAGtB,QAAQ,QAAS9O,GAAM,IAAI8T,OAAO,EAAI9T,EAAEiC,UACxE8R,EAAW5N,EAAIiK,MAAM,KAAM,GAAG,GAC9B4D,EAAS,EACTrV,KAAK+H,QAAQiH,UACbqG,EAAS,EACTN,EAAeG,EAAKI,cAGpBD,EAAS/C,EAAI,GAAG3O,OAAO,QACvB0R,EAASA,EAAS,EAAI,EAAIA,EAC1BN,EAAeG,EAAK9C,MAAMiD,GAC1BA,GAAU/C,EAAI,GAAGhP,QAErB,IAAIiS,GAAY,EAMhB,IALKL,GAAQ,OAAOhF,KAAKkF,KACrB5C,GAAO4C,EAAW,KAClB5N,EAAMA,EAAI5B,UAAUwP,EAAS9R,OAAS,GACtC2R,GAAW,IAEVA,EAAU,CACX,MAAMO,EAAkB,IAAI/F,OAAO,QAAQ1O,KAAK0U,IAAI,EAAGJ,EAAS,yDAC1DK,EAAU,IAAIjG,OAAO,QAAQ1O,KAAK0U,IAAI,EAAGJ,EAAS,wDAClDM,EAAmB,IAAIlG,OAAO,QAAQ1O,KAAK0U,IAAI,EAAGJ,EAAS,qBAC3DO,EAAoB,IAAInG,OAAO,QAAQ1O,KAAK0U,IAAI,EAAGJ,EAAS,QAElE,KAAO7N,GAAK,CACR,MAAMqO,EAAUrO,EAAIiK,MAAM,KAAM,GAAG,GAOnC,GANA2D,EAAWS,EAEP7V,KAAK+H,QAAQiH,WACboG,EAAWA,EAASjF,QAAQ,0BAA2B,OAGvDwF,EAAiBzF,KAAKkF,GACtB,MAGJ,GAAIQ,EAAkB1F,KAAKkF,GACvB,MAGJ,GAAII,EAAgBtF,KAAKkF,GACrB,MAGJ,GAAIM,EAAQxF,KAAK1I,GACb,MAEJ,GAAI4N,EAASzR,OAAO,SAAW0R,IAAWD,EAASzD,OAC/CoD,GAAgB,KAAOK,EAAShD,MAAMiD,OAErC,CAED,GAAIE,EACA,MAGJ,GAAIL,EAAKvR,OAAO,SAAW,EACvB,MAEJ,GAAIgS,EAAiBzF,KAAKgF,GACtB,MAEJ,GAAIU,EAAkB1F,KAAKgF,GACvB,MAEJ,GAAIQ,EAAQxF,KAAKgF,GACb,MAEJH,GAAgB,KAAOK,CAC3B,CACKG,GAAcH,EAASzD,SACxB4D,GAAY,GAEhB/C,GAAOqD,EAAU,KACjBrO,EAAMA,EAAI5B,UAAUiQ,EAAQvS,OAAS,GACrC4R,EAAOE,EAAShD,MAAMiD,EAC1B,CACJ,CACKd,EAAKK,QAEFI,EACAT,EAAKK,OAAQ,EAER,YAAY1E,KAAKsC,KACtBwC,GAAoB,IAG5B,IACIc,EADAC,EAAS,KAGT/V,KAAK+H,QAAQ+G,MACbiH,EAAS,cAAc/E,KAAK+D,GACxBgB,IACAD,EAA0B,SAAdC,EAAO,GACnBhB,EAAeA,EAAa5E,QAAQ,eAAgB,MAG5DoE,EAAKM,MAAM3V,KAAK,CACZO,KAAM,YACN+S,MACAwD,OAAQD,EACRE,QAASH,EACTlB,OAAO,EACPlC,KAAMqC,EACNjC,OAAQ,KAEZyB,EAAK/B,KAAOA,CAChB,CAEA+B,EAAKM,MAAMN,EAAKM,MAAMvR,OAAS,GAAGkP,IAAMA,EAAI0D,UAC5C3B,EAAKM,MAAMN,EAAKM,MAAMvR,OAAS,GAAGoP,KAAOqC,EAAamB,UACtD3B,EAAK/B,IAAM+B,EAAK/B,IAAI0D,UAEpB,IAAK,IAAIxE,EAAI,EAAGA,EAAI6C,EAAKM,MAAMvR,OAAQoO,IAGnC,GAFA1R,KAAKyS,MAAME,MAAM0B,KAAM,EACvBE,EAAKM,MAAMnD,GAAGoB,OAAS9S,KAAKyS,MAAM6B,YAAYC,EAAKM,MAAMnD,GAAGgB,KAAM,KAC7D6B,EAAKK,MAAO,CAEb,MAAMuB,EAAU5B,EAAKM,MAAMnD,GAAGoB,OAAOzG,QAAOhL,GAAgB,UAAXA,EAAE5B,OAC7C2W,EAAwBD,EAAQ7S,OAAS,GAAK6S,EAAQE,MAAKhV,GAAK,SAAS6O,KAAK7O,EAAEmR,OACtF+B,EAAKK,MAAQwB,CACjB,CAGJ,GAAI7B,EAAKK,MACL,IAAK,IAAIlD,EAAI,EAAGA,EAAI6C,EAAKM,MAAMvR,OAAQoO,IACnC6C,EAAKM,MAAMnD,GAAGkD,OAAQ,EAG9B,OAAOL,CACX,CACJ,CACA,IAAAvE,CAAKxI,GACD,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMnD,KAAKgB,KAAKxJ,GACvC,GAAI8K,EAQA,MAPc,CACV7S,KAAM,OACN0T,OAAO,EACPX,IAAKF,EAAI,GACTgE,IAAgB,QAAXhE,EAAI,IAA2B,WAAXA,EAAI,IAA8B,UAAXA,EAAI,GACpDI,KAAMJ,EAAI,GAItB,CACA,GAAAiE,CAAI/O,GACA,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMoD,IAAIvF,KAAKxJ,GACtC,GAAI8K,EAAK,CACL,MAAMhK,EAAMgK,EAAI,GAAG5F,cAAcyD,QAAQ,OAAQ,KAC3CU,EAAOyB,EAAI,GAAKA,EAAI,GAAGnC,QAAQ,WAAY,MAAMA,QAAQnQ,KAAKiT,MAAMa,OAAOC,SAAU,MAAQ,GAC7FvU,EAAQ8S,EAAI,GAAKA,EAAI,GAAG1M,UAAU,EAAG0M,EAAI,GAAGhP,OAAS,GAAG6M,QAAQnQ,KAAKiT,MAAMa,OAAOC,SAAU,MAAQzB,EAAI,GAC9G,MAAO,CACH7S,KAAM,MACN6I,MACAkK,IAAKF,EAAI,GACTzB,OACArR,QAER,CACJ,CACA,KAAAgX,CAAMhP,GACF,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMqD,MAAMxF,KAAKxJ,GACxC,GAAI8K,EAAK,CACL,IAAK,OAAOpC,KAAKoC,EAAI,IAEjB,OAEJ,MAAMmE,EAAO,CACThX,KAAM,QACN+S,IAAKF,EAAI,GACToE,OAAQzF,GAAWqB,EAAI,IAAI/P,KAAIuP,IACpB,CAAEY,KAAMZ,EAAGgB,OAAQ,OAE9B6D,MAAOrE,EAAI,GAAGnC,QAAQ,aAAc,IAAIsB,MAAM,KAC9CmF,KAAMtE,EAAI,IAAMA,EAAI,GAAGX,OAASW,EAAI,GAAGnC,QAAQ,YAAa,IAAIsB,MAAM,MAAQ,IAElF,GAAIgF,EAAKC,OAAOpT,SAAWmT,EAAKE,MAAMrT,OAAQ,CAC1C,IACIoO,EAAGmF,EAAGC,EAAGC,EADT/E,EAAIyE,EAAKE,MAAMrT,OAEnB,IAAKoO,EAAI,EAAGA,EAAIM,EAAGN,IAAK,CACpB,MAAMiF,EAAQF,EAAKE,MAAMjF,GACrBiF,IACI,YAAYzG,KAAKyG,GACjBF,EAAKE,MAAMjF,GAAK,QAEX,aAAaxB,KAAKyG,GACvBF,EAAKE,MAAMjF,GAAK,SAEX,YAAYxB,KAAKyG,GACtBF,EAAKE,MAAMjF,GAAK,OAGhB+E,EAAKE,MAAMjF,GAAK,KAG5B,CAEA,IADAM,EAAIyE,EAAKG,KAAKtT,OACToO,EAAI,EAAGA,EAAIM,EAAGN,IACf+E,EAAKG,KAAKlF,GAAKT,GAAWwF,EAAKG,KAAKlF,GAAI+E,EAAKC,OAAOpT,QAAQf,KAAIuP,IACrD,CAAEY,KAAMZ,EAAGgB,OAAQ,OAMlC,IADAd,EAAIyE,EAAKC,OAAOpT,OACXuT,EAAI,EAAGA,EAAI7E,EAAG6E,IACfJ,EAAKC,OAAOG,GAAG/D,OAAS9S,KAAKyS,MAAMqB,OAAO2C,EAAKC,OAAOG,GAAGnE,MAI7D,IADAV,EAAIyE,EAAKG,KAAKtT,OACTuT,EAAI,EAAGA,EAAI7E,EAAG6E,IAEf,IADAE,EAAMN,EAAKG,KAAKC,GACXC,EAAI,EAAGA,EAAIC,EAAIzT,OAAQwT,IACxBC,EAAID,GAAGhE,OAAS9S,KAAKyS,MAAMqB,OAAOiD,EAAID,GAAGpE,MAGjD,OAAO+D,CACX,CACJ,CACJ,CACA,QAAAO,CAASxP,GACL,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAM6D,SAAShG,KAAKxJ,GAC3C,GAAI8K,EACA,MAAO,CACH7S,KAAM,UACN+S,IAAKF,EAAI,GACT4B,MAA4B,MAArB5B,EAAI,GAAGH,OAAO,GAAa,EAAI,EACtCO,KAAMJ,EAAI,GACVQ,OAAQ9S,KAAKyS,MAAMqB,OAAOxB,EAAI,IAG1C,CACA,SAAA2E,CAAUzP,GACN,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAM8D,UAAUjG,KAAKxJ,GAC5C,GAAI8K,EAAK,CACL,MAAMI,EAA4C,OAArCJ,EAAI,GAAGH,OAAOG,EAAI,GAAGhP,OAAS,GACrCgP,EAAI,GAAGF,MAAM,GAAI,GACjBE,EAAI,GACV,MAAO,CACH7S,KAAM,YACN+S,IAAKF,EAAI,GACTI,OACAI,OAAQ9S,KAAKyS,MAAMqB,OAAOpB,GAElC,CACJ,CACA,IAAAA,CAAKlL,GACD,MAAM8K,EAAMtS,KAAKiT,MAAME,MAAMT,KAAK1B,KAAKxJ,GACvC,GAAI8K,EACA,MAAO,CACH7S,KAAM,OACN+S,IAAKF,EAAI,GACTI,KAAMJ,EAAI,GACVQ,OAAQ9S,KAAKyS,MAAMqB,OAAOxB,EAAI,IAG1C,CACA,MAAA4E,CAAO1P,GACH,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOoD,OAAOlG,KAAKxJ,GAC1C,GAAI8K,EACA,MAAO,CACH7S,KAAM,SACN+S,IAAKF,EAAI,GACTI,KAAM,GAAOJ,EAAI,IAG7B,CACA,GAAAhK,CAAId,GACA,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOxL,IAAI0I,KAAKxJ,GACvC,GAAI8K,EAaA,OAZKtS,KAAKyS,MAAME,MAAMC,QAAU,QAAQ1C,KAAKoC,EAAI,IAC7CtS,KAAKyS,MAAME,MAAMC,QAAS,EAErB5S,KAAKyS,MAAME,MAAMC,QAAU,UAAU1C,KAAKoC,EAAI,MACnDtS,KAAKyS,MAAME,MAAMC,QAAS,IAEzB5S,KAAKyS,MAAME,MAAMwE,YAAc,iCAAiCjH,KAAKoC,EAAI,IAC1EtS,KAAKyS,MAAME,MAAMwE,YAAa,EAEzBnX,KAAKyS,MAAME,MAAMwE,YAAc,mCAAmCjH,KAAKoC,EAAI,MAChFtS,KAAKyS,MAAME,MAAMwE,YAAa,GAE3B,CACH1X,KAAM,OACN+S,IAAKF,EAAI,GACTM,OAAQ5S,KAAKyS,MAAME,MAAMC,OACzBuE,WAAYnX,KAAKyS,MAAME,MAAMwE,WAC7BhE,OAAO,EACPT,KAAMJ,EAAI,GAGtB,CACA,IAAAC,CAAK/K,GACD,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOvB,KAAKvB,KAAKxJ,GACxC,GAAI8K,EAAK,CACL,MAAM8E,EAAa9E,EAAI,GAAGX,OAC1B,IAAK3R,KAAK+H,QAAQiH,UAAY,KAAKkB,KAAKkH,GAAa,CAEjD,IAAM,KAAKlH,KAAKkH,GACZ,OAGJ,MAAMC,EAAaxF,GAAMuF,EAAWhF,MAAM,GAAI,GAAI,MAClD,IAAKgF,EAAW9T,OAAS+T,EAAW/T,QAAU,GAAM,EAChD,MAER,KACK,CAED,MAAMgU,EA3ftB,SAA4BhG,EAAKzE,GAC7B,IAA2B,IAAvByE,EAAI3M,QAAQkI,EAAE,IACd,OAAQ,EAEZ,IAAIhE,EAAQ,EACZ,IAAK,IAAI6I,EAAI,EAAGA,EAAIJ,EAAIhO,OAAQoO,IAC5B,GAAe,OAAXJ,EAAII,GACJA,SAEC,GAAIJ,EAAII,KAAO7E,EAAE,GAClBhE,SAEC,GAAIyI,EAAII,KAAO7E,EAAE,KAClBhE,IACIA,EAAQ,GACR,OAAO6I,EAInB,OAAQ,CACZ,CAueuC6F,CAAmBjF,EAAI,GAAI,MAClD,GAAIgF,GAAkB,EAAG,CACrB,MACME,GADgC,IAAxBlF,EAAI,GAAG3N,QAAQ,KAAa,EAAI,GACtB2N,EAAI,GAAGhP,OAASgU,EACxChF,EAAI,GAAKA,EAAI,GAAG1M,UAAU,EAAG0R,GAC7BhF,EAAI,GAAKA,EAAI,GAAG1M,UAAU,EAAG4R,GAAS7F,OACtCW,EAAI,GAAK,EACb,CACJ,CACA,IAAIzB,EAAOyB,EAAI,GACX9S,EAAQ,GACZ,GAAIQ,KAAK+H,QAAQiH,SAAU,CAEvB,MAAMuD,EAAO,gCAAgCvB,KAAKH,GAC9C0B,IACA1B,EAAO0B,EAAK,GACZ/S,EAAQ+S,EAAK,GAErB,MAEI/S,EAAQ8S,EAAI,GAAKA,EAAI,GAAGF,MAAM,GAAI,GAAK,GAY3C,OAVAvB,EAAOA,EAAKc,OACR,KAAKzB,KAAKW,KAGNA,EAFA7Q,KAAK+H,QAAQiH,WAAc,KAAKkB,KAAKkH,GAE9BvG,EAAKuB,MAAM,GAGXvB,EAAKuB,MAAM,GAAI,IAGvBC,GAAWC,EAAK,CACnBzB,KAAMA,EAAOA,EAAKV,QAAQnQ,KAAKiT,MAAMa,OAAOC,SAAU,MAAQlD,EAC9DrR,MAAOA,EAAQA,EAAM2Q,QAAQnQ,KAAKiT,MAAMa,OAAOC,SAAU,MAAQvU,GAClE8S,EAAI,GAAItS,KAAKyS,MACpB,CACJ,CACA,OAAAgF,CAAQjQ,EAAKkQ,GACT,IAAIpF,EACJ,IAAKA,EAAMtS,KAAKiT,MAAMa,OAAO2D,QAAQzG,KAAKxJ,MAClC8K,EAAMtS,KAAKiT,MAAMa,OAAO6D,OAAO3G,KAAKxJ,IAAO,CAC/C,IAAI+K,GAAQD,EAAI,IAAMA,EAAI,IAAInC,QAAQ,OAAQ,KAE9C,GADAoC,EAAOmF,EAAMnF,EAAK7F,gBACb6F,EAAM,CACP,MAAMG,EAAOJ,EAAI,GAAGH,OAAO,GAC3B,MAAO,CACH1S,KAAM,OACN+S,IAAKE,EACLA,OAER,CACA,OAAOL,GAAWC,EAAKC,EAAMD,EAAI,GAAItS,KAAKyS,MAC9C,CACJ,CACA,QAAAmF,CAASpQ,EAAKqQ,EAAWC,EAAW,IAChC,IAAIzG,EAAQrR,KAAKiT,MAAMa,OAAO8D,SAASG,OAAO/G,KAAKxJ,GACnD,GAAK6J,KAGDA,EAAM,KAAMyG,EAASzG,MAAM,qBAEdA,EAAM,KAAMA,EAAM,KACjByG,GAAY9X,KAAKiT,MAAMa,OAAOkE,YAAYhH,KAAK8G,IAAW,CAExE,MAAMG,EAAU,IAAI5G,EAAM,IAAI/N,OAAS,EACvC,IAAI4U,EAAQC,EAASC,EAAaH,EAASI,EAAgB,EAC3D,MAAMC,EAAyB,MAAhBjH,EAAM,GAAG,GAAarR,KAAKiT,MAAMa,OAAO8D,SAASW,UAAYvY,KAAKiT,MAAMa,OAAO8D,SAASY,UAIvG,IAHAF,EAAOG,UAAY,EAEnBZ,EAAYA,EAAUzF,OAAO,EAAI5K,EAAIlE,OAAS2U,GACH,OAAnC5G,EAAQiH,EAAOtH,KAAK6G,KAAqB,CAE7C,GADAK,EAAS7G,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IACtE6G,EACD,SAEJ,GADAC,EAAU,IAAID,GAAQ5U,OAClB+N,EAAM,IAAMA,EAAM,GAAI,CACtB+G,GAAcD,EACd,QACJ,CACK,IAAI9G,EAAM,IAAMA,EAAM,KACnB4G,EAAU,MAAQA,EAAUE,GAAW,GAAI,CAC3CE,GAAiBF,EACjB,QACJ,CAGJ,GADAC,GAAcD,EACVC,EAAa,EACb,SAEJD,EAAUpX,KAAK0U,IAAI0C,EAASA,EAAUC,EAAaC,GAEnD,MAAMK,EAAiB,IAAIrH,EAAM,IAAI,GAAG/N,OAClCkP,EAAMhL,EAAI4K,MAAM,EAAG6F,EAAU5G,EAAM3M,MAAQgU,EAAiBP,GAElE,GAAIpX,KAAK0U,IAAIwC,EAASE,GAAW,EAAG,CAChC,MAAMzF,EAAOF,EAAIJ,MAAM,GAAI,GAC3B,MAAO,CACH3S,KAAM,KACN+S,MACAE,OACAI,OAAQ9S,KAAKyS,MAAMM,aAAaL,GAExC,CAEA,MAAMA,EAAOF,EAAIJ,MAAM,GAAI,GAC3B,MAAO,CACH3S,KAAM,SACN+S,MACAE,OACAI,OAAQ9S,KAAKyS,MAAMM,aAAaL,GAExC,CACJ,CACJ,CACA,QAAAiG,CAASnR,GACL,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOT,KAAKrC,KAAKxJ,GACxC,GAAI8K,EAAK,CACL,IAAII,EAAOJ,EAAI,GAAGnC,QAAQ,MAAO,KACjC,MAAMyI,EAAmB,OAAO1I,KAAKwC,GAC/BmG,EAA0B,KAAK3I,KAAKwC,IAAS,KAAKxC,KAAKwC,GAK7D,OAJIkG,GAAoBC,IACpBnG,EAAOA,EAAK9M,UAAU,EAAG8M,EAAKpP,OAAS,IAE3CoP,EAAO,GAAOA,GAAM,GACb,CACHjT,KAAM,WACN+S,IAAKF,EAAI,GACTI,OAER,CACJ,CACA,EAAAoG,CAAGtR,GACC,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOgF,GAAG9H,KAAKxJ,GACtC,GAAI8K,EACA,MAAO,CACH7S,KAAM,KACN+S,IAAKF,EAAI,GAGrB,CACA,GAAAyG,CAAIvR,GACA,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOiF,IAAI/H,KAAKxJ,GACvC,GAAI8K,EACA,MAAO,CACH7S,KAAM,MACN+S,IAAKF,EAAI,GACTI,KAAMJ,EAAI,GACVQ,OAAQ9S,KAAKyS,MAAMM,aAAaT,EAAI,IAGhD,CACA,QAAA0G,CAASxR,GACL,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOkF,SAAShI,KAAKxJ,GAC5C,GAAI8K,EAAK,CACL,IAAII,EAAM7B,EASV,MARe,MAAXyB,EAAI,IACJI,EAAO,GAAOJ,EAAI,IAClBzB,EAAO,UAAY6B,IAGnBA,EAAO,GAAOJ,EAAI,IAClBzB,EAAO6B,GAEJ,CACHjT,KAAM,OACN+S,IAAKF,EAAI,GACTI,OACA7B,OACAiC,OAAQ,CACJ,CACIrT,KAAM,OACN+S,IAAKE,EACLA,SAIhB,CACJ,CACA,GAAAuG,CAAIzR,GACA,IAAI8K,EACJ,GAAIA,EAAMtS,KAAKiT,MAAMa,OAAOmF,IAAIjI,KAAKxJ,GAAM,CACvC,IAAIkL,EAAM7B,EACV,GAAe,MAAXyB,EAAI,GACJI,EAAO,GAAOJ,EAAI,IAClBzB,EAAO,UAAY6B,MAElB,CAED,IAAIwG,EACJ,GACIA,EAAc5G,EAAI,GAClBA,EAAI,GAAKtS,KAAKiT,MAAMa,OAAOqF,WAAWnI,KAAKsB,EAAI,IAAI,SAC9C4G,IAAgB5G,EAAI,IAC7BI,EAAO,GAAOJ,EAAI,IAEdzB,EADW,SAAXyB,EAAI,GACG,UAAYA,EAAI,GAGhBA,EAAI,EAEnB,CACA,MAAO,CACH7S,KAAM,OACN+S,IAAKF,EAAI,GACTI,OACA7B,OACAiC,OAAQ,CACJ,CACIrT,KAAM,OACN+S,IAAKE,EACLA,SAIhB,CACJ,CACA,UAAA0G,CAAW5R,GACP,MAAM8K,EAAMtS,KAAKiT,MAAMa,OAAOpB,KAAK1B,KAAKxJ,GACxC,GAAI8K,EAAK,CACL,IAAII,EAOJ,OALIA,EADA1S,KAAKyS,MAAME,MAAMwE,WACV7E,EAAI,GAGJ,GAAOA,EAAI,IAEf,CACH7S,KAAM,OACN+S,IAAKF,EAAI,GACTI,OAER,CACJ,EAQJ,MAAMS,GAAQ,CACVC,QAAS,mBACTC,KAAM,uCACNE,OAAQ,8GACRY,GAAI,qEACJH,QAAS,uCACTI,WAAY,0CACZG,KAAM,uCACNvE,KAAM,mdAUNuG,IAAK,kGACLC,MAAOzF,GACPiG,SAAU,mEAGVqC,WAAY,uFACZ3G,KAAM,UAEVS,OAAe,8BACfA,OAAe,gEACfA,GAAMoD,IAAMjG,GAAK6C,GAAMoD,KAClBpG,QAAQ,QAASgD,GAAMmG,QACvBnJ,QAAQ,QAASgD,GAAMoG,QACvB5I,WACLwC,GAAMqG,OAAS,wBACfrG,GAAMsG,cAAgBnJ,GAAK,iBACtBH,QAAQ,OAAQgD,GAAMqG,QACtB7I,WACLwC,GAAMoB,KAAOjE,GAAK6C,GAAMoB,MACnBpE,QAAQ,QAASgD,GAAMqG,QACvBrJ,QAAQ,KAAM,mEACdA,QAAQ,MAAO,UAAYgD,GAAMoD,IAAI7G,OAAS,KAC9CiB,WACLwC,GAAMuG,KAAO,gWAMbvG,GAAMwG,SAAW,+BACjBxG,GAAMnD,KAAOM,GAAK6C,GAAMnD,KAAM,KACzBG,QAAQ,UAAWgD,GAAMwG,UACzBxJ,QAAQ,MAAOgD,GAAMuG,MACrBvJ,QAAQ,YAAa,4EACrBQ,WACLwC,GAAM6D,SAAW1G,GAAK6C,GAAM6D,UACvB7G,QAAQ,QAASgD,GAAMqG,QACvB7I,WACLwC,GAAM8D,UAAY3G,GAAK6C,GAAMkG,YACxBlJ,QAAQ,KAAMgD,GAAMgB,IACpBhE,QAAQ,UAAW,yBACnBA,QAAQ,YAAa,IACrBA,QAAQ,SAAU,IAClBA,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOgD,GAAMuG,MACrB/I,WACLwC,GAAMiB,WAAa9D,GAAK6C,GAAMiB,YACzBjE,QAAQ,YAAagD,GAAM8D,WAC3BtG,WAILwC,GAAMyG,OAAS,IAAKzG,IAIpBA,GAAMrE,IAAM,IACLqE,GAAMyG,OACTpD,MAAO,+JAIXrD,GAAMrE,IAAI0H,MAAQlG,GAAK6C,GAAMrE,IAAI0H,OAC5BrG,QAAQ,KAAMgD,GAAMgB,IACpBhE,QAAQ,UAAW,yBACnBA,QAAQ,aAAc,WACtBA,QAAQ,OAAQ,cAChBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOgD,GAAMuG,MACrB/I,WACLwC,GAAMrE,IAAImI,UAAY3G,GAAK6C,GAAMkG,YAC5BlJ,QAAQ,KAAMgD,GAAMgB,IACpBhE,QAAQ,UAAW,yBACnBA,QAAQ,YAAa,IACrBA,QAAQ,QAASgD,GAAMrE,IAAI0H,OAC3BrG,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOgD,GAAMuG,MACrB/I,WAILwC,GAAMnE,SAAW,IACVmE,GAAMyG,OACT5J,KAAMM,GAAK,8IAGNH,QAAQ,UAAWgD,GAAMwG,UACzBxJ,QAAQ,OAAQ,qKAIhBQ,WACL4F,IAAK,oEACLvC,QAAS,yBACTT,OAAQxC,GACRiG,SAAU,mCACVC,UAAW3G,GAAK6C,GAAMyG,OAAOP,YACxBlJ,QAAQ,KAAMgD,GAAMgB,IACpBhE,QAAQ,UAAW,mBACnBA,QAAQ,WAAYgD,GAAM6D,UAC1B7G,QAAQ,aAAc,WACtBA,QAAQ,UAAW,IACnBA,QAAQ,QAAS,IACjBA,QAAQ,QAAS,IACjBQ,YAOT,MAAMmD,GAAS,CACXoD,OAAQ,8CACR8B,SAAU,sCACVC,IAAKlI,GACLzI,IAAK,2JAMLiK,KAAM,gDACNkF,QAAS,0BACTE,OAAQ,wBACRkC,cAAe,wBACfjC,SAAU,CACNG,OAAQ,oEAGRQ,UAAW,mPACXC,UAAW,8MAEfnF,KAAM,sCACNyF,GAAI,wBACJC,IAAKhI,GACL2B,KAAM,8EACNsF,YAAa,6BAGjBlE,aAAsB,mBACtBA,GAAOkE,YAAc1H,GAAKwD,GAAOkE,YAAa,KAAK7H,QAAQ,eAAgB2D,GAAOgG,cAAcnJ,WAEhGmD,GAAOiG,UAAY,gDACnBjG,GAAOkG,eAAiB,aACxBlG,GAAOC,SAAW,eAClBD,GAAO6F,SAAWrJ,GAAK6C,GAAMwG,UAAUxJ,QAAQ,eAAa,UAAOQ,WACnEmD,GAAO8D,SAASG,OAASzH,GAAKwD,GAAO8D,SAASG,OAAQ,KACjD5H,QAAQ,SAAU2D,GAAOgG,cACzBnJ,WACLmD,GAAO8D,SAASW,UAAYjI,GAAKwD,GAAO8D,SAASW,UAAW,MACvDpI,QAAQ,SAAU2D,GAAOgG,cACzBnJ,WACLmD,GAAO8D,SAASY,UAAYlI,GAAKwD,GAAO8D,SAASY,UAAW,MACvDrI,QAAQ,SAAU2D,GAAOgG,cACzBnJ,WACLmD,GAAOkG,eAAiB1J,GAAKwD,GAAOkG,eAAgB,MAC/C7J,QAAQ,SAAU2D,GAAOgG,cACzBnJ,WACLmD,GAAOC,SAAWzD,GAAKwD,GAAOC,SAAU,MACnC5D,QAAQ,SAAU2D,GAAOgG,cACzBnJ,WACLmD,GAAOmG,QAAU,+BACjBnG,GAAOoG,OAAS,+IAChBpG,GAAOkF,SAAW1I,GAAKwD,GAAOkF,UACzB7I,QAAQ,SAAU2D,GAAOmG,SACzB9J,QAAQ,QAAS2D,GAAOoG,QACxBvJ,WACLmD,GAAOqG,WAAa,8EACpBrG,GAAOxL,IAAMgI,GAAKwD,GAAOxL,KACpB6H,QAAQ,UAAW2D,GAAO6F,UAC1BxJ,QAAQ,YAAa2D,GAAOqG,YAC5BxJ,WACLmD,GAAOwF,OAAS,sDAChBxF,GAAOsG,MAAQ,uCACftG,GAAOyF,OAAS,8DAChBzF,GAAOvB,KAAOjC,GAAKwD,GAAOvB,MACrBpC,QAAQ,QAAS2D,GAAOwF,QACxBnJ,QAAQ,OAAQ2D,GAAOsG,OACvBjK,QAAQ,QAAS2D,GAAOyF,QACxB5I,WACLmD,GAAO2D,QAAUnH,GAAKwD,GAAO2D,SACxBtH,QAAQ,QAAS2D,GAAOwF,QACxBnJ,QAAQ,MAAOgD,GAAMmG,QACrB3I,WACLmD,GAAO6D,OAASrH,GAAKwD,GAAO6D,QACvBxH,QAAQ,MAAOgD,GAAMmG,QACrB3I,WACLmD,GAAO+F,cAAgBvJ,GAAKwD,GAAO+F,cAAe,KAC7C1J,QAAQ,UAAW2D,GAAO2D,SAC1BtH,QAAQ,SAAU2D,GAAO6D,QACzBhH,WAILmD,GAAO8F,OAAS,IAAK9F,IAIrBA,GAAO9E,SAAW,IACX8E,GAAO8F,OACVS,OAAQ,CACJ1F,MAAO,WACP2F,OAAQ,iEACRC,OAAQ,cACRC,OAAQ,YAEZC,GAAI,CACA9F,MAAO,QACP2F,OAAQ,6DACRC,OAAQ,YACRC,OAAQ,WAEZjI,KAAMjC,GAAK,2BACNH,QAAQ,QAAS2D,GAAOwF,QACxB3I,WACL8G,QAASnH,GAAK,iCACTH,QAAQ,QAAS2D,GAAOwF,QACxB3I,YAKTmD,GAAOhF,IAAM,IACNgF,GAAO8F,OACV1C,OAAQ5G,GAAKwD,GAAOoD,QAAQ/G,QAAQ,KAAM,QAAQQ,WAClD+J,gBAAiB,4EACjBzB,IAAK,mEACLE,WAAY,6EACZJ,IAAK,+CACLrG,KAAM,8NAEVoB,GAAOhF,IAAImK,IAAM3I,GAAKwD,GAAOhF,IAAImK,IAAK,KACjC9I,QAAQ,QAAS2D,GAAOhF,IAAI4L,iBAC5B/J,WAILmD,GAAOlF,OAAS,IACTkF,GAAOhF,IACVgK,GAAIxI,GAAKwD,GAAOgF,IAAI3I,QAAQ,OAAQ,KAAKQ,WACzC+B,KAAMpC,GAAKwD,GAAOhF,IAAI4D,MACjBvC,QAAQ,OAAQ,iBAChBA,QAAQ,UAAW,KACnBQ,YAMT,MAAMgK,GACF7H,OACA/K,QACA4K,MACAxD,UACAyL,YACA,WAAAxR,CAAYrB,GAGR/H,KAAK8S,OAAS,GACd9S,KAAK8S,OAAO4E,MAAQ5L,OAAO+O,OAAO,MAClC7a,KAAK+H,QAAUA,GAAW4G,GAC1B3O,KAAK+H,QAAQoH,UAAYnP,KAAK+H,QAAQoH,WAAa,IAAI6D,GACvDhT,KAAKmP,UAAYnP,KAAK+H,QAAQoH,UAC9BnP,KAAKmP,UAAUpH,QAAU/H,KAAK+H,QAC9B/H,KAAKmP,UAAUsD,MAAQzS,KACvBA,KAAK4a,YAAc,GACnB5a,KAAK2S,MAAQ,CACTC,QAAQ,EACRuE,YAAY,EACZ9C,KAAK,GAET,MAAMpB,EAAQ,CACVE,MAAOA,GAAMyG,OACb9F,OAAQA,GAAO8F,QAEf5Z,KAAK+H,QAAQiH,UACbiE,EAAME,MAAQA,GAAMnE,SACpBiE,EAAMa,OAASA,GAAO9E,UAEjBhP,KAAK+H,QAAQ+G,MAClBmE,EAAME,MAAQA,GAAMrE,IAChB9O,KAAK+H,QAAQ6G,OACbqE,EAAMa,OAASA,GAAOlF,OAGtBqE,EAAMa,OAASA,GAAOhF,KAG9B9O,KAAKmP,UAAU8D,MAAQA,CAC3B,CAIA,gBAAWA,GACP,MAAO,CACHE,SACAW,UAER,CAIA,UAAOgH,CAAItT,EAAKO,GAEZ,OADc,IAAI4S,GAAO5S,GACZ+S,IAAItT,EACrB,CAIA,gBAAOuT,CAAUvT,EAAKO,GAElB,OADc,IAAI4S,GAAO5S,GACZgL,aAAavL,EAC9B,CAIA,GAAAsT,CAAItT,GAIA,IAAI0C,EACJ,IAJA1C,EAAMA,EACD2I,QAAQ,WAAY,MACzBnQ,KAAKsU,YAAY9M,EAAKxH,KAAK8S,QAEpB5I,EAAOlK,KAAK4a,YAAYhJ,SAC3B5R,KAAK+S,aAAa7I,EAAK1C,IAAK0C,EAAK4I,QAErC,OAAO9S,KAAK8S,MAChB,CACA,WAAAwB,CAAY9M,EAAKsL,EAAS,IAStB,IAAID,EACAmI,EACAC,EACAC,EACJ,IAXI1T,EADAxH,KAAK+H,QAAQiH,SACPxH,EAAI2I,QAAQ,MAAO,QAAQA,QAAQ,SAAU,IAG7C3I,EAAI2I,QAAQ,gBAAgB,CAACgL,EAAGC,EAASC,IACpCD,EAAU,OAAOjG,OAAOkG,EAAK/X,UAOrCkE,GACH,KAAIxH,KAAK+H,QAAQ8G,YACV7O,KAAK+H,QAAQ8G,WAAWsE,OACxBnT,KAAK+H,QAAQ8G,WAAWsE,MAAMkD,MAAMiF,MAC/BzI,EAAQyI,EAAaC,KAAK,CAAE9I,MAAOzS,MAAQwH,EAAKsL,MAChDtL,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,IACL,MAOnB,GAAIA,EAAQ7S,KAAKmP,UAAU+D,MAAM1L,GAC7BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QACL,IAArBuP,EAAML,IAAIlP,QAAgBwP,EAAOxP,OAAS,EAG1CwP,EAAOA,EAAOxP,OAAS,GAAGkP,KAAO,KAGjCM,EAAO5T,KAAK2T,QAKpB,GAAIA,EAAQ7S,KAAKmP,UAAUkE,KAAK7L,GAC5BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9B0X,EAAYlI,EAAOA,EAAOxP,OAAS,IAE/B0X,GAAiC,cAAnBA,EAAUvb,MAA2C,SAAnBub,EAAUvb,KAM1DqT,EAAO5T,KAAK2T,IALZmI,EAAUxI,KAAO,KAAOK,EAAML,IAC9BwI,EAAUtI,MAAQ,KAAOG,EAAMH,KAC/B1S,KAAK4a,YAAY5a,KAAK4a,YAAYtX,OAAS,GAAGkE,IAAMwT,EAAUtI,WAQtE,GAAIG,EAAQ7S,KAAKmP,UAAUoE,OAAO/L,GAC9BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAU6E,QAAQxM,GAC/BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUgF,GAAG3M,GAC1BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUiF,WAAW5M,GAClCA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUoF,KAAK/M,GAC5BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUa,KAAKxI,GAC5BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUoH,IAAI/O,GAC3BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9B0X,EAAYlI,EAAOA,EAAOxP,OAAS,IAC/B0X,GAAiC,cAAnBA,EAAUvb,MAA2C,SAAnBub,EAAUvb,KAKpDO,KAAK8S,OAAO4E,MAAM7E,EAAMvK,OAC9BtI,KAAK8S,OAAO4E,MAAM7E,EAAMvK,KAAO,CAC3BuI,KAAMgC,EAAMhC,KACZrR,MAAOqT,EAAMrT,SAPjBwb,EAAUxI,KAAO,KAAOK,EAAML,IAC9BwI,EAAUtI,MAAQ,KAAOG,EAAML,IAC/BxS,KAAK4a,YAAY5a,KAAK4a,YAAYtX,OAAS,GAAGkE,IAAMwT,EAAUtI,WAWtE,GAAIG,EAAQ7S,KAAKmP,UAAUqH,MAAMhP,GAC7BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAU6H,SAASxP,GAChCA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,OAFhB,CAQA,GADAoI,EAASzT,EACLxH,KAAK+H,QAAQ8G,YAAc7O,KAAK+H,QAAQ8G,WAAW2M,WAAY,CAC/D,IAAIC,EAAaC,IACjB,MAAMC,EAAUnU,EAAI4K,MAAM,GAC1B,IAAIwJ,EACJ5b,KAAK+H,QAAQ8G,WAAW2M,WAAWK,SAASC,IACxCF,EAAYE,EAAcP,KAAK,CAAE9I,MAAOzS,MAAQ2b,GACvB,iBAAdC,GAA0BA,GAAa,IAC9CH,EAAa1a,KAAK0U,IAAIgG,EAAYG,GACtC,IAEAH,EAAaC,KAAYD,GAAc,IACvCR,EAASzT,EAAI5B,UAAU,EAAG6V,EAAa,GAE/C,CACA,GAAIzb,KAAK2S,MAAM0B,MAAQxB,EAAQ7S,KAAKmP,UAAU8H,UAAUgE,IACpDD,EAAYlI,EAAOA,EAAOxP,OAAS,GAC/B4X,GAA2C,cAAnBF,EAAUvb,MAClCub,EAAUxI,KAAO,KAAOK,EAAML,IAC9BwI,EAAUtI,MAAQ,KAAOG,EAAMH,KAC/B1S,KAAK4a,YAAYtW,MACjBtE,KAAK4a,YAAY5a,KAAK4a,YAAYtX,OAAS,GAAGkE,IAAMwT,EAAUtI,MAG9DI,EAAO5T,KAAK2T,GAEhBqI,EAAwBD,EAAO3X,SAAWkE,EAAIlE,OAC9CkE,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,aAIlC,GAAIuP,EAAQ7S,KAAKmP,UAAUuD,KAAKlL,GAC5BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9B0X,EAAYlI,EAAOA,EAAOxP,OAAS,GAC/B0X,GAAgC,SAAnBA,EAAUvb,MACvBub,EAAUxI,KAAO,KAAOK,EAAML,IAC9BwI,EAAUtI,MAAQ,KAAOG,EAAMH,KAC/B1S,KAAK4a,YAAYtW,MACjBtE,KAAK4a,YAAY5a,KAAK4a,YAAYtX,OAAS,GAAGkE,IAAMwT,EAAUtI,MAG9DI,EAAO5T,KAAK2T,QAIpB,GAAIrL,EAAK,CACL,MAAMuU,EAAS,0BAA4BvU,EAAIwU,WAAW,GAC1D,GAAIhc,KAAK+H,QAAQmH,OAAQ,CACrB,GAAQjK,MAAM8W,GACd,KACJ,CAEI,MAAM,IAAIE,MAAMF,EAExB,CAzDA,CA4DJ,OADA/b,KAAK2S,MAAM0B,KAAM,EACVvB,CACX,CACA,MAAAgB,CAAOtM,EAAKsL,EAAS,IAEjB,OADA9S,KAAK4a,YAAY1b,KAAK,CAAEsI,MAAKsL,WACtBA,CACX,CAIA,YAAAC,CAAavL,EAAKsL,EAAS,IACvB,IAAID,EAAOmI,EAAWC,EAGlB5J,EACA6K,EAAcpE,EAFdD,EAAYrQ,EAIhB,GAAIxH,KAAK8S,OAAO4E,MAAO,CACnB,MAAMA,EAAQ5L,OAAOqQ,KAAKnc,KAAK8S,OAAO4E,OACtC,GAAIA,EAAMpU,OAAS,EACf,KAA8E,OAAtE+N,EAAQrR,KAAKmP,UAAU8D,MAAMa,OAAO+F,cAAc7I,KAAK6G,KACvDH,EAAMvT,SAASkN,EAAM,GAAGe,MAAMf,EAAM,GAAG+K,YAAY,KAAO,GAAI,MAC9DvE,EAAYA,EAAUzF,MAAM,EAAGf,EAAM3M,OAAS,IAAM,IAAIyQ,OAAO9D,EAAM,GAAG/N,OAAS,GAAK,IAAMuU,EAAUzF,MAAMpS,KAAKmP,UAAU8D,MAAMa,OAAO+F,cAAcpB,WAItK,CAEA,KAA0E,OAAlEpH,EAAQrR,KAAKmP,UAAU8D,MAAMa,OAAOiG,UAAU/I,KAAK6G,KACvDA,EAAYA,EAAUzF,MAAM,EAAGf,EAAM3M,OAAS,IAAM,IAAIyQ,OAAO9D,EAAM,GAAG/N,OAAS,GAAK,IAAMuU,EAAUzF,MAAMpS,KAAKmP,UAAU8D,MAAMa,OAAOiG,UAAUtB,WAGtJ,KAA+E,OAAvEpH,EAAQrR,KAAKmP,UAAU8D,MAAMa,OAAOkG,eAAehJ,KAAK6G,KAC5DA,EAAYA,EAAUzF,MAAM,EAAGf,EAAM3M,OAAS,KAAOmT,EAAUzF,MAAMpS,KAAKmP,UAAU8D,MAAMa,OAAOkG,eAAevB,WAEpH,KAAOjR,GAMH,GALK0U,IACDpE,EAAW,IAEfoE,GAAe,IAEXlc,KAAK+H,QAAQ8G,YACV7O,KAAK+H,QAAQ8G,WAAWiF,QACxB9T,KAAK+H,QAAQ8G,WAAWiF,OAAOuC,MAAMiF,MAChCzI,EAAQyI,EAAaC,KAAK,CAAE9I,MAAOzS,MAAQwH,EAAKsL,MAChDtL,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,IACL,MAOnB,GAAIA,EAAQ7S,KAAKmP,UAAU+H,OAAO1P,GAC9BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAU7G,IAAId,GAC3BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9B0X,EAAYlI,EAAOA,EAAOxP,OAAS,GAC/B0X,GAA4B,SAAfnI,EAAMpT,MAAsC,SAAnBub,EAAUvb,MAChDub,EAAUxI,KAAOK,EAAML,IACvBwI,EAAUtI,MAAQG,EAAMH,MAGxBI,EAAO5T,KAAK2T,QAKpB,GAAIA,EAAQ7S,KAAKmP,UAAUoD,KAAK/K,GAC5BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUsI,QAAQjQ,EAAKxH,KAAK8S,OAAO4E,OAChDlQ,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9B0X,EAAYlI,EAAOA,EAAOxP,OAAS,GAC/B0X,GAA4B,SAAfnI,EAAMpT,MAAsC,SAAnBub,EAAUvb,MAChDub,EAAUxI,KAAOK,EAAML,IACvBwI,EAAUtI,MAAQG,EAAMH,MAGxBI,EAAO5T,KAAK2T,QAKpB,GAAIA,EAAQ7S,KAAKmP,UAAUyI,SAASpQ,EAAKqQ,EAAWC,GAChDtQ,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAUwJ,SAASnR,GAChCA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAU2J,GAAGtR,GAC1BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAU4J,IAAIvR,GAC3BA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAIA,EAAQ7S,KAAKmP,UAAU6J,SAASxR,GAChCA,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,QAIhB,GAAK7S,KAAK2S,MAAMC,UAAWC,EAAQ7S,KAAKmP,UAAU8J,IAAIzR,IAAtD,CAQA,GADAyT,EAASzT,EACLxH,KAAK+H,QAAQ8G,YAAc7O,KAAK+H,QAAQ8G,WAAWwN,YAAa,CAChE,IAAIZ,EAAaC,IACjB,MAAMC,EAAUnU,EAAI4K,MAAM,GAC1B,IAAIwJ,EACJ5b,KAAK+H,QAAQ8G,WAAWwN,YAAYR,SAASC,IACzCF,EAAYE,EAAcP,KAAK,CAAE9I,MAAOzS,MAAQ2b,GACvB,iBAAdC,GAA0BA,GAAa,IAC9CH,EAAa1a,KAAK0U,IAAIgG,EAAYG,GACtC,IAEAH,EAAaC,KAAYD,GAAc,IACvCR,EAASzT,EAAI5B,UAAU,EAAG6V,EAAa,GAE/C,CACA,GAAI5I,EAAQ7S,KAAKmP,UAAUiK,WAAW6B,GAClCzT,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QACF,MAAxBuP,EAAML,IAAIJ,OAAO,KACjB0F,EAAWjF,EAAML,IAAIJ,OAAO,IAEhC8J,GAAe,EACflB,EAAYlI,EAAOA,EAAOxP,OAAS,GAC/B0X,GAAgC,SAAnBA,EAAUvb,MACvBub,EAAUxI,KAAOK,EAAML,IACvBwI,EAAUtI,MAAQG,EAAMH,MAGxBI,EAAO5T,KAAK2T,QAIpB,GAAIrL,EAAK,CACL,MAAMuU,EAAS,0BAA4BvU,EAAIwU,WAAW,GAC1D,GAAIhc,KAAK+H,QAAQmH,OAAQ,CACrB,GAAQjK,MAAM8W,GACd,KACJ,CAEI,MAAM,IAAIE,MAAMF,EAExB,CA3CA,MAHIvU,EAAMA,EAAI5B,UAAUiN,EAAML,IAAIlP,QAC9BwP,EAAO5T,KAAK2T,GA+CpB,OAAOC,CACX,EAMJ,MAAMwJ,GACFvU,QACA,WAAAqB,CAAYrB,GACR/H,KAAK+H,QAAUA,GAAW4G,EAC9B,CACA,IAAA0E,CAAKA,EAAMkJ,EAAYhL,GACnB,MAAMsC,GAAQ0I,GAAc,IAAIlL,MAAM,UAAU,GAEhD,OADAgC,EAAOA,EAAKlD,QAAQ,MAAO,IAAM,KAC5B0D,EAKE,8BACD,GAAOA,GACP,MACCtC,EAAU8B,EAAO,GAAOA,GAAM,IAC/B,kBARK,eACA9B,EAAU8B,EAAO,GAAOA,GAAM,IAC/B,iBAOd,CACA,UAAAe,CAAWoI,GACP,MAAO,iBAAiBA,kBAC5B,CACA,IAAAxM,CAAKA,EAAMmD,GACP,OAAOnD,CACX,CACA,OAAAgE,CAAQtB,EAAM7J,EAAO2J,GAEjB,MAAO,KAAK3J,KAAS6J,OAAU7J,MACnC,CACA,EAAAsL,GACI,MAAO,QACX,CACA,IAAAI,CAAKkI,EAAM/H,EAASC,GAChB,MAAMlV,EAAOiV,EAAU,KAAO,KAE9B,MAAO,IAAMjV,GADKiV,GAAqB,IAAVC,EAAgB,WAAaA,EAAQ,IAAO,IAC1C,MAAQ8H,EAAO,KAAOhd,EAAO,KAChE,CACA,QAAAid,CAAShK,EAAMsD,EAAMC,GACjB,MAAO,OAAOvD,UAClB,CACA,QAAAiK,CAAS1G,GACL,MAAO,WACAA,EAAU,cAAgB,IAC3B,8BACV,CACA,SAAAgB,CAAUvE,GACN,MAAO,MAAMA,SACjB,CACA,KAAA8D,CAAME,EAAQ+F,GAGV,OAFIA,IACAA,EAAO,UAAUA,aACd,qBAED/F,EACA,aACA+F,EACA,YACV,CACA,QAAAG,CAASjV,GACL,MAAO,SAASA,UACpB,CACA,SAAAkV,CAAUlV,EAASmV,GACf,MAAMrd,EAAOqd,EAAMpG,OAAS,KAAO,KAInC,OAHYoG,EAAMnG,MACZ,IAAIlX,YAAeqd,EAAMnG,UACzB,IAAIlX,MACGkI,EAAU,KAAKlI,MAChC,CAIA,MAAA4a,CAAO3H,GACH,MAAO,WAAWA,YACtB,CACA,EAAA+H,CAAG/H,GACC,MAAO,OAAOA,QAClB,CACA,QAAAiG,CAASjG,GACL,MAAO,SAASA,UACpB,CACA,EAAAoG,GACI,MAAO,MACX,CACA,GAAAC,CAAIrG,GACA,MAAO,QAAQA,SACnB,CACA,IAAAH,CAAK1B,EAAMrR,EAAOkT,GACd,MAAMqK,EAAYnM,GAASC,GAC3B,GAAkB,OAAdkM,EACA,OAAOrK,EAGX,IAAIsK,EAAM,aADVnM,EAAOkM,GACwB,IAK/B,OAJIvd,IACAwd,GAAO,WAAaxd,EAAQ,KAEhCwd,GAAO,IAAMtK,EAAO,OACbsK,CACX,CACA,KAAA5V,CAAMyJ,EAAMrR,EAAOkT,GACf,MAAMqK,EAAYnM,GAASC,GAC3B,GAAkB,OAAdkM,EACA,OAAOrK,EAGX,IAAIsK,EAAM,aADVnM,EAAOkM,WAC8BrK,KAKrC,OAJIlT,IACAwd,GAAO,WAAWxd,MAEtBwd,GAAO,IACAA,CACX,CACA,IAAAtK,CAAKA,GACD,OAAOA,CACX,EAOJ,MAAMuK,GAEF,MAAA5C,CAAO3H,GACH,OAAOA,CACX,CACA,EAAA+H,CAAG/H,GACC,OAAOA,CACX,CACA,QAAAiG,CAASjG,GACL,OAAOA,CACX,CACA,GAAAqG,CAAIrG,GACA,OAAOA,CACX,CACA,IAAA1C,CAAK0C,GACD,OAAOA,CACX,CACA,IAAAA,CAAKA,GACD,OAAOA,CACX,CACA,IAAAH,CAAK1B,EAAMrR,EAAOkT,GACd,MAAO,GAAKA,CAChB,CACA,KAAAtL,CAAMyJ,EAAMrR,EAAOkT,GACf,MAAO,GAAKA,CAChB,CACA,EAAAoG,GACI,MAAO,EACX,EAMJ,MAAMoE,GACFnV,QACAkH,SACAkO,aACA,WAAA/T,CAAYrB,GACR/H,KAAK+H,QAAUA,GAAW4G,GAC1B3O,KAAK+H,QAAQkH,SAAWjP,KAAK+H,QAAQkH,UAAY,IAAIqN,GACrDtc,KAAKiP,SAAWjP,KAAK+H,QAAQkH,SAC7BjP,KAAKiP,SAASlH,QAAU/H,KAAK+H,QAC7B/H,KAAKmd,aAAe,IAAIF,EAC5B,CAIA,YAAOG,CAAMtK,EAAQ/K,GAEjB,OADe,IAAImV,GAAQnV,GACbqV,MAAMtK,EACxB,CAIA,kBAAOuK,CAAYvK,EAAQ/K,GAEvB,OADe,IAAImV,GAAQnV,GACbsV,YAAYvK,EAC9B,CAIA,KAAAsK,CAAMtK,EAAQuB,GAAM,GAChB,IAAI2I,EAAM,GACV,IAAK,IAAItL,EAAI,EAAGA,EAAIoB,EAAOxP,OAAQoO,IAAK,CACpC,MAAMmB,EAAQC,EAAOpB,GAErB,GAAI1R,KAAK+H,QAAQ8G,YAAc7O,KAAK+H,QAAQ8G,WAAWyO,WAAatd,KAAK+H,QAAQ8G,WAAWyO,UAAUzK,EAAMpT,MAAO,CAC/G,MAAM8d,EAAe1K,EACf2K,EAAMxd,KAAK+H,QAAQ8G,WAAWyO,UAAUC,EAAa9d,MAAM8b,KAAK,CAAEkC,OAAQzd,MAAQud,GACxF,IAAY,IAARC,IAAkB,CAAC,QAAS,KAAM,UAAW,OAAQ,QAAS,aAAc,OAAQ,OAAQ,YAAa,QAAQrZ,SAASoZ,EAAa9d,MAAO,CAC9Iud,GAAOQ,GAAO,GACd,QACJ,CACJ,CACA,OAAQ3K,EAAMpT,MACV,IAAK,QACD,SAEJ,IAAK,KACDud,GAAOhd,KAAKiP,SAASkF,KACrB,SAEJ,IAAK,UAAW,CACZ,MAAMuJ,EAAe7K,EACrBmK,GAAOhd,KAAKiP,SAAS+E,QAAQhU,KAAKqd,YAAYK,EAAa5K,QAAS4K,EAAaxJ,MAAgBlU,KAAKqd,YAAYK,EAAa5K,OAAQ9S,KAAKmd,cA3uDhJhN,QAAQC,IAAc,CAAC+K,EAAG3M,IAExB,WADVA,EAAIA,EAAE9B,eAEK,IACS,MAAhB8B,EAAE2D,OAAO,GACc,MAAhB3D,EAAE2D,OAAO,GACVzS,OAAOie,aAAaC,SAASpP,EAAE5I,UAAU,GAAI,KAC7ClG,OAAOie,cAAcnP,EAAE5I,UAAU,IAEpC,MAmuDK,QACJ,CACA,IAAK,OAAQ,CACT,MAAMiY,EAAYhL,EAClBmK,GAAOhd,KAAKiP,SAASoE,KAAKwK,EAAUnL,KAAMmL,EAAUhK,OAAQgK,EAAUtM,SACtE,QACJ,CACA,IAAK,QAAS,CACV,MAAMuM,EAAajL,EACnB,IAAI6D,EAAS,GAETqH,EAAO,GACX,IAAK,IAAIlH,EAAI,EAAGA,EAAIiH,EAAWpH,OAAOpT,OAAQuT,IAC1CkH,GAAQ/d,KAAKiP,SAAS4N,UAAU7c,KAAKqd,YAAYS,EAAWpH,OAAOG,GAAG/D,QAAS,CAAE4D,QAAQ,EAAMC,MAAOmH,EAAWnH,MAAME,KAE3HH,GAAU1W,KAAKiP,SAAS2N,SAASmB,GACjC,IAAItB,EAAO,GACX,IAAK,IAAI5F,EAAI,EAAGA,EAAIiH,EAAWlH,KAAKtT,OAAQuT,IAAK,CAC7C,MAAME,EAAM+G,EAAWlH,KAAKC,GAC5BkH,EAAO,GACP,IAAK,IAAIjH,EAAI,EAAGA,EAAIC,EAAIzT,OAAQwT,IAC5BiH,GAAQ/d,KAAKiP,SAAS4N,UAAU7c,KAAKqd,YAAYtG,EAAID,GAAGhE,QAAS,CAAE4D,QAAQ,EAAOC,MAAOmH,EAAWnH,MAAMG,KAE9G2F,GAAQzc,KAAKiP,SAAS2N,SAASmB,EACnC,CACAf,GAAOhd,KAAKiP,SAASuH,MAAME,EAAQ+F,GACnC,QACJ,CACA,IAAK,aAAc,CACf,MAAMuB,EAAkBnL,EAClB4J,EAAOzc,KAAKod,MAAMY,EAAgBlL,QACxCkK,GAAOhd,KAAKiP,SAASmF,WAAWqI,GAChC,QACJ,CACA,IAAK,OAAQ,CACT,MAAMwB,EAAYpL,EACZ6B,EAAUuJ,EAAUvJ,QACpBC,EAAQsJ,EAAUtJ,MAClBC,EAAQqJ,EAAUrJ,MACxB,IAAI6H,EAAO,GACX,IAAK,IAAI5F,EAAI,EAAGA,EAAIoH,EAAUpJ,MAAMvR,OAAQuT,IAAK,CAC7C,MAAMJ,EAAOwH,EAAUpJ,MAAMgC,GACvBZ,EAAUQ,EAAKR,QACfD,EAAOS,EAAKT,KAClB,IAAIkI,EAAW,GACf,GAAIzH,EAAKT,KAAM,CACX,MAAM2G,EAAW3c,KAAKiP,SAAS0N,WAAW1G,GACtCrB,EACI6B,EAAK3D,OAAOxP,OAAS,GAA6B,cAAxBmT,EAAK3D,OAAO,GAAGrT,MACzCgX,EAAK3D,OAAO,GAAGJ,KAAOiK,EAAW,IAAMlG,EAAK3D,OAAO,GAAGJ,KAClD+D,EAAK3D,OAAO,GAAGA,QAAU2D,EAAK3D,OAAO,GAAGA,OAAOxP,OAAS,GAAuC,SAAlCmT,EAAK3D,OAAO,GAAGA,OAAO,GAAGrT,OACtFgX,EAAK3D,OAAO,GAAGA,OAAO,GAAGJ,KAAOiK,EAAW,IAAMlG,EAAK3D,OAAO,GAAGA,OAAO,GAAGJ,OAI9E+D,EAAK3D,OAAOqL,QAAQ,CAChB1e,KAAM,OACNiT,KAAMiK,EAAW,MAKzBuB,GAAYvB,EAAW,GAE/B,CACAuB,GAAYle,KAAKod,MAAM3G,EAAK3D,OAAQ8B,GACpC6H,GAAQzc,KAAKiP,SAASyN,SAASwB,EAAUlI,IAAQC,EACrD,CACA+G,GAAOhd,KAAKiP,SAASsF,KAAKkI,EAAM/H,EAASC,GACzC,QACJ,CACA,IAAK,OAAQ,CACT,MAAMyJ,EAAYvL,EAClBmK,GAAOhd,KAAKiP,SAASe,KAAKoO,EAAU1L,KAAM0L,EAAUjL,OACpD,QACJ,CACA,IAAK,YAAa,CACd,MAAMkL,EAAiBxL,EACvBmK,GAAOhd,KAAKiP,SAASgI,UAAUjX,KAAKqd,YAAYgB,EAAevL,SAC/D,QACJ,CACA,IAAK,OAAQ,CACT,IAAIwL,EAAYzL,EACZ4J,EAAO6B,EAAUxL,OAAS9S,KAAKqd,YAAYiB,EAAUxL,QAAUwL,EAAU5L,KAC7E,KAAOhB,EAAI,EAAIoB,EAAOxP,QAAiC,SAAvBwP,EAAOpB,EAAI,GAAGjS,MAC1C6e,EAAYxL,IAASpB,GACrB+K,GAAQ,MAAQ6B,EAAUxL,OAAS9S,KAAKqd,YAAYiB,EAAUxL,QAAUwL,EAAU5L,MAEtFsK,GAAO3I,EAAMrU,KAAKiP,SAASgI,UAAUwF,GAAQA,EAC7C,QACJ,CACA,QAAS,CACL,MAAMV,EAAS,eAAiBlJ,EAAMpT,KAAO,wBAC7C,GAAIO,KAAK+H,QAAQmH,OAEb,OADA,GAAQjK,MAAM8W,GACP,GAGP,MAAM,IAAIE,MAAMF,EAExB,EAER,CACA,OAAOiB,CACX,CAIA,WAAAK,CAAYvK,EAAQ7D,GAChBA,EAAWA,GAAYjP,KAAKiP,SAC5B,IAAI+N,EAAM,GACV,IAAK,IAAItL,EAAI,EAAGA,EAAIoB,EAAOxP,OAAQoO,IAAK,CACpC,MAAMmB,EAAQC,EAAOpB,GAErB,GAAI1R,KAAK+H,QAAQ8G,YAAc7O,KAAK+H,QAAQ8G,WAAWyO,WAAatd,KAAK+H,QAAQ8G,WAAWyO,UAAUzK,EAAMpT,MAAO,CAC/G,MAAM+d,EAAMxd,KAAK+H,QAAQ8G,WAAWyO,UAAUzK,EAAMpT,MAAM8b,KAAK,CAAEkC,OAAQzd,MAAQ6S,GACjF,IAAY,IAAR2K,IAAkB,CAAC,SAAU,OAAQ,OAAQ,QAAS,SAAU,KAAM,WAAY,KAAM,MAAO,QAAQrZ,SAAS0O,EAAMpT,MAAO,CAC7Hud,GAAOQ,GAAO,GACd,QACJ,CACJ,CACA,OAAQ3K,EAAMpT,MACV,IAAK,SAAU,CACX,MAAM8e,EAAc1L,EACpBmK,GAAO/N,EAASyD,KAAK6L,EAAY7L,MACjC,KACJ,CACA,IAAK,OAAQ,CACT,MAAM8L,EAAW3L,EACjBmK,GAAO/N,EAASe,KAAKwO,EAAS9L,MAC9B,KACJ,CACA,IAAK,OAAQ,CACT,MAAM+L,EAAY5L,EAClBmK,GAAO/N,EAASsD,KAAKkM,EAAU5N,KAAM4N,EAAUjf,MAAOQ,KAAKqd,YAAYoB,EAAU3L,OAAQ7D,IACzF,KACJ,CACA,IAAK,QAAS,CACV,MAAMyP,EAAa7L,EACnBmK,GAAO/N,EAAS7H,MAAMsX,EAAW7N,KAAM6N,EAAWlf,MAAOkf,EAAWhM,MACpE,KACJ,CACA,IAAK,SAAU,CACX,MAAMiM,EAAc9L,EACpBmK,GAAO/N,EAASoL,OAAOra,KAAKqd,YAAYsB,EAAY7L,OAAQ7D,IAC5D,KACJ,CACA,IAAK,KAAM,CACP,MAAM2P,EAAU/L,EAChBmK,GAAO/N,EAASwL,GAAGza,KAAKqd,YAAYuB,EAAQ9L,OAAQ7D,IACpD,KACJ,CACA,IAAK,WAAY,CACb,MAAM4P,EAAgBhM,EACtBmK,GAAO/N,EAAS0J,SAASkG,EAAcnM,MACvC,KACJ,CACA,IAAK,KACDsK,GAAO/N,EAAS6J,KAChB,MAEJ,IAAK,MAAO,CACR,MAAMgG,EAAWjM,EACjBmK,GAAO/N,EAAS8J,IAAI/Y,KAAKqd,YAAYyB,EAAShM,OAAQ7D,IACtD,KACJ,CACA,IAAK,OAAQ,CACT,MAAMqP,EAAYzL,EAClBmK,GAAO/N,EAASyD,KAAK4L,EAAU5L,MAC/B,KACJ,CACA,QAAS,CACL,MAAMqJ,EAAS,eAAiBlJ,EAAMpT,KAAO,wBAC7C,GAAIO,KAAK+H,QAAQmH,OAEb,OADA,GAAQjK,MAAM8W,GACP,GAGP,MAAM,IAAIE,MAAMF,EAExB,EAER,CACA,OAAOiB,CACX,EAGJ,MAAM+B,GACFhX,QACA,WAAAqB,CAAYrB,GACR/H,KAAK+H,QAAUA,GAAW4G,EAC9B,CACAqQ,wBAA0B,IAAIC,IAAI,CAC9B,aACA,gBAKJ,UAAAC,CAAWC,GACP,OAAOA,CACX,CAIA,WAAAC,CAAYpP,GACR,OAAOA,CACX,EA4RJ,MAAMqP,GAAiB,IAzRvB,MACIC,SAh/DO,CACHpU,OAAO,EACP0D,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,MAAO,KACPC,UAAU,EACVC,SAAU,KACVC,QAAQ,EACRC,UAAW,KACXC,WAAY,MAu+DhBrH,QAAU/H,KAAKuf,WACfnC,MAAQpd,MAAK,EAAe2a,GAAOG,IAAKoC,GAAQE,OAChDC,YAAcrd,MAAK,EAAe2a,GAAOI,UAAWmC,GAAQG,aAC5DmC,OAAStC,GACTuC,SAAWnD,GACXoD,aAAezC,GACf0C,MAAQhF,GACRiF,UAAY5M,GACZ6M,MAAQd,GACR,WAAA3V,IAAeiC,GACXrL,KAAK8f,OAAOzU,EAChB,CAIA,UAAA+D,CAAW0D,EAAQiN,GACf,IAAIC,EAAS,GACb,IAAK,MAAMnN,KAASC,EAEhB,OADAkN,EAASA,EAAOzb,OAAOwb,EAASxE,KAAKvb,KAAM6S,IACnCA,EAAMpT,MACV,IAAK,QAAS,CACV,MAAMqe,EAAajL,EACnB,IAAK,MAAMkL,KAAQD,EAAWpH,OAC1BsJ,EAASA,EAAOzb,OAAOvE,KAAKoP,WAAW2O,EAAKjL,OAAQiN,IAExD,IAAK,MAAMhJ,KAAO+G,EAAWlH,KACzB,IAAK,MAAMmH,KAAQhH,EACfiJ,EAASA,EAAOzb,OAAOvE,KAAKoP,WAAW2O,EAAKjL,OAAQiN,IAG5D,KACJ,CACA,IAAK,OAAQ,CACT,MAAM9B,EAAYpL,EAClBmN,EAASA,EAAOzb,OAAOvE,KAAKoP,WAAW6O,EAAUpJ,MAAOkL,IACxD,KACJ,CACA,QAAS,CACL,MAAMxC,EAAe1K,EACjB7S,KAAKsf,SAASzQ,YAAYoR,cAAc1C,EAAa9d,MACrDO,KAAKsf,SAASzQ,WAAWoR,YAAY1C,EAAa9d,MAAMoc,SAASoE,IAC7DD,EAASA,EAAOzb,OAAOvE,KAAKoP,WAAWmO,EAAa0C,GAAcF,GAAU,IAG3ExC,EAAazK,SAClBkN,EAASA,EAAOzb,OAAOvE,KAAKoP,WAAWmO,EAAazK,OAAQiN,IAEpE,EAGR,OAAOC,CACX,CACA,GAAAF,IAAOzU,GACH,MAAMwD,EAAa7O,KAAKsf,SAASzQ,YAAc,CAAEyO,UAAW,CAAC,EAAG2C,YAAa,CAAC,GAgJ9E,OA/IA5U,EAAKwQ,SAASqE,IAEV,MAAMC,EAAO,IAAKD,GA8DlB,GA5DAC,EAAKjV,MAAQlL,KAAKsf,SAASpU,OAASiV,EAAKjV,QAAS,EAE9CgV,EAAKrR,aACLqR,EAAKrR,WAAWgN,SAASuE,IACrB,IAAKA,EAAI/gB,KACL,MAAM,IAAI4c,MAAM,2BAEpB,GAAI,aAAcmE,EAAK,CACnB,MAAMC,EAAexR,EAAWyO,UAAU8C,EAAI/gB,MAG1CwP,EAAWyO,UAAU8C,EAAI/gB,MAFzBghB,EAEiC,YAAahV,GAC1C,IAAImS,EAAM4C,EAAInR,SAASqR,MAAMtgB,KAAMqL,GAInC,OAHY,IAARmS,IACAA,EAAM6C,EAAaC,MAAMtgB,KAAMqL,IAE5BmS,CACX,EAGiC4C,EAAInR,QAE7C,CACA,GAAI,cAAemR,EAAK,CACpB,IAAKA,EAAIvX,OAAwB,UAAduX,EAAIvX,OAAmC,WAAduX,EAAIvX,MAC5C,MAAM,IAAIoT,MAAM,+CAEpB,MAAMsE,EAAW1R,EAAWuR,EAAIvX,OAC5B0X,EACAA,EAASpC,QAAQiC,EAAIjR,WAGrBN,EAAWuR,EAAIvX,OAAS,CAACuX,EAAIjR,WAE7BiR,EAAIzL,QACc,UAAdyL,EAAIvX,MACAgG,EAAW2M,WACX3M,EAAW2M,WAAWtc,KAAKkhB,EAAIzL,OAG/B9F,EAAW2M,WAAa,CAAC4E,EAAIzL,OAGd,WAAdyL,EAAIvX,QACLgG,EAAWwN,YACXxN,EAAWwN,YAAYnd,KAAKkhB,EAAIzL,OAGhC9F,EAAWwN,YAAc,CAAC+D,EAAIzL,QAI9C,CACI,gBAAiByL,GAAOA,EAAIH,cAC5BpR,EAAWoR,YAAYG,EAAI/gB,MAAQ+gB,EAAIH,YAC3C,IAEJE,EAAKtR,WAAaA,GAGlBqR,EAAKjR,SAAU,CACf,MAAMA,EAAWjP,KAAKsf,SAASrQ,UAAY,IAAIqN,GAAUtc,KAAKsf,UAC9D,IAAK,MAAMkB,KAAQN,EAAKjR,SAAU,CAC9B,MAAMwR,EAAeP,EAAKjR,SAASuR,GAC7BE,EAAcF,EACdH,EAAepR,EAASyR,GAE9BzR,EAASyR,GAAe,IAAIrV,KACxB,IAAImS,EAAMiD,EAAaH,MAAMrR,EAAU5D,GAIvC,OAHY,IAARmS,IACAA,EAAM6C,EAAaC,MAAMrR,EAAU5D,IAEhCmS,GAAO,EAAE,CAExB,CACA2C,EAAKlR,SAAWA,CACpB,CACA,GAAIiR,EAAK/Q,UAAW,CAChB,MAAMA,EAAYnP,KAAKsf,SAASnQ,WAAa,IAAI6D,GAAWhT,KAAKsf,UACjE,IAAK,MAAMkB,KAAQN,EAAK/Q,UAAW,CAC/B,MAAMwR,EAAgBT,EAAK/Q,UAAUqR,GAC/BI,EAAeJ,EACfK,EAAgB1R,EAAUyR,GAEhCzR,EAAUyR,GAAgB,IAAIvV,KAC1B,IAAImS,EAAMmD,EAAcL,MAAMnR,EAAW9D,GAIzC,OAHY,IAARmS,IACAA,EAAMqD,EAAcP,MAAMnR,EAAW9D,IAElCmS,CAAG,CAElB,CACA2C,EAAKhR,UAAYA,CACrB,CAEA,GAAI+Q,EAAKnR,MAAO,CACZ,MAAMA,EAAQ/O,KAAKsf,SAASvQ,OAAS,IAAIgQ,GACzC,IAAK,MAAMyB,KAAQN,EAAKnR,MAAO,CAC3B,MAAM+R,EAAYZ,EAAKnR,MAAMyR,GACvBO,EAAWP,EACXQ,EAAWjS,EAAMgS,GACnBhC,GAAOkC,iBAAiBC,IAAIV,GAC5BzR,EAAMgS,GAAaI,IACf,GAAInhB,KAAKsf,SAASpU,MACd,OAAOU,QAAQR,QAAQ0V,EAAUvF,KAAKxM,EAAOoS,IAAM1f,MAAK+b,GAC7CwD,EAASzF,KAAKxM,EAAOyO,KAGpC,MAAMA,EAAMsD,EAAUvF,KAAKxM,EAAOoS,GAClC,OAAOH,EAASzF,KAAKxM,EAAOyO,EAAI,EAIpCzO,EAAMgS,GAAY,IAAI1V,KAClB,IAAImS,EAAMsD,EAAUR,MAAMvR,EAAO1D,GAIjC,OAHY,IAARmS,IACAA,EAAMwD,EAASV,MAAMvR,EAAO1D,IAEzBmS,CAAG,CAGtB,CACA2C,EAAKpR,MAAQA,CACjB,CAEA,GAAImR,EAAK9Q,WAAY,CACjB,MAAMA,EAAapP,KAAKsf,SAASlQ,WAC3BgS,EAAiBlB,EAAK9Q,WAC5B+Q,EAAK/Q,WAAa,SAAUyD,GACxB,IAAImN,EAAS,GAKb,OAJAA,EAAO9gB,KAAKkiB,EAAe7F,KAAKvb,KAAM6S,IAClCzD,IACA4Q,EAASA,EAAOzb,OAAO6K,EAAWmM,KAAKvb,KAAM6S,KAE1CmN,CACX,CACJ,CACAhgB,KAAKsf,SAAW,IAAKtf,KAAKsf,YAAaa,EAAM,IAE1CngB,IACX,CACA,UAAAuf,CAAW/O,GAEP,OADAxQ,KAAKsf,SAAW,IAAKtf,KAAKsf,YAAa9O,GAChCxQ,IACX,CACA,KAAAyS,CAAMjL,EAAKO,GACP,OAAO4S,GAAOG,IAAItT,EAAKO,GAAW/H,KAAKsf,SAC3C,CACA,MAAA7B,CAAO3K,EAAQ/K,GACX,OAAOmV,GAAQE,MAAMtK,EAAQ/K,GAAW/H,KAAKsf,SACjD,CACA,GAAe7M,EAAOgL,GAClB,MAAO,CAACjW,EAAKO,KACT,MAAMsZ,EAAU,IAAKtZ,GACfyI,EAAM,IAAKxQ,KAAKsf,YAAa+B,IAEP,IAAxBrhB,KAAKsf,SAASpU,QAAoC,IAAlBmW,EAAQnW,QACnCsF,EAAItB,QACL,GAAQoS,KAAK,sHAEjB9Q,EAAItF,OAAQ,GAEhB,MAAMqW,EAAavhB,MAAK,IAAWwQ,EAAItB,SAAUsB,EAAItF,OAErD,GAAI,MAAO1D,EACP,OAAO+Z,EAAW,IAAItF,MAAM,mDAEhC,GAAmB,iBAARzU,EACP,OAAO+Z,EAAW,IAAItF,MAAM,wCACtBnQ,OAAO0V,UAAU7b,SAAS4V,KAAK/T,GAAO,sBAKhD,GAHIgJ,EAAIzB,QACJyB,EAAIzB,MAAMhH,QAAUyI,GAEpBA,EAAItF,MACJ,OAAOU,QAAQR,QAAQoF,EAAIzB,MAAQyB,EAAIzB,MAAMmQ,WAAW1X,GAAOA,GAC1D/F,MAAK+F,GAAOiL,EAAMjL,EAAKgJ,KACvB/O,MAAKqR,GAAUtC,EAAIpB,WAAaxD,QAAQ6V,IAAIzhB,KAAKoP,WAAW0D,EAAQtC,EAAIpB,aAAa3N,MAAK,IAAMqR,IAAUA,IAC1GrR,MAAKqR,GAAU2K,EAAO3K,EAAQtC,KAC9B/O,MAAKuO,GAAQQ,EAAIzB,MAAQyB,EAAIzB,MAAMqQ,YAAYpP,GAAQA,IACvDhL,MAAMuc,GAEf,IACQ/Q,EAAIzB,QACJvH,EAAMgJ,EAAIzB,MAAMmQ,WAAW1X,IAE/B,MAAMsL,EAASL,EAAMjL,EAAKgJ,GACtBA,EAAIpB,YACJpP,KAAKoP,WAAW0D,EAAQtC,EAAIpB,YAEhC,IAAIY,EAAOyN,EAAO3K,EAAQtC,GAI1B,OAHIA,EAAIzB,QACJiB,EAAOQ,EAAIzB,MAAMqQ,YAAYpP,IAE1BA,CACX,CACA,MAAOzI,GACH,OAAOga,EAAWha,EACtB,EAER,CACA,GAAS2H,EAAQhE,GACb,OAAQ3D,IAEJ,GADAA,EAAEma,SAAW,8DACTxS,EAAQ,CACR,MAAMyS,EAAM,iCACN,GAAOpa,EAAEma,QAAU,IAAI,GACvB,SACN,OAAIxW,EACOU,QAAQR,QAAQuW,GAEpBA,CACX,CACA,GAAIzW,EACA,OAAOU,QAAQgW,OAAOra,GAE1B,MAAMA,CAAC,CAEf,GAIJ,SAASsa,GAAOra,EAAKgJ,GACjB,OAAO6O,GAAejC,MAAM5V,EAAKgJ,EACrC,CAMAqR,GAAO9Z,QACH8Z,GAAOtC,WAAa,SAAUxX,GAI1B,OAHAsX,GAAeE,WAAWxX,GAC1B8Z,GAAOvC,SAAWD,GAAeC,SACjCjQ,GAAewS,GAAOvC,UACfuC,EACX,EAIJA,GAAOC,YA5xEP,WACI,MAAO,CACH5W,OAAO,EACP0D,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,MAAO,KACPC,UAAU,EACVC,SAAU,KACVC,QAAQ,EACRC,UAAW,KACXC,WAAY,KAEpB,EAgxEAyS,GAAOvC,SAAW3Q,GAIlBkT,GAAO/B,IAAM,YAAazU,GAItB,OAHAgU,GAAeS,OAAOzU,GACtBwW,GAAOvC,SAAWD,GAAeC,SACjCjQ,GAAewS,GAAOvC,UACfuC,EACX,EAIAA,GAAOzS,WAAa,SAAU0D,EAAQiN,GAClC,OAAOV,GAAejQ,WAAW0D,EAAQiN,EAC7C,EAQA8B,GAAOxE,YAAcgC,GAAehC,YAIpCwE,GAAOrC,OAAStC,GAChB2E,GAAOpE,OAASP,GAAQE,MACxByE,GAAOpC,SAAWnD,GAClBuF,GAAOnC,aAAezC,GACtB4E,GAAOlC,MAAQhF,GACfkH,GAAOpP,MAAQkI,GAAOG,IACtB+G,GAAOjC,UAAY5M,GACnB6O,GAAOhC,MAAQd,GACf8C,GAAOzE,MAAQyE,GACCA,GAAO9Z,QACJ8Z,GAAOtC,WACdsC,GAAO/B,IACA+B,GAAOzS,WACNyS,GAAOxE,YAEZH,GAAQE,MACTzC,GAAOG,I,2BCxzErB,MC9BoL,GD8BpL,CACAzb,KAAA,WACAE,MAAA,CACAmT,KAAA,CACAjT,KAAAC,OACAE,QAAA,KAGAiB,SAAA,CACAkhB,cAAAA,GACA,MAAA9S,EAAA,IAAA4S,GAAApC,SA+BA,OA9BAxQ,EAAAsD,KAAA,SAAA1B,EAAArR,EAAAkT,GACA,IAAAsP,EACA,IACAA,EAAAC,mBAAAC,SAAArR,IACAV,QAAA,cACAzD,aACA,OAAAnF,GACA,QACA,CAEA,OAAAya,EAAArd,QAAA,cAAAqd,EAAArd,QAAA,UACA,SAGA,IAAAqY,EAAA,YAAAnM,EAAA,8BAKA,OAJArR,IACAwd,GAAA,WAAAxd,EAAA,KAEAwd,GAAA,IAAAtK,EAAA,OACAsK,CACA,EACA/N,EAAA7H,MAAA,SAAAyJ,EAAArR,EAAAkT,GACA,OAAAA,GAGAlT,CACA,EACAyP,EAAAmF,WAAA,SAAAoI,GACA,OAAAA,CACA,EACA2F,KAAAA,SACAN,GAAA,KAAAnP,KAAAf,OAAA,CACA1C,WACAH,KAAA,EACAsT,WAAA,EACAC,QAAA,EACAzT,QAAA,EACAI,UAAA,EACAsT,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,I,gBE7FI,GAAU,CAAC,EAEf,GAAQ1a,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ICTW,WAAkB,IAAItI,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,MAAM,CAACG,YAAY,oBAAoBuiB,SAAS,CAAC,UAAY5iB,EAAIY,GAAGZ,EAAIgiB,kBAC9I,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnBsJ,GC2JtL,CACA1iB,KAAA,aAEAwG,WAAA,CACA+c,SAAA,KACAC,SAAAA,IAEA7c,OAAA,CAAAC,EAAAkG,GAEA5M,MAAA,CACA8C,IAAA,CACA5C,KAAAqM,OACAgX,UAAA,IAIAnhB,KAAAA,KACA,CACAyB,sBAAA,IAIAvC,SAAA,CACAkiB,WAAAA,GACA,yCAAAxe,OAAA,KAAAlC,IAAAjD,GACA,EACA4jB,OAAAA,GACA,YAAA3gB,IAAA2gB,QACA3hB,EAAA,iCAAA4hB,SAAA,QAAA5gB,IAAA2gB,SAAAE,gBAEA,IACA,EACAC,MAAAA,GACA,4BAAA9gB,IAAA8gB,OACA,CACA,CACA,cAAA9gB,IAAA8gB,SAIA,KAAA9gB,IAAA8gB,OAAA,UACA,MAAA9gB,IAAA8gB,QAEA,KAAA9gB,IAAA8gB,MACA,EACA/gB,SAAAA,GACA,YAAAC,IAAAC,OAAAC,KAAAC,IAAA,CAAApD,GAAAoD,EAAAnD,KAAAmD,KACA,EACAF,MAAAA,GACA,YAAAI,OAAAC,QAAAygB,UACA/W,QAAA7J,GAAA,aAAAA,EAAApD,KACAuN,MAAA,CAAAC,EAAAC,IAAAD,EAAAvN,KAAAgkB,cAAAxW,EAAAxN,OACA,GAEAgE,OAAAA,GACA,KAAAhB,IAAAC,OAAAgB,OAAA,IACA,KAAAF,sBAAA,EAEA,G,gBC1MI,GAAU,CAAC,EAEf,GAAQ4E,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,IVTW,WAAkB,IAAItI,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,MAAM,CAACG,YAAY,wBAAwB,CAAEL,EAAIsC,IAAI2G,QAAUjJ,EAAIkE,iBAAiBlE,EAAIsC,KAAMpC,EAAG,MAAM,CAACG,YAAY,+BAA+B,CAACH,EAAG,QAAQ,CAACqjB,WAAW,CAAC,CAACjkB,KAAK,QAAQkkB,QAAQ,UAAUla,MAAOtJ,EAAIqD,qBAAsBogB,WAAW,yBAAyBpjB,YAAY,mCAAmCC,MAAM,CAAC,GAAKN,EAAI2H,OAAO,gBAAiB3H,EAAIsC,IAAIjD,IAAI,KAAO,YAAYujB,SAAS,CAAC,MAAQ5iB,EAAIsC,IAAIjD,GAAG,QAAUsM,MAAM+X,QAAQ1jB,EAAIqD,sBAAsBrD,EAAI2jB,GAAG3jB,EAAIqD,qBAAqBrD,EAAIsC,IAAIjD,KAAK,EAAGW,EAAIqD,sBAAuB9C,GAAG,CAAC,OAAS,CAAC,SAASC,GAAQ,IAAIojB,EAAI5jB,EAAIqD,qBAAqBwgB,EAAKrjB,EAAOsjB,OAAOC,IAAIF,EAAK3N,QAAuB,GAAGvK,MAAM+X,QAAQE,GAAK,CAAC,IAAII,EAAIhkB,EAAIsC,IAAIjD,GAAG4kB,EAAIjkB,EAAI2jB,GAAGC,EAAII,GAAQH,EAAK3N,QAAS+N,EAAI,IAAIjkB,EAAIqD,qBAAqBugB,EAAIpf,OAAO,CAACwf,KAAYC,GAAK,IAAIjkB,EAAIqD,qBAAqBugB,EAAIvR,MAAM,EAAE4R,GAAKzf,OAAOof,EAAIvR,MAAM4R,EAAI,IAAK,MAAMjkB,EAAIqD,qBAAqB0gB,CAAI,EAAE/jB,EAAIgE,kBAAkBhE,EAAIW,GAAG,KAAKT,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMN,EAAI2H,OAAO,gBAAiB3H,EAAIsC,IAAIjD,MAAM,CAACW,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,uBAAuBtB,EAAIW,GAAG,KAAKT,EAAG,QAAQ,CAACG,YAAY,eAAeC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAIsB,EAAE,WAAY,OAAO,MAAQ,MAAMtB,EAAIW,GAAG,KAAKT,EAAG,MAAMF,EAAIW,GAAG,KAAKT,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,kBAAkB,CAACJ,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,mCAAmCtB,EAAIW,GAAG,KAAMX,EAAI+D,kBAAkB/D,EAAIsC,KAAMpC,EAAG,WAAW,CAACI,MAAM,CAAC,WAAW,gBAAgB,QAAUN,EAAIuC,OAAO,MAAQvC,EAAIqC,UAAU,MAAQ,EAAE,MAAQ,OAAO,UAAW,EAAK,mBAAkB,GAAO9B,GAAG,CAAC,kBAAkBP,EAAIqE,mBAAmB,oBAAoBrE,EAAIyE,sBAAsB,OAASzE,EAAIyD,iBAAiB,CAACvD,EAAG,OAAO,CAACI,MAAM,CAAC,KAAO,YAAY4jB,KAAK,YAAY,CAAClkB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,oBAAoBtB,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,+BAA+B,CAAEL,EAAIsC,IAAIkD,OAAQtF,EAAG,QAAQ,CAACG,YAAY,iBAAiBC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAIsB,EAAE,WAAY,sBAAuB,CAAEuH,QAAS7I,EAAIsC,IAAIkD,SAAU,SAAWxF,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIwF,OAAOxF,EAAIsC,IAAIjD,GAAG,KAAKW,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAI0G,aAAc9I,EAAG,QAAQ,CAACG,YAAY,YAAYC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAIsB,EAAE,WAAY,UAAU,SAAWtB,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIsF,OAAOtF,EAAIsC,IAAIjD,GAAG,KAAKW,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAI2G,OAAQ/I,EAAG,QAAQ,CAACG,YAAY,SAASC,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAIsB,EAAE,WAAW,WAAW,SAAWtB,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIqF,QAAQrF,EAAIsC,IAAIjD,GAAG,KAAKW,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIsC,IAAI2G,SAAWjJ,EAAIsC,IAAI4G,aAAclJ,EAAIsC,IAAI6G,aAAqTnJ,EAAIsC,IAAI2G,QAAWjJ,EAAIsC,IAAI4G,WAA2SlJ,EAAIa,KAAnSX,EAAG,QAAQ,CAACG,YAAY,eAAeC,MAAM,CAAC,MAAQN,EAAImD,yBAAyB,aAAanD,EAAImD,yBAAyB,KAAO,SAAS,MAAQnD,EAAIiD,sBAAsB,SAAWjD,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAI8E,YAAY9E,EAAIsC,IAAIjD,GAAG,KAAvmBa,EAAG,QAAQ,CAACG,YAAY,iBAAiBC,MAAM,CAAC,MAAQN,EAAIkD,oBAAoB,aAAalD,EAAIkD,oBAAoB,KAAO,SAAS,MAAQlD,EAAI+C,iBAAiB,UAAY/C,EAAIsC,IAAI4G,YAAclJ,EAAI0C,YAAc1C,EAAI8C,WAAWvC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIoF,OAAOpF,EAAIsC,IAAIjD,GAAG,SAA0VW,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,6BAA6B,CAAEL,EAAIsC,IAAI6hB,0BAA2BjkB,EAAG,KAAK,CAACF,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,6FAA6F,YAAYtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAI8hB,0BAA2BlkB,EAAG,KAAK,CAACF,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,6FAA6F,YAAYtB,EAAIa,KAAKb,EAAIW,GAAG,KAAOX,EAAIsC,IAAI4G,WAA8VlJ,EAAIa,KAAtVX,EAAG,KAAK,CAACF,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,uFAAuF,YAAYpB,EAAG,KAAK,CAACG,YAAY,wBAAwBL,EAAI2O,GAAI3O,EAAIsC,IAAI+hB,qBAAqB,SAASC,EAAI3f,GAAO,OAAOzE,EAAG,KAAK,CAACwO,IAAI/J,GAAO,CAAC3E,EAAIW,GAAG,eAAeX,EAAIY,GAAG0jB,GAAK,eAAe,IAAG,OAAgBtkB,EAAIW,GAAG,KAAKT,EAAG,IAAI,CAACG,YAAY,8BAA8B,CAAGL,EAAIsC,IAAIiiB,SAAkLvkB,EAAIa,KAA5KX,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIgjB,YAAY,OAAS,SAAS,IAAM,wBAAwB,CAAChjB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,kBAAkB,QAAiBtB,EAAIW,GAAG,KAAMX,EAAIsC,IAAIkiB,QAAStkB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIsC,IAAIkiB,QAAQ,OAAS,SAAS,IAAM,wBAAwB,CAACxkB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,kBAAkB,QAAQtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAImiB,KAAMvkB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIsC,IAAImiB,KAAK,OAAS,SAAS,IAAM,wBAAwB,CAACzkB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,iBAAiB,QAAQtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAIoiB,eAAiB1kB,EAAIsC,IAAIoiB,cAAcC,KAAMzkB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIsC,IAAIoiB,cAAcC,KAAK,OAAS,SAAS,IAAM,wBAAwB,CAAC3kB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,uBAAuB,QAAQtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAIoiB,eAAiB1kB,EAAIsC,IAAIoiB,cAAcE,MAAO1kB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIsC,IAAIoiB,cAAcE,MAAM,OAAS,SAAS,IAAM,wBAAwB,CAAC5kB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,wBAAwB,QAAQtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIsC,IAAIoiB,eAAiB1kB,EAAIsC,IAAIoiB,cAAcG,UAAW3kB,EAAG,IAAI,CAACG,YAAY,WAAWC,MAAM,CAAC,KAAON,EAAIsC,IAAIoiB,cAAcG,UAAU,OAAS,SAAS,IAAM,wBAAwB,CAAC7kB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,4BAA4B,QAAQtB,EAAIa,OAAOb,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACG,YAAY,2BAA2BC,MAAM,CAAC,KAAON,EAAIsC,IAAIwiB,gBAAgB,EAC/uL,GACsB,IUUpB,EACA,KACA,WACA,MAI8B,Q,gBCqJhCC,EAAAA,GAAAhF,IAAAiF,KAEA,MC1KgL,GD0KhL,CACA1lB,KAAA,OACA2lB,kBAAA,KACAnf,WAAA,CACAof,aAAA,IACAC,WAAA,GACAC,QAAA,GACAC,iBAAA,EACAC,gBAAA,IACAC,oBAAA,IACAC,sBAAA,IACAC,gBAAA,IACA1f,SAAA,EACA2f,aAAA,IACAC,gBAAA,IACAC,UAAA,IACA9C,SAAAA,IAGA7c,OAAA,CAAAC,GAEA1G,MAAA,CACA4G,SAAA,CACA1G,KAAAC,OACAE,QAAA,aAEAR,GAAA,CACAK,KAAAC,OACAE,QAAA,KAIA+B,KAAAA,KACA,CACAikB,YAAA,GACAlf,kBAAA,IAIA7F,SAAA,CACAglB,WAAAA,GACA,YAAAC,SAAAd,kBAAA,KAAA7e,UACA,KAAA2f,SAAAd,kBAAA,KAAA7e,UAEA,KAAAzD,OAAAC,QAAAojB,gBAAA,KAAA5f,UACA6f,WACA,EACApjB,OAAAA,GACA,YAAAF,OAAAC,QAAAC,QAAA,aACA,EACAqjB,WAAAA,GACA,YAAAvjB,OAAAC,QAAAC,QAAA,OACA,EACAP,GAAAA,GACA,YAAAL,KAAA2L,MAAAtL,GAAAA,EAAAjD,KAAA,KAAAA,IACA,EACA8mB,UAAAA,GACA,YAAAxjB,OAAAC,QAAAwjB,aACA,EACAnkB,IAAAA,GACA,YAAAU,OAAAC,QAAA8J,UACA,EACA2Z,WAAAA,GACA,YAAA1jB,OAAAC,QAAA0jB,cACA,EACAC,QAAAA,GACA,YAAA5jB,OAAAC,QAAA2K,aACA,EAEA3G,SAAAA,GACA,YAAAtE,IAAAuE,cAAA,KAAAvE,IAAAuE,aAAAC,iBAAA,CACA,EAGA0f,UAAAA,GACA,MAAAC,EAAAC,GACAA,EAAA,UAEAA,EAAA,UAIAA,EAGAtD,EAAAzX,MAAA+X,QAAA,KAAAphB,IAAA8gB,QACA,KAAA9gB,IAAA8gB,OAAA5gB,IAAAikB,GAAA1e,KAAA,MACA0e,EAAA,KAAAnkB,IAAA8gB,QACAF,EAAA5hB,EAAA,iCAAA4hB,SAAA,QAAA5gB,IAAA2gB,SAAAE,gBAEAwD,EAAArlB,EAAA,qCAAA8hB,SAAAF,YAEA,OACA0D,WAAA,KAAAtkB,IAAA8E,YAAA,KAAAT,iBACA,KAAArE,IAAA8E,WACA,KAAA9E,IAAAoG,QACAme,UAAA,KAAAvkB,IAAA8E,YAAA,KAAAT,kBACArH,KAAA,KAAAgD,IAAAhD,KACAqnB,UAEA,EACAG,UAAAA,IACAC,GAAAA,EAAAC,aAAAC,GAAAH,UAKAI,YAAAA,GAEA,YAAAjlB,KAAAqU,MAAAhU,GAAA,MAAAA,EAAAwG,OACA,GAGA9B,MAAA,CACAZ,QAAAA,GACA,KAAAyf,YAAA,EACA,EAEAvjB,GAAAA,GAAA,IAAA6kB,EAAAC,EAEA,GADA,KAAAzgB,kBAAA,EACA,QAAAwgB,EAAA,KAAA7kB,WAAA,IAAA6kB,GAAAA,EAAAhgB,UAAA,QAAAigB,EAAA,KAAA9kB,WAAA,IAAA8kB,GAAAA,EAAAhgB,WAAA,CACA,MAAAC,EAAA,IAAAC,MACAD,EAAAE,OAAAC,IACA,KAAAb,kBAAA,GAEAU,EAAAI,IAAA,KAAAnF,IAAA8E,UACA,CACA,GAGAigB,WAAAA,GACA,KAAA1kB,OAAAgB,SAAA,iBAAA2jB,yBAAA,IACA,KAAA3kB,OAAAgB,SAAA,cACA,KAAAhB,OAAAgB,SAAA,aAAAG,OAAA,EAAAD,MAAA,IACA,KAAAlB,OAAA4kB,OAAA,sBAAA5kB,OAAAC,QAAA2K,cAAA8Y,YACA,EAEA/iB,OAAAA,IACAkkB,EAAAA,EAAAA,IAAA,uCAAAC,YACAD,EAAAA,EAAAA,IAAA,sCAAAE,YACA,EACAC,aAAAA,IACAC,EAAAA,EAAAA,IAAA,uCAAAH,YACAG,EAAAA,EAAAA,IAAA,sCAAAF,YACA,EAEAlkB,QAAA,CACAikB,SAAAA,CAAA9lB,GAAA,UAAA+B,GAAA/B,EACA,KAAAkkB,YAAAniB,CACA,EACAgkB,WAAAA,GACA,KAAA7B,YAAA,EACA,EAEAgC,cAAAA,GACA,KAAAC,QAAA3oB,KAAA,CACAG,KAAA,gBACA4H,OAAA,CAAAd,SAAA,KAAAA,WAEA,EACA2hB,0BAAAA,GACA7lB,OAAA8lB,KAAA,KAAAzB,SAAA0B,uBACA,I,gBEjUI,GAAU,CAAC,EAEf,GAAQhgB,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,I1CTW,WAAkB,IAAItI,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAACsI,MAAM,CAAE,mBAAoBxI,EAAIsC,KAAKhC,MAAM,CAAC,WAAW,aAAa,CAACJ,EAAG,kBAAkB,CAACsI,MAAM,CAAE,eAAgBxI,EAAI6C,SAAUvC,MAAM,CAAC,aAAaN,EAAIsB,EAAE,WAAY,SAAS4mB,YAAYloB,EAAImoB,GAAG,CAAC,CAACzZ,IAAI,OAAOtD,GAAG,WAAW,MAAO,CAAClL,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,yBAAyB,GAAK,CAAEhB,KAAM,QAAS,OAAQ,EAAK,KAAO,0BAA0B,KAAOU,EAAI+lB,SAASd,kBAAkB7X,aAAapN,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,uBAAuB,GAAK,CAAEhB,KAAM,gBAAiB4H,OAAQ,CAAEd,SAAU,YAAc,KAAO,wBAAwB,KAAOpG,EAAI+lB,SAASd,kBAAkBmD,WAAWpoB,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,wBAAwB,GAAK,CAAEhB,KAAM,gBAAiB4H,OAAQ,CAAEd,SAAU,aAAe,KAAO,yBAAyB,KAAOpG,EAAI+lB,SAASd,kBAAkBoD,YAAYroB,EAAIW,GAAG,KAAMX,EAAIqmB,YAAc,EAAGnmB,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,uBAAuB,GAAK,CAAEhB,KAAM,gBAAiB4H,OAAQ,CAAEd,SAAU,YAAc,KAAO,gBAAgB,KAAOpG,EAAI+lB,SAASd,kBAAkBqD,SAASJ,YAAYloB,EAAImoB,GAAG,CAAC,CAACzZ,IAAI,UAAUtD,GAAG,WAAW,MAAO,CAAClL,EAAG,kBAAkB,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIqmB,gBAAgB,EAAEkC,OAAM,IAAO,MAAK,EAAM,YAAYvoB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAIknB,aAAchnB,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,yBAAyB,GAAK,CAAEhB,KAAM,gBAAiB4H,OAAQ,CAAEd,SAAU,cAAgB,KAAOpG,EAAI+lB,SAASd,kBAAkBuD,WAAWN,YAAYloB,EAAImoB,GAAG,CAAC,CAACzZ,IAAI,OAAOtD,GAAG,WAAW,MAAO,CAAClL,EAAG,mBAAmB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAEioB,OAAM,IAAO,MAAK,EAAM,aAAavoB,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,4BAA4B,GAAK,CAAEhB,KAAM,gBAAiB4H,OAAQ,CAAEd,SAAU,gBAAkB,KAAO,4BAA4B,KAAOpG,EAAI+lB,SAASd,kBAAkB,kBAAkBjlB,EAAIW,GAAG,KAAKT,EAAG,yBAAyBF,EAAIW,GAAG,KAAMX,EAAIumB,SAASkC,gBAAiB,CAACvoB,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,wBAAwB,GAAK,CAAEhB,KAAM,gBAAiB4H,OAAQ,CAAEd,SAAU,aAAe,KAAO,gBAAgB,KAAOpG,EAAI+lB,SAASd,kBAAkByD,YAAY1oB,EAAIW,GAAG,KAAKX,EAAI2O,GAAI3O,EAAImmB,YAAY,SAASwC,GAAK,OAAOzoB,EAAG,sBAAsB,CAACwO,IAAI,iBAAmBia,EAAIC,MAAMtoB,MAAM,CAAC,KAAO,iBAAmBqoB,EAAIC,MAAM,GAAK,CACnzEtpB,KAAM,gBACN4H,OAAQ,CAAEd,SAAUuiB,EAAIC,QACvB,KAAOD,EAAI1C,cAAc,KAAIjmB,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,sBAAsB,CAACI,MAAM,CAAC,GAAK,qBAAqB,KAAON,EAAIsB,EAAE,WAAY,2BAA6B,MAAMf,GAAG,CAAC,MAAQP,EAAI+nB,8BAA8B,EAAEQ,OAAM,OAAUvoB,EAAIW,GAAG,KAAKT,EAAG,eAAe,CAACG,YAAY,uBAAuBmI,MAAM,CAAE,eAAgBxI,EAAIkmB,aAAc5lB,MAAM,CAAC,eAAeN,EAAI8lB,cAAc,CAAC5lB,EAAG,UAAU,CAACI,MAAM,CAAC,SAAWN,EAAIoG,SAAS,IAAMpG,EAAIsC,IAAI,OAAStC,EAAI6lB,gBAAgB,GAAG7lB,EAAIW,GAAG,KAAMX,EAAIX,IAAMW,EAAIsC,IAAKpC,EAAG,eAAeF,EAAII,GAAG,CAACoI,MAAM,CAAC,mCAAoCxI,EAAIwmB,WAAWI,YAAYrmB,GAAG,CAAC,MAAQP,EAAI6nB,gBAAgBK,YAAYloB,EAAImoB,GAAG,CAAGnoB,EAAIwmB,WAAWI,WAAwJ,KAA5I,CAAClY,IAAI,SAAStD,GAAG,WAAW,MAAO,CAAClL,EAAG,MAAM,CAACG,YAAY,oEAAoE,EAAEkoB,OAAM,GAAW,CAAC7Z,IAAI,cAActD,GAAG,WAAW,MAAO,CAAoB,MAAlBpL,EAAIsC,IAAIwG,OAAmC,MAAlB9I,EAAIsC,IAAIwG,OAAiB9I,EAAI4G,UAAW1G,EAAG,MAAM,CAACG,YAAY,aAAa,CAAoB,MAAlBL,EAAIsC,IAAIwG,MAAe5I,EAAG,OAAO,CAACG,YAAY,iCAAiCC,MAAM,CAAC,MAAQN,EAAIsB,EAAE,WAAY,oEAAoE,CAACtB,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,iBAAiBtB,EAAIa,KAAKb,EAAIW,GAAG,KAAwB,MAAlBX,EAAIsC,IAAIwG,MAAe5I,EAAG,OAAO,CAACG,YAAY,0BAA0BC,MAAM,CAAC,MAAQN,EAAIsB,EAAE,WAAY,iIAAiI,CAACtB,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIsB,EAAE,WAAY,gBAAgBtB,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI4G,UAAW1G,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQN,EAAIsC,IAAIuE,aAAagiB,iBAAiB7oB,EAAIa,MAAM,GAAGb,EAAIa,KAAKb,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,IAAI,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsC,IAAIuG,cAAc,EAAE0f,OAAM,IAAO,MAAK,IAAO,eAAevoB,EAAIwmB,YAAW,GAAO,CAACxmB,EAAIW,GAAG,KAAKX,EAAIW,GAAG,KAAKT,EAAG,kBAAkB,CAACI,MAAM,CAAC,GAAK,OAAO,KAAO,uBAAuB,KAAON,EAAIsB,EAAE,WAAY,WAAW,MAAQ,IAAI,CAACpB,EAAG,aAAa,CAACI,MAAM,CAAC,IAAMN,EAAIsC,QAAQ,GAAGtC,EAAIW,GAAG,KAAMX,EAAIsC,IAAIuE,cAAgB7G,EAAIsC,IAAI6E,SAAS,GAAG6f,aAAaC,GAAGH,UAAW5mB,EAAG,kBAAkB,CAACI,MAAM,CAAC,GAAK,QAAQ,KAAO,6BAA6B,KAAON,EAAIsB,EAAE,WAAY,aAAa,MAAQ,IAAItB,EAAI2O,GAAI3O,EAAIsC,IAAI6E,UAAU,SAAS4f,GAAS,OAAO7mB,EAAG,MAAM,CAACwO,IAAIqY,EAAQle,QAAQxI,YAAY,6BAA6B,CAACH,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAGmmB,EAAQle,YAAY7I,EAAIW,GAAG,KAAMX,EAAI8mB,UAAUC,GAAU7mB,EAAG,WAAW,CAACI,MAAM,CAAC,KAAON,EAAI8mB,UAAUC,MAAY/mB,EAAIa,MAAM,EAAE,IAAG,GAAGb,EAAIa,MAAM,GAAGb,EAAIa,MAAM,EACj+E,GACsB,I0COpB,EACA,KACA,WACA,MAI8B,O,kDCbgCzB,EAAO0pB,QAG/D,WAAe,aAEvB,IAAI9D,EAAkB,WACpB/kB,KAAK8oB,YAAc,CAAC,EACpB9oB,KAAK+oB,WAAa,GAClB/oB,KAAKgpB,cAAe,CACtB,EAEIC,EAAqB,CAAEC,UAAW,CAAC,GAOvCD,EAAmBC,UAAU3nB,IAAM,WACjC,OAAOvB,KAAK+oB,UACd,EAOAE,EAAmBC,UAAUC,IAAM,SAAU9f,GAC3CrJ,KAAK+oB,WAAa1f,EAASA,EAAQ,IAAO,EAC5C,EASA0b,EAAgBvD,UAAU4H,UAAY,SAAoBC,GACxD,MAAQ,GAAMrpB,KAAe,WAAIqpB,CACnC,EAUAtE,EAAgBvD,UAAU8H,OAAS,SAAiBD,EAAOE,EAAU9pB,GACnE,IAAIgP,EAAMzO,KAAKopB,UAAUC,GACrBhgB,EAAQ5J,GAAQ,CAACiM,MAAOI,QAAQ3H,SAAS1E,GACzC+pB,KAAKC,UAAUF,GACfA,EAEJtnB,OAAOynB,aAAaC,QAAQlb,EAAKpF,EACnC,EASA0b,EAAgBvD,UAAUoI,OAAS,SAAiBP,GAClD,IAAI5a,EAAMzO,KAAKopB,UAAUC,GAEzB,OAAOpnB,OAAOynB,aAAajb,EAC7B,EAUAsW,EAAgBvD,UAAUjgB,IAAM,SAAc8nB,EAAOQ,EAAcC,GAKjE,QAHwB,IAAjBD,IAA0BA,EAAe,WACzB,IAAhBC,IAAyBA,EAAcpqB,SAEzCM,KAAKgpB,aACR,OAAO,KAGT,GAAIhpB,KAAK4pB,OAAOP,GAAQ,CACtB,IAAI5pB,EAAOqqB,EAEX,IAAK,IAAIrb,KAXIzO,KAWU8oB,YACrB,GAAIra,IAAQ4a,EAAO,CACjB5pB,EAbSO,KAaK8oB,YAAYra,GAAKhP,KAC/B,KACF,CAGF,OAAOO,KAAK+pB,SAAStqB,EAAMO,KAAK4pB,OAAOP,GACzC,CAEA,OAAwB,OAAjBQ,EAAwBA,EAAe,IAChD,EASA9E,EAAgBvD,UAAU2H,IAAM,SAAcE,EAAOhgB,GACjD,IAAI2gB,EAAShqB,KAEf,IAAKA,KAAKgpB,aACR,OAAO,KAGT,IAAK,IAAIva,KAAOub,EAAOlB,YAAa,CAClC,IAAIrpB,EAAOuqB,EAAOlB,YAAYra,GAAKhP,KAEnC,GAAKgP,IAAQ4a,EAGX,OAFAW,EAAOV,OAAOD,EAAOhgB,EAAO5J,GAErB4J,CAEX,CAIA,OAFArJ,KAAKspB,OAAOD,EAAOhgB,GAEZA,CACT,EAOA0b,EAAgBvD,UAAUnc,OAAS,SAAiBgkB,GAClD,OAAKrpB,KAAKgpB,aAIH/mB,OAAOynB,aAAaO,WAAWZ,GAH7B,IAIX,EASAtE,EAAgBvD,UAAU0I,YAAc,SAAsBzb,EAAKhP,EAAMoqB,QAC/C,IAAjBA,IAA0BA,OAAetf,GAEhD9K,EAAOA,GAAQC,OAEfM,KAAK8oB,YAAYra,GAAO,CAAEhP,KAAMA,GAE3BO,KAAK4pB,OAAOnb,IAAyB,OAAjBob,GACvB7pB,KAAKspB,OAAO7a,EAAKob,EAAcpqB,EAEnC,EAUAslB,EAAgBvD,UAAUuI,SAAW,SAAmBtqB,EAAM4J,GAC5D,OAAQ5J,GACN,KAAK4G,QACH,MAAiB,SAAVgD,EACT,KAAKvJ,OACH,OAAOqqB,WAAW9gB,GACpB,KAAKqC,MACH,IACE,IAAI0e,EAAQZ,KAAKpM,MAAM/T,GAEvB,OAAOqC,MAAM+X,QAAQ2G,GAASA,EAAQ,EACxC,CAAE,MAAO7iB,GACP,MAAO,EACT,CACF,KAAKuE,OACH,IACE,OAAO0d,KAAKpM,MAAM/T,EACpB,CAAE,MAAO9B,GACP,MAAO,CAAC,CACV,CACF,QACE,OAAO8B,EAEb,EAEAyC,OAAOC,iBAAkBgZ,EAAgBvD,UAAWyH,GAEpD,IAAIoB,EAAkB,IAAItF,EA+F1B,MA7FY,CAOVzf,QAAS,SAAUwf,EAAK/c,GAGtB,QAFiB,IAAZA,IAAqBA,EAAU,CAAC,QAEd,IAAZuiB,KAEPA,EAAQC,QACRD,EAAQE,cACPF,EAAQG,KAA+B,WAAxBH,EAAQG,IAAIC,SAJhC,CAUA,IAAIC,GAAc,EAElB,IACE,IAAIza,EAAO,4BAEXjO,OAAOynB,aAAaC,QAAQzZ,EAAMA,GAClCjO,OAAOynB,aAAaO,WAAW/Z,EACjC,CAAE,MAAO3I,GACPojB,GAAc,EACdN,EAAgBrB,cAAe,EAE/B7a,EAAQlJ,MAAM,iCAChB,CAEA,IAAI5F,EAAO0I,EAAQ1I,MAAQ,eACvBwM,EAAO9D,EAAQ8D,KAEf9D,EAAQmhB,YACVmB,EAAgBnB,UAAYnhB,EAAQmhB,WAGtCpE,EAAI8F,MAAM,CACRC,aAAc,WACZ,IAAIb,EAAShqB,KAER2qB,GAID3qB,KAAK8lB,SAASzmB,IAChByM,OAAOqQ,KAAKnc,KAAK8lB,SAASzmB,IAAOwc,SAAQ,SAAUpN,GACjD,IAAIqc,EAASd,EAAOlE,SAASzmB,GAAMoP,GAC/Bsc,EAAM,CAACD,EAAOrrB,KAAMqrB,EAAOlrB,SAC3BH,EAAOsrB,EAAI,GACXlB,EAAekB,EAAI,GAMvB,GAJAV,EAAgBH,YAAYzb,EAAKhP,EAAMoqB,GAEpB/d,OAAOkf,yBAAyBX,EAAiB5b,GAWxDqW,EAAIgG,OAAO5b,QACrBf,EAAQ8c,IAAKxc,EAAM,+CAVF,CACjB,IAAI+R,EAAO,CACTjf,IAAK,WAAc,OAAOujB,EAAI4E,aAAanoB,IAAIkN,EAAKob,EAAe,EACnEV,IAAK,SAAUzY,GAAO,OAAOoU,EAAI4E,aAAaP,IAAI1a,EAAKiC,EAAM,EAC7Dwa,cAAc,GAGhBpf,OAAOqf,eAAed,EAAiB5b,EAAK+R,GAC5CsE,EAAIsG,KAAKC,eAAehB,EAAiB5b,EAAKob,EAChD,EAIKhe,GAAQif,EAAOjf,QAAyB,IAAhBif,EAAOjf,OAClCme,EAAOlE,SAASjlB,SAAWmpB,EAAOlE,SAASjlB,UAAY,CAAC,EAEnDmpB,EAAOlE,SAASjlB,SAAS4N,KAC5Bub,EAAOlE,SAASjlB,SAAS4N,GAAO,CAC9BlN,IAAK,WAAc,OAAOujB,EAAI4E,aAAajb,EAAM,EACjD0a,IAAK,SAAUzY,GAAOoU,EAAI4E,aAAajb,GAAOiC,CAAK,IAI3D,GAEJ,IAGFoU,EAAIzlB,GAAQgrB,EACZvF,EAAItD,UAAW,IAAMniB,GAASgrB,CAvE9B,CAwEF,EAKD,CA1SgFiB,E","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=79bd4dc4&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=4e6c328e&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/settings/src/views/Apps.vue?8e68","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue","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?ea51","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue?vue&type=template&id=15915d5b","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ee21","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=js","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?829c","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/node_modules/yocto-queue/index.js","webpack:///nextcloud/node_modules/p-limit/index.js","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/AppList.vue?9a5a","webpack://nextcloud/./apps/settings/src/components/AppList.vue?8acf","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?7e45","webpack:///nextcloud/node_modules/marked/lib/marked.esm.js","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?8506","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?db88","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?2807","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?2b10","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-79bd4dc4]{filter:var(--background-invert-if-bright)}.app-image img[data-v-79bd4dc4]{width:100%}.app-name--link[data-v-79bd4dc4]::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppItem.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA,CAGD,wCACE,UAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.app-icon {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\\n.app-image img {\\n\\twidth: 100%;\\n}\\n\\n.app-name--link::after {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\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-4e6c328e]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-4e6c328e]: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-4e6c328e] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-4e6c328e] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-4e6c328e]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-4e6c328e] h3{font-size:20px}.app-sidebar-tabs__release[data-v-4e6c328e] 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 },attrs:{\"aria-label\":_vm.t('settings', 'Apps')},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.$options.APPS_SECTION_ENUM.installed}}),_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 },attrs:{\"page-heading\":_vm.pageHeading}},[_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 }","\n\n","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\"","import { render, staticRenderFns } from \"./StarShooting.vue?vue&type=template&id=15915d5b\"\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 ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"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 }","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\n\n\n","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\"","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=d50ef390\"\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,\"alt\":_vm.t('settings', 'Rating: {score}/10', {score:_vm.appScore})}})\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 null\n\t\t},\n\t\tforceEnableButtonTooltip() {\n\t\t\tconst base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn base + ' ' + t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn base\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tif (this.app && this.app.groups && this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasyncFindGroup(query) {\n\t\t\treturn this.$store.dispatch('getGroups', { search: query, limit: 5, offset: 0 })\n\t\t},\n\t\tisLimitedToGroups(app) {\n\t\t\tif (this.app.groups.length || this.groupCheckedAppsData) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tsetGroupLimit() {\n\t\t\tif (!this.groupCheckedAppsData) {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: [] })\n\t\t\t}\n\t\t},\n\t\tcanLimitToGroups(app) {\n\t\t\tif ((app.types && app.types.includes('filesystem'))\n\t\t\t\t\t|| app.types.includes('prelogin')\n\t\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t\t|| app.types.includes('prevent_group_restriction')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\taddGroupLimitation(groupArray) {\n\t\t\tconst group = groupArray.pop()\n\t\t\tconst groups = this.app.groups.concat([]).concat([group.id])\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tconst currentGroups = this.app.groups.concat([])\n\t\t\tconst index = currentGroups.indexOf(group.id)\n\t\t\tif (index > -1) {\n\t\t\t\tcurrentGroups.splice(index, 1)\n\t\t\t}\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tthis.$store.dispatch('forceEnableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tenable(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tdisable(appId) {\n\t\t\tthis.$store.dispatch('disableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tremove(appId) {\n\t\t\tthis.$store.dispatch('uninstallApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tinstall(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tupdate(appId) {\n\t\t\tthis.$store.dispatch('updateApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t},\n}\n","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=79bd4dc4&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=79bd4dc4&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=79bd4dc4&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=79bd4dc4&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 \"79bd4dc4\",\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 }},[_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-image app-image-icon\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-icon`)}},[((_vm.listView && !_vm.app.preview) || (!_vm.listView && !_vm.screenshotLoaded))?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.listView && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\" \"),(!_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"alt\":\"\"}}):_vm._e()]),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-name\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-name`)}},[_c('router-link',{staticClass:\"app-name--link\",attrs:{\"to\":{ name: 'apps-details',\tparams: { category: _vm.category, id: _vm.app.id }},\"aria-label\":_vm.t('settings', 'Show details for {appName} app', { appName:_vm.app.name })}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(!_vm.listView)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-summary\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-version`)}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.summary)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.listView)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-version\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-version`)}},[(_vm.app.version)?_c('span',[_vm._v(_vm._s(_vm.app.version))]):(_vm.app.appstoreData.releases[0].version)?_c('span',[_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-level\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-level`)}},[(_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","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=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',{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 * marked v9.1.6 - 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 = rtrim(cap[0].replace(/^ *>[ \\t]?/gm, ''), '\\n');\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 + lLength);\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 // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\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}(?:\\\\s|$)')\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}(?:\\\\s|$)')\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}(?:\\\\s|$)')\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 unnecessary 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 Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\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 lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\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","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=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","\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=4e6c328e&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=4e6c328e&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=4e6c328e&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=4e6c328e&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 \"4e6c328e\",\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","appScore","Math","round","score","scoreImage","imageName","imagePath","t","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","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","components","AppScore","NcButton","mixins","AppManagement","SvgFilterMixin","category","listView","Boolean","useBundleView","headers","isSelected","scrolled","screenshotLoaded","hasRating","appstoreData","ratingNumOverall","dataItemTag","watch","$route","params","releases","screenshot","image","Image","onload","e","src","watchers","prefix","content","getDataItemHeaders","columnName","join","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","tag","class","selected","preview","appName","summary","version","level","stopPropagation","canUnInstall","active","canInstall","isCompatible","Node","constructor","value","_defineProperty","_head","WeakMap","_tail","_size","Queue","_classPrivateFieldInitSpec","clear","enqueue","_this$size","node","_classPrivateFieldGet","next","_classPrivateFieldSet","dequeue","_this$size3","current","undefined","Symbol","iterator","pLimit","concurrency","isInteger","POSITIVE_INFINITY","TypeError","queue","activeCount","run","async","fn","resolve","args","result","generator","_len","arguments","Array","_key","Promise","bind","Object","defineProperties","pendingCount","clearQueue","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","find","_app","useAppStoreView","allBundlesEnabled","bundleToggleText","toggleBundle","disableBundle","enableBundle","console","Notification","show","updateAll","store","n","key","_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","obj","val","getRegex","cleanUrl","href","encodeURI","noopTest","exec","splitCells","tableRow","count","cells","match","str","escaped","curr","split","i","trim","shift","rtrim","c","invert","l","suffLen","currChar","charAt","slice","outputLink","cap","link","raw","lexer","text","state","inLink","token","tokens","inlineTokens","_Tokenizer","rules","space","block","newline","code","codeBlockStyle","fences","matchIndentToCode","indentToCode","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","lastCharLength","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","create","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","_","leading","tabs","extTokenizer","call","startBlock","startIndex","Infinity","tempSrc","tempStart","forEach","getStartIndex","errMsg","charCodeAt","Error","keepPrevChar","keys","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","values","childTokens","pack","opts","ext","prevRenderer","apply","extLevel","prop","rendererFunc","rendererKey","tokenizerFunc","tokenizerKey","prevTokenizer","hooksFunc","hooksKey","prevHook","passThroughHooks","has","arg","packWalktokens","origOpt","warn","throwError","prototype","all","message","msg","reject","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","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","pageHeading","$options","getCategoryById","displayName","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","$router","openDeveloperDocumentation","open","developerDocumentation","scopedSlots","_u","enabled","disabled","updates","proxy","supported","appstoreEnabled","featured","cat","ident","ratingOverall","exports","_properties","_namespace","_isSupported","prototypeAccessors","namespace","set","_getLsKey","lsKey","_lsSet","rawValue","JSON","stringify","localStorage","setItem","_lsGet","defaultValue","defaultType","_process","this$1","removeItem","addProperty","parseFloat","array","vueLocalStorage","process","server","SERVER_BUILD","env","VUE_ENV","isSupported","mixin","beforeCreate","config","ref","getOwnPropertyDescriptor","log","configurable","defineProperty","util","defineReactive","factory"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-apps-view-4529.js?v=7af5d54e542cee8b975e","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=f40de422&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=4e6c328e&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/settings/src/views/Apps.vue?8e68","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue","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?ea51","webpack:///nextcloud/node_modules/vue-material-design-icons/StarShooting.vue?vue&type=template&id=15915d5b","webpack://nextcloud/./apps/settings/src/components/AppList.vue?ee21","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue","webpack:///nextcloud/apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=js","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?6d61","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/node_modules/yocto-queue/index.js","webpack:///nextcloud/node_modules/p-limit/index.js","webpack:///nextcloud/apps/settings/src/components/AppList.vue","webpack:///nextcloud/apps/settings/src/components/AppList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/AppList.vue?9a5a","webpack://nextcloud/./apps/settings/src/components/AppList.vue?8acf","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?7e45","webpack:///nextcloud/node_modules/marked/lib/marked.esm.js","webpack:///nextcloud/apps/settings/src/components/Markdown.vue","webpack:///nextcloud/apps/settings/src/components/Markdown.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Markdown.vue?8506","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?db88","webpack://nextcloud/./apps/settings/src/components/AppDetails.vue?2807","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?2b10","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-f40de422]{filter:var(--background-invert-if-bright)}.app-image img[data-v-f40de422]{width:100%}.apps-list-container .app-name[data-v-f40de422]{padding:0 6px}.apps-list-container .app-name--link[data-v-f40de422]{--app-item-padding: 6px;--app-item-height: calc(2 * 6px + var(--default-clickable-area));height:var(--app-item-height);display:flex;align-items:center}.apps-list-container .app-name--link[data-v-f40de422]::after{content:\"\";position:absolute;left:0;right:0;height:var(--app-item-height)}.apps-list-container .actions[data-v-f40de422]{display:flex !important;flex-wrap:nowrap !important}.apps-store-view .app-name--link[data-v-f40de422]::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AppList/AppItem.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,yCAAA,CAGD,gCACC,UAAA,CAUA,gDACC,aAAA,CAGD,sDAEC,uBAAA,CACA,gEAAA,CACA,6BAAA,CACA,YAAA,CACA,kBAAA,CAGD,6DACC,UAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,6BAAA,CAGD,+CAEC,uBAAA,CACA,2BAAA,CAOD,yDACC,UAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.app-icon {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\\n.app-image img {\\n\\twidth: 100%;\\n}\\n\\n// Note: because of Safari bug, we cannot position link overlay relative to the table row\\n// See: https://bugs.webkit.org/show_bug.cgi?id=240961\\n// So we need to manually position it relative to the entire table container and cell\\n// This is a simple solution to fix the bag in Nextcloud 28\\n// Nextcloud 29+ has a proper fix in a refactored app list\\n// See: https://github.com/nextcloud/server/pull/44236/\\n.apps-list-container {\\n\\t.app-name {\\n\\t\\tpadding: 0 6px;\\n\\t}\\n\\n\\t.app-name--link {\\n\\t\\t// table cell padding defined by settings.scss\\n\\t\\t--app-item-padding: 6px;\\n\\t\\t--app-item-height: calc(2 * 6px + var(--default-clickable-area));\\n\\t\\theight: var(--app-item-height);\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t.app-name--link::after {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\theight: var(--app-item-height);\\n\\t}\\n\\n\\t.actions {\\n\\t\\t// Prevent table to have increased height when action buttons takes much space\\n\\t\\tdisplay: flex !important;\\n\\t\\tflex-wrap: nowrap !important;\\n\\t}\\n}\\n\\n// In the store view we can stretch the link to the entire cell,\\n// because it is a block and it can have position relative\\n.apps-store-view {\\n\\t.app-name--link::after {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\tbottom: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.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-4e6c328e]:not(.app-sidebar--without-background) :not(.app-sidebar-header--compact) .app-sidebar-header__figure{background-size:cover}.app-sidebar[data-v-4e6c328e]: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-4e6c328e] .app-sidebar-header__description .app-version{padding-left:10px}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure{display:flex;align-items:center;justify-content:center}.app-sidebar[data-v-4e6c328e].app-sidebar--without-background .app-sidebar-header__figure--default-app-icon{width:32px;height:32px;background-size:32px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__desc .app-sidebar-header__subtitle{overflow:visible !important;height:auto;white-space:normal !important;line-height:16px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action{margin:0 20px}.app-sidebar[data-v-4e6c328e] .app-sidebar-header__action input{margin:3px}.app-navigation[data-v-4e6c328e] button.app-navigation-toggle{top:8px;right:-8px}.app-sidebar-tabs__release h2[data-v-4e6c328e]{border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__release[data-v-4e6c328e] h3{font-size:20px}.app-sidebar-tabs__release[data-v-4e6c328e] 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 },attrs:{\"aria-label\":_vm.t('settings', 'Apps')},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.$options.APPS_SECTION_ENUM.installed}}),_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 },attrs:{\"page-heading\":_vm.pageHeading}},[_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 }","\n\n","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\"","import { render, staticRenderFns } from \"./StarShooting.vue?vue&type=template&id=15915d5b\"\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 ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"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 }","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\n\n\n","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\"","import { render, staticRenderFns } from \"./AppScore.vue?vue&type=template&id=d50ef390\"\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,\"alt\":_vm.t('settings', 'Rating: {score}/10', {score:_vm.appScore})}})\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 null\n\t\t},\n\t\tforceEnableButtonTooltip() {\n\t\t\tconst base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')\n\t\t\tif (this.app.needsDownload) {\n\t\t\t\treturn base + ' ' + t('settings', 'The app will be downloaded from the App Store')\n\t\t\t}\n\t\t\treturn base\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroupCheckedAppsData: false,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tif (this.app && this.app.groups && this.app.groups.length > 0) {\n\t\t\tthis.groupCheckedAppsData = true\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasyncFindGroup(query) {\n\t\t\treturn this.$store.dispatch('getGroups', { search: query, limit: 5, offset: 0 })\n\t\t},\n\t\tisLimitedToGroups(app) {\n\t\t\tif (this.app.groups.length || this.groupCheckedAppsData) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tsetGroupLimit() {\n\t\t\tif (!this.groupCheckedAppsData) {\n\t\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: [] })\n\t\t\t}\n\t\t},\n\t\tcanLimitToGroups(app) {\n\t\t\tif ((app.types && app.types.includes('filesystem'))\n\t\t\t\t\t|| app.types.includes('prelogin')\n\t\t\t\t\t|| app.types.includes('authentication')\n\t\t\t\t\t|| app.types.includes('logging')\n\t\t\t\t\t|| app.types.includes('prevent_group_restriction')) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\taddGroupLimitation(groupArray) {\n\t\t\tconst group = groupArray.pop()\n\t\t\tconst groups = this.app.groups.concat([]).concat([group.id])\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups })\n\t\t},\n\t\tremoveGroupLimitation(group) {\n\t\t\tconst currentGroups = this.app.groups.concat([])\n\t\t\tconst index = currentGroups.indexOf(group.id)\n\t\t\tif (index > -1) {\n\t\t\t\tcurrentGroups.splice(index, 1)\n\t\t\t}\n\t\t\tthis.$store.dispatch('enableApp', { appId: this.app.id, groups: currentGroups })\n\t\t},\n\t\tforceEnable(appId) {\n\t\t\tthis.$store.dispatch('forceEnableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tenable(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId, groups: [] })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tdisable(appId) {\n\t\t\tthis.$store.dispatch('disableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tremove(appId) {\n\t\t\tthis.$store.dispatch('uninstallApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tinstall(appId) {\n\t\t\tthis.$store.dispatch('enableApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t\tupdate(appId) {\n\t\t\tthis.$store.dispatch('updateApp', { appId })\n\t\t\t\t.then((response) => { rebuildNavigation() })\n\t\t\t\t.catch((error) => { showError(error) })\n\t\t},\n\t},\n}\n","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=f40de422&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=f40de422&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=f40de422&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=f40de422&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 \"f40de422\",\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 }},[_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-image app-image-icon\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-icon`)}},[((_vm.listView && !_vm.app.preview) || (!_vm.listView && !_vm.screenshotLoaded))?_c('div',{staticClass:\"icon-settings-dark\"}):(_vm.listView && _vm.app.preview)?_c('svg',{attrs:{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"0 0 32 32\"}},[_c('image',{staticClass:\"app-icon\",attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"32\",\"height\":\"32\",\"preserveAspectRatio\":\"xMinYMin meet\",\"xlink:href\":_vm.app.preview}})]):_vm._e(),_vm._v(\" \"),(!_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded)?_c('img',{attrs:{\"src\":_vm.app.screenshot,\"alt\":\"\"}}):_vm._e()]),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-name\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-name`)}},[_c('router-link',{staticClass:\"app-name--link\",attrs:{\"to\":{ name: 'apps-details',\tparams: { category: _vm.category, id: _vm.app.id }},\"aria-label\":_vm.t('settings', 'Show details for {appName} app', { appName:_vm.app.name })}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.app.name)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(!_vm.listView)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-summary\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-version`)}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.summary)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.listView)?_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-version\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-version`)}},[(_vm.app.version)?_c('span',[_vm._v(_vm._s(_vm.app.version))]):(_vm.app.appstoreData.releases[0].version)?_c('span',[_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c(_vm.dataItemTag,{tag:\"component\",staticClass:\"app-level\",attrs:{\"headers\":_vm.getDataItemHeaders(`app-table-col-level`)}},[(_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","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=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',{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 * marked v9.1.6 - 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 = rtrim(cap[0].replace(/^ *>[ \\t]?/gm, ''), '\\n');\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 + lLength);\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 // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\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}(?:\\\\s|$)')\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}(?:\\\\s|$)')\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}(?:\\\\s|$)')\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 unnecessary 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 Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\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 lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\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","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=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","\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=4e6c328e&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=4e6c328e&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=4e6c328e&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=4e6c328e&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 \"4e6c328e\",\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","appScore","Math","round","score","scoreImage","imageName","imagePath","t","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","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","components","AppScore","NcButton","mixins","AppManagement","SvgFilterMixin","category","listView","Boolean","useBundleView","headers","isSelected","scrolled","screenshotLoaded","hasRating","appstoreData","ratingNumOverall","dataItemTag","watch","$route","params","releases","screenshot","image","Image","onload","e","src","watchers","prefix","content","getDataItemHeaders","columnName","join","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","tag","class","selected","preview","appName","summary","version","level","stopPropagation","canUnInstall","active","canInstall","isCompatible","Node","constructor","value","_defineProperty","_head","WeakMap","_tail","_size","Queue","_classPrivateFieldInitSpec","clear","enqueue","_this$size","node","_classPrivateFieldGet","next","_classPrivateFieldSet","dequeue","_this$size3","current","undefined","Symbol","iterator","pLimit","concurrency","isInteger","POSITIVE_INFINITY","TypeError","queue","activeCount","run","async","fn","resolve","args","result","generator","_len","arguments","Array","_key","Promise","bind","Object","defineProperties","pendingCount","clearQueue","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","find","_app","useAppStoreView","allBundlesEnabled","bundleToggleText","toggleBundle","disableBundle","enableBundle","console","Notification","show","updateAll","store","n","key","_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","obj","val","getRegex","cleanUrl","href","encodeURI","noopTest","exec","splitCells","tableRow","count","cells","match","str","escaped","curr","split","i","trim","shift","rtrim","c","invert","l","suffLen","currChar","charAt","slice","outputLink","cap","link","raw","lexer","text","state","inLink","token","tokens","inlineTokens","_Tokenizer","rules","space","block","newline","code","codeBlockStyle","fences","matchIndentToCode","indentToCode","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","lastCharLength","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","create","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","_","leading","tabs","extTokenizer","call","startBlock","startIndex","Infinity","tempSrc","tempStart","forEach","getStartIndex","errMsg","charCodeAt","Error","keepPrevChar","keys","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","values","childTokens","pack","opts","ext","prevRenderer","apply","extLevel","prop","rendererFunc","rendererKey","tokenizerFunc","tokenizerKey","prevTokenizer","hooksFunc","hooksKey","prevHook","passThroughHooks","has","arg","packWalktokens","origOpt","warn","throwError","prototype","all","message","msg","reject","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","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","pageHeading","$options","getCategoryById","displayName","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","$router","openDeveloperDocumentation","open","developerDocumentation","scopedSlots","_u","enabled","disabled","updates","proxy","supported","appstoreEnabled","featured","cat","ident","ratingOverall","exports","_properties","_namespace","_isSupported","prototypeAccessors","namespace","set","_getLsKey","lsKey","_lsSet","rawValue","JSON","stringify","localStorage","setItem","_lsGet","defaultValue","defaultType","_process","this$1","removeItem","addProperty","parseFloat","array","vueLocalStorage","process","server","SERVER_BUILD","env","VUE_ENV","isSupported","mixin","beforeCreate","config","ref","getOwnPropertyDescriptor","log","configurable","defineProperty","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 8662f415fde65..2428ec577f2f3 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 */ -(()=>{var e,s,r,a={92973:(e,t,s)=>{"use strict";s.d(t,{l:()=>a});var r=s(53334);const a=Object.freeze({installed:(0,r.Tl)("settings","Your apps"),enabled:(0,r.Tl)("settings","Active apps"),disabled:(0,r.Tl)("settings","Disabled apps"),updates:(0,r.Tl)("settings","Updates"),"app-bundles":(0,r.Tl)("settings","App bundles"),featured:(0,r.Tl)("settings","Featured apps"),supported:(0,r.Tl)("settings","Supported apps")})},58692:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r=(0,s(53529).YK)().setApp("settings").detectUser().build()},47027:(e,s,r)=>{"use strict";var a=r(85471),o=r(80284),i=r(58723);const d={name:"App",beforeMount(){null!==document.getElementById("serverData")&&this.$store.commit("setServerData",JSON.parse(document.getElementById("serverData").dataset.server))}},c=(0,r(14486).A)(d,(function(){return(0,this._self._c)("router-view")}),[],!1,null,null,null).exports;var u=r(40173),p=r(63814),l=r(92973),m=r(95353),g=r(65043),h=r(56760);r(51257);const f=function(e){return e.replace(/\/$/,"")},A=()=>(0,h.C)(),b=(e,t)=>g.Ay.get(f(e),t),y=(e,t)=>g.Ay.post(f(e),t),I=(e,t)=>g.Ay.put(f(e),t),U=(e,t)=>g.Ay.delete(f(e),{params:t});var v=r(87485),L=r(58692),w=r(78791),P=r(96763);const C=function(e,t){return 1===t?e.sort(((e,t)=>e.usercount-e.disablede.name.localeCompare(t.name)))},E={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},_={appendUsers(e,t){const s=e.users.map((e=>{let{id:t}=e;return t})),r=Object.values(t).filter((e=>{let{id:t}=e;return!s.includes(t)})),a=e.users.concat(r);e.usersOffset+=e.usersLimit,e.users=a},updateDisabledUsers(e,t){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},initGroups(e,t){let{groups:s,orderBy:r,userCount:a}=t;e.groups=s.map((e=>Object.assign({},E,e))),e.orderBy=r,e.userCount=a,e.groups=C(e.groups,e.orderBy)},addGroup(e,t){let{gid:s,displayName:r}=t;try{if(void 0!==e.groups.find((e=>e.id===s)))return;const t=Object.assign({},E,{id:s,name:r});e.groups.unshift(t),e.groups=C(e.groups,e.orderBy)}catch(e){P.error("Can't create group",e)}},renameGroup(e,t){let{gid:s,displayName:r}=t;const a=e.groups.findIndex((e=>e.id===s));if(a>=0){const t=e.groups[a];t.name=r,e.groups.splice(a,1,t),e.groups=C(e.groups,e.orderBy)}},removeGroup(e,t){const s=e.groups.findIndex((e=>e.id===t));s>=0&&e.groups.splice(s,1)},addUserGroup(e,t){let{userid:s,gid:r}=t;const a=e.groups.find((e=>e.id===r)),o=e.users.find((e=>e.id===s));a&&o.enabled&&e.userCount>0&&a.usercount++,o.groups.push(r),e.groups=C(e.groups,e.orderBy)},removeUserGroup(e,t){let{userid:s,gid:r}=t;const a=e.groups.find((e=>e.id===r)),o=e.users.find((e=>e.id===s));a&&o.enabled&&e.userCount>0&&a.usercount--;const i=o.groups;i.splice(i.indexOf(r),1),e.groups=C(e.groups,e.orderBy)},addUserSubAdmin(e,t){let{userid:s,gid:r}=t;e.users.find((e=>e.id===s)).subadmin.push(r)},removeUserSubAdmin(e,t){let{userid:s,gid:r}=t;const a=e.users.find((e=>e.id===s)).subadmin;a.splice(a.indexOf(r),1)},deleteUser(e,t){const s=e.users.findIndex((e=>e.id===t));this.commit("updateUserCounts",{user:e.users[s],actionType:"remove"}),e.users.splice(s,1)},addUserData(e,t){const s=t.data.ocs.data;e.users.unshift(s),this.commit("updateUserCounts",{user:s,actionType:"create"})},enableDisableUser(e,t){let{userid:s,enabled:r}=t;const a=e.users.find((e=>e.id===s));a.enabled=r,this.commit("updateUserCounts",{user:a,actionType:r?"enable":"disable"})},updateUserCounts(e,t){let{user:s,actionType:r}=t;if(0===e.userCount)return;const a=e.groups.find((e=>"disabled"===e.id));switch(r){case"enable":case"disable":a.usercount+=s.enabled?-1:1,e.userCount+=s.enabled?1:-1,s.groups.forEach((t=>{e.groups.find((e=>e.id===t)).disabled+=s.enabled?-1:1}));break;case"create":e.userCount++,s.groups.forEach((t=>{e.groups.find((e=>e.id===t)).usercount++}));break;case"remove":s.enabled?(e.userCount--,s.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s?s.usercount--:P.warn("User group "+t+" does not exist during user removal")}))):(a.usercount--,s.groups.forEach((t=>{e.groups.find((e=>e.id===t)).disabled--})));break;default:L.A.error("Unknown action type in updateUserCounts: '".concat(r,"'"))}},setUserData(e,t){let{userid:s,key:r,value:a}=t;if("quota"===r){const t=(0,w.lT)(a,!0);e.users.find((e=>e.id===s))[r][r]=null!==t?t:a}else e.users.find((e=>e.id===s))[r]=a},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},setShowConfig(e,t){let{key:s,value:r}=t;e.showConfig[s]=r}},T=g.Ay.CancelToken;let O=null;const R={state:{users:[],groups:[],orderBy:1,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,userCount:0,showConfig:{showStoragePath:!1,showUserBackend:!1,showLastLogin:!1,showNewUserForm:!1,showLanguages:!1}},mutations:_,getters:{getUsers:e=>e.users,getGroups:e=>e.groups,getSubadminGroups:e=>e.groups.filter((e=>"admin"!==e.id&&"disabled"!==e.id)),getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},actions:{searchUsers(e,t){let{offset:s,limit:r,search:a}=t;return a="string"==typeof a?a:"",b((0,p.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a})).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))},getUser:(e,t)=>b((0,p.KT)("cloud/users/".concat(t))).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUsers(e,t){let{offset:s,limit:r,search:a,group:o}=t;return O&&O.cancel("Operation canceled by another search request."),O=T.source(),a="string"==typeof a?a:"",a=a.replace(/in:[^\s]+/g,"").trim(),o="string"==typeof o?o:"",""!==o?b((0,p.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(o),offset:s,limit:r,search:a}),{cancelToken:O.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)})):b((0,p.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a}),{cancelToken:O.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))},async getDisabledUsers(e,t){let{offset:s,limit:r,search:a}=t;const o=(0,p.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a});try{const t=await b(o),s=Object.keys(t.data.ocs.data.users).length;return s>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),s}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,t){let{offset:s,limit:r,search:a}=t;a="string"==typeof a?a:"";const o=-1===r?"":"&limit=".concat(r);return b((0,p.KT)("cloud/groups?offset={offset}&search={search}",{offset:s,search:a})+o).then((t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach((function(t){e.commit("addGroup",{gid:t,displayName:t})})),!0))).catch((t=>e.commit("API_FAILURE",t)))},getUsersFromList(e,t){let{offset:s,limit:r,search:a}=t;return a="string"==typeof a?a:"",b((0,p.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a})).then((t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0))).catch((t=>e.commit("API_FAILURE",t)))},getUsersFromGroup(e,t){let{groupid:s,offset:r,limit:a}=t;return b((0,p.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(s),offset:r,limit:a})).then((t=>e.commit("getUsersFromList",t.data.ocs.data.users))).catch((t=>e.commit("API_FAILURE",t)))},getPasswordPolicyMinLength:e=>!(!(0,v.F)().password_policy||!(0,v.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,v.F)().password_policy.minLength),(0,v.F)().password_policy.minLength),addGroup:(e,t)=>A().then((s=>y((0,p.KT)("cloud/groups"),{groupid:t}).then((s=>(e.commit("addGroup",{gid:t,displayName:t}),{gid:t,displayName:t}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{gid:t,error:s}),s})),renameGroup(e,t){let{groupid:s,displayName:r}=t;return A().then((t=>I((0,p.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(s)}),{key:"displayname",value:r}).then((t=>(e.commit("renameGroup",{gid:s,displayName:r}),{groupid:s,displayName:r}))).catch((e=>{throw e})))).catch((t=>{throw e.commit("API_FAILURE",{groupid:s,error:t}),t}))},removeGroup:(e,t)=>A().then((s=>U((0,p.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then((s=>e.commit("removeGroup",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{gid:t,error:s}))),addUserGroup(e,t){let{userid:s,gid:r}=t;return A().then((t=>y((0,p.KT)("cloud/users/{userid}/groups",{userid:s}),{groupid:r}).then((t=>e.commit("addUserGroup",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},removeUserGroup(e,t){let{userid:s,gid:r}=t;return A().then((t=>U((0,p.KT)("cloud/users/{userid}/groups",{userid:s}),{groupid:r}).then((t=>e.commit("removeUserGroup",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>{throw e.commit("API_FAILURE",{userid:s,error:t}),t}))},addUserSubAdmin(e,t){let{userid:s,gid:r}=t;return A().then((t=>y((0,p.KT)("cloud/users/{userid}/subadmins",{userid:s}),{groupid:r}).then((t=>e.commit("addUserSubAdmin",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},removeUserSubAdmin(e,t){let{userid:s,gid:r}=t;return A().then((t=>U((0,p.KT)("cloud/users/{userid}/subadmins",{userid:s}),{groupid:r}).then((t=>e.commit("removeUserSubAdmin",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},wipeUserDevices:(e,t)=>A().then((e=>y((0,p.KT)("cloud/users/{userid}/wipe",{userid:t})).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),deleteUser:(e,t)=>A().then((s=>U((0,p.KT)("cloud/users/{userid}",{userid:t})).then((s=>e.commit("deleteUser",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),addUser(e,t){let{commit:s,dispatch:r}=e,{userid:a,password:o,displayName:i,email:n,groups:d,subadmin:c,quota:u,language:l,manager:m}=t;return A().then((e=>y((0,p.KT)("cloud/users"),{userid:a,password:o,displayName:i,email:n,groups:d,subadmin:c,quota:u,language:l,manager:m}).then((e=>r("addUserData",a||e.data.ocs.data.id))).catch((e=>{throw e})))).catch((e=>{throw s("API_FAILURE",{userid:a,error:e}),e}))},addUserData:(e,t)=>A().then((s=>b((0,p.KT)("cloud/users/{userid}",{userid:t})).then((t=>e.commit("addUserData",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),enableDisableUser(e,t){let{userid:s,enabled:r=!0}=t;const a=r?"enable":"disable";return A().then((t=>I((0,p.KT)("cloud/users/{userid}/{userStatus}",{userid:s,userStatus:a})).then((t=>e.commit("enableDisableUser",{userid:s,enabled:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},setUserData(e,t){let{userid:s,key:r,value:a}=t;const o=["email","displayname","manager"];return-1!==["email","language","quota","displayname","password","manager"].indexOf(r)&&"string"==typeof a&&(-1===o.indexOf(r)&&a.length>0||-1!==o.indexOf(r))?A().then((t=>I((0,p.KT)("cloud/users/{userid}",{userid:s}),{key:r,value:a}).then((t=>e.commit("setUserData",{userid:s,key:r,value:a}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t}))):Promise.reject(new Error("Invalid request data"))},sendWelcomeMail:(e,t)=>A().then((e=>y((0,p.KT)("cloud/users/{userid}/welcome",{userid:t})).then((e=>!0)).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s})))}};var F=r(85168),k=r(96763);const S={APPS_API_FAILURE(e,s){(0,F.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+s.error.response.data.data.message,{isHTML:!0}),k.error(e,s)},initCategories(e,t){let{categories:s,updateCount:r}=t;e.categories=s,e.updateCount=r},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,t){let{appId:s,error:r}=t;Array.isArray(s)||(s=[s]),s.forEach((t=>{e.apps.find((e=>e.id===t)).error=r}))},clearError(e,t){let{appId:s,error:r}=t;e.apps.find((e=>e.id===s)).error=null},enableApp(e,t){let{appId:s,groups:r}=t;const a=e.apps.find((e=>e.id===s));a.active=!0,a.groups=r},disableApp(e,t){const s=e.apps.find((e=>e.id===t));s.active=!1,s.groups=[],s.removable&&(s.canUnInstall=!0)},uninstallApp(e,t){e.apps.find((e=>e.id===t)).active=!1,e.apps.find((e=>e.id===t)).groups=[],e.apps.find((e=>e.id===t)).needsDownload=!0,e.apps.find((e=>e.id===t)).installed=!1,e.apps.find((e=>e.id===t)).canUnInstall=!1,e.apps.find((e=>e.id===t)).canInstall=!0},updateApp(e,t){const s=e.apps.find((e=>e.id===t)),r=s.update;s.update=null,s.version=r,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach((t=>{a.Ay.set(e.loading,t,!0)})):a.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach((t=>{a.Ay.set(e.loading,t,!1)})):a.Ay.set(e.loading,t,!1)}},D={enableApp(e,s){let r,{appId:a,groups:o}=s;return r=Array.isArray(a)?a:[a],A().then((s=>(e.commit("startLoading",r),e.commit("startLoading","install"),y((0,p.Jv)("settings/apps/enable"),{appIds:r,groups:o}).then((s=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach((t=>{e.commit("enableApp",{appId:t,groups:o})})),g.Ay.get((0,p.Jv)("apps/files/")).then((()=>{s.data.update_required&&((0,F.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout((function(){location.reload()}),5e3))})).catch((()=>{Array.isArray(a)||((0,F.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:a}))}))))).catch((t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),e.commit("setError",{appId:r,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:a,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:a,error:t})))},forceEnableApp(e,t){let s,{appId:r,groups:a}=t;return s=Array.isArray(r)?r:[r],A().then((()=>(e.commit("startLoading",s),e.commit("startLoading","install"),y((0,p.Jv)("settings/apps/force"),{appId:r}).then((e=>{location.reload()})).catch((t=>{e.commit("stopLoading",s),e.commit("stopLoading","install"),e.commit("setError",{appId:s,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:r,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:r,error:t})))},disableApp(e,t){let s,{appId:r}=t;return s=Array.isArray(r)?r:[r],A().then((t=>(e.commit("startLoading",s),y((0,p.Jv)("settings/apps/disable"),{appIds:s}).then((t=>(e.commit("stopLoading",s),s.forEach((t=>{e.commit("disableApp",t)})),!0))).catch((t=>{e.commit("stopLoading",s),e.commit("APPS_API_FAILURE",{appId:r,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:r,error:t})))},uninstallApp(e,t){let{appId:s}=t;return A().then((t=>(e.commit("startLoading",s),b((0,p.Jv)("settings/apps/uninstall/".concat(s))).then((t=>(e.commit("stopLoading",s),e.commit("uninstallApp",s),!0))).catch((t=>{e.commit("stopLoading",s),e.commit("APPS_API_FAILURE",{appId:s,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:s,error:t})))},updateApp(e,t){let{appId:s}=t;return A().then((t=>(e.commit("startLoading",s),e.commit("startLoading","install"),b((0,p.Jv)("settings/apps/update/".concat(s))).then((t=>(e.commit("stopLoading","install"),e.commit("stopLoading",s),e.commit("updateApp",s),!0))).catch((t=>{e.commit("stopLoading",s),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:s,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:s,error:t})))},getAllApps:e=>(e.commit("startLoading","list"),b((0,p.Jv)("settings/apps/list")).then((t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0))).catch((t=>e.commit("API_FAILURE",t)))),async getCategories(e){let{shouldRefetchCategories:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=b((0,p.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const s=await t;return s.data.length>0?(e.commit("appendCategories",s.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},G={state:{apps:[],categories:[],updateCount:0,loading:{},loadingList:!1,gettingCategoriesPromise:null},mutations:S,getters:{loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find((e=>e.id===t))},actions:D},K={state:{serverData:{}},mutations:{setServerData(e,t){e.serverData=t}},getters:{getServerData:e=>e.serverData},actions:{}},j={state:{},mutations:{},getters:{},actions:{setAppConfig(e,t){let{app:s,key:r,value:a}=t;return A().then((e=>y((0,p.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:s,key:r}),{value:a}).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{app:s,key:r,value:a,error:t})))}}};var x=r(96763);a.Ay.use(m.Ay);const N={API_FAILURE(e,s){try{const e=s.error.response.data.ocs.meta.message;(0,F.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+e,{isHTML:!0})}catch(e){(0,F.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}x.error(e,s)}},B=new m.il({modules:{users:R,apps:G,settings:K,oc:j},strict:!1,mutations:N});r(32981);const q=()=>Promise.all([r.e(4208),r.e(3239)]).then(r.bind(r,24728)),M=()=>Promise.all([r.e(4208),r.e(4529)]).then(r.bind(r,86470));a.Ay.use(u.Ay);const J=document.title,$=new u.Ay({mode:"history",base:(0,p.Jv)(""),linkActiveClass:"active",routes:[{path:"/:index(index.php/)?settings/users",component:q,props:!0,name:"users",meta:{title:()=>t("settings","Active users")},children:[{path:":selectedGroup",name:"group",meta:{title:e=>"admin"===e.params.selectedGroup?t("settings","Admins"):"disabled"===e.params.selectedGroup?t("settings","Disabled users"):decodeURIComponent(e.params.selectedGroup)},component:q}]},{path:"/:index(index.php/)?settings/apps",component:M,props:!0,name:"apps",meta:{title:()=>t("settings","Your apps")},children:[{path:":category",name:"apps-category",meta:{title:async e=>{if("apps"===e.name)return t("settings","Your apps");if(l.l[e.params.category])return l.l[e.params.category];await B.dispatch("getCategories");const s=B.getters.getCategoryById(e.params.category);return s.displayName?s.displayName:void 0}},component:M,children:[{path:":id",name:"apps-details",component:M}]}]}]});$.afterEach((async e=>{var t,s;const r=await(null===(t=(s=e.meta).title)||void 0===t?void 0:t.call(s,e));r?(document.title="".concat(r," - ").concat(J),function(e){const t=document.getElementById("page-heading-level-1");t&&(t.textContent=e)}(r)):document.title=J}));const H=$;a.Ay.use(o.Ay,{defaultHtml:!1}),(0,i.O)(B,H),r.nc=btoa(OC.requestToken),a.Ay.prototype.t=t,a.Ay.prototype.n=n,a.Ay.prototype.OC=OC,a.Ay.prototype.OCA=OCA,a.Ay.prototype.oc_userconfig=oc_userconfig,new a.Ay({router:H,store:B,render:e=>e(c)}).$mount("#content")},58723:(e,t)=>{function s(e,t){var r={name:e.name,path:e.path,hash:e.hash,query:e.query,params:e.params,fullPath:e.fullPath,meta:e.meta};return t&&(r.from=s(t)),Object.freeze(r)}t.O=function(e,t,r){var a=(r||{}).moduleName||"route";e.registerModule(a,{namespaced:!0,state:s(t.currentRoute),mutations:{ROUTE_CHANGED:function(t,r){e.state[a]=s(r.to,r.from)}}});var o,i=!1,n=e.watch((function(e){return e[a]}),(function(e){var s=e.fullPath;s!==o&&(null!=o&&(i=!0,t.push(e)),o=s)}),{sync:!0}),d=t.afterEach((function(t,s){i?i=!1:(o=t.fullPath,e.commit(a+"/ROUTE_CHANGED",{to:t,from:s}))}));return function(){null!=d&&d(),null!=n&&n(),e.unregisterModule(a)}}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var s=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.m=a,e=[],i.O=(t,s,r,a)=>{if(!s){var o=1/0;for(u=0;u=a)&&Object.keys(i.O).every((e=>i.O[e](s[d])))?s.splice(d--,1):(n=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[s,r,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1957:"96a4d042dd15d21b005b",3239:"4d6b04f7d3e9c5b95675",4473:"6009e669b1a0737a2378",4529:"a16db7cca874de047399"}[e]),i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},r="nextcloud:",i.l=(e,t,a,o)=>{if(s[e])s[e].push(t);else{var n,d;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u{n.onerror=n.onload=null,clearTimeout(m);var a=s[e];if(delete s[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach((e=>e(r))),t)return t(r)},m=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=2689,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var r=s.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=s[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={2689:0};i.f.j=(t,s)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)s.push(r[2]);else{var a=new Promise(((s,a)=>r=e[t]=[s,a]));s.push(r[2]=a);var o=i.p+i.u(t),n=new Error;i.l(o,(s=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=s&&("load"===s.type?"missing":s.type),o=s&&s.target&&s.target.src;n.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",n.name="ChunkLoadError",n.type=a,n.request=o,r[1](n)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,s)=>{var r,a,o=s[0],n=s[1],d=s[2],c=0;if(o.some((t=>0!==e[t]))){for(r in n)i.o(n,r)&&(i.m[r]=n[r]);if(d)var u=d(i)}for(t&&t(s);ci(47027)));d=i.O(d)})(); -//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=f207236fe17964685f9e \ No newline at end of file +(()=>{var e,s,r,a={92973:(e,t,s)=>{"use strict";s.d(t,{l:()=>a});var r=s(53334);const a=Object.freeze({installed:(0,r.Tl)("settings","Your apps"),enabled:(0,r.Tl)("settings","Active apps"),disabled:(0,r.Tl)("settings","Disabled apps"),updates:(0,r.Tl)("settings","Updates"),"app-bundles":(0,r.Tl)("settings","App bundles"),featured:(0,r.Tl)("settings","Featured apps"),supported:(0,r.Tl)("settings","Supported apps")})},58692:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r=(0,s(53529).YK)().setApp("settings").detectUser().build()},47027:(e,s,r)=>{"use strict";var a=r(85471),o=r(80284),i=r(58723);const d={name:"App",beforeMount(){null!==document.getElementById("serverData")&&this.$store.commit("setServerData",JSON.parse(document.getElementById("serverData").dataset.server))}},c=(0,r(14486).A)(d,(function(){return(0,this._self._c)("router-view")}),[],!1,null,null,null).exports;var u=r(40173),p=r(63814),l=r(92973),m=r(95353),g=r(65043),h=r(56760);r(51257);const f=function(e){return e.replace(/\/$/,"")},A=()=>(0,h.C)(),b=(e,t)=>g.Ay.get(f(e),t),y=(e,t)=>g.Ay.post(f(e),t),I=(e,t)=>g.Ay.put(f(e),t),U=(e,t)=>g.Ay.delete(f(e),{params:t});var v=r(87485),L=r(58692),w=r(78791),P=r(96763);const C=function(e,t){return 1===t?e.sort(((e,t)=>e.usercount-e.disablede.name.localeCompare(t.name)))},E={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},_={appendUsers(e,t){const s=e.users.map((e=>{let{id:t}=e;return t})),r=Object.values(t).filter((e=>{let{id:t}=e;return!s.includes(t)})),a=e.users.concat(r);e.usersOffset+=e.usersLimit,e.users=a},updateDisabledUsers(e,t){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},initGroups(e,t){let{groups:s,orderBy:r,userCount:a}=t;e.groups=s.map((e=>Object.assign({},E,e))),e.orderBy=r,e.userCount=a,e.groups=C(e.groups,e.orderBy)},addGroup(e,t){let{gid:s,displayName:r}=t;try{if(void 0!==e.groups.find((e=>e.id===s)))return;const t=Object.assign({},E,{id:s,name:r});e.groups.unshift(t),e.groups=C(e.groups,e.orderBy)}catch(e){P.error("Can't create group",e)}},renameGroup(e,t){let{gid:s,displayName:r}=t;const a=e.groups.findIndex((e=>e.id===s));if(a>=0){const t=e.groups[a];t.name=r,e.groups.splice(a,1,t),e.groups=C(e.groups,e.orderBy)}},removeGroup(e,t){const s=e.groups.findIndex((e=>e.id===t));s>=0&&e.groups.splice(s,1)},addUserGroup(e,t){let{userid:s,gid:r}=t;const a=e.groups.find((e=>e.id===r)),o=e.users.find((e=>e.id===s));a&&o.enabled&&e.userCount>0&&a.usercount++,o.groups.push(r),e.groups=C(e.groups,e.orderBy)},removeUserGroup(e,t){let{userid:s,gid:r}=t;const a=e.groups.find((e=>e.id===r)),o=e.users.find((e=>e.id===s));a&&o.enabled&&e.userCount>0&&a.usercount--;const i=o.groups;i.splice(i.indexOf(r),1),e.groups=C(e.groups,e.orderBy)},addUserSubAdmin(e,t){let{userid:s,gid:r}=t;e.users.find((e=>e.id===s)).subadmin.push(r)},removeUserSubAdmin(e,t){let{userid:s,gid:r}=t;const a=e.users.find((e=>e.id===s)).subadmin;a.splice(a.indexOf(r),1)},deleteUser(e,t){const s=e.users.findIndex((e=>e.id===t));this.commit("updateUserCounts",{user:e.users[s],actionType:"remove"}),e.users.splice(s,1)},addUserData(e,t){const s=t.data.ocs.data;e.users.unshift(s),this.commit("updateUserCounts",{user:s,actionType:"create"})},enableDisableUser(e,t){let{userid:s,enabled:r}=t;const a=e.users.find((e=>e.id===s));a.enabled=r,this.commit("updateUserCounts",{user:a,actionType:r?"enable":"disable"})},updateUserCounts(e,t){let{user:s,actionType:r}=t;if(0===e.userCount)return;const a=e.groups.find((e=>"disabled"===e.id));switch(r){case"enable":case"disable":a.usercount+=s.enabled?-1:1,e.userCount+=s.enabled?1:-1,s.groups.forEach((t=>{e.groups.find((e=>e.id===t)).disabled+=s.enabled?-1:1}));break;case"create":e.userCount++,s.groups.forEach((t=>{e.groups.find((e=>e.id===t)).usercount++}));break;case"remove":s.enabled?(e.userCount--,s.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s?s.usercount--:P.warn("User group "+t+" does not exist during user removal")}))):(a.usercount--,s.groups.forEach((t=>{e.groups.find((e=>e.id===t)).disabled--})));break;default:L.A.error("Unknown action type in updateUserCounts: '".concat(r,"'"))}},setUserData(e,t){let{userid:s,key:r,value:a}=t;if("quota"===r){const t=(0,w.lT)(a,!0);e.users.find((e=>e.id===s))[r][r]=null!==t?t:a}else e.users.find((e=>e.id===s))[r]=a},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},setShowConfig(e,t){let{key:s,value:r}=t;e.showConfig[s]=r}},T=g.Ay.CancelToken;let O=null;const R={state:{users:[],groups:[],orderBy:1,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,userCount:0,showConfig:{showStoragePath:!1,showUserBackend:!1,showLastLogin:!1,showNewUserForm:!1,showLanguages:!1}},mutations:_,getters:{getUsers:e=>e.users,getGroups:e=>e.groups,getSubadminGroups:e=>e.groups.filter((e=>"admin"!==e.id&&"disabled"!==e.id)),getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},actions:{searchUsers(e,t){let{offset:s,limit:r,search:a}=t;return a="string"==typeof a?a:"",b((0,p.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a})).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))},getUser:(e,t)=>b((0,p.KT)("cloud/users/".concat(t))).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUsers(e,t){let{offset:s,limit:r,search:a,group:o}=t;return O&&O.cancel("Operation canceled by another search request."),O=T.source(),a="string"==typeof a?a:"",a=a.replace(/in:[^\s]+/g,"").trim(),o="string"==typeof o?o:"",""!==o?b((0,p.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(o),offset:s,limit:r,search:a}),{cancelToken:O.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)})):b((0,p.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a}),{cancelToken:O.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{g.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))},async getDisabledUsers(e,t){let{offset:s,limit:r,search:a}=t;const o=(0,p.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a});try{const t=await b(o),s=Object.keys(t.data.ocs.data.users).length;return s>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),s}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,t){let{offset:s,limit:r,search:a}=t;a="string"==typeof a?a:"";const o=-1===r?"":"&limit=".concat(r);return b((0,p.KT)("cloud/groups?offset={offset}&search={search}",{offset:s,search:a})+o).then((t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach((function(t){e.commit("addGroup",{gid:t,displayName:t})})),!0))).catch((t=>e.commit("API_FAILURE",t)))},getUsersFromList(e,t){let{offset:s,limit:r,search:a}=t;return a="string"==typeof a?a:"",b((0,p.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:s,limit:r,search:a})).then((t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0))).catch((t=>e.commit("API_FAILURE",t)))},getUsersFromGroup(e,t){let{groupid:s,offset:r,limit:a}=t;return b((0,p.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(s),offset:r,limit:a})).then((t=>e.commit("getUsersFromList",t.data.ocs.data.users))).catch((t=>e.commit("API_FAILURE",t)))},getPasswordPolicyMinLength:e=>!(!(0,v.F)().password_policy||!(0,v.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,v.F)().password_policy.minLength),(0,v.F)().password_policy.minLength),addGroup:(e,t)=>A().then((s=>y((0,p.KT)("cloud/groups"),{groupid:t}).then((s=>(e.commit("addGroup",{gid:t,displayName:t}),{gid:t,displayName:t}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{gid:t,error:s}),s})),renameGroup(e,t){let{groupid:s,displayName:r}=t;return A().then((t=>I((0,p.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(s)}),{key:"displayname",value:r}).then((t=>(e.commit("renameGroup",{gid:s,displayName:r}),{groupid:s,displayName:r}))).catch((e=>{throw e})))).catch((t=>{throw e.commit("API_FAILURE",{groupid:s,error:t}),t}))},removeGroup:(e,t)=>A().then((s=>U((0,p.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then((s=>e.commit("removeGroup",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{gid:t,error:s}))),addUserGroup(e,t){let{userid:s,gid:r}=t;return A().then((t=>y((0,p.KT)("cloud/users/{userid}/groups",{userid:s}),{groupid:r}).then((t=>e.commit("addUserGroup",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},removeUserGroup(e,t){let{userid:s,gid:r}=t;return A().then((t=>U((0,p.KT)("cloud/users/{userid}/groups",{userid:s}),{groupid:r}).then((t=>e.commit("removeUserGroup",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>{throw e.commit("API_FAILURE",{userid:s,error:t}),t}))},addUserSubAdmin(e,t){let{userid:s,gid:r}=t;return A().then((t=>y((0,p.KT)("cloud/users/{userid}/subadmins",{userid:s}),{groupid:r}).then((t=>e.commit("addUserSubAdmin",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},removeUserSubAdmin(e,t){let{userid:s,gid:r}=t;return A().then((t=>U((0,p.KT)("cloud/users/{userid}/subadmins",{userid:s}),{groupid:r}).then((t=>e.commit("removeUserSubAdmin",{userid:s,gid:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},wipeUserDevices:(e,t)=>A().then((e=>y((0,p.KT)("cloud/users/{userid}/wipe",{userid:t})).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),deleteUser:(e,t)=>A().then((s=>U((0,p.KT)("cloud/users/{userid}",{userid:t})).then((s=>e.commit("deleteUser",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),addUser(e,t){let{commit:s,dispatch:r}=e,{userid:a,password:o,displayName:i,email:n,groups:d,subadmin:c,quota:u,language:l,manager:m}=t;return A().then((e=>y((0,p.KT)("cloud/users"),{userid:a,password:o,displayName:i,email:n,groups:d,subadmin:c,quota:u,language:l,manager:m}).then((e=>r("addUserData",a||e.data.ocs.data.id))).catch((e=>{throw e})))).catch((e=>{throw s("API_FAILURE",{userid:a,error:e}),e}))},addUserData:(e,t)=>A().then((s=>b((0,p.KT)("cloud/users/{userid}",{userid:t})).then((t=>e.commit("addUserData",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),enableDisableUser(e,t){let{userid:s,enabled:r=!0}=t;const a=r?"enable":"disable";return A().then((t=>I((0,p.KT)("cloud/users/{userid}/{userStatus}",{userid:s,userStatus:a})).then((t=>e.commit("enableDisableUser",{userid:s,enabled:r}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t})))},setUserData(e,t){let{userid:s,key:r,value:a}=t;const o=["email","displayname","manager"];return-1!==["email","language","quota","displayname","password","manager"].indexOf(r)&&"string"==typeof a&&(-1===o.indexOf(r)&&a.length>0||-1!==o.indexOf(r))?A().then((t=>I((0,p.KT)("cloud/users/{userid}",{userid:s}),{key:r,value:a}).then((t=>e.commit("setUserData",{userid:s,key:r,value:a}))).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{userid:s,error:t}))):Promise.reject(new Error("Invalid request data"))},sendWelcomeMail:(e,t)=>A().then((e=>y((0,p.KT)("cloud/users/{userid}/welcome",{userid:t})).then((e=>!0)).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s})))}};var F=r(85168),k=r(96763);const S={APPS_API_FAILURE(e,s){(0,F.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+s.error.response.data.data.message,{isHTML:!0}),k.error(e,s)},initCategories(e,t){let{categories:s,updateCount:r}=t;e.categories=s,e.updateCount=r},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,t){let{appId:s,error:r}=t;Array.isArray(s)||(s=[s]),s.forEach((t=>{e.apps.find((e=>e.id===t)).error=r}))},clearError(e,t){let{appId:s,error:r}=t;e.apps.find((e=>e.id===s)).error=null},enableApp(e,t){let{appId:s,groups:r}=t;const a=e.apps.find((e=>e.id===s));a.active=!0,a.groups=r},disableApp(e,t){const s=e.apps.find((e=>e.id===t));s.active=!1,s.groups=[],s.removable&&(s.canUnInstall=!0)},uninstallApp(e,t){e.apps.find((e=>e.id===t)).active=!1,e.apps.find((e=>e.id===t)).groups=[],e.apps.find((e=>e.id===t)).needsDownload=!0,e.apps.find((e=>e.id===t)).installed=!1,e.apps.find((e=>e.id===t)).canUnInstall=!1,e.apps.find((e=>e.id===t)).canInstall=!0},updateApp(e,t){const s=e.apps.find((e=>e.id===t)),r=s.update;s.update=null,s.version=r,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach((t=>{a.Ay.set(e.loading,t,!0)})):a.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach((t=>{a.Ay.set(e.loading,t,!1)})):a.Ay.set(e.loading,t,!1)}},D={enableApp(e,s){let r,{appId:a,groups:o}=s;return r=Array.isArray(a)?a:[a],A().then((s=>(e.commit("startLoading",r),e.commit("startLoading","install"),y((0,p.Jv)("settings/apps/enable"),{appIds:r,groups:o}).then((s=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach((t=>{e.commit("enableApp",{appId:t,groups:o})})),g.Ay.get((0,p.Jv)("apps/files/")).then((()=>{s.data.update_required&&((0,F.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout((function(){location.reload()}),5e3))})).catch((()=>{Array.isArray(a)||((0,F.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:a}))}))))).catch((t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),e.commit("setError",{appId:r,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:a,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:a,error:t})))},forceEnableApp(e,t){let s,{appId:r,groups:a}=t;return s=Array.isArray(r)?r:[r],A().then((()=>(e.commit("startLoading",s),e.commit("startLoading","install"),y((0,p.Jv)("settings/apps/force"),{appId:r}).then((e=>{location.reload()})).catch((t=>{e.commit("stopLoading",s),e.commit("stopLoading","install"),e.commit("setError",{appId:s,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:r,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:r,error:t})))},disableApp(e,t){let s,{appId:r}=t;return s=Array.isArray(r)?r:[r],A().then((t=>(e.commit("startLoading",s),y((0,p.Jv)("settings/apps/disable"),{appIds:s}).then((t=>(e.commit("stopLoading",s),s.forEach((t=>{e.commit("disableApp",t)})),!0))).catch((t=>{e.commit("stopLoading",s),e.commit("APPS_API_FAILURE",{appId:r,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:r,error:t})))},uninstallApp(e,t){let{appId:s}=t;return A().then((t=>(e.commit("startLoading",s),b((0,p.Jv)("settings/apps/uninstall/".concat(s))).then((t=>(e.commit("stopLoading",s),e.commit("uninstallApp",s),!0))).catch((t=>{e.commit("stopLoading",s),e.commit("APPS_API_FAILURE",{appId:s,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:s,error:t})))},updateApp(e,t){let{appId:s}=t;return A().then((t=>(e.commit("startLoading",s),e.commit("startLoading","install"),b((0,p.Jv)("settings/apps/update/".concat(s))).then((t=>(e.commit("stopLoading","install"),e.commit("stopLoading",s),e.commit("updateApp",s),!0))).catch((t=>{e.commit("stopLoading",s),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:s,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:s,error:t})))},getAllApps:e=>(e.commit("startLoading","list"),b((0,p.Jv)("settings/apps/list")).then((t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0))).catch((t=>e.commit("API_FAILURE",t)))),async getCategories(e){let{shouldRefetchCategories:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=b((0,p.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const s=await t;return s.data.length>0?(e.commit("appendCategories",s.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},G={state:{apps:[],categories:[],updateCount:0,loading:{},loadingList:!1,gettingCategoriesPromise:null},mutations:S,getters:{loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find((e=>e.id===t))},actions:D},K={state:{serverData:{}},mutations:{setServerData(e,t){e.serverData=t}},getters:{getServerData:e=>e.serverData},actions:{}},j={state:{},mutations:{},getters:{},actions:{setAppConfig(e,t){let{app:s,key:r,value:a}=t;return A().then((e=>y((0,p.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:s,key:r}),{value:a}).catch((e=>{throw e})))).catch((t=>e.commit("API_FAILURE",{app:s,key:r,value:a,error:t})))}}};var x=r(96763);a.Ay.use(m.Ay);const N={API_FAILURE(e,s){try{const e=s.error.response.data.ocs.meta.message;(0,F.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
    "+e,{isHTML:!0})}catch(e){(0,F.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}x.error(e,s)}},B=new m.il({modules:{users:R,apps:G,settings:K,oc:j},strict:!1,mutations:N});r(32981);const q=()=>Promise.all([r.e(4208),r.e(3239)]).then(r.bind(r,24728)),M=()=>Promise.all([r.e(4208),r.e(4529)]).then(r.bind(r,17183));a.Ay.use(u.Ay);const J=document.title,$=new u.Ay({mode:"history",base:(0,p.Jv)(""),linkActiveClass:"active",routes:[{path:"/:index(index.php/)?settings/users",component:q,props:!0,name:"users",meta:{title:()=>t("settings","Active users")},children:[{path:":selectedGroup",name:"group",meta:{title:e=>"admin"===e.params.selectedGroup?t("settings","Admins"):"disabled"===e.params.selectedGroup?t("settings","Disabled users"):decodeURIComponent(e.params.selectedGroup)},component:q}]},{path:"/:index(index.php/)?settings/apps",component:M,props:!0,name:"apps",meta:{title:()=>t("settings","Your apps")},children:[{path:":category",name:"apps-category",meta:{title:async e=>{if("apps"===e.name)return t("settings","Your apps");if(l.l[e.params.category])return l.l[e.params.category];await B.dispatch("getCategories");const s=B.getters.getCategoryById(e.params.category);return s.displayName?s.displayName:void 0}},component:M,children:[{path:":id",name:"apps-details",component:M}]}]}]});$.afterEach((async e=>{var t,s;const r=await(null===(t=(s=e.meta).title)||void 0===t?void 0:t.call(s,e));r?(document.title="".concat(r," - ").concat(J),function(e){const t=document.getElementById("page-heading-level-1");t&&(t.textContent=e)}(r)):document.title=J}));const H=$;a.Ay.use(o.Ay,{defaultHtml:!1}),(0,i.O)(B,H),r.nc=btoa(OC.requestToken),a.Ay.prototype.t=t,a.Ay.prototype.n=n,a.Ay.prototype.OC=OC,a.Ay.prototype.OCA=OCA,a.Ay.prototype.oc_userconfig=oc_userconfig,new a.Ay({router:H,store:B,render:e=>e(c)}).$mount("#content")},58723:(e,t)=>{function s(e,t){var r={name:e.name,path:e.path,hash:e.hash,query:e.query,params:e.params,fullPath:e.fullPath,meta:e.meta};return t&&(r.from=s(t)),Object.freeze(r)}t.O=function(e,t,r){var a=(r||{}).moduleName||"route";e.registerModule(a,{namespaced:!0,state:s(t.currentRoute),mutations:{ROUTE_CHANGED:function(t,r){e.state[a]=s(r.to,r.from)}}});var o,i=!1,n=e.watch((function(e){return e[a]}),(function(e){var s=e.fullPath;s!==o&&(null!=o&&(i=!0,t.push(e)),o=s)}),{sync:!0}),d=t.afterEach((function(t,s){i?i=!1:(o=t.fullPath,e.commit(a+"/ROUTE_CHANGED",{to:t,from:s}))}));return function(){null!=d&&d(),null!=n&&n(),e.unregisterModule(a)}}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var s=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.m=a,e=[],i.O=(t,s,r,a)=>{if(!s){var o=1/0;for(u=0;u=a)&&Object.keys(i.O).every((e=>i.O[e](s[d])))?s.splice(d--,1):(n=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[s,r,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1957:"96a4d042dd15d21b005b",3239:"4d6b04f7d3e9c5b95675",4473:"6009e669b1a0737a2378",4529:"7af5d54e542cee8b975e"}[e]),i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},r="nextcloud:",i.l=(e,t,a,o)=>{if(s[e])s[e].push(t);else{var n,d;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u{n.onerror=n.onload=null,clearTimeout(m);var a=s[e];if(delete s[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach((e=>e(r))),t)return t(r)},m=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=2689,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var r=s.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=s[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={2689:0};i.f.j=(t,s)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)s.push(r[2]);else{var a=new Promise(((s,a)=>r=e[t]=[s,a]));s.push(r[2]=a);var o=i.p+i.u(t),n=new Error;i.l(o,(s=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=s&&("load"===s.type?"missing":s.type),o=s&&s.target&&s.target.src;n.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",n.name="ChunkLoadError",n.type=a,n.request=o,r[1](n)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,s)=>{var r,a,o=s[0],n=s[1],d=s[2],c=0;if(o.some((t=>0!==e[t]))){for(r in n)i.o(n,r)&&(i.m[r]=n[r]);if(d)var u=d(i)}for(t&&t(s);ci(47027)));d=i.O(d)})(); +//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=9be513097ad162fee679 \ No newline at end of file diff --git a/dist/settings-vue-settings-apps-users-management.js.map b/dist/settings-vue-settings-apps-users-management.js.map index 5056f91d77d6e..a8e3a0a240663 100644 --- a/dist/settings-vue-settings-apps-users-management.js.map +++ b/dist/settings-vue-settings-apps-users-management.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=f207236fe17964685f9e","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","webpack:///nextcloud/apps/settings/src/App.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/App.vue?536c","webpack://nextcloud/./apps/settings/src/App.vue?4d15","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/settings.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/core/src/OCP/accessibility.js","webpack:///nextcloud/apps/settings/src/router.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 = (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((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\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 = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @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\tinstalled: t('settings', 'Your apps'),\n\tenabled: t('settings', 'Active apps'),\n\tdisabled: t('settings', 'Disabled apps'),\n\tupdates: t('settings', 'Updates'),\n\t'app-bundles': t('settings', 'App bundles'),\n\tfeatured: t('settings', 'Featured apps'),\n\tsupported: t('settings', 'Supported apps'), // From subscription\n})\n","/**\n * @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","\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!./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\"","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 * @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'\nimport { parseFileSize } from \"@nextcloud/files\"\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\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 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\tupdateDisabledUsers(state, _usersObj) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\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 = parseFileSize(value, true)\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\tstate.disabledUsersOffset = 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\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\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\t/**\n\t * Get disabled 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 * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\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 axios from '@nextcloud/axios'\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 axios.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\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\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\tcontext.dispatch('disableApp', { appId })\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 *\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 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) 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 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) 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1957\":\"96a4d042dd15d21b005b\",\"3239\":\"4d6b04f7d3e9c5b95675\",\"4473\":\"6009e669b1a0737a2378\",\"4529\":\"a16db7cca874de047399\"}[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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2689;","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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").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\t2689: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = 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((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = 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, [4208], () => (__webpack_require__(47027)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","APPS_SECTION_ENUM","Object","freeze","installed","t","enabled","disabled","updates","featured","supported","getLoggerBuilder","setApp","detectUser","build","name","beforeMount","document","getElementById","$store","commit","JSON","parse","dataset","server","_c","this","_self","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","put","delete","params","orderGroups","groups","orderBy","sort","a","b","usercount","localeCompare","defaults","id","canAdd","canRemove","mutations","appendUsers","state","usersObj","existingUsers","users","map","_ref","newUsers","values","filter","_ref2","includes","concat","usersOffset","usersLimit","updateDisabledUsers","_usersObj","disabledUsersOffset","disabledUsersLimit","setPasswordPolicyMinLength","length","minPasswordLength","initGroups","_ref3","userCount","group","assign","addGroup","_ref4","gid","displayName","find","unshift","e","console","error","renameGroup","_ref5","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","_ref6","userid","user","push","removeUserGroup","_ref7","indexOf","addUserSubAdmin","_ref8","subadmin","removeUserSubAdmin","_ref9","deleteUser","userIndex","actionType","addUserData","response","ocs","enableDisableUser","_ref10","updateUserCounts","_ref11","disabledGroup","forEach","userGroup","warn","logger","setUserData","_ref12","key","value","humanValue","parseFileSize","resetUsers","setShowConfig","_ref13","showConfig","CancelToken","searchRequestCancelSource","showStoragePath","showUserBackend","showLastLogin","showNewUserForm","showLanguages","getters","getUsers","getGroups","getSubadminGroups","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","actions","searchUsers","context","_ref14","offset","limit","search","api","generateOcsUrl","catch","getUser","userId","_ref15","cancel","source","trim","encodeURIComponent","cancelToken","token","then","usersCount","keys","getDisabledUsers","_ref16","_ref17","limitParam","getUsersFromList","_ref18","getUsersFromGroup","_ref19","groupid","groupId","getCapabilities","password_policy","minLength","_ref20","_ref21","_ref22","_ref23","_ref24","wipeUserDevices","addUser","_ref25","_ref26","dispatch","password","email","quota","language","manager","_ref27","userStatus","_ref28","allowedEmpty","Promise","reject","Error","sendWelcomeMail","APPS_API_FAILURE","showError","message","isHTML","initCategories","categories","updateCount","updateCategories","categoriesPromise","gettingCategoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","apps","setError","appId","Array","isArray","_id","app","clearError","enableApp","active","disableApp","removable","canUnInstall","uninstallApp","needsDownload","canInstall","updateApp","version","update","resetApps","reset","startLoading","Vue","loading","stopLoading","generateUrl","appIds","_appId","update_required","showInfo","onClick","window","location","reload","close","setTimeout","forceEnableApp","getAllApps","getCategories","shouldRefetchCategories","arguments","undefined","categoriesPromiseResponse","loadingList","getUpdateCount","getCategoryById","selectedCategoryId","serverData","setServerData","getServerData","setAppConfig","use","Vuex","API_FAILURE","meta","Store","modules","settings","oc","strict","process","Users","Apps","Router","baseTitle","title","router","mode","base","linkActiveClass","routes","path","component","props","children","to","selectedGroup","decodeURIComponent","async","store","afterEach","_to$meta$title","_to$meta","metaTitle","call","heading","headingEl","textContent","setPageHeading","VTooltip","defaultHtml","sync","__webpack_nonce__","btoa","OC","requestToken","prototype","n","OCA","oc_userconfig","render","h","App","$mount","cloneRoute","from","clone","hash","query","fullPath","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","loaded","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","errorType","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=9be513097ad162fee679","mappings":";UAAIA,ECAAC,EACAC,kECwBG,MAAMC,EAAoBC,OAAOC,OAAO,CAC9CC,WAAWC,EAAAA,EAAAA,IAAE,WAAY,aACzBC,SAASD,EAAAA,EAAAA,IAAE,WAAY,eACvBE,UAAUF,EAAAA,EAAAA,IAAE,WAAY,iBACxBG,SAASH,EAAAA,EAAAA,IAAE,WAAY,WACvB,eAAeA,EAAAA,EAAAA,IAAE,WAAY,eAC7BI,UAAUJ,EAAAA,EAAAA,IAAE,WAAY,iBACxBK,WAAWL,EAAAA,EAAAA,IAAE,WAAY,mECR1B,SAAeM,WAAAA,MACbC,OAAO,YACPC,aACAC,2ECAF,MC3ByK,ED2BzK,CACAC,KAAA,MACAC,WAAAA,GAGA,OADAC,SAAAC,eAAA,eAEA,KAAAC,OAAAC,OAAA,gBAAAC,KAAAC,MAAAL,SAAAC,eAAA,cAAAK,QAAAC,QAEA,GEjBA,GAXgB,cACd,GCRW,WAA+C,OAAOC,EAA5BC,KAAYC,MAAMF,IAAa,cACtE,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,uFEYhC,MAAMG,EAAW,SAASC,GACzB,OAAOA,EAAIC,QAAQ,MAAO,GAC3B,EAEA,EAiCaC,KACJC,EAAAA,EAAAA,KAlCT,EAoCIC,CAACJ,EAAKK,IACDC,EAAAA,GAAMF,IAAIL,EAASC,GAAMK,GArClC,EAuCKE,CAACP,EAAKQ,IACFF,EAAAA,GAAMC,KAAKR,EAASC,GAAMQ,GAxCnC,EA6CIC,CAACT,EAAKQ,IACDF,EAAAA,GAAMG,IAAIV,EAASC,GAAMQ,GA9ClC,EAgDOE,CAACV,EAAKQ,IACJF,EAAAA,GAAMI,OAAOX,EAASC,GAAM,CAAEW,OAAQH,oDC/C/C,MAAMI,EAAc,SAASC,EAAQC,GAKpC,OAAgB,IAAZA,EACID,EAAOE,MAAK,CAACC,EAAGC,IAAMD,EAAEE,UAAYF,EAAEtC,SAAWuC,EAAEC,UAAYD,EAAEvC,WAEjEmC,EAAOE,MAAK,CAACC,EAAGC,IAAMD,EAAE9B,KAAKiC,cAAcF,EAAE/B,OAEtD,EAEMkC,EACE,CACNC,GAAI,GACJnC,KAAM,GACNgC,UAAW,EACXxC,SAAU,EACV4C,QAAQ,EACRC,WAAW,GAuBPC,EAAY,CACjBC,WAAAA,CAAYC,EAAOC,GAClB,MAAMC,EAAgBF,EAAMG,MAAMC,KAAIC,IAAA,IAAC,GAAEV,GAAIU,EAAA,OAAKV,CAAE,IAC9CW,EAAW3D,OAAO4D,OAAON,GAC7BO,QAAOC,IAAA,IAAC,GAAEd,GAAIc,EAAA,OAAMP,EAAcQ,SAASf,EAAG,IAE1CQ,EAAQH,EAAMG,MAAMQ,OAAOL,GACjCN,EAAMY,aAAeZ,EAAMa,WAC3Bb,EAAMG,MAAQA,CACf,EACAW,mBAAAA,CAAoBd,EAAOe,GAC1Bf,EAAMgB,qBAAuBhB,EAAMiB,kBACpC,EACAC,0BAAAA,CAA2BlB,EAAOmB,GACjCnB,EAAMoB,kBAA+B,KAAXD,EAAgBA,EAAS,CACpD,EACAE,UAAAA,CAAWrB,EAAKsB,GAAkC,IAAhC,OAAEnC,EAAM,QAAEC,EAAO,UAAEmC,GAAWD,EAC/CtB,EAAMb,OAASA,EAAOiB,KAAIoB,GAAS7E,OAAO8E,OAAO,CAAC,EAAG/B,EAAgB8B,KACrExB,EAAMZ,QAAUA,EAChBY,EAAMuB,UAAYA,EAClBvB,EAAMb,OAASD,EAAYc,EAAMb,OAAQa,EAAMZ,QAEhD,EACAsC,QAAAA,CAAS1B,EAAK2B,GAAwB,IAAtB,IAAEC,EAAG,YAAEC,GAAaF,EACnC,IACC,QAA8D,IAAnD3B,EAAMb,OAAO2C,MAAMN,GAAUA,EAAM7B,KAAOiC,IACpD,OAGD,MAAMJ,EAAQ7E,OAAO8E,OAAO,CAAC,EAAG/B,EAAgB,CAC/CC,GAAIiC,EACJpE,KAAMqE,IAEP7B,EAAMb,OAAO4C,QAAQP,GACrBxB,EAAMb,OAASD,EAAYc,EAAMb,OAAQa,EAAMZ,QAChD,CAAE,MAAO4C,GACRC,EAAQC,MAAM,qBAAuBF,EACtC,CACD,EACAG,WAAAA,CAAYnC,EAAKoC,GAAwB,IAAtB,IAAER,EAAG,YAAEC,GAAaO,EACtC,MAAMC,EAAarC,EAAMb,OAAOmD,WAAUC,GAAeA,EAAY5C,KAAOiC,IAC5E,GAAIS,GAAc,EAAG,CACpB,MAAMG,EAAexC,EAAMb,OAAOkD,GAClCG,EAAahF,KAAOqE,EACpB7B,EAAMb,OAAOsD,OAAOJ,EAAY,EAAGG,GACnCxC,EAAMb,OAASD,EAAYc,EAAMb,OAAQa,EAAMZ,QAChD,CACD,EACAsD,WAAAA,CAAY1C,EAAO4B,GAClB,MAAMS,EAAarC,EAAMb,OAAOmD,WAAUC,GAAeA,EAAY5C,KAAOiC,IACxES,GAAc,GACjBrC,EAAMb,OAAOsD,OAAOJ,EAAY,EAElC,EACAM,YAAAA,CAAa3C,EAAK4C,GAAmB,IAAjB,OAAEC,EAAM,IAAEjB,GAAKgB,EAClC,MAAMpB,EAAQxB,EAAMb,OAAO2C,MAAKS,GAAeA,EAAY5C,KAAOiC,IAC5DkB,EAAO9C,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAE9CrB,GAASsB,EAAK/F,SAAWiD,EAAMuB,UAAY,GAC9CC,EAAMhC,YAEQsD,EAAK3D,OACb4D,KAAKnB,GACZ5B,EAAMb,OAASD,EAAYc,EAAMb,OAAQa,EAAMZ,QAChD,EACA4D,eAAAA,CAAgBhD,EAAKiD,GAAmB,IAAjB,OAAEJ,EAAM,IAAEjB,GAAKqB,EACrC,MAAMzB,EAAQxB,EAAMb,OAAO2C,MAAKS,GAAeA,EAAY5C,KAAOiC,IAC5DkB,EAAO9C,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAE9CrB,GAASsB,EAAK/F,SAAWiD,EAAMuB,UAAY,GAC9CC,EAAMhC,YAEP,MAAML,EAAS2D,EAAK3D,OACpBA,EAAOsD,OAAOtD,EAAO+D,QAAQtB,GAAM,GACnC5B,EAAMb,OAASD,EAAYc,EAAMb,OAAQa,EAAMZ,QAChD,EACA+D,eAAAA,CAAgBnD,EAAKoD,GAAmB,IAAjB,OAAEP,EAAM,IAAEjB,GAAKwB,EACtBpD,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAAQQ,SACrDN,KAAKnB,EACb,EACA0B,kBAAAA,CAAmBtD,EAAKuD,GAAmB,IAAjB,OAAEV,EAAM,IAAEjB,GAAK2B,EACxC,MAAMpE,EAASa,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAAQQ,SAC5DlE,EAAOsD,OAAOtD,EAAO+D,QAAQtB,GAAM,EACpC,EACA4B,UAAAA,CAAWxD,EAAO6C,GACjB,MAAMY,EAAYzD,EAAMG,MAAMmC,WAAUQ,GAAQA,EAAKnD,KAAOkD,IAC5D1E,KAAKN,OAAO,mBAAoB,CAAEiF,KAAM9C,EAAMG,MAAMsD,GAAYC,WAAY,WAC5E1D,EAAMG,MAAMsC,OAAOgB,EAAW,EAC/B,EACAE,WAAAA,CAAY3D,EAAO4D,GAClB,MAAMd,EAAOc,EAAS9E,KAAK+E,IAAI/E,KAC/BkB,EAAMG,MAAM4B,QAAQe,GACpB3E,KAAKN,OAAO,mBAAoB,CAAEiF,OAAMY,WAAY,UACrD,EACAI,iBAAAA,CAAkB9D,EAAK+D,GAAuB,IAArB,OAAElB,EAAM,QAAE9F,GAASgH,EAC3C,MAAMjB,EAAO9C,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAClDC,EAAK/F,QAAUA,EACfoB,KAAKN,OAAO,mBAAoB,CAAEiF,OAAMY,WAAY3G,EAAU,SAAW,WAC1E,EAEAiH,gBAAAA,CAAiBhE,EAAKiE,GAAwB,IAAtB,KAAEnB,EAAI,WAAEY,GAAYO,EAE3C,GAAwB,IAApBjE,EAAMuB,UACT,OAGD,MAAM2C,EAAgBlE,EAAMb,OAAO2C,MAAKN,GAAsB,aAAbA,EAAM7B,KACvD,OAAQ+D,GACR,IAAK,SACL,IAAK,UACJQ,EAAc1E,WAAasD,EAAK/F,SAAW,EAAI,EAC/CiD,EAAMuB,WAAauB,EAAK/F,QAAU,GAAK,EACvC+F,EAAK3D,OAAOgF,SAAQC,IACLpE,EAAMb,OAAO2C,MAAKS,GAAeA,EAAY5C,KAAOyE,IAC5DpH,UAAY8F,EAAK/F,SAAW,EAAI,CAAC,IAExC,MACD,IAAK,SACJiD,EAAMuB,YAENuB,EAAK3D,OAAOgF,SAAQC,IACnBpE,EAAMb,OACJ2C,MAAKS,GAAeA,EAAY5C,KAAOyE,IACpC5E,WAAW,IAEjB,MACD,IAAK,SACAsD,EAAK/F,SACRiD,EAAMuB,YACNuB,EAAK3D,OAAOgF,SAAQC,IACnB,MAAM5C,EAAQxB,EAAMb,OAAO2C,MAAKS,GAAeA,EAAY5C,KAAOyE,IAC7D5C,EAILA,EAAMhC,YAHLyC,EAAQoC,KAAK,cAAgBD,EAAY,sCAGzB,MAGlBF,EAAc1E,YACdsD,EAAK3D,OAAOgF,SAAQC,IACLpE,EAAMb,OAAO2C,MAAKS,GAAeA,EAAY5C,KAAOyE,IAC5DpH,UAAU,KAGlB,MACD,QACCsH,EAAAA,EAAOpC,MAAM,6CAADvB,OAA8C+C,EAAU,MAGtE,EACAa,WAAAA,CAAYvE,EAAKwE,GAA0B,IAAxB,OAAE3B,EAAM,IAAE4B,EAAG,MAAEC,GAAOF,EACxC,GAAY,UAARC,EAAiB,CACpB,MAAME,GAAaC,EAAAA,EAAAA,IAAcF,GAAO,GACxC1E,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAAQ4B,GAAKA,GAAsB,OAAfE,EAAsBA,EAAaD,CAC7F,MACC1E,EAAMG,MAAM2B,MAAKgB,GAAQA,EAAKnD,KAAOkD,IAAQ4B,GAAOC,CAEtD,EAOAG,UAAAA,CAAW7E,GACVA,EAAMG,MAAQ,GACdH,EAAMY,YAAc,EACpBZ,EAAMgB,oBAAsB,CAC7B,EAEA8D,aAAAA,CAAc9E,EAAK+E,GAAkB,IAAhB,IAAEN,EAAG,MAAEC,GAAOK,EAClC/E,EAAMgF,WAAWP,GAAOC,CACzB,GAqCKO,EAAcrG,EAAAA,GAAMqG,YAC1B,IAAIC,EAA4B,KAEhC,MAycA,GAAiBlF,MAhrBH,CACbG,MAAO,GACPhB,OAAQ,GACRC,QAAS,EACTgC,kBAAmB,EACnBR,YAAa,EACbC,WAAY,GACZG,oBAAqB,EACrBC,mBAAoB,GACpBM,UAAW,EACXyD,WAAY,CACXG,iBAAiB,EACjBC,iBAAiB,EACjBC,eAAe,EACfC,iBAAiB,EACjBC,eAAe,IAiqBOzF,YAAW0F,QA9enB,CACfC,SAASzF,GACDA,EAAMG,MAEduF,UAAU1F,GACFA,EAAMb,OAEdwG,kBAAkB3F,GAEVA,EAAMb,OAAOqB,QAAOgB,GAAsB,UAAbA,EAAM7B,IAA+B,aAAb6B,EAAM7B,KAEnEiG,2BAA2B5F,GACnBA,EAAMoB,kBAEdyE,eAAe7F,GACPA,EAAMY,YAEdkF,cAAc9F,GACNA,EAAMa,WAEdkF,uBAAuB/F,GACfA,EAAMgB,oBAEdgF,sBAAsBhG,GACdA,EAAMiB,mBAEdgF,aAAajG,GACLA,EAAMuB,UAEd2E,cAAclG,GACNA,EAAMgF,YAgd6BmB,QAzc5B,CAYfC,WAAAA,CAAYC,EAAOC,GAA6B,IAA3B,OAAEC,EAAM,MAAEC,EAAK,OAAEC,GAAQH,EAG7C,OAFAG,EAA2B,iBAAXA,EAAsBA,EAAS,GAExCC,GAAQC,EAAAA,EAAAA,IAAe,oEAAqE,CAAEJ,SAAQC,QAAOC,YAAWG,OAAO1E,IAChItD,EAAAA,GAAAA,SAAesD,IACnBmE,EAAQxI,OAAO,cAAeqE,EAC/B,GAEF,EASA2E,QAAOA,CAACR,EAASS,IACTJ,GAAQC,EAAAA,EAAAA,IAAe,eAADhG,OAAgBmG,KAAWF,OAAO1E,IACzDtD,EAAAA,GAAAA,SAAesD,IACnBmE,EAAQxI,OAAO,cAAeqE,EAC/B,IAeFuD,QAAAA,CAASY,EAAOU,GAAoC,IAAlC,OAAER,EAAM,MAAEC,EAAK,OAAEC,EAAM,MAAEjF,GAAOuF,EAejD,OAdI7B,GACHA,EAA0B8B,OAAO,iDAElC9B,EAA4BD,EAAYgC,SACxCR,EAA2B,iBAAXA,EAAsBA,EAAS,GAO/CA,EAASA,EAAOlI,QAAQ,aAAc,IAAI2I,OAE1C1F,EAAyB,iBAAVA,EAAqBA,EAAQ,GAC9B,KAAVA,EACIkF,GAAQC,EAAAA,EAAAA,IAAe,mFAAoF,CAAEnF,MAAO2F,mBAAmB3F,GAAQ+E,SAAQC,QAAOC,WAAW,CAC/KW,YAAalC,EAA0BmC,QAEtCC,MAAM1D,IACN,MAAM2D,EAAa5K,OAAO6K,KAAK5D,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OAAOgB,OAI7D,OAHIoG,EAAa,GAChBlB,EAAQxI,OAAO,cAAe+F,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OAE/CoH,CAAU,IAEjBX,OAAO1E,IACFtD,EAAAA,GAAAA,SAAesD,IACnBmE,EAAQxI,OAAO,cAAeqE,EAC/B,IAIIwE,GAAQC,EAAAA,EAAAA,IAAe,oEAAqE,CAAEJ,SAAQC,QAAOC,WAAW,CAC9HW,YAAalC,EAA0BmC,QAEtCC,MAAM1D,IACN,MAAM2D,EAAa5K,OAAO6K,KAAK5D,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OAAOgB,OAI7D,OAHIoG,EAAa,GAChBlB,EAAQxI,OAAO,cAAe+F,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OAE/CoH,CAAU,IAEjBX,OAAO1E,IACFtD,EAAAA,GAAAA,SAAesD,IACnBmE,EAAQxI,OAAO,cAAeqE,EAC/B,GAEH,EAWA,sBAAMuF,CAAiBpB,EAAOqB,GAA6B,IAA3B,OAAEnB,EAAM,MAAEC,EAAK,OAAEC,GAAQiB,EACxD,MAAMpJ,GAAMqI,EAAAA,EAAAA,IAAe,qEAAsE,CAAEJ,SAAQC,QAAOC,WAClH,IACC,MAAM7C,QAAiB8C,EAAQpI,GACzBiJ,EAAa5K,OAAO6K,KAAK5D,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OAAOgB,OAK7D,OAJIoG,EAAa,IAChBlB,EAAQxI,OAAO,cAAe+F,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OACrDkG,EAAQxI,OAAO,sBAAuB+F,EAAS9E,KAAK+E,IAAI/E,KAAKqB,QAEvDoH,CACR,CAAE,MAAOrF,GACRmE,EAAQxI,OAAO,cAAeqE,EAC/B,CACD,EAEAwD,SAAAA,CAAUW,EAAOsB,GAA6B,IAA3B,OAAEpB,EAAM,MAAEC,EAAK,OAAEC,GAAQkB,EAC3ClB,EAA2B,iBAAXA,EAAsBA,EAAS,GAC/C,MAAMmB,GAAwB,IAAXpB,EAAe,GAAK,UAAH7F,OAAa6F,GACjD,OAAOE,GAAQC,EAAAA,EAAAA,IAAe,+CAAgD,CAAEJ,SAAQE,WAAYmB,GAClGN,MAAM1D,GACFjH,OAAO6K,KAAK5D,EAAS9E,KAAK+E,IAAI/E,KAAKK,QAAQgC,OAAS,IACvDyC,EAAS9E,KAAK+E,IAAI/E,KAAKK,OAAOgF,SAAQ,SAAS3C,GAC9C6E,EAAQxI,OAAO,WAAY,CAAE+D,IAAKJ,EAAOK,YAAaL,GACvD,KACO,KAIRoF,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAeqE,IAClD,EAYA2F,gBAAAA,CAAiBxB,EAAOyB,GAA6B,IAA3B,OAAEvB,EAAM,MAAEC,EAAK,OAAEC,GAAQqB,EAElD,OADArB,EAA2B,iBAAXA,EAAsBA,EAAS,GACxCC,GAAQC,EAAAA,EAAAA,IAAe,oEAAqE,CAAEJ,SAAQC,QAAOC,YAClHa,MAAM1D,GACFjH,OAAO6K,KAAK5D,EAAS9E,KAAK+E,IAAI/E,KAAKqB,OAAOgB,OAAS,IACtDkF,EAAQxI,OAAO,cAAe+F,EAAS9E,KAAK+E,IAAI/E,KAAKqB,QAC9C,KAIRyG,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAeqE,IAClD,EAYA6F,iBAAAA,CAAkB1B,EAAO2B,GAA8B,IAA5B,QAAEC,EAAO,OAAE1B,EAAM,MAAEC,GAAOwB,EACpD,OAAOtB,GAAQC,EAAAA,EAAAA,IAAe,8DAA+D,CAAEuB,QAASf,mBAAmBc,GAAU1B,SAAQC,WAC3Ic,MAAM1D,GAAayC,EAAQxI,OAAO,mBAAoB+F,EAAS9E,KAAK+E,IAAI/E,KAAKqB,SAC7EyG,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAeqE,IAClD,EAEA0D,2BAA2BS,OACtB8B,EAAAA,EAAAA,KAAkBC,mBAAmBD,EAAAA,EAAAA,KAAkBC,gBAAgBC,aAC1EhC,EAAQxI,OAAO,8BAA8BsK,EAAAA,EAAAA,KAAkBC,gBAAgBC,YACxEF,EAAAA,EAAAA,KAAkBC,gBAAgBC,WAY3C3G,SAAQA,CAAC2E,EAASzE,IACV8E,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,gBAAiB,CAAEsB,QAASrG,IACzD0F,MAAM1D,IACNyC,EAAQxI,OAAO,WAAY,CAAE+D,MAAKC,YAAaD,IACxC,CAAEA,MAAKC,YAAaD,MAE3BgF,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,IAIT,MAHAmE,EAAQxI,OAAO,cAAe,CAAE+D,MAAKM,UAG/BA,CAAK,IAYbC,WAAAA,CAAYkE,EAAOiC,GAA4B,IAA1B,QAAEL,EAAO,YAAEpG,GAAayG,EAC5C,OAAO5B,IAAmBY,MAAM1D,GACxB8C,GAAQC,EAAAA,EAAAA,IAAe,yBAA0B,CAAEuB,QAASf,mBAAmBc,KAAa,CAAExD,IAAK,cAAeC,MAAO7C,IAC9HyF,MAAM1D,IACNyC,EAAQxI,OAAO,cAAe,CAAE+D,IAAKqG,EAASpG,gBACvC,CAAEoG,UAASpG,kBAElB+E,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,IAIT,MAHAmE,EAAQxI,OAAO,cAAe,CAAEoK,UAAS/F,UAGnCA,CAAK,GAEb,EASAQ,YAAWA,CAAC2D,EAASzE,IACb8E,IAAmBY,MAAM1D,GACxB8C,GAAWC,EAAAA,EAAAA,IAAe,yBAA0B,CAAEuB,QAASf,mBAAmBvF,MACvF0F,MAAM1D,GAAayC,EAAQxI,OAAO,cAAe+D,KACjDgF,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAE+D,MAAKM,YAY1DS,YAAAA,CAAa0D,EAAOkC,GAAmB,IAAjB,OAAE1F,EAAM,IAAEjB,GAAK2G,EACpC,OAAO7B,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,8BAA+B,CAAE9D,WAAW,CAAEoF,QAASrG,IACpF0F,MAAM1D,GAAayC,EAAQxI,OAAO,eAAgB,CAAEgF,SAAQjB,UAC5DgF,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,WAC7D,EAWAc,eAAAA,CAAgBqD,EAAOmC,GAAmB,IAAjB,OAAE3F,EAAM,IAAEjB,GAAK4G,EACvC,OAAO9B,IAAmBY,MAAM1D,GACxB8C,GAAWC,EAAAA,EAAAA,IAAe,8BAA+B,CAAE9D,WAAW,CAAEoF,QAASrG,IACtF0F,MAAM1D,GAAayC,EAAQxI,OAAO,kBAAmB,CAAEgF,SAAQjB,UAC/DgF,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,IAIT,MAHAmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,UAGlCA,CAAK,GAEb,EAWAiB,eAAAA,CAAgBkD,EAAOoC,GAAmB,IAAjB,OAAE5F,EAAM,IAAEjB,GAAK6G,EACvC,OAAO/B,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,iCAAkC,CAAE9D,WAAW,CAAEoF,QAASrG,IACvF0F,MAAM1D,GAAayC,EAAQxI,OAAO,kBAAmB,CAAEgF,SAAQjB,UAC/DgF,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,WAC7D,EAWAoB,kBAAAA,CAAmB+C,EAAOqC,GAAmB,IAAjB,OAAE7F,EAAM,IAAEjB,GAAK8G,EAC1C,OAAOhC,IAAmBY,MAAM1D,GACxB8C,GAAWC,EAAAA,EAAAA,IAAe,iCAAkC,CAAE9D,WAAW,CAAEoF,QAASrG,IACzF0F,MAAM1D,GAAayC,EAAQxI,OAAO,qBAAsB,CAAEgF,SAAQjB,UAClEgF,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,WAC7D,EASAyG,gBAAeA,CAACtC,EAASxD,IACjB6D,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,4BAA6B,CAAE9D,YAC5D+D,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,YAU7DsB,WAAUA,CAAC6C,EAASxD,IACZ6D,IAAmBY,MAAM1D,GACxB8C,GAAWC,EAAAA,EAAAA,IAAe,uBAAwB,CAAE9D,YACzDyE,MAAM1D,GAAayC,EAAQxI,OAAO,aAAcgF,KAChD+D,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,YAqB7D0G,OAAAA,CAAOC,EAAAC,GAA6G,IAA5G,OAAEjL,EAAM,SAAEkL,GAAUF,GAAE,OAAEhG,EAAM,SAAEmG,EAAQ,YAAEnH,EAAW,MAAEoH,EAAK,OAAE9J,EAAM,SAAEkE,EAAQ,MAAE6F,EAAK,SAAEC,EAAQ,QAAEC,GAASN,EACjH,OAAOpC,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,eAAgB,CAAE9D,SAAQmG,WAAUnH,cAAaoH,QAAO9J,SAAQkE,WAAU6F,QAAOC,WAAUC,YACxH9B,MAAM1D,GAAamF,EAAS,cAAelG,GAAUe,EAAS9E,KAAK+E,IAAI/E,KAAKa,MAC5EiH,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,IAET,MADArE,EAAO,cAAe,CAAEgF,SAAQX,UAC1BA,CAAK,GAEb,EASAyB,YAAWA,CAAC0C,EAASxD,IACb6D,IAAmBY,MAAM1D,GACxB8C,GAAQC,EAAAA,EAAAA,IAAe,uBAAwB,CAAE9D,YACtDyE,MAAM1D,GAAayC,EAAQxI,OAAO,cAAe+F,KACjDgD,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,YAY7D4B,iBAAAA,CAAkBuC,EAAOgD,GAA8B,IAA5B,OAAExG,EAAM,QAAE9F,GAAU,GAAMsM,EACpD,MAAMC,EAAavM,EAAU,SAAW,UACxC,OAAO2J,IAAmBY,MAAM1D,GACxB8C,GAAQC,EAAAA,EAAAA,IAAe,oCAAqC,CAAE9D,SAAQyG,gBAC3EhC,MAAM1D,GAAayC,EAAQxI,OAAO,oBAAqB,CAAEgF,SAAQ9F,cACjE6J,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,WAC7D,EAYAqC,WAAAA,CAAY8B,EAAOkD,GAA0B,IAAxB,OAAE1G,EAAM,IAAE4B,EAAG,MAAEC,GAAO6E,EAC1C,MAAMC,EAAe,CAAC,QAAS,cAAe,WAC9C,OAA2F,IAAvF,CAAC,QAAS,WAAY,QAAS,cAAe,WAAY,WAAWtG,QAAQuB,IAE3D,iBAAVC,KAEuB,IAA/B8E,EAAatG,QAAQuB,IAAeC,EAAMvD,OAAS,IAClB,IAA/BqI,EAAatG,QAAQuB,IAGlBiC,IAAmBY,MAAM1D,GACxB8C,GAAQC,EAAAA,EAAAA,IAAe,uBAAwB,CAAE9D,WAAW,CAAE4B,MAAKC,UACxE4C,MAAM1D,GAAayC,EAAQxI,OAAO,cAAe,CAAEgF,SAAQ4B,MAAKC,YAChEkC,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,YAGvDuH,QAAQC,OAAO,IAAIC,MAAM,wBACjC,EASAC,gBAAeA,CAACvD,EAASxD,IACjB6D,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,+BAAgC,CAAE9D,YAC/DyE,MAAK1D,IAAY,IACjBgD,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEgF,SAAQX,wCCzsB9D,MASMpC,EAAY,CAEjB+J,gBAAAA,CAAiB7J,EAAOkC,IACvB4H,EAAAA,EAAAA,IAAUhN,EAAE,WAAY,4DAA8D,OAASoF,EAAMA,MAAM0B,SAAS9E,KAAKA,KAAKiL,QAAS,CAAEC,QAAQ,IACjJ/H,EAAQC,MAAMlC,EAAOkC,EACtB,EAEA+H,cAAAA,CAAejK,EAAKK,GAA+B,IAA7B,WAAE6J,EAAU,YAAEC,GAAa9J,EAChDL,EAAMkK,WAAaA,EACnBlK,EAAMmK,YAAcA,CACrB,EAEAC,gBAAAA,CAAiBpK,EAAOqK,GACvBrK,EAAMsK,yBAA2BD,CAClC,EAEAE,cAAAA,CAAevK,EAAOmK,GACrBnK,EAAMmK,YAAcA,CACrB,EAEAK,WAAAA,CAAYxK,EAAOyK,GAClBzK,EAAMkK,WAAWnH,KAAK0H,EACvB,EAEAC,gBAAAA,CAAiB1K,EAAO2K,GAEvB3K,EAAMkK,WAAaS,CACpB,EAEAC,UAAAA,CAAW5K,EAAO6K,GACjB7K,EAAM6K,KAAOA,CACd,EAEAC,QAAAA,CAAS9K,EAAKS,GAAoB,IAAlB,MAAEsK,EAAK,MAAE7I,GAAOzB,EAC1BuK,MAAMC,QAAQF,KAClBA,EAAQ,CAACA,IAEVA,EAAM5G,SAAS+G,IACFlL,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOuL,IAC1ChJ,MAAQA,CAAK,GAEnB,EAEAkJ,UAAAA,CAAWpL,EAAKsB,GAAoB,IAAlB,MAAEyJ,EAAK,MAAE7I,GAAOZ,EACrBtB,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAC1C7I,MAAQ,IACb,EAEAmJ,SAAAA,CAAUrL,EAAK2B,GAAqB,IAAnB,MAAEoJ,EAAK,OAAE5L,GAAQwC,EACjC,MAAMwJ,EAAMnL,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAC9CI,EAAIG,QAAS,EACbH,EAAIhM,OAASA,CACd,EAEAoM,UAAAA,CAAWvL,EAAO+K,GACjB,MAAMI,EAAMnL,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAC9CI,EAAIG,QAAS,EACbH,EAAIhM,OAAS,GACTgM,EAAIK,YACPL,EAAIM,cAAe,EAErB,EAEAC,YAAAA,CAAa1L,EAAO+K,GACnB/K,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAAOO,QAAS,EAClDtL,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAAO5L,OAAS,GAClDa,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAAOY,eAAgB,EACzD3L,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAAOlO,WAAY,EACrDmD,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAAOU,cAAe,EACxDzL,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IAAOa,YAAa,CACvD,EAEAC,SAAAA,CAAU7L,EAAO+K,GAChB,MAAMI,EAAMnL,EAAM6K,KAAK/I,MAAKqJ,GAAOA,EAAIxL,KAAOoL,IACxCe,EAAUX,EAAIY,OACpBZ,EAAIY,OAAS,KACbZ,EAAIW,QAAUA,EACd9L,EAAMmK,aAEP,EAEA6B,SAAAA,CAAUhM,GACTA,EAAM6K,KAAO,EACd,EACAoB,KAAAA,CAAMjM,GACLA,EAAM6K,KAAO,GACb7K,EAAMkK,WAAa,GACnBlK,EAAMmK,YAAc,CACrB,EACA+B,YAAAA,CAAalM,EAAOL,GACfqL,MAAMC,QAAQtL,GACjBA,EAAGwE,SAAS+G,IACXiB,EAAAA,GAAAA,IAAQnM,EAAMoM,QAASlB,GAAK,EAAK,IAGlCiB,EAAAA,GAAAA,IAAQnM,EAAMoM,QAASzM,GAAI,EAE7B,EACA0M,WAAAA,CAAYrM,EAAOL,GACdqL,MAAMC,QAAQtL,GACjBA,EAAGwE,SAAS+G,IACXiB,EAAAA,GAAAA,IAAQnM,EAAMoM,QAASlB,GAAK,EAAM,IAGnCiB,EAAAA,GAAAA,IAAQnM,EAAMoM,QAASzM,GAAI,EAE7B,GAuBKwG,EAAU,CAEfkF,SAAAA,CAAUhF,EAAOjE,GAAqB,IACjCyI,GADc,MAAEE,EAAK,OAAE5L,GAAQiD,EAOnC,OAJCyI,EADGG,MAAMC,QAAQF,GACVA,EAEA,CAACA,GAEFrE,IAAmBY,MAAM1D,IAC/ByC,EAAQxI,OAAO,eAAgBgN,GAC/BxE,EAAQxI,OAAO,eAAgB,WACxB6I,GAAS4F,EAAAA,EAAAA,IAAY,wBAAyB,CAAEC,OAAQ1B,EAAM1L,WACnEmI,MAAM1D,IACNyC,EAAQxI,OAAO,cAAegN,GAC9BxE,EAAQxI,OAAO,cAAe,WAC9BgN,EAAK1G,SAAQqI,IACZnG,EAAQxI,OAAO,YAAa,CAAEkN,MAAOyB,EAAQrN,UAAS,IAIhDP,EAAAA,GAAMF,KAAI4N,EAAAA,EAAAA,IAAY,gBAC3BhF,MAAK,KACD1D,EAAS9E,KAAK2N,mBACjBC,EAAAA,EAAAA,IACC5P,EACC,WACA,6GAED,CACC6P,QAASA,IAAMC,OAAOC,SAASC,SAC/BC,OAAO,IAITC,YAAW,WACVH,SAASC,QACV,GAAG,KACJ,IAEAlG,OAAM,KACDoE,MAAMC,QAAQF,MAClBjB,EAAAA,EAAAA,IAAUhN,EAAE,WAAY,2EACxBuJ,EAAQxI,OAAO,WAAY,CAC1BkN,MAAOF,EACP3I,MAAOpF,EAAE,WAAY,4EAEtBuJ,EAAQ0C,SAAS,aAAc,CAAEgC,UAClC,OAGFnE,OAAO1E,IACPmE,EAAQxI,OAAO,cAAegN,GAC9BxE,EAAQxI,OAAO,cAAe,WAC9BwI,EAAQxI,OAAO,WAAY,CAC1BkN,MAAOF,EACP3I,MAAOA,EAAM0B,SAAS9E,KAAKA,KAAKiL,UAEjC1D,EAAQxI,OAAO,mBAAoB,CAAEkN,QAAO7I,SAAQ,OAEpD0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEkN,QAAO7I,WAC5D,EACA+K,cAAAA,CAAe5G,EAAOzD,GAAqB,IACtCiI,GADmB,MAAEE,EAAK,OAAE5L,GAAQyD,EAOxC,OAJCiI,EADGG,MAAMC,QAAQF,GACVA,EAEA,CAACA,GAEFrE,IAAmBY,MAAK,KAC9BjB,EAAQxI,OAAO,eAAgBgN,GAC/BxE,EAAQxI,OAAO,eAAgB,WACxB6I,GAAS4F,EAAAA,EAAAA,IAAY,uBAAwB,CAAEvB,UACpDzD,MAAM1D,IAENiJ,SAASC,QAAQ,IAEjBlG,OAAO1E,IACPmE,EAAQxI,OAAO,cAAegN,GAC9BxE,EAAQxI,OAAO,cAAe,WAC9BwI,EAAQxI,OAAO,WAAY,CAC1BkN,MAAOF,EACP3I,MAAOA,EAAM0B,SAAS9E,KAAKA,KAAKiL,UAEjC1D,EAAQxI,OAAO,mBAAoB,CAAEkN,QAAO7I,SAAQ,OAEpD0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEkN,QAAO7I,WAC5D,EACAqJ,UAAAA,CAAWlF,EAAOpD,GAAa,IAC1B4H,GADe,MAAEE,GAAO9H,EAO5B,OAJC4H,EADGG,MAAMC,QAAQF,GACVA,EAEA,CAACA,GAEFrE,IAAmBY,MAAM1D,IAC/ByC,EAAQxI,OAAO,eAAgBgN,GACxBnE,GAAS4F,EAAAA,EAAAA,IAAY,yBAA0B,CAAEC,OAAQ1B,IAC9DvD,MAAM1D,IACNyC,EAAQxI,OAAO,cAAegN,GAC9BA,EAAK1G,SAAQqI,IACZnG,EAAQxI,OAAO,aAAc2O,EAAO,KAE9B,KAEP5F,OAAO1E,IACPmE,EAAQxI,OAAO,cAAegN,GAC9BxE,EAAQxI,OAAO,mBAAoB,CAAEkN,QAAO7I,SAAQ,OAEpD0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEkN,QAAO7I,WAC5D,EACAwJ,YAAAA,CAAarF,EAAOjD,GAAa,IAAX,MAAE2H,GAAO3H,EAC9B,OAAOsD,IAAmBY,MAAM1D,IAC/ByC,EAAQxI,OAAO,eAAgBkN,GACxBrE,GAAQ4F,EAAAA,EAAAA,IAAY,2BAAD3L,OAA4BoK,KACpDzD,MAAM1D,IACNyC,EAAQxI,OAAO,cAAekN,GAC9B1E,EAAQxI,OAAO,eAAgBkN,IACxB,KAEPnE,OAAO1E,IACPmE,EAAQxI,OAAO,cAAekN,GAC9B1E,EAAQxI,OAAO,mBAAoB,CAAEkN,QAAO7I,SAAQ,OAEpD0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEkN,QAAO7I,WAC5D,EAEA2J,SAAAA,CAAUxF,EAAO9C,GAAa,IAAX,MAAEwH,GAAOxH,EAC3B,OAAOmD,IAAmBY,MAAM1D,IAC/ByC,EAAQxI,OAAO,eAAgBkN,GAC/B1E,EAAQxI,OAAO,eAAgB,WACxB6I,GAAQ4F,EAAAA,EAAAA,IAAY,wBAAD3L,OAAyBoK,KACjDzD,MAAM1D,IACNyC,EAAQxI,OAAO,cAAe,WAC9BwI,EAAQxI,OAAO,cAAekN,GAC9B1E,EAAQxI,OAAO,YAAakN,IACrB,KAEPnE,OAAO1E,IACPmE,EAAQxI,OAAO,cAAekN,GAC9B1E,EAAQxI,OAAO,cAAe,WAC9BwI,EAAQxI,OAAO,mBAAoB,CAAEkN,QAAO7I,SAAQ,OAEpD0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEkN,QAAO7I,WAC5D,EAEAgL,WAAW7G,IACVA,EAAQxI,OAAO,eAAgB,QACxB6I,GAAQ4F,EAAAA,EAAAA,IAAY,uBACzBhF,MAAM1D,IACNyC,EAAQxI,OAAO,aAAc+F,EAAS9E,KAAK+L,MAC3CxE,EAAQxI,OAAO,cAAe,SACvB,KAEP+I,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAeqE,MAGlD,mBAAMiL,CAAc9G,GAAmD,IAA1C,wBAAE+G,GAA0B,GAAOC,UAAAlM,OAAA,QAAAmM,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACnE,GAAID,IAA4B/G,EAAQrG,MAAMsK,yBAA0B,CACvEjE,EAAQxI,OAAO,eAAgB,cAC/B,IACC,MAAMwM,EAAoB3D,GAAQ4F,EAAAA,EAAAA,IAAY,6BAC9CjG,EAAQxI,OAAO,mBAAoBwM,GACnC,MAAMkD,QAAkClD,EACxC,OAAIkD,EAA0BzO,KAAKqC,OAAS,GAC3CkF,EAAQxI,OAAO,mBAAoB0P,EAA0BzO,MAC7DuH,EAAQxI,OAAO,cAAe,eACvB,IAERwI,EAAQxI,OAAO,cAAe,eACvB,EACR,CAAE,MAAOqE,GACRmE,EAAQxI,OAAO,cAAeqE,EAC/B,CACD,CACA,OAAOmE,EAAQrG,MAAMsK,wBACtB,GAID,GAAiBtK,MA9TH,CACb6K,KAAM,GACNX,WAAY,GACZC,YAAa,EACbiC,QAAS,CAAC,EACVoB,aAAa,EACblD,yBAA0B,MAwTHxK,UAAS,EAAE0F,QAxMnB,CACf4G,QAAQpM,GACA,SAASL,GACf,OAAOK,EAAMoM,QAAQzM,EACtB,EAEDwN,cAAcnN,GACNA,EAAMkK,WAEdgD,WAAWlN,GACHA,EAAM6K,KAEd4C,eAAezN,GACPA,EAAMmK,YAEduD,gBAAkB1N,GAAW2N,GACrB3N,EAAMkK,WAAWpI,MAAM2I,GAAaA,EAAS9K,KAAOgO,KAwLjBxH,QAAOA,GCvTnD,GAAiBnG,MAfH,CACb4N,WAAY,CAAC,GAcU9N,UAZN,CACjB+N,aAAAA,CAAc7N,EAAOlB,GACpBkB,EAAM4N,WAAa9O,CACpB,GASkC0G,QAPnB,CACfsI,cAAc9N,GACNA,EAAM4N,YAK6BzH,QAF5B,CAAC,GCajB,GAAiBnG,MAtBH,CAAC,EAsBSF,UArBN,CAAC,EAqBgB0F,QApBnB,CAAC,EAoB2BW,QAnB5B,CAWf4H,YAAAA,CAAa1H,EAAOhG,GAAuB,IAArB,IAAE8K,EAAG,IAAE1G,EAAG,MAAEC,GAAOrE,EACxC,OAAOqG,IAAmBY,MAAM1D,GACxB8C,GAASC,EAAAA,EAAAA,IAAe,uDAAwD,CAAEwE,MAAK1G,QAAQ,CAAEC,UACtGkC,OAAO1E,IAAY,MAAMA,CAAK,MAC9B0E,OAAO1E,GAAUmE,EAAQxI,OAAO,cAAe,CAAEsN,MAAK1G,MAAKC,QAAOxC,WACtE,mBCdDiK,EAAAA,GAAI6B,IAAIC,EAAAA,IAER,MAEMnO,EAAY,CACjBoO,WAAAA,CAAYlO,EAAOkC,GAClB,IACC,MAAM6H,EAAU7H,EAAMA,MAAM0B,SAAS9E,KAAK+E,IAAIsK,KAAKpE,SACnDD,EAAAA,EAAAA,IAAUhN,EAAE,WAAY,4DAA8D,OAASiN,EAAS,CAAEC,QAAQ,GACnH,CAAE,MAAOhI,IACR8H,EAAAA,EAAAA,IAAUhN,EAAE,WAAY,4DACzB,CACAmF,EAAQC,MAAMlC,EAAOkC,EACtB,GAGD,MAAmBkM,EAAAA,GAAM,CACxBC,QAAS,CACRlO,MAAK,EACL0K,KAAI,EACJyD,SAAQ,EACRC,GAAEA,GAEHC,QArBaC,EAuBb3O,UAASA,aCpBV,MCJM4O,EAAQA,IAAM,yDACdC,EAAOA,IAAM,yDAEnBxC,EAAAA,GAAI6B,IAAIY,EAAAA,IAUR,MAAMC,EAAYnR,SAASoR,MACrBC,EAAS,IAAIH,EAAAA,GAAO,CACzBI,KAAM,UAGNC,MAAM3C,EAAAA,EAAAA,IAAY,IAClB4C,gBAAiB,SACjBC,OAAQ,CACP,CACCC,KAAM,qCACNC,UAAWX,EACXY,OAAO,EACP9R,KAAM,QACN2Q,KAAM,CACLW,MAAOA,IACChS,EAAE,WAAY,iBAGvByS,SAAU,CACT,CACCH,KAAM,iBACN5R,KAAM,QACN2Q,KAAM,CACLW,MAAQU,GACyB,UAA5BA,EAAGvQ,OAAOwQ,cACN3S,EAAE,WAAY,UAEU,aAA5B0S,EAAGvQ,OAAOwQ,cACN3S,EAAE,WAAY,kBAEf4S,mBAAmBF,EAAGvQ,OAAOwQ,gBAGtCJ,UAAWX,KAId,CACCU,KAAM,oCACNC,UAAWV,EACXW,OAAO,EACP9R,KAAM,OACN2Q,KAAM,CACLW,MAAOA,IACChS,EAAE,WAAY,cAGvByS,SAAU,CACT,CACCH,KAAM,YACN5R,KAAM,gBACN2Q,KAAM,CACLW,MAAOa,UACN,GAAgB,SAAZH,EAAGhS,KACN,OAAOV,EAAE,WAAY,aAEtB,GAAIJ,EAAAA,EAAkB8S,EAAGvQ,OAAOwL,UAC/B,OAAO/N,EAAAA,EAAkB8S,EAAGvQ,OAAOwL,gBAE9BmF,EAAM7G,SAAS,iBACrB,MAAM0B,EAAWmF,EAAMpK,QAAQkI,gBAAgB8B,EAAGvQ,OAAOwL,UACzD,OAAIA,EAAS5I,YACL4I,EAAS5I,iBADjB,CAEA,GAGFwN,UAAWV,EACXY,SAAU,CACT,CACCH,KAAM,MACN5R,KAAM,eACN6R,UAAWV,UASlBI,EAAOc,WAAUF,UAAc,IAAAG,EAAAC,EAC9B,MAAMC,QAA+B,QAAnBF,GAAMC,EAAAP,EAAGrB,MAAKW,aAAK,IAAAgB,OAAA,EAAbA,EAAAG,KAAAF,EAAgBP,IACpCQ,GACHtS,SAASoR,MAAQ,GAAHnO,OAAMqP,EAAS,OAAArP,OAAMkO,GDlG9B,SAAwBqB,GAC9B,MAAMC,EAAYzS,SAASC,eAAe,wBACtCwS,IACHA,EAAUC,YAAcF,EAE1B,CC8FEG,CAAeL,IAEftS,SAASoR,MAAQD,CAClB,IAGD,UCvGA1C,EAAAA,GAAI6B,IAAIsC,EAAAA,GAAU,CAAEC,aAAa,KAEjCC,EAAAA,EAAAA,GAAKZ,EAAOb,GAIZ0B,EAAAA,GAAoBC,KAAKC,GAAGC,cAG5BzE,EAAAA,GAAI0E,UAAU/T,EAAIA,EAClBqP,EAAAA,GAAI0E,UAAUC,EAAIA,EAClB3E,EAAAA,GAAI0E,UAAUF,GAAKA,GACnBxE,EAAAA,GAAI0E,UAAUE,IAAMA,IAEpB5E,EAAAA,GAAI0E,UAAUG,cAAgBA,cAElB,IAAI7E,EAAAA,GAAI,CACnB4C,OAAM,EACNa,MAAK,EACLqB,OAAQC,GAAKA,EAAEC,KACbC,OAAO,2BCOV,SAASC,EAAY7B,EAAI8B,GACvB,IAAIC,EAAQ,CACV/T,KAAMgS,EAAGhS,KACT4R,KAAMI,EAAGJ,KACToC,KAAMhC,EAAGgC,KACTC,MAAOjC,EAAGiC,MACVxS,OAAQuQ,EAAGvQ,OACXyS,SAAUlC,EAAGkC,SACbvD,KAAMqB,EAAGrB,MAKX,OAHImD,IACFC,EAAMD,KAAOD,EAAWC,IAEnB3U,OAAOC,OAAO2U,EACvB,CAzEAI,EAAQ,EAAO,SAAU/B,EAAOb,EAAQpQ,GACtC,IAAIiT,GAAcjT,GAAW,CAAC,GAAGiT,YAAc,QAE/ChC,EAAMiC,eAAeD,EAAY,CAC/BE,YAAY,EACZ9R,MAAOqR,EAAWtC,EAAOgD,cACzBjS,UAAW,CACT,cAAiB,SAAwBE,EAAOgS,GAC9CpC,EAAM5P,MAAM4R,GAAcP,EAAWW,EAAWxC,GAAIwC,EAAWV,KACjE,KAIJ,IACIW,EADAC,GAAkB,EAIlBC,EAAevC,EAAMwC,OACvB,SAAUpS,GAAS,OAAOA,EAAM4R,EAAa,IAC7C,SAAUS,GACR,IAAIX,EAAWW,EAAMX,SACjBA,IAAaO,IAGE,MAAfA,IACFC,GAAkB,EAClBnD,EAAOhM,KAAKsP,IAEdJ,EAAcP,EAChB,GACA,CAAElB,MAAM,IAIN8B,EAAkBvD,EAAOc,WAAU,SAAUL,EAAI8B,GAC/CY,EACFA,GAAkB,GAGpBD,EAAczC,EAAGkC,SACjB9B,EAAM/R,OAAO+T,EAAa,iBAAkB,CAAEpC,GAAIA,EAAI8B,KAAMA,IAC9D,IAEA,OAAO,WAEkB,MAAnBgB,GACFA,IAIkB,MAAhBH,GACFA,IAIFvC,EAAM2C,iBAAiBX,EACzB,CACF,ICxDIY,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBpF,IAAjBqF,EACH,OAAOA,EAAahB,QAGrB,IAAIiB,EAASJ,EAAyBE,GAAY,CACjD/S,GAAI+S,EACJG,QAAQ,EACRlB,QAAS,CAAC,GAUX,OANAmB,EAAoBJ,GAAUzC,KAAK2C,EAAOjB,QAASiB,EAAQA,EAAOjB,QAASc,GAG3EG,EAAOC,QAAS,EAGTD,EAAOjB,OACf,CAGAc,EAAoBM,EAAID,ElB5BpBvW,EAAW,GACfkW,EAAoBO,EAAI,CAACC,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIhX,EAAS4E,OAAQoS,IAAK,CACrCL,EAAW3W,EAASgX,GAAG,GACvBJ,EAAK5W,EAASgX,GAAG,GACjBH,EAAW7W,EAASgX,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIP,EAAS/R,OAAQsS,MACpB,EAAXL,GAAsBC,GAAgBD,IAAazW,OAAO6K,KAAKiL,EAAoBO,GAAGU,OAAOjP,GAASgO,EAAoBO,EAAEvO,GAAKyO,EAASO,MAC9IP,EAASzQ,OAAOgR,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbjX,EAASkG,OAAO8Q,IAAK,GACrB,IAAII,EAAIR,SACE7F,IAANqG,IAAiBV,EAASU,EAC/B,CACD,CACA,OAAOV,CArBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIhX,EAAS4E,OAAQoS,EAAI,GAAKhX,EAASgX,EAAI,GAAG,GAAKH,EAAUG,IAAKhX,EAASgX,GAAKhX,EAASgX,EAAI,GACrGhX,EAASgX,GAAK,CAACL,EAAUC,EAAIC,EAuBjB,EmB3BdX,EAAoB3B,EAAK8B,IACxB,IAAIgB,EAAShB,GAAUA,EAAOiB,WAC7B,IAAOjB,EAAiB,QACxB,IAAM,EAEP,OADAH,EAAoBqB,EAAEF,EAAQ,CAAEtU,EAAGsU,IAC5BA,CAAM,ECLdnB,EAAoBqB,EAAI,CAACnC,EAASoC,KACjC,IAAI,IAAItP,KAAOsP,EACXtB,EAAoBuB,EAAED,EAAYtP,KAASgO,EAAoBuB,EAAErC,EAASlN,IAC5E9H,OAAOsX,eAAetC,EAASlN,EAAK,CAAEyP,YAAY,EAAMxV,IAAKqV,EAAWtP,IAE1E,ECNDgO,EAAoB0B,EAAI,CAAC,EAGzB1B,EAAoBzQ,EAAKoS,GACjB3K,QAAQ4K,IAAI1X,OAAO6K,KAAKiL,EAAoB0B,GAAGG,QAAO,CAACC,EAAU9P,KACvEgO,EAAoB0B,EAAE1P,GAAK2P,EAASG,GAC7BA,IACL,KCNJ9B,EAAoB+B,EAAKJ,KAEX,CAAC,KAAO,iBAAiB,KAAO,sBAAsBA,IAAYA,GAAW,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,ICHhP3B,EAAoBgC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOvW,MAAQ,IAAIwW,SAAS,cAAb,EAChB,CAAE,MAAO3S,GACR,GAAsB,iBAAX4K,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB6F,EAAoBuB,EAAI,CAACY,EAAKC,IAAUlY,OAAOkU,UAAUiE,eAAe7E,KAAK2E,EAAKC,GvBA9ErY,EAAa,CAAC,EACdC,EAAoB,aAExBgW,EAAoBsC,EAAI,CAACzW,EAAK0W,EAAMvQ,EAAK2P,KACxC,GAAG5X,EAAW8B,GAAQ9B,EAAW8B,GAAKyE,KAAKiS,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAW5H,IAAR7I,EAEF,IADA,IAAI0Q,EAAUzX,SAAS0X,qBAAqB,UACpC7B,EAAI,EAAGA,EAAI4B,EAAQhU,OAAQoS,IAAK,CACvC,IAAI8B,EAAIF,EAAQ5B,GAChB,GAAG8B,EAAEC,aAAa,QAAUhX,GAAO+W,EAAEC,aAAa,iBAAmB7Y,EAAoBgI,EAAK,CAAEwQ,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,GACbD,EAASvX,SAAS6X,cAAc,WAEzBC,QAAU,QACjBP,EAAOQ,QAAU,IACbhD,EAAoBiD,IACvBT,EAAOU,aAAa,QAASlD,EAAoBiD,IAElDT,EAAOU,aAAa,eAAgBlZ,EAAoBgI,GAExDwQ,EAAOW,IAAMtX,GAEd9B,EAAW8B,GAAO,CAAC0W,GACnB,IAAIa,EAAmB,CAACC,EAAMC,KAE7Bd,EAAOe,QAAUf,EAAOgB,OAAS,KACjCC,aAAaT,GACb,IAAIU,EAAU3Z,EAAW8B,GAIzB,UAHO9B,EAAW8B,GAClB2W,EAAOmB,YAAcnB,EAAOmB,WAAWC,YAAYpB,GACnDkB,GAAWA,EAAQhS,SAASgP,GAAQA,EAAG4C,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBN,EAAUzI,WAAW6I,EAAiBS,KAAK,UAAMhJ,EAAW,CAAEiJ,KAAM,UAAWC,OAAQvB,IAAW,MACtGA,EAAOe,QAAUH,EAAiBS,KAAK,KAAMrB,EAAOe,SACpDf,EAAOgB,OAASJ,EAAiBS,KAAK,KAAMrB,EAAOgB,QACnDf,GAAcxX,SAAS+Y,KAAKC,YAAYzB,EApCkB,CAoCX,EwBvChDxC,EAAoBkB,EAAKhC,IACH,oBAAXgF,QAA0BA,OAAOC,aAC1Cja,OAAOsX,eAAetC,EAASgF,OAAOC,YAAa,CAAElS,MAAO,WAE7D/H,OAAOsX,eAAetC,EAAS,aAAc,CAAEjN,OAAO,GAAO,ECL9D+N,EAAoBoE,IAAOjE,IAC1BA,EAAOkE,MAAQ,GACVlE,EAAOrD,WAAUqD,EAAOrD,SAAW,IACjCqD,GCHRH,EAAoBgB,EAAI,WCAxB,IAAIsD,EACAtE,EAAoBgC,EAAEuC,gBAAeD,EAAYtE,EAAoBgC,EAAE5H,SAAW,IACtF,IAAInP,EAAW+U,EAAoBgC,EAAE/W,SACrC,IAAKqZ,GAAarZ,IACbA,EAASuZ,eAAkE,WAAjDvZ,EAASuZ,cAAcC,QAAQC,gBAC5DJ,EAAYrZ,EAASuZ,cAAcrB,MAC/BmB,GAAW,CACf,IAAI5B,EAAUzX,EAAS0X,qBAAqB,UAC5C,GAAGD,EAAQhU,OAEV,IADA,IAAIoS,EAAI4B,EAAQhU,OAAS,EAClBoS,GAAK,KAAOwD,IAAc,aAAaK,KAAKL,KAAaA,EAAY5B,EAAQ5B,KAAKqC,GAE3F,CAID,IAAKmB,EAAW,MAAM,IAAIpN,MAAM,yDAChCoN,EAAYA,EAAUxY,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpFkU,EAAoB4E,EAAIN,YClBxBtE,EAAoBlT,EAAI7B,SAAS4Z,SAAWC,KAAK1K,SAAS2K,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPhF,EAAoB0B,EAAEV,EAAI,CAACW,EAASG,KAElC,IAAImD,EAAqBjF,EAAoBuB,EAAEyD,EAAiBrD,GAAWqD,EAAgBrD,QAAW9G,EACtG,GAA0B,IAAvBoK,EAGF,GAAGA,EACFnD,EAASxR,KAAK2U,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIlO,SAAQ,CAACmO,EAASlO,IAAYgO,EAAqBD,EAAgBrD,GAAW,CAACwD,EAASlO,KAC1G6K,EAASxR,KAAK2U,EAAmB,GAAKC,GAGtC,IAAIrZ,EAAMmU,EAAoB4E,EAAI5E,EAAoB+B,EAAEJ,GAEpDlS,EAAQ,IAAIyH,MAgBhB8I,EAAoBsC,EAAEzW,GAfFyX,IACnB,GAAGtD,EAAoBuB,EAAEyD,EAAiBrD,KAEf,KAD1BsD,EAAqBD,EAAgBrD,MACRqD,EAAgBrD,QAAW9G,GACrDoK,GAAoB,CACtB,IAAIG,EAAY9B,IAAyB,SAAfA,EAAMQ,KAAkB,UAAYR,EAAMQ,MAChEuB,EAAU/B,GAASA,EAAMS,QAAUT,EAAMS,OAAOZ,IACpD1T,EAAM6H,QAAU,iBAAmBqK,EAAU,cAAgByD,EAAY,KAAOC,EAAU,IAC1F5V,EAAM1E,KAAO,iBACb0E,EAAMqU,KAAOsB,EACb3V,EAAM6V,QAAUD,EAChBJ,EAAmB,GAAGxV,EACvB,CACD,GAEwC,SAAWkS,EAASA,EAE/D,CACD,EAWF3B,EAAoBO,EAAES,EAAKW,GAA0C,IAA7BqD,EAAgBrD,GAGxD,IAAI4D,EAAuB,CAACC,EAA4BnZ,KACvD,IAKI4T,EAAU0B,EALVlB,EAAWpU,EAAK,GAChBoZ,EAAcpZ,EAAK,GACnBqZ,EAAUrZ,EAAK,GAGIyU,EAAI,EAC3B,GAAGL,EAASkF,MAAMzY,GAAgC,IAAxB8X,EAAgB9X,KAAa,CACtD,IAAI+S,KAAYwF,EACZzF,EAAoBuB,EAAEkE,EAAaxF,KACrCD,EAAoBM,EAAEL,GAAYwF,EAAYxF,IAGhD,GAAGyF,EAAS,IAAIlF,EAASkF,EAAQ1F,EAClC,CAEA,IADGwF,GAA4BA,EAA2BnZ,GACrDyU,EAAIL,EAAS/R,OAAQoS,IACzBa,EAAUlB,EAASK,GAChBd,EAAoBuB,EAAEyD,EAAiBrD,IAAYqD,EAAgBrD,IACrEqD,EAAgBrD,GAAS,KAE1BqD,EAAgBrD,GAAW,EAE5B,OAAO3B,EAAoBO,EAAEC,EAAO,EAGjCoF,EAAqBd,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fc,EAAmBlU,QAAQ6T,EAAqB1B,KAAK,KAAM,IAC3D+B,EAAmBtV,KAAOiV,EAAqB1B,KAAK,KAAM+B,EAAmBtV,KAAKuT,KAAK+B,QCvFvF5F,EAAoBiD,QAAKpI,ECGzB,IAAIgL,EAAsB7F,EAAoBO,OAAE1F,EAAW,CAAC,OAAO,IAAOmF,EAAoB,SAC9F6F,EAAsB7F,EAAoBO,EAAEsF","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","webpack:///nextcloud/apps/settings/src/App.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/App.vue?536c","webpack://nextcloud/./apps/settings/src/App.vue?4d15","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/settings.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/core/src/OCP/accessibility.js","webpack:///nextcloud/apps/settings/src/router.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 = (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((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\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 = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @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\tinstalled: t('settings', 'Your apps'),\n\tenabled: t('settings', 'Active apps'),\n\tdisabled: t('settings', 'Disabled apps'),\n\tupdates: t('settings', 'Updates'),\n\t'app-bundles': t('settings', 'App bundles'),\n\tfeatured: t('settings', 'Featured apps'),\n\tsupported: t('settings', 'Supported apps'), // From subscription\n})\n","/**\n * @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","\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!./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\"","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 * @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'\nimport { parseFileSize } from \"@nextcloud/files\"\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\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 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\tupdateDisabledUsers(state, _usersObj) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\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 = parseFileSize(value, true)\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\tstate.disabledUsersOffset = 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\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\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\t/**\n\t * Get disabled 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 * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\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 axios from '@nextcloud/axios'\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 axios.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\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\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\tcontext.dispatch('disableApp', { appId })\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 *\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 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) 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 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) 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1957\":\"96a4d042dd15d21b005b\",\"3239\":\"4d6b04f7d3e9c5b95675\",\"4473\":\"6009e669b1a0737a2378\",\"4529\":\"7af5d54e542cee8b975e\"}[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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2689;","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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").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\t2689: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = 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((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = 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, [4208], () => (__webpack_require__(47027)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","APPS_SECTION_ENUM","Object","freeze","installed","t","enabled","disabled","updates","featured","supported","getLoggerBuilder","setApp","detectUser","build","name","beforeMount","document","getElementById","$store","commit","JSON","parse","dataset","server","_c","this","_self","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","put","delete","params","orderGroups","groups","orderBy","sort","a","b","usercount","localeCompare","defaults","id","canAdd","canRemove","mutations","appendUsers","state","usersObj","existingUsers","users","map","_ref","newUsers","values","filter","_ref2","includes","concat","usersOffset","usersLimit","updateDisabledUsers","_usersObj","disabledUsersOffset","disabledUsersLimit","setPasswordPolicyMinLength","length","minPasswordLength","initGroups","_ref3","userCount","group","assign","addGroup","_ref4","gid","displayName","find","unshift","e","console","error","renameGroup","_ref5","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","_ref6","userid","user","push","removeUserGroup","_ref7","indexOf","addUserSubAdmin","_ref8","subadmin","removeUserSubAdmin","_ref9","deleteUser","userIndex","actionType","addUserData","response","ocs","enableDisableUser","_ref10","updateUserCounts","_ref11","disabledGroup","forEach","userGroup","warn","logger","setUserData","_ref12","key","value","humanValue","parseFileSize","resetUsers","setShowConfig","_ref13","showConfig","CancelToken","searchRequestCancelSource","showStoragePath","showUserBackend","showLastLogin","showNewUserForm","showLanguages","getters","getUsers","getGroups","getSubadminGroups","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","actions","searchUsers","context","_ref14","offset","limit","search","api","generateOcsUrl","catch","getUser","userId","_ref15","cancel","source","trim","encodeURIComponent","cancelToken","token","then","usersCount","keys","getDisabledUsers","_ref16","_ref17","limitParam","getUsersFromList","_ref18","getUsersFromGroup","_ref19","groupid","groupId","getCapabilities","password_policy","minLength","_ref20","_ref21","_ref22","_ref23","_ref24","wipeUserDevices","addUser","_ref25","_ref26","dispatch","password","email","quota","language","manager","_ref27","userStatus","_ref28","allowedEmpty","Promise","reject","Error","sendWelcomeMail","APPS_API_FAILURE","showError","message","isHTML","initCategories","categories","updateCount","updateCategories","categoriesPromise","gettingCategoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","apps","setError","appId","Array","isArray","_id","app","clearError","enableApp","active","disableApp","removable","canUnInstall","uninstallApp","needsDownload","canInstall","updateApp","version","update","resetApps","reset","startLoading","Vue","loading","stopLoading","generateUrl","appIds","_appId","update_required","showInfo","onClick","window","location","reload","close","setTimeout","forceEnableApp","getAllApps","getCategories","shouldRefetchCategories","arguments","undefined","categoriesPromiseResponse","loadingList","getUpdateCount","getCategoryById","selectedCategoryId","serverData","setServerData","getServerData","setAppConfig","use","Vuex","API_FAILURE","meta","Store","modules","settings","oc","strict","process","Users","Apps","Router","baseTitle","title","router","mode","base","linkActiveClass","routes","path","component","props","children","to","selectedGroup","decodeURIComponent","async","store","afterEach","_to$meta$title","_to$meta","metaTitle","call","heading","headingEl","textContent","setPageHeading","VTooltip","defaultHtml","sync","__webpack_nonce__","btoa","OC","requestToken","prototype","n","OCA","oc_userconfig","render","h","App","$mount","cloneRoute","from","clone","hash","query","fullPath","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","loaded","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file