diff --git a/js/activity-adminSettings.mjs b/js/activity-adminSettings.mjs index 1f7a9f64e..88e7cdc45 100644 --- a/js/activity-adminSettings.mjs +++ b/js/activity-adminSettings.mjs @@ -1 +1 @@ -import{V as n,t as d,b as m}from"./index-CpOKyUsr.chunk.mjs";import{N as o,m as s,a as c,A as p,i as u,s as a}from"./settings-store-CIr0IpsE.chunk.mjs";import{w as g,b as l}from"./NcCheckboxRadioSwitch-CvMEEI9x-CRJk_h3R.chunk.mjs";import"./_commonjsHelpers-D9DevfhH.chunk.mjs";import"./NcNoteCard-CImn6F9p-CWGSZ4YZ.chunk.mjs";import"./logger-DdfSSqJ9.chunk.mjs";const v={name:"AdminSettings",components:{NcCheckboxRadioSwitch:g,NcSettingsSection:o},computed:{...s({emailEnabled:"emailEnabled"}),settingDescription(){return this.emailEnabled?t("activity","Choose for which activities you want to get an email or push notification."):t("activity","Choose for which activities you want to get a push notification.")}},mounted(){this.setEndpoint({endpoint:"/apps/activity/settings/admin"})},methods:{...c(["setEndpoint","toggleEmailEnabled"])}};var h=function(){var i=this,e=i._self._c;return e("NcSettingsSection",{attrs:{name:i.t("activity","Notification")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"checkbox",checked:i.emailEnabled},on:{"update:checked":function(r){return i.toggleEmailEnabled({emailEnabled:r})}}},[i._v(" "+i._s(i.t("activity","Enable notification emails"))+" ")])],1)},f=[],y=l(v,h,f,!1,null,null);const E=y.exports,b={name:"DefaultActivitySettings",components:{ActivityGrid:p,NcSettingsSection:o},computed:{...s({emailEnabled:"emailEnabled"})},mounted(){this.setEndpoint({endpoint:"/apps/activity/settings/admin"})},methods:{...c(["setEndpoint","toggleEmailEnabled"])}};var S=function(){var i=this,e=i._self._c;return e("NcSettingsSection",{attrs:{name:i.t("activity","Default settings"),description:i.t("activity","Configure the default notification settings for new accounts.")}},[e("ActivityGrid")],1)},w=[],N=l(b,S,w,!1,null,null);const A=N.exports;n.prototype.t=d,n.prototype.n=m,n.use(u),new n({el:"#activity-admin-settings",store:a,name:"ActivityPersonalSettings",render:i=>i(E)}),new n({el:"#activity-default-settings",store:a,name:"ActivityDefaultSettings",render:i=>i(A)}); +import{V as n,t as d,b as m}from"./index-CpOKyUsr.chunk.mjs";import{N as o,m as s,a as c,A as p,i as u,s as a}from"./settings-store-FJFCqrJM.chunk.mjs";import{w as g,b as l}from"./NcCheckboxRadioSwitch-CvMEEI9x-CRJk_h3R.chunk.mjs";import"./_commonjsHelpers-D9DevfhH.chunk.mjs";import"./NcNoteCard-CImn6F9p-CWGSZ4YZ.chunk.mjs";import"./logger-DdfSSqJ9.chunk.mjs";const v={name:"AdminSettings",components:{NcCheckboxRadioSwitch:g,NcSettingsSection:o},computed:{...s({emailEnabled:"emailEnabled"}),settingDescription(){return this.emailEnabled?t("activity","Choose for which activities you want to get an email or push notification."):t("activity","Choose for which activities you want to get a push notification.")}},mounted(){this.setEndpoint({endpoint:"/apps/activity/settings/admin"})},methods:{...c(["setEndpoint","toggleEmailEnabled"])}};var h=function(){var i=this,e=i._self._c;return e("NcSettingsSection",{attrs:{name:i.t("activity","Notification")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"checkbox",checked:i.emailEnabled},on:{"update:checked":function(r){return i.toggleEmailEnabled({emailEnabled:r})}}},[i._v(" "+i._s(i.t("activity","Enable notification emails"))+" ")])],1)},f=[],y=l(v,h,f,!1,null,null);const E=y.exports,b={name:"DefaultActivitySettings",components:{ActivityGrid:p,NcSettingsSection:o},computed:{...s({emailEnabled:"emailEnabled"})},mounted(){this.setEndpoint({endpoint:"/apps/activity/settings/admin"})},methods:{...c(["setEndpoint","toggleEmailEnabled"])}};var S=function(){var i=this,e=i._self._c;return e("NcSettingsSection",{attrs:{name:i.t("activity","Default settings"),description:i.t("activity","Configure the default notification settings for new accounts.")}},[e("ActivityGrid")],1)},w=[],N=l(b,S,w,!1,null,null);const A=N.exports;n.prototype.t=d,n.prototype.n=m,n.use(u),new n({el:"#activity-admin-settings",store:a,name:"ActivityPersonalSettings",render:i=>i(E)}),new n({el:"#activity-default-settings",store:a,name:"ActivityDefaultSettings",render:i=>i(A)}); diff --git a/js/activity-app.mjs b/js/activity-app.mjs index 987e12019..d3bb0c852 100644 --- a/js/activity-app.mjs +++ b/js/activity-app.mjs @@ -1,2 +1,2 @@ (function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode('#skip-actions.vue-skip-actions:focus-within{top:0!important;left:0!important;width:100vw;height:100vh;padding:var(--body-container-margin)!important;-webkit-backdrop-filter:brightness(50%);backdrop-filter:brightness(50%)}.material-design-icon[data-v-d8f0539f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d8f0539f]{background-color:var(--color-main-background);border-radius:var(--border-radius-large);padding:22px}.vue-skip-actions__headline[data-v-d8f0539f]{font-weight:700;font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d8f0539f]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons>*[data-v-d8f0539f]{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d8f0539f]{margin-top:12px}.content[data-v-d8f0539f]{box-sizing:border-box;margin:var(--body-container-margin);margin-top:var(--header-height);display:flex;width:calc(100% - var(--body-container-margin) * 2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-d8f0539f]:not(.with-sidebar--full){position:fixed}.content[data-v-d8f0539f] *{box-sizing:border-box}.material-design-icon[data-v-7692fc78]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-7692fc78]{position:-webkit-sticky;position:sticky;width:var(--default-clickable-area);height:var(--default-clickable-area);padding:calc((var(--default-clickable-area) - 16px) / 2);cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000;top:var(--app-navigation-padding);left:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2)}.app-details-toggle--mobile[data-v-7692fc78]{left:var(--app-navigation-padding)}.app-details-toggle[data-v-7692fc78]:active,.app-details-toggle[data-v-7692fc78]:hover,.app-details-toggle[data-v-7692fc78]:focus{opacity:1}.material-design-icon[data-v-de6986e3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-de6986e3]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0!important;background-color:var(--color-main-background);min-width:0}.app-content[data-v-de6986e3]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-de6986e3]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-details{display:block}[data-v-de6986e3] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:-webkit-sticky;position:sticky}@media only screen and (width < 1024px){[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width < 1024px){[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{background-color:var(--color-main-background);border-left:1px solid var(--color-border)}[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter:before,[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter:after{background-color:var(--color-border)}.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list{max-width:none}.splitpanes{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.splitpanes--vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.splitpanes--horizontal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{-webkit-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{-webkit-transition:height .2s ease-out;-o-transition:height .2s ease-out;transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{-webkit-transition:none;-o-transition:none;transition:none}.splitpanes__splitter{-ms-touch-action:none;touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-negative:0;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;-webkit-transition:background-color .3s;-o-transition:background-color .3s;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.activity-group__heading[data-v-c16e5a63]{line-height:1.5;margin-block:30px 12px}.activity-group__heading[data-v-c16e5a63]:first-of-type{margin-block-start:0}.activity-app[data-v-6798da20]{display:flex;flex-direction:column;overflow:hidden}.activity-app__empty-content[data-v-6798da20]{height:100%}.activity-app__loading-indicator[data-v-6798da20]{color:var(--color-text-maxcontrast);justify-self:center;margin-block:30px 6px;text-align:center}.activity-app__container[data-v-6798da20]{display:flex;flex-direction:column;height:100%;width:min(100%,924px);max-width:924px;margin:0 auto;padding-inline:12px;overflow-y:scroll}.activity-app__heading[data-v-6798da20]{font-weight:700;font-size:20px;line-height:44px;margin-top:1px;margin-inline:calc(2 * var(--app-navigation-padding, 8px) + 44px) var(--app-navigation-padding, 8px)}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation,.app-content{--app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2)}.material-design-icon[data-v-e7d078cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-e7d078cc]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));max-width:var(--app-navigation-max-width);position:relative;top:0;left:0;padding:0;z-index:1800;height:100%;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--close[data-v-e7d078cc]{margin-left:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-e7d078cc]{width:100%}.app-navigation__body[data-v-e7d078cc]{overflow-y:scroll}.app-navigation__content>ul[data-v-e7d078cc]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.app-navigation .app-navigation__list[data-v-e7d078cc]{height:100%}.app-navigation__body--no-list[data-v-e7d078cc]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-e7d078cc]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-e7d078cc]{border-inline-end:1px solid var(--color-border)}@media only screen and (max-width: 1024px){.app-navigation[data-v-e7d078cc]{position:absolute;border-inline-end:1px solid var(--color-border)}}@media only screen and (max-width: 512px){.app-navigation[data-v-e7d078cc]{z-index:1400}}.material-design-icon[data-v-058e6060]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-list[data-v-058e6060]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.material-design-icon[data-v-b6024aba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-toggle-wrapper[data-v-b6024aba]{position:absolute;top:var(--app-navigation-padding);right:calc(0px - var(--app-navigation-padding));margin-right:calc(-1 * var(--default-clickable-area))}button.app-navigation-toggle[data-v-b6024aba]{background-color:var(--color-main-background)}.material-design-icon[data-v-cadd59ae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue.icon-collapse[data-v-cadd59ae]{position:relative;z-index:105;color:var(--color-main-text);right:0}.button-vue.icon-collapse--open[data-v-cadd59ae]{color:var(--color-main-text)}.button-vue.icon-collapse--open[data-v-cadd59ae]:hover{color:var(--color-primary-element)}.material-design-icon[data-v-97fce21a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-97fce21a]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element, var(--border-radius-pill))}.app-navigation-entry-wrapper[data-v-97fce21a]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-97fce21a]{display:none}.app-navigation-entry.active[data-v-97fce21a]{background-color:var(--color-primary-element)!important}.app-navigation-entry.active[data-v-97fce21a]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.active .app-navigation-entry-link[data-v-97fce21a],.app-navigation-entry.active .app-navigation-entry-button[data-v-97fce21a]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-97fce21a]:focus-within,.app-navigation-entry[data-v-97fce21a]:hover{background-color:var(--color-background-hover)}.app-navigation-entry.active .app-navigation-entry__children[data-v-97fce21a],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-97fce21a],.app-navigation-entry:hover .app-navigation-entry__children[data-v-97fce21a]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-97fce21a],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-97fce21a],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-97fce21a],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-97fce21a],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-97fce21a]{display:inline-block}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-97fce21a]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-97fce21a],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-97fce21a]{padding-right:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-97fce21a],.app-navigation-entry .app-navigation-entry-button[data-v-97fce21a]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;box-sizing:border-box;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-97fce21a],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-97fce21a]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-97fce21a],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-97fce21a]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-97fce21a],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-97fce21a]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-97fce21a]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-97fce21a]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element, var(--border-radius-pill))}.app-navigation-entry__children[data-v-97fce21a]{position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px)}.app-navigation-entry__children .app-navigation-entry[data-v-97fce21a]{display:inline-flex;flex-wrap:wrap;padding-left:16px}.app-navigation-entry__deleted[data-v-97fce21a]{display:inline-flex;flex:1 1 0;padding-left:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-97fce21a]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-97fce21a]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-97fce21a]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-97fce21a]{margin-right:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-97fce21a]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-97fce21a]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-97fce21a]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-97fce21a]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-97fce21a]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-97fce21a]:active{background-color:var(--color-primary-element-light-hover)!important}.material-design-icon[data-v-dba65098]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action.active[data-v-dba65098]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-dba65098]{pointer-events:none;opacity:.5}.action--disabled[data-v-dba65098]:hover,.action--disabled[data-v-dba65098]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-dba65098]{opacity:1!important}.action-button[data-v-dba65098]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-button>span[data-v-dba65098]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-dba65098]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-dba65098] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-button[data-v-dba65098] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button__longtext-wrapper[data-v-dba65098],.action-button__longtext[data-v-dba65098]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-dba65098]{cursor:pointer;white-space:pre-wrap!important}.action-button__name[data-v-dba65098]{font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}.action-button__menu-icon[data-v-dba65098],.action-button__pressed-icon[data-v-dba65098]{margin-left:auto;margin-right:calc((var(--default-clickable-area) - 16px) / 2 * -1)}.material-design-icon[data-v-0e795eb7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-0e795eb7]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-0e795eb7]{display:flex}.app-navigation-input-confirm__input[data-v-0e795eb7]{height:34px;flex:1 1 100%;font-size:100%!important;margin:5px 5px 5px -8px!important;padding:7px!important}.app-navigation-input-confirm__input[data-v-0e795eb7]:active,.app-navigation-input-confirm__input[data-v-0e795eb7]:focus,.app-navigation-input-confirm__input[data-v-0e795eb7]:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}.material-design-icon[data-v-981e215c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#app-settings[data-v-981e215c]{margin-top:auto;padding:3px}#app-settings__header[data-v-981e215c]{box-sizing:border-box;margin:0 3px 3px}#app-settings__header .settings-button[data-v-981e215c]{display:flex;flex:1 1 0;height:var(--default-clickable-area);width:100%;padding:0 14px 0 0;margin:0;background-color:transparent;box-shadow:none;border:0;border-radius:var(--body-container-radius);text-align:left;font-weight:400;font-size:100%;color:var(--color-main-text);line-height:var(--default-clickable-area)}#app-settings__header .settings-button[data-v-981e215c]:hover,#app-settings__header .settings-button[data-v-981e215c]:focus{background-color:var(--color-background-hover)}#app-settings__header .settings-button__icon[data-v-981e215c]{width:var(--default-clickable-area);height:var(--default-clickable-area);min-width:var(--default-clickable-area)}#app-settings__header .settings-button__label[data-v-981e215c]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}#app-settings__content[data-v-981e215c]{display:block;padding:10px;margin-bottom:-3px;max-height:300px;overflow-y:auto;box-sizing:border-box}.slide-up-leave-active[data-v-981e215c],.slide-up-enter-active[data-v-981e215c]{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden!important}.slide-up-enter[data-v-981e215c],.slide-up-leave-to[data-v-981e215c]{max-height:0!important;padding:0 10px!important}.app-activity .settings-link{max-width:100%}.app-activity .app-navigation-entry.active .navigation-icon{filter:var(--primary-invert-if-dark)}.app-activity .app-navigation-entry:not(.active) .navigation-icon{filter:var(--background-invert-if-dark)}.app-activity .navigation-icon{height:16px;width:16px}')),document.head.appendChild(a)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})(); -import{V as R,d as Ut,c as _t,t as B,g as ze,a as Ei,e as Pi,s as Mi,r as at,o as Ai,w as Li,b as Oi}from"./index-CpOKyUsr.chunk.mjs";import{N as He,u as Nt,A as je,m as ht,a as Ti,b as $i,c as Ii,C as Bi,d as Ri,e as Vi,v as Hi,f as ji,V as Fe}from"./Activity-Bii4XQFb.chunk.mjs";import{e as Y,g as Fi,l as ie,s as Ui,u as Wi}from"./logger-DdfSSqJ9.chunk.mjs";import{r as it,t as Zi,n as x,N as lt,a as T,b as Dt,c as qi,u as Ki,V as Gi,l as ne,d as Ue,e as We,v as Xi,f as Ji,g as Yi,h as Qi,i as tn,C as en,j as nn,k as sn,m as an,o as on,p as rn,q as ln,G as cn,s as un,w as pn,_ as Ze}from"./NcCheckboxRadioSwitch-CvMEEI9x-CRJk_h3R.chunk.mjs";import{s as qe,a as dn}from"./NcNoteCard-CImn6F9p-CWGSZ4YZ.chunk.mjs";import"./_commonjsHelpers-D9DevfhH.chunk.mjs";const Rt="activity";let hn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",fn=(t=21)=>{let e="",i=t|0;for(;i--;)e+=hn[Math.random()*64|0];return e};function Ot(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ot=function(e){return typeof e}:Ot=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(t)}var Ke={selector:"vue-portal-target-".concat(fn())},vn=function(t){return Ke.selector=t},Jt=typeof window<"u"&&(typeof document>"u"?"undefined":Ot(document))!==void 0,gn=R.extend({abstract:!0,name:"PortalOutlet",props:["nodes","tag"],data:function(t){return{updatedNodes:t.nodes}},render:function(t){var e=this.updatedNodes&&this.updatedNodes();return e?e.length===1&&!e[0].text?e:t(this.tag||"DIV",e):t()},destroyed:function(){var t=this.$el;t&&t.parentNode.removeChild(t)}}),Ge=R.extend({name:"VueSimplePortal",props:{disabled:{type:Boolean},prepend:{type:Boolean},selector:{type:String,default:function(){return"#".concat(Ke.selector)}},tag:{type:String,default:"DIV"}},render:function(t){if(this.disabled){var e=this.$scopedSlots&&this.$scopedSlots.default();return e?e.length<2&&!e[0].text?e:t(this.tag,e):t()}return t()},created:function(){this.getTargetEl()||this.insertTargetEl()},updated:function(){var t=this;this.$nextTick(function(){!t.disabled&&t.slotFn!==t.$scopedSlots.default&&(t.container.updatedNodes=t.$scopedSlots.default),t.slotFn=t.$scopedSlots.default})},beforeDestroy:function(){this.unmount()},watch:{disabled:{immediate:!0,handler:function(t){t?this.unmount():this.$nextTick(this.mount)}}},methods:{getTargetEl:function(){if(Jt)return document.querySelector(this.selector)},insertTargetEl:function(){if(Jt){var t=document.querySelector("body"),e=document.createElement(this.tag);e.id=this.selector.substring(1),t.appendChild(e)}},mount:function(){if(Jt){var t=this.getTargetEl(),e=document.createElement("DIV");this.prepend&&t.firstChild?t.insertBefore(e,t.firstChild):t.appendChild(e),this.container=new gn({el:e,parent:this,propsData:{tag:this.tag,nodes:this.$scopedSlots.default}})}},unmount:function(){this.container&&(this.container.$destroy(),delete this.container)}}});function mn(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t.component(e.name||"portal",Ge),e.defaultSelector&&vn(e.defaultSelector)}typeof window<"u"&&window.Vue&&window.Vue===R&&R.use(mn),it(Zi);const yn='\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',_n='\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',Cn={name:"NcContent",components:{NcButton:lt,NcIconSvgWrapper:He,Teleport:Ge},provide(){return{"NcContent:setHasAppNavigation":this.setAppNavigation,"NcContent:selector":"#content-vue"}},props:{appName:{type:String,required:!0}},setup(){return{isMobile:Nt()}},data(){return{hasAppNavigation:!1,currentFocus:""}},computed:{currentImage(){return this.currentFocus==="navigation"?_n:yn}},beforeMount(){const t=document.getElementById("skip-actions");t&&(t.innerHTML="",t.classList.add("vue-skip-actions"))},methods:{t:T,openAppNavigation(){Y("toggle-navigation",{open:!0}),this.$nextTick(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})},setAppNavigation(t){this.hasAppNavigation=t,this.currentFocus===""&&(this.currentFocus="navigation")}}};var bn=function(){var t=this,e=t._self._c;return e("div",{class:["content","app-".concat(t.appName.toLowerCase())],attrs:{id:"content-vue"}},[e("Teleport",{attrs:{selector:"#skip-actions"}},[e("div",{staticClass:"vue-skip-actions__container"},[e("div",{staticClass:"vue-skip-actions__headline"},[t._v(" "+t._s(t.t("Keyboard navigation help"))+" ")]),e("div",{staticClass:"vue-skip-actions__buttons"},[e("NcButton",{directives:[{name:"show",rawName:"v-show",value:t.hasAppNavigation,expression:"hasAppNavigation"}],attrs:{type:"tertiary",href:"#app-navigation-vue"},on:{click:function(i){return i.preventDefault(),t.openAppNavigation.apply(null,arguments)},focusin:function(i){t.currentFocus="navigation"},mouseover:function(i){t.currentFocus="navigation"}}},[t._v(" "+t._s(t.t("Skip to app navigation"))+" ")]),e("NcButton",{attrs:{type:"tertiary",href:"#app-content-vue"},on:{focusin:function(i){t.currentFocus="content"},mouseover:function(i){t.currentFocus="content"}}},[t._v(" "+t._s(t.t("Skip to main content"))+" ")])],1),e("NcIconSvgWrapper",{directives:[{name:"show",rawName:"v-show",value:!t.isMobile,expression:"!isMobile"}],staticClass:"vue-skip-actions__image",attrs:{svg:t.currentImage,size:"auto"}})],1),t._v("  ")]),t._t("default")],2)},xn=[],Sn=x(Cn,bn,xn,!1,null,"d8f0539f");const wn=Sn.exports,kn=Ut({__name:"ActivityApp",setup(t){return{__sfc:!0,NcContent:wn}}});var zn=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.NcContent,{attrs:{"app-name":"activity"}},[e("router-view",{attrs:{name:"navigation"}}),e("router-view")],1)},Nn=[],Dn=Dt(kn,zn,Nn,!1,null,null);const En=Dn.exports;var Pn=Object.defineProperty,Mn=Object.defineProperties,An=Object.getOwnPropertyDescriptors,Vt=Object.getOwnPropertySymbols,Xe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,Ne=(t,e,i)=>e in t?Pn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ln=(t,e)=>{for(var i in e||(e={}))Xe.call(e,i)&&Ne(t,i,e[i]);if(Vt)for(var i of Vt(e))Je.call(e,i)&&Ne(t,i,e[i]);return t},On=(t,e)=>Mn(t,An(e)),Tn=(t,e)=>{var i={};for(var n in t)Xe.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(t!=null&&Vt)for(var n of Vt(t))e.indexOf(n)<0&&Je.call(t,n)&&(i[n]=t[n]);return i};function Ye(t,e,i,n,s,a,o,r){var l=typeof t=="function"?t.options:t;e&&(l.render=e,l.staticRenderFns=i,l._compiled=!0);var p;if(s&&(p=s),p)if(l.functional){l._injectStyles=p;var c=l.render;l.render=function(d,h){return p.call(h),c(d,h)}}else{var u=l.beforeCreate;l.beforeCreate=u?[].concat(u,p):[p]}return{exports:t,options:l}}const $n={name:"splitpanes",props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce((t,e)=>(t[e.id]=e)&&t,{})}},methods:{updatePaneComponents(){this.panes.forEach(t=>{t.update&&t.update({[this.horizontal?"height":"width"]:"".concat(this.indexedPanes[t.id].size,"%")})})},bindEvents(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown(t,e){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=e},onMouseMove(t){this.touch.mouseDown&&(t.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(t)),this.$emit("resize",this.panes.map(e=>({min:e.min,max:e.max,size:e.size}))))},onMouseUp(){this.touch.dragging&&this.$emit("resized",this.panes.map(t=>({min:t.min,max:t.max,size:t.size}))),this.touch.mouseDown=!1,setTimeout(()=>{this.touch.dragging=!1,this.unbindEvents()},100)},onSplitterClick(t,e){"ontouchstart"in window&&(t.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===e?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(t,e),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=e,this.splitterTaps.timeoutId=setTimeout(()=>{this.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[e])},onSplitterDblClick(t,e){let i=0;this.panes=this.panes.map((n,s)=>(n.size=s===e?n.max:n.min,s!==e&&(i+=n.min),n)),this.panes[e].size-=i,this.$emit("pane-maximize",this.panes[e])},onPaneClick(t,e){this.$emit("pane-click",this.indexedPanes[e])},getCurrentMouseDrag(t){const e=this.container.getBoundingClientRect(),{clientX:i,clientY:n}="ontouchstart"in window&&t.touches?t.touches[0]:t;return{x:i-e.left,y:n-e.top}},getCurrentDragPercentage(t){t=t[this.horizontal?"y":"x"];const e=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(t=e-t),t*100/e},calculatePanesSize(t){const e=this.touch.activeSplitter;let i={prevPanesSize:this.sumPrevPanesSize(e),nextPanesSize:this.sumNextPanesSize(e),prevReachedMinPanes:0,nextReachedMinPanes:0};const n=0+(this.pushOtherPanes?0:i.prevPanesSize),s=100-(this.pushOtherPanes?0:i.nextPanesSize),a=Math.max(Math.min(this.getCurrentDragPercentage(t),s),n);let o=[e,e+1],r=this.panes[o[0]]||null,l=this.panes[o[1]]||null;const p=r.max<100&&a>=r.max+i.prevPanesSize,c=l.max<100&&a<=100-(l.max+this.sumNextPanesSize(e+1));if(p||c){p?(r.size=r.max,l.size=Math.max(100-r.max-i.prevPanesSize-i.nextPanesSize,0)):(r.size=Math.max(100-l.max-i.prevPanesSize-this.sumNextPanesSize(e+1),0),l.size=l.max);return}if(this.pushOtherPanes){const u=this.doPushOtherPanes(i,a);if(!u)return;({sums:i,panesToResize:o}=u),r=this.panes[o[0]]||null,l=this.panes[o[1]]||null}r!==null&&(r.size=Math.min(Math.max(a-i.prevPanesSize-i.prevReachedMinPanes,r.min),r.max)),l!==null&&(l.size=Math.min(Math.max(100-a-i.nextPanesSize-i.nextReachedMinPanes,l.min),l.max))},doPushOtherPanes(t,e){const i=this.touch.activeSplitter,n=[i,i+1];return e{a>n[0]&&a<=i&&(s.size=s.min,t.prevReachedMinPanes+=s.min)}),t.prevPanesSize=this.sumPrevPanesSize(n[0]),n[0]===void 0)?(t.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach((s,a)=>{a>0&&a<=i&&(s.size=s.min,t.prevReachedMinPanes+=s.min)}),this.panes[n[1]].size=100-t.prevReachedMinPanes-this.panes[0].min-t.prevPanesSize-t.nextPanesSize,null):e>100-t.nextPanesSize-this.panes[n[1]].min&&(n[1]=this.findNextExpandedPane(i).index,t.nextReachedMinPanes=0,n[1]>i+1&&this.panes.forEach((s,a)=>{a>i&&a{a=i+1&&(s.size=s.min,t.nextReachedMinPanes+=s.min)}),this.panes[n[0]].size=100-t.prevPanesSize-t.nextReachedMinPanes-this.panes[this.panesCount-1].min-t.nextPanesSize,null):{sums:t,panesToResize:n}},sumPrevPanesSize(t){return this.panes.reduce((e,i,n)=>e+(ne+(n>t+1?i.size:0),0)},findPrevExpandedPane(t){return[...this.panes].reverse().find(e=>e.indexe.min)||{}},findNextExpandedPane(t){return this.panes.find(e=>e.index>t+1&&e.size>e.min)||{}},checkSplitpanesNodes(){Array.from(this.container.children).forEach(t=>{const e=t.classList.contains("splitpanes__pane"),i=t.classList.contains("splitpanes__splitter");if(!e&&!i){t.parentNode.removeChild(t),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.");return}})},addSplitter(t,e,i=!1){const n=t-1,s=document.createElement("div");s.classList.add("splitpanes__splitter"),i||(s.onmousedown=a=>this.onMouseDown(a,n),typeof window<"u"&&"ontouchstart"in window&&(s.ontouchstart=a=>this.onMouseDown(a,n)),s.onclick=a=>this.onSplitterClick(a,n+1)),this.dblClickSplitter&&(s.ondblclick=a=>this.onSplitterDblClick(a,n+1)),e.parentNode.insertBefore(s,e)},removeSplitter(t){t.onmousedown=void 0,t.onclick=void 0,t.ondblclick=void 0,t.parentNode.removeChild(t)},redoSplitters(){const t=Array.from(this.container.children);t.forEach(i=>{i.className.includes("splitpanes__splitter")&&this.removeSplitter(i)});let e=0;t.forEach(i=>{i.className.includes("splitpanes__pane")&&(!e&&this.firstSplitter?this.addSplitter(e,i,!0):e&&this.addSplitter(e,i),e++)})},requestUpdate(t){var e=t,{target:i}=e,n=Tn(e,["target"]);const s=this.indexedPanes[i._uid];Object.entries(n).forEach(([a,o])=>s[a]=o)},onPaneAdd(t){let e=-1;Array.from(t.$el.parentNode.children).some(s=>(s.className.includes("splitpanes__pane")&&e++,s===t.$el));const i=parseFloat(t.minSize),n=parseFloat(t.maxSize);this.panes.splice(e,0,{id:t._uid,index:e,min:isNaN(i)?0:i,max:isNaN(n)?100:n,size:t.size===null?null:parseFloat(t.size),givenSize:t.size,update:t.update}),this.panes.forEach((s,a)=>s.index=a),this.ready&&this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[e]}),this.$emit("pane-add",{index:e,panes:this.panes.map(s=>({min:s.min,max:s.max,size:s.size}))})})},onPaneRemove(t){const e=this.panes.findIndex(n=>n.id===t._uid),i=this.panes.splice(e,1)[0];this.panes.forEach((n,s)=>n.index=s),this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:On(Ln({},i),{index:e})}),this.$emit("pane-remove",{removed:i,panes:this.panes.map(n=>({min:n.min,max:n.max,size:n.size}))})})},resetPaneSizes(t={}){!t.addedPane&&!t.removedPane?this.initialPanesSizing():this.panes.some(e=>e.givenSize!==null||e.min||e.max<100)?this.equalizeAfterAddOrRemove(t):this.equalize(),this.ready&&this.$emit("resized",this.panes.map(e=>({min:e.min,max:e.max,size:e.size})))},equalize(){const t=100/this.panesCount;let e=0,i=[],n=[];this.panes.forEach(s=>{s.size=Math.max(Math.min(t,s.max),s.min),e-=s.size,s.size>=s.max&&i.push(s.id),s.size<=s.min&&n.push(s.id)}),e>.1&&this.readjustSizes(e,i,n)},initialPanesSizing(){100/this.panesCount;let t=100,e=[],i=[],n=0;this.panes.forEach(a=>{t-=a.size,a.size!==null&&n++,a.size>=a.max&&e.push(a.id),a.size<=a.min&&i.push(a.id)});let s=100;t>.1&&(this.panes.forEach(a=>{a.size===null&&(a.size=Math.max(Math.min(t/(this.panesCount-n),a.max),a.min)),s-=a.size}),s>.1&&this.readjustSizes(t,e,i))},equalizeAfterAddOrRemove({addedPane:t,removedPane:e}={}){let i=100/this.panesCount,n=0,s=[],a=[];t&&t.givenSize!==null&&(i=(100-t.givenSize)/(this.panesCount-1)),this.panes.forEach(o=>{n-=o.size,o.size>=o.max&&s.push(o.id),o.size<=o.min&&a.push(o.id)}),!(Math.abs(n)<.1)&&(this.panes.forEach(o=>{t&&t.givenSize!==null&&t.id===o.id||(o.size=Math.max(Math.min(i,o.max),o.min)),n-=o.size,o.size>=o.max&&s.push(o.id),o.size<=o.min&&a.push(o.id)}),n>.1&&this.readjustSizes(n,s,a))},readjustSizes(t,e,i){let n;t>0?n=t/(this.panesCount-e.length):n=t/(this.panesCount-i.length),this.panes.forEach((s,a)=>{if(t>0&&!e.includes(s.id)){const o=Math.max(Math.min(s.size+n,s.max),s.min),r=o-s.size;t-=r,s.size=o}else if(!i.includes(s.id)){const o=Math.max(Math.min(s.size+n,s.max),s.min),r=o-s.size;t-=r,s.size=o}s.update({[this.horizontal?"height":"width"]:"".concat(this.indexedPanes[s.id].size,"%")})}),Math.abs(t)>.1&&this.$nextTick(()=>{this.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(t){[...this.container.querySelectorAll(".splitpanes__splitter")].forEach((e,i)=>{e.ondblclick=t?n=>this.onSplitterDblClick(n,i):void 0})}},beforeDestroy(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render(t){return t("div",{ref:"container",class:["splitpanes","splitpanes--".concat(this.horizontal?"horizontal":"vertical"),{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default)}};let In,Bn;const De={};var Rn=Ye($n,In,Bn,!1,Vn);function Vn(t){for(let e in De)this[e]=De[e]}var Hn=function(){return Rn.exports}(),jn=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"splitpanes__pane",style:t.style,on:{click:function(n){return t.onPaneClick(n,t._uid)}}},[t._t("default")],2)},Fn=[];const Un={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeDestroy(){this.onPaneRemove(this)},methods:{update(t){this.style=t}},computed:{sizeNumber(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(t){this.requestUpdate({target:this,size:t})},minSizeNumber(t){this.requestUpdate({target:this,min:t})},maxSizeNumber(t){this.requestUpdate({target:this,max:t})}}},Ee={};var Wn=Ye(Un,jn,Fn,!1,Zn);function Zn(t){for(let e in Ee)this[e]=Ee[e]}var qn=function(){return Wn.exports}();it(qi);const Kn={name:"NcAppDetailsToggle",directives:{tooltip:Gi},components:{NcButton:lt,ArrowRight:je},setup(){return{isMobile:Nt()}},computed:{title(){return T("Go back to the list")}},watch:{isMobile:{immediate:!0,handler(){this.toggleAppNavigationButton(this.isMobile)}}},beforeDestroy(){this.isMobile&&this.toggleAppNavigationButton(!1)},methods:{toggleAppNavigationButton(t=!0){const e=document.querySelector(".app-navigation .app-navigation-toggle");e&&(e.style.display=t?"none":null,t===!0&&Y("toggle-navigation",{open:!1}))}}};var Gn=function(){var t=this,e=t._self._c;return e("NcButton",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.title,expression:"title"}],staticClass:"app-details-toggle",class:{"app-details-toggle--mobile":t.isMobile},attrs:{type:"tertiary","aria-label":t.title},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ArrowRight",{attrs:{size:20}})]},proxy:!0}])})},Xn=[],Jn=x(Kn,Gn,Xn,!1,null,"7692fc78");const Yn=Jn.exports,Pe=Fi("nextcloud").persist().build(),Qn={name:"NcAppContent",components:{NcAppDetailsToggle:Yn,Pane:qn,Splitpanes:Hn},props:{allowSwipeNavigation:{type:Boolean,default:!0},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},pageHeading:{type:String,default:null},layout:{type:String,default:"vertical-split",validator(t){return["no-split","vertical-split","horizontal-split"].includes(t)}}},emits:["update:showDetails","resize:list"],setup(){return{isMobile:Nt()}},data(){return{contentHeight:0,hasList:!1,hasContent:!1,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return"pane-list-size-".concat(this.paneConfigKey);try{return"pane-list-size-".concat(Rt)}catch{return console.info("[INFO] AppContent:","falling back to global nextcloud pane config"),"pane-list-size-nextcloud"}},detailsPaneSize(){return this.listPaneSize?100-this.listPaneSize:this.paneDefaults.details.size},paneDefaults(){return{list:{size:this.listSize,min:this.listMinWidth,max:this.listMaxWidth},details:{size:100-this.listSize,min:100-this.listMaxWidth,max:100-this.listMinWidth}}}},updated(){this.checkSlots()},mounted(){this.allowSwipeNavigation&&(this.swiping=Ki(this.$el,{onSwipeEnd:this.handleSwipe})),this.checkSlots(),this.restorePaneConfig()},methods:{handleSwipe(t,e){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&e==="right"?Y("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&e==="left"&&Y("toggle-navigation",{open:!1}))},handlePaneResize(t){const e=parseInt(t[0].size,10);Pe.setItem(this.paneConfigID,JSON.stringify(e)),this.listPaneSize=e,this.$emit("resize:list",{size:e}),console.debug("AppContent pane config",e)},checkSlots(){this.hasList=!!this.$scopedSlots.list,this.hasContent=!!this.$scopedSlots.default},restorePaneConfig(){const t=parseInt(Pe.getItem(this.paneConfigID),10);if(!isNaN(t)&&t!==this.listPaneSize)return console.debug("AppContent pane config",t),this.listPaneSize=t,t},hideDetails(){this.$emit("update:showDetails",!1)}}};var ts=function(){var t=this,e=t._self._c;return e("main",{staticClass:"app-content no-snapper",class:{"app-content--has-list":t.hasList},attrs:{id:"app-content-vue"}},[t.pageHeading?e("h1",{staticClass:"hidden-visually"},[t._v(" "+t._s(t.pageHeading)+" ")]):t._e(),t.hasList?[t.isMobile||t.layout==="no-split"?e("div",{staticClass:"app-content-wrapper app-content-wrapper--no-split",class:{"app-content-wrapper--show-details":t.showDetails,"app-content-wrapper--show-list":!t.showDetails,"app-content-wrapper--mobile":t.isMobile}},[t.showDetails?e("NcAppDetailsToggle",{nativeOn:{click:function(i){return i.stopPropagation(),i.preventDefault(),t.hideDetails.apply(null,arguments)}}}):t._e(),t.showDetails?t._t("default"):t._t("list")],2):t.layout==="vertical-split"||t.layout==="horizontal-split"?e("div",{staticClass:"app-content-wrapper"},[e("Splitpanes",{staticClass:"default-theme",class:{"splitpanes--horizontal":t.layout==="horizontal-split","splitpanes--vertical":t.layout==="vertical-split"},attrs:{horizontal:t.layout==="horizontal-split"},on:{resized:t.handlePaneResize}},[e("Pane",{staticClass:"splitpanes__pane-list",attrs:{size:t.listPaneSize||t.paneDefaults.list.size,"min-size":t.paneDefaults.list.min,"max-size":t.paneDefaults.list.max}},[t._t("list")],2),e("Pane",{staticClass:"splitpanes__pane-details",attrs:{size:t.detailsPaneSize,"min-size":t.paneDefaults.details.min,"max-size":t.paneDefaults.details.max}},[t._t("default")],2)],1)],1):t._e()]:t._e(),t.hasList?t._e():t._t("default")],2)},es=[],is=x(Qn,ts,es,!1,null,"de6986e3");const ns=is.exports;var Wt=Symbol(),Ct=Symbol(),Me=Symbol(),Ae=Symbol(),de=function(t){return"frag"in t},ss={get:function(){return this[Ct]||this.parentElement},configurable:!0},bt=function(t,e){Ct in t||(t[Ct]=e,Object.defineProperty(t,"parentNode",ss))},as={get:function(){var t=this.parentNode.childNodes,e=t.indexOf(this);return e>-1&&t[e+1]||null}},Tt=function(t){Me in t||(t[Me]=!0,Object.defineProperty(t,"nextSibling",as))},os=function(t,e){for(;t.parentNode!==e;){var i=t,n=i.parentNode;n&&(t=n)}return t},Yt,Qe=function(t){if(!Yt){var e=Object.getOwnPropertyDescriptor(Node.prototype,"childNodes");Yt=e.get}var i=Yt.apply(t),n=Array.from(i).map(function(s){return os(s,t)});return n.filter(function(s,a){return s!==n[a-1]})},rs={get:function(){return this.frag||Qe(this)}},ls={get:function(){return this.childNodes[0]||null}};function cs(){return this.childNodes.length>0}var Le=function(t){Ae in t||(t[Ae]=!0,Object.defineProperties(t,{childNodes:rs,firstChild:ls}),t.hasChildNodes=cs)};function us(){var t;(t=this.frag[0]).before.apply(t,arguments)}function ps(){var t=this.frag,e=t.splice(0,t.length);e.forEach(function(i){i.remove()})}var ds=function t(e){var i;return(i=Array.prototype).concat.apply(i,e.map(function(n){return de(n)?t(n.frag):n}))},hs=function(t,e){var i=t[Wt];e.before(i),bt(i,t),t.frag.unshift(i)};function Oe(t){if(de(this)){var e=this.frag.indexOf(t);if(e>-1){var i=this.frag.splice(e,1),n=i[0];this.frag.length===0&&hs(this,n),t.remove()}}else{var s=Qe(this),a=s.indexOf(t);a>-1&&t.remove()}return t}function Te(t,e){var i=this,n=t.frag||[t];if(de(this)){if(t[Ct]===this&&t.parentElement)return t;var s=this.frag;if(e){var a=s.indexOf(e);a>-1&&(s.splice.apply(s,[a,0].concat(n)),e.before.apply(e,n))}else{var o=s[s.length-1];s.push.apply(s,n),o.after.apply(o,n)}ti(this)}else e?this.childNodes.includes(e)&&e.before.apply(e,n):this.append.apply(this,n);n.forEach(function(l){bt(l,i)});var r=n[n.length-1];return Tt(r),t}function fs(t){if(t[Ct]===this&&t.parentElement)return t;var e=this.frag,i=e[e.length-1];return i.after(t),bt(t,this),ti(this),e.push(t),t}var ti=function(t){var e=t[Wt];t.frag[0]===e&&(t.frag.shift(),e.remove())},vs={set:function(t){var e=this;if(this.frag[0]!==this[Wt]&&this.frag.slice().forEach(function(n){return e.removeChild(n)}),t){var i=document.createElement("div");i.innerHTML=t,Array.from(i.childNodes).forEach(function(n){e.appendChild(n)})}},get:function(){return""}},gs={inserted:function(t){var e=t.parentNode,i=t.nextSibling,n=t.previousSibling,s=Array.from(t.childNodes),a=document.createComment("");s.length===0&&s.push(a),t.frag=s,t[Wt]=a;var o=document.createDocumentFragment();o.append.apply(o,ds(s)),t.replaceWith(o),s.forEach(function(r){bt(r,t),Tt(r)}),Le(t),Object.assign(t,{remove:ps,appendChild:fs,insertBefore:Te,removeChild:Oe,before:us}),Object.defineProperty(t,"innerHTML",vs),e&&(Object.assign(e,{removeChild:Oe,insertBefore:Te}),bt(t,e),Le(e)),i&&Tt(t),n&&Tt(n)},unbind:function(t){t.remove()}},ms={name:"Fragment",directives:{frag:gs},render:function(t){return t("div",{directives:[{name:"frag"}]},this.$slots.default)}};const ys=Ut({__name:"ActivityGroup",props:{activities:null},setup(t){const e=t,i=_t(()=>{const s=ht(),a=ht().subtract(1,"day"),o=ht(e.activities[0].datetime);return o.isSame(s,"day")?B("activity","Today"):o.isSame(a,"day")?B("activity","Yesterday"):o.format("LL")}),n=_t(()=>{const s=ht(e.activities[0].datetime).format("LL");return s!==i.value?s:void 0});return{__sfc:!0,props:e,dateText:i,fullDate:n,Activity:Ti,Fragment:ms}}});var _s=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.Fragment,[e("h2",{staticClass:"activity-group__heading",attrs:{title:i.fullDate}},[t._v(" "+t._s(i.dateText)+" ")]),e("ul",t._l(t.activities,function(n){return e(i.Activity,{key:n.id,attrs:{activity:n,"show-previews":!0}})}),1)])},Cs=[],bs=Dt(ys,_s,Cs,!1,null,"c16e5a63");const xs=bs.exports,Ss='';function ws(t){const e=Object.create(null);for(const i of t.split(","))e[i]=1;return i=>i in e}const he={},$t=()=>{},ei=Object.assign,ks=Object.prototype.hasOwnProperty,se=(t,e)=>ks.call(t,e),M=Array.isArray,ft=t=>Zt(t)==="[object Map]",zs=t=>Zt(t)==="[object Set]",V=t=>typeof t=="function",Ns=t=>typeof t=="string",Et=t=>typeof t=="symbol",ct=t=>t!==null&&typeof t=="object",Ds=t=>(ct(t)||V(t))&&V(t.then)&&V(t.catch),Es=Object.prototype.toString,Zt=t=>Es.call(t),Ps=t=>Zt(t).slice(8,-1),Ms=t=>Zt(t)==="[object Object]",fe=t=>Ns(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Z=(t,e)=>!Object.is(t,e);let $e;const ae=()=>$e||($e=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof ze<"u"?ze:{});let y;const Qt=new WeakSet;class As{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Qt.has(this)&&(Qt.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||ni(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ie(this),si(this);const e=y,i=A;y=this,A=!0;try{return this.fn()}finally{ai(this),y=e,A=i,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)me(e);this.deps=this.depsTail=void 0,Ie(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Qt.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){oe(this)&&this.run()}get dirty(){return oe(this)}}let ii=0,vt,gt;function ni(t,e=!1){if(t.flags|=8,e){t.next=gt,gt=t;return}t.next=vt,vt=t}function ve(){ii++}function ge(){if(--ii>0)return;if(gt){let e=gt;for(gt=void 0;e;){const i=e.next;e.next=void 0,e.flags&=-9,e=i}}let t;for(;vt;){let e=vt;for(vt=void 0;e;){const i=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=i}}if(t)throw t}function si(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function ai(t){let e,i=t.depsTail,n=i;for(;n;){const s=n.prevDep;n.version===-1?(n===i&&(i=s),me(n),Ls(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}t.deps=e,t.depsTail=i}function oe(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(oi(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function oi(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===xt))return;t.globalVersion=xt;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!oe(t)){t.flags&=-3;return}const i=y,n=A;y=t,A=!0;try{si(t);const s=t.fn(t._value);(e.version===0||Z(s,t._value))&&(t._value=s,e.version++)}catch(s){throw e.version++,s}finally{y=i,A=n,ai(t),t.flags&=-3}}function me(t,e=!1){const{dep:i,prevSub:n,nextSub:s}=t;if(n&&(n.nextSub=s,t.prevSub=void 0),s&&(s.prevSub=n,t.nextSub=void 0),i.subs===t&&(i.subs=n,!n&&i.computed)){i.computed.flags&=-5;for(let a=i.computed.deps;a;a=a.nextDep)me(a,!0)}!e&&!--i.sc&&i.map&&i.map.delete(i.key)}function Ls(t){const{prevDep:e,nextDep:i}=t;e&&(e.nextDep=i,t.prevDep=void 0),i&&(i.prevDep=e,t.nextDep=void 0)}let A=!0;const ri=[];function qt(){ri.push(A),A=!1}function Kt(){const t=ri.pop();A=t===void 0?!0:t}function Ie(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const i=y;y=void 0;try{e()}finally{y=i}}}let xt=0;class Os{constructor(e,i){this.sub=e,this.dep=i,this.version=i.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ye{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!y||!A||y===this.computed)return;let i=this.activeLink;if(i===void 0||i.sub!==y)i=this.activeLink=new Os(y,this),y.deps?(i.prevDep=y.depsTail,y.depsTail.nextDep=i,y.depsTail=i):y.deps=y.depsTail=i,li(i);else if(i.version===-1&&(i.version=this.version,i.nextDep)){const n=i.nextDep;n.prevDep=i.prevDep,i.prevDep&&(i.prevDep.nextDep=n),i.prevDep=y.depsTail,i.nextDep=void 0,y.depsTail.nextDep=i,y.depsTail=i,y.deps===i&&(y.deps=n)}return i}trigger(e){this.version++,xt++,this.notify(e)}notify(e){ve();try{for(let i=this.subs;i;i=i.prevSub)i.sub.notify()&&i.sub.dep.notify()}finally{ge()}}}function li(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)li(n)}const i=t.dep.subs;i!==t&&(t.prevSub=i,i&&(i.nextSub=t)),t.dep.subs=t}}const re=new WeakMap,Q=Symbol(""),le=Symbol(""),St=Symbol("");function z(t,e,i){if(A&&y){let n=re.get(t);n||re.set(t,n=new Map);let s=n.get(i);s||(n.set(i,s=new ye),s.map=n,s.key=i),s.track()}}function U(t,e,i,n,s,a){const o=re.get(t);if(!o){xt++;return}const r=l=>{l&&l.trigger()};if(ve(),e==="clear")o.forEach(r);else{const l=M(t),p=l&&fe(i);if(l&&i==="length"){const c=Number(n);o.forEach((u,d)=>{(d==="length"||d===St||!Et(d)&&d>=c)&&r(u)})}else switch((i!==void 0||o.has(void 0))&&r(o.get(i)),p&&r(o.get(St)),e){case"add":l?p&&r(o.get("length")):(r(o.get(Q)),ft(t)&&r(o.get(le)));break;case"delete":l||(r(o.get(Q)),ft(t)&&r(o.get(le)));break;case"set":ft(t)&&r(o.get(Q));break}}ge()}function st(t){const e=m(t);return e===t?e:(z(e,"iterate",St),L(t)?e:e.map(k))}function _e(t){return z(t=m(t),"iterate",St),t}const Ts={__proto__:null,[Symbol.iterator](){return te(this,Symbol.iterator,k)},concat(...t){return st(this).concat(...t.map(e=>M(e)?st(e):e))},entries(){return te(this,"entries",t=>(t[1]=k(t[1]),t))},every(t,e){return $(this,"every",t,e,void 0,arguments)},filter(t,e){return $(this,"filter",t,e,i=>i.map(k),arguments)},find(t,e){return $(this,"find",t,e,k,arguments)},findIndex(t,e){return $(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return $(this,"findLast",t,e,k,arguments)},findLastIndex(t,e){return $(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return $(this,"forEach",t,e,void 0,arguments)},includes(...t){return ee(this,"includes",t)},indexOf(...t){return ee(this,"indexOf",t)},join(t){return st(this).join(t)},lastIndexOf(...t){return ee(this,"lastIndexOf",t)},map(t,e){return $(this,"map",t,e,void 0,arguments)},pop(){return dt(this,"pop")},push(...t){return dt(this,"push",t)},reduce(t,...e){return Be(this,"reduce",t,e)},reduceRight(t,...e){return Be(this,"reduceRight",t,e)},shift(){return dt(this,"shift")},some(t,e){return $(this,"some",t,e,void 0,arguments)},splice(...t){return dt(this,"splice",t)},toReversed(){return st(this).toReversed()},toSorted(t){return st(this).toSorted(t)},toSpliced(...t){return st(this).toSpliced(...t)},unshift(...t){return dt(this,"unshift",t)},values(){return te(this,"values",k)}};function te(t,e,i){const n=_e(t),s=n[e]();return n!==t&&!L(t)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.value&&(a.value=i(a.value)),a}),s}const $s=Array.prototype;function $(t,e,i,n,s,a){const o=_e(t),r=o!==t&&!L(t),l=o[e];if(l!==$s[e]){const u=l.apply(t,a);return r?k(u):u}let p=i;o!==t&&(r?p=function(u,d){return i.call(this,k(u),d,t)}:i.length>2&&(p=function(u,d){return i.call(this,u,d,t)}));const c=l.call(o,p,n);return r&&s?s(c):c}function Be(t,e,i,n){const s=_e(t);let a=i;return s!==t&&(L(t)?i.length>3&&(a=function(o,r,l){return i.call(this,o,r,l,t)}):a=function(o,r,l){return i.call(this,o,k(r),l,t)}),s[e](a,...n)}function ee(t,e,i){const n=m(t);z(n,"iterate",St);const s=n[e](...i);return(s===-1||s===!1)&&Js(i[0])?(i[0]=m(i[0]),n[e](...i)):s}function dt(t,e,i=[]){qt(),ve();const n=m(t)[e].apply(t,i);return ge(),Kt(),n}const Is=ws("__proto__,__v_isRef,__isVue"),ci=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Et));function Bs(t){Et(t)||(t=String(t));const e=m(this);return z(e,"has",t),e.hasOwnProperty(t)}class ui{constructor(e=!1,i=!1){this._isReadonly=e,this._isShallow=i}get(e,i,n){if(i==="__v_skip")return e.__v_skip;const s=this._isReadonly,a=this._isShallow;if(i==="__v_isReactive")return!s;if(i==="__v_isReadonly")return s;if(i==="__v_isShallow")return a;if(i==="__v_raw")return n===(s?a?Ks:hi:a?qs:di).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const o=M(e);if(!s){let l;if(o&&(l=Ts[i]))return l;if(i==="hasOwnProperty")return Bs}const r=Reflect.get(e,i,O(e)?e:n);return(Et(i)?ci.has(i):Is(i))||(s||z(e,"get",i),a)?r:O(r)?o&&fe(i)?r:r.value:ct(r)?s?fi(r):wt(r):r}}class Rs extends ui{constructor(e=!1){super(!1,e)}set(e,i,n,s){let a=e[i];if(!this._isShallow){const l=tt(a);if(!L(n)&&!tt(n)&&(a=m(a),n=m(n)),!M(e)&&O(a)&&!O(n))return l?!1:(a.value=n,!0)}const o=M(e)&&fe(i)?Number(i)t,Mt=t=>Reflect.getPrototypeOf(t);function Fs(t,e,i){return function(...n){const s=this.__v_raw,a=m(s),o=ft(a),r=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,p=s[t](...n),c=i?ce:e?ue:k;return!e&&z(a,"iterate",l?le:Q),{next(){const{value:u,done:d}=p.next();return d?{value:u,done:d}:{value:r?[c(u[0]),c(u[1])]:c(u),done:d}},[Symbol.iterator](){return this}}}}function At(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Us(t,e){const i={get(n){const s=this.__v_raw,a=m(s),o=m(n);t||(Z(n,o)&&z(a,"get",n),z(a,"get",o));const{has:r}=Mt(a),l=e?ce:t?ue:k;if(r.call(a,n))return l(s.get(n));if(r.call(a,o))return l(s.get(o));s!==a&&s.get(n)},get size(){const n=this.__v_raw;return!t&&z(m(n),"iterate",Q),Reflect.get(n,"size",n)},has(n){const s=this.__v_raw,a=m(s),o=m(n);return t||(Z(n,o)&&z(a,"has",n),z(a,"has",o)),n===o?s.has(n):s.has(n)||s.has(o)},forEach(n,s){const a=this,o=a.__v_raw,r=m(o),l=e?ce:t?ue:k;return!t&&z(r,"iterate",Q),o.forEach((p,c)=>n.call(s,l(p),l(c),a))}};return ei(i,t?{add:At("add"),set:At("set"),delete:At("delete"),clear:At("clear")}:{add(n){!e&&!L(n)&&!tt(n)&&(n=m(n));const s=m(this);return Mt(s).has.call(s,n)||(s.add(n),U(s,"add",n,n)),this},set(n,s){!e&&!L(s)&&!tt(s)&&(s=m(s));const a=m(this),{has:o,get:r}=Mt(a);let l=o.call(a,n);l||(n=m(n),l=o.call(a,n));const p=r.call(a,n);return a.set(n,s),l?Z(s,p)&&U(a,"set",n,s):U(a,"add",n,s),this},delete(n){const s=m(this),{has:a,get:o}=Mt(s);let r=a.call(s,n);r||(n=m(n),r=a.call(s,n)),o&&o.call(s,n);const l=s.delete(n);return r&&U(s,"delete",n,void 0),l},clear(){const n=m(this),s=n.size!==0,a=n.clear();return s&&U(n,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(n=>{i[n]=Fs(n,t,e)}),i}function pi(t,e){const i=Us(t,e);return(n,s,a)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?n:Reflect.get(se(i,s)&&s in n?i:n,s,a)}const Ws={get:pi(!1,!1)},Zs={get:pi(!0,!1)},di=new WeakMap,qs=new WeakMap,hi=new WeakMap,Ks=new WeakMap;function Gs(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xs(t){return t.__v_skip||!Object.isExtensible(t)?0:Gs(Ps(t))}function wt(t){return tt(t)?t:vi(t,!1,Hs,Ws,di)}function fi(t){return vi(t,!0,js,Zs,hi)}function vi(t,e,i,n,s){if(!ct(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const a=s.get(t);if(a)return a;const o=Xs(t);if(o===0)return t;const r=new Proxy(t,o===2?n:i);return s.set(t,r),r}function It(t){return tt(t)?It(t.__v_raw):!!(t&&t.__v_isReactive)}function tt(t){return!!(t&&t.__v_isReadonly)}function L(t){return!!(t&&t.__v_isShallow)}function Js(t){return t?!!t.__v_raw:!1}function m(t){const e=t&&t.__v_raw;return e?m(e):t}const k=t=>ct(t)?wt(t):t,ue=t=>ct(t)?fi(t):t;function O(t){return t?t.__v_isRef===!0:!1}function gi(t){return mi(t,!1)}function mt(t){return mi(t,!0)}function mi(t,e){return O(t)?t:new Ys(t,e)}class Ys{constructor(e,i){this.dep=new ye,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=i?e:m(e),this._value=i?e:k(e),this.__v_isShallow=i}get value(){return this.dep.track(),this._value}set value(e){const i=this._rawValue,n=this.__v_isShallow||L(e)||tt(e);e=n?e:m(e),Z(e,i)&&(this._rawValue=e,this._value=n?e:k(e),this.dep.trigger())}}function yi(t){return O(t)?t.value:t}function w(t){return V(t)?t():yi(t)}class Qs{constructor(e,i,n){this.fn=e,this.setter=i,this._value=void 0,this.dep=new ye(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=xt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!i,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&y!==this)return ni(this,!0),!0}get value(){const e=this.dep.track();return oi(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function ta(t,e,i=!1){let n,s;return V(t)?n=t:(n=t.get,s=t.set),new Qs(n,s,i)}const Lt={},Ht=new WeakMap;let J;function ea(t,e=!1,i=J){if(i){let n=Ht.get(i);n||Ht.set(i,n=[]),n.push(t)}}function ia(t,e,i=he){const{immediate:n,deep:s,once:a,scheduler:o,augmentJob:r,call:l}=i,p=f=>s?f:L(f)||s===!1||s===0?W(f,1):W(f);let c,u,d,h,g=!1,_=!1;if(O(t)?(u=()=>t.value,g=L(t)):It(t)?(u=()=>p(t),g=!0):M(t)?(_=!0,g=t.some(f=>It(f)||L(f)),u=()=>t.map(f=>{if(O(f))return f.value;if(It(f))return p(f);if(V(f))return l?l(f,2):f()})):V(t)?e?u=l?()=>l(t,2):t:u=()=>{if(d){qt();try{d()}finally{Kt()}}const f=J;J=c;try{return l?l(t,3,[h]):t(h)}finally{J=f}}:u=$t,e&&s){const f=u,D=s===!0?1/0:s;u=()=>W(f(),D)}const C=()=>{c.stop()};if(a&&e){const f=e;e=(...D)=>{f(...D),C()}}let b=_?new Array(t.length).fill(Lt):Lt;const S=f=>{if(!(!(c.flags&1)||!c.dirty&&!f))if(e){const D=c.run();if(s||g||(_?D.some((q,K)=>Z(q,b[K])):Z(D,b))){d&&d();const q=J;J=c;try{const K=[D,b===Lt?void 0:_&&b[0]===Lt?[]:b,h];l?l(e,3,K):e(...K),b=D}finally{J=q}}}else c.run()};return r&&r(S),c=new As(u),c.scheduler=o?()=>o(S,!1):S,h=f=>ea(f,!1,c),d=c.onStop=()=>{const f=Ht.get(c);if(f){if(l)l(f,4);else for(const D of f)D();Ht.delete(c)}},e?n?S(!0):b=c.run():o?o(S.bind(null,!0),!0):c.run(),C.pause=c.pause.bind(c),C.resume=c.resume.bind(c),C.stop=C,C}function W(t,e=1/0,i){if(e<=0||!ct(t)||t.__v_skip||(i=i||new Set,i.has(t)))return t;if(i.add(t),e--,O(t))W(t.value,e,i);else if(M(t))for(let n=0;n{W(n,e,i)});else if(Ms(t)){for(const n in t)W(t[n],e,i);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&W(t[n],e,i)}return t}function Ce(t,e,i,n){try{return n?t(...n):t()}catch(s){_i(s,e,i)}}function be(t,e,i,n){if(V(t)){const s=Ce(t,e,i,n);return s&&Ds(s)&&s.catch(a=>{_i(a,e,i)}),s}if(M(t)){const s=[];for(let a=0;a>>1,s=P[n],a=kt(s);a=kt(i)?P.push(t):P.splice(sa(e),0,t),t.flags|=1,bi()}}function bi(){jt||(jt=Ci.then(xi))}function oa(t){M(t)?rt.push(...t):F&&t.id===-1?F.splice(ot+1,0,t):t.flags&1||(rt.push(t),t.flags|=1),bi()}function ra(t){if(rt.length){const e=[...new Set(rt)].sort((i,n)=>kt(i)-kt(n));if(rt.length=0,F){F.push(...e);return}for(F=e,ot=0;ott.id==null?t.flags&2?-1:1/0:t.id;function xi(t){try{for(I=0;I{qt();const r=ma(i),l=be(e,i,t,o);return r(),Kt(),l});return n?s.unshift(a):s.push(a),a}}const wi=t=>(e,i=nt)=>{(!zt||t==="sp")&&la(t,(...n)=>e(...n),i)},ki=wi("m"),ca=wi("um");let ua=null;function pa(t,e,i=!1){const n=nt||Si;if(n||ua){const s=n?n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(s&&t in s)return s[t];if(arguments.length>1)return i&&V(e)?e.call(n&&n.proxy):e}}const da=ga,ha=Symbol.for("v-scx"),fa=()=>pa(ha);function Gt(t,e,i){return va(t,e,i)}function va(t,e,i=he){const{immediate:n,deep:s,flush:a,once:o}=i,r=ei({},i),l=e&&n||!e&&a!=="post";let p;if(zt){if(a==="sync"){const h=fa();p=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=$t,h.resume=$t,h.pause=$t,h}}const c=nt;r.call=(h,g,_)=>be(h,c,g,_);let u=!1;a==="post"?r.scheduler=h=>{da(h,c&&c.suspense)}:a!=="sync"&&(u=!0,r.scheduler=(h,g)=>{g?h():aa(h)}),r.augmentJob=h=>{e&&(h.flags|=4),u&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const d=ia(t,e,r);return zt&&(p?p.push(d):l&&d()),d}function ga(t,e){e&&e.pendingBranch?M(t)?e.effects.push(...t):e.effects.push(t):oa(t)}let nt=null;const zi=()=>nt||Si;let pe;{const t=ae(),e=(i,n)=>{let s;return(s=t[i])||(s=t[i]=[]),s.push(n),a=>{s.length>1?s.forEach(o=>o(a)):s[0](a)}};pe=e("__VUE_INSTANCE_SETTERS__",i=>nt=i),e("__VUE_SSR_SETTERS__",i=>zt=i)}const ma=t=>{const e=nt;return pe(t),t.scope.on(),()=>{t.scope.off(),pe(e)}};let zt=!1;const et=(t,e)=>ta(t,e,zt),ya=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const _a=t=>t!=null,Ca=Object.prototype.toString,ba=t=>Ca.call(t)==="[object Object]",H=()=>{};function Ni(t,e){function i(...n){return new Promise((s,a)=>{Promise.resolve(t(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})).then(s).catch(a)})}return i}function xa(t,e={}){let i,n,s=H;const a=r=>{clearTimeout(r),s(),s=H};let o;return r=>{const l=w(t),p=w(e.maxWait);return i&&a(i),l<=0||p!==void 0&&p<=0?(n&&(a(n),n=null),Promise.resolve(r())):new Promise((c,u)=>{s=e.rejectOnCancel?u:c,o=r,p&&!n&&(n=setTimeout(()=>{i&&a(i),n=null,c(o())},p)),i=setTimeout(()=>{n&&a(n),n=null,c(r())},l)})}}function Sa(...t){let e=0,i,n=!0,s=H,a,o,r,l,p;!O(t[0])&&typeof t[0]=="object"?{delay:o,trailing:r=!0,leading:l=!0,rejectOnCancel:p=!1}=t[0]:[o,r=!0,l=!0,p=!1]=t;const c=()=>{i&&(clearTimeout(i),i=void 0,s(),s=H)};return u=>{const d=w(o),h=Date.now()-e,g=()=>a=u();return c(),d<=0?(e=Date.now(),g()):(h>d&&(l||!n)?(e=Date.now(),g()):r&&(a=new Promise((_,C)=>{s=p?C:_,i=setTimeout(()=>{e=Date.now(),n=!0,_(g()),c()},Math.max(0,d-h))})),!l&&!i&&(i=setTimeout(()=>n=!0,d)),n=!1,a)}}function Di(t){return zi()}function Bt(t){return Array.isArray(t)?t:[t]}function wa(t,e=200,i={}){return Ni(xa(e,i),t)}function ka(t,e=200,i=!1,n=!0,s=!1){return Ni(Sa(e,i,n,s),t)}function za(t,e=!0,i){Di()?ki(t,i):e?t():Ft(t)}function Na(t,e){Di()&&ca(t,e)}function Da(t,e,i){return Gt(t,e,{...i,immediate:!0})}function Ea(t,e,i){const n=Gt(t,(...s)=>(Ft(()=>n()),e(...s)),i);return n}const Xt=ya?window:void 0;function yt(t){var e;const i=w(t);return(e=i==null?void 0:i.$el)!=null?e:i}function Re(...t){const e=[],i=()=>{e.forEach(o=>o()),e.length=0},n=(o,r,l,p)=>(o.addEventListener(r,l,p),()=>o.removeEventListener(r,l,p)),s=et(()=>{const o=Bt(w(t[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0}),a=Da(()=>{var o,r;return[(r=(o=s.value)==null?void 0:o.map(l=>yt(l)))!=null?r:[Xt].filter(l=>l!=null),Bt(w(s.value?t[1]:t[0])),Bt(yi(s.value?t[2]:t[1])),w(s.value?t[3]:t[2])]},([o,r,l,p])=>{if(i(),!(o!=null&&o.length)||!(r!=null&&r.length)||!(l!=null&&l.length))return;const c=ba(p)?{...p}:p;e.push(...o.flatMap(u=>r.flatMap(d=>l.map(h=>n(u,d,h,c)))))},{flush:"post"});return()=>{a(),i()}}function Pa(){const t=mt(!1),e=zi();return e&&ki(()=>{t.value=!0},e),t}function Ma(t){const e=Pa();return et(()=>(e.value,!!t()))}function Aa(t,e,i={}){const{root:n,rootMargin:s="0px",threshold:a=0,window:o=Xt,immediate:r=!0}=i,l=Ma(()=>o&&"IntersectionObserver"in o),p=et(()=>{const h=w(t);return Bt(h).map(yt).filter(_a)});let c=H;const u=gi(r),d=l.value?Gt(()=>[p.value,yt(n),u.value],([h,g])=>{if(c(),!u.value||!h.length)return;const _=new IntersectionObserver(e,{root:yt(g),rootMargin:s,threshold:a});h.forEach(C=>C&&_.observe(C)),c=()=>{_.disconnect(),c=H}},{immediate:r,flush:"post"}):H;return{isSupported:l,isActive:u,pause(){c(),u.value=!1},resume(){u.value=!0},stop:()=>{c(),d(),u.value=!1}}}function La(t,e={}){const{window:i=Xt,scrollTarget:n,threshold:s=0,rootMargin:a,once:o=!1}=e,r=mt(!1),{stop:l}=Aa(t,p=>{let c=r.value,u=0;for(const d of p)d.time>=u&&(u=d.time,c=d.isIntersecting);r.value=c,o&&Ea(r,()=>{l()})},{root:n,window:i,threshold:s,rootMargin:w(a)});return r}function Oa(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}const Ve=1;function Ta(t,e={}){const{throttle:i=0,idle:n=200,onStop:s=H,onScroll:a=H,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:r={capture:!1,passive:!0},behavior:l="auto",window:p=Xt,onError:c=v=>{console.error(v)}}=e,u=mt(0),d=mt(0),h=et({get(){return u.value},set(v){_(v,void 0)}}),g=et({get(){return d.value},set(v){_(void 0,v)}});function _(v,G){var E,ut,pt,Pt;if(!p)return;const N=w(t);if(!N)return;(pt=N instanceof Document?p.document.body:N)==null||pt.scrollTo({top:(E=w(G))!=null?E:g.value,left:(ut=w(v))!=null?ut:h.value,behavior:w(l)});const j=((Pt=N==null?void 0:N.document)==null?void 0:Pt.documentElement)||(N==null?void 0:N.documentElement)||N;h!=null&&(u.value=j.scrollLeft),g!=null&&(d.value=j.scrollTop)}const C=mt(!1),b=wt({left:!0,right:!1,top:!0,bottom:!1}),S=wt({left:!1,right:!1,top:!1,bottom:!1}),f=v=>{C.value&&(C.value=!1,S.left=!1,S.right=!1,S.top=!1,S.bottom=!1,s(v))},D=wa(f,i+n),q=v=>{var G;if(!p)return;const E=((G=v==null?void 0:v.document)==null?void 0:G.documentElement)||(v==null?void 0:v.documentElement)||yt(v),{display:ut,flexDirection:pt,direction:Pt}=getComputedStyle(E),N=Pt==="rtl"?-1:1,j=E.scrollLeft;S.left=ju.value;const xe=j*N<=(o.left||0),Se=j*N+E.clientWidth>=E.scrollWidth-(o.right||0)-Ve;ut==="flex"&&pt==="row-reverse"?(b.left=Se,b.right=xe):(b.left=xe,b.right=Se),u.value=j;let X=E.scrollTop;v===p.document&&!X&&(X=p.document.body.scrollTop),S.top=Xd.value;const we=X<=(o.top||0),ke=X+E.clientHeight>=E.scrollHeight-(o.bottom||0)-Ve;ut==="flex"&&pt==="column-reverse"?(b.top=ke,b.bottom=we):(b.top=we,b.bottom=ke),d.value=X},K=v=>{var G;if(!p)return;const E=(G=v.target.documentElement)!=null?G:v.target;q(E),C.value=!0,D(v),a(v)};return Re(t,"scroll",i?ka(K,i,!0,!1):K,r),za(()=>{try{const v=w(t);if(!v)return;q(v)}catch(v){c(v)}}),Re(t,"scrollend",f,r),{x:h,y:g,isScrolling:C,arrivedState:b,directions:S,measure(){const v=w(t);p&&v&&q(v)}}}function $a(t,e,i={}){var n;const{direction:s="bottom",interval:a=100,canLoadMore:o=()=>!0}=i,r=wt(Ta(t,{...i,offset:{[s]:(n=i.distance)!=null?n:0,...i.offset}})),l=gi(),p=et(()=>!!l.value),c=et(()=>Oa(w(t))),u=La(c);function d(){if(r.measure(),!c.value||!u.value||!o(c.value))return;const{scrollHeight:g,clientHeight:_,scrollWidth:C,clientWidth:b}=c.value,S=s==="bottom"||s==="top"?g<=_:C<=b;(r.arrivedState[s]||S)&&(l.value||(l.value=Promise.all([e(r),new Promise(f=>setTimeout(f,a))]).finally(()=>{l.value=null,Ft(()=>d())})))}const h=Gt(()=>[r.arrivedState[s],u.value],d,{immediate:!0});return Na(h),{isLoading:p,reset(){Ft(()=>d())}}}function Ia(){var t=Ei().proxy.$root;if(!t._$route){var e=Pi(!0).run(function(){return Mi(Object.assign({},t.$router.currentRoute))});t._$route=e,t.$router.afterEach(function(i){Object.assign(e,i)})}return t._$route}const Ba=Ut({__name:"ActivityAppFeed",props:{filter:{default:"all"}},setup(t){const e=t,i=ne(Rt,"navigationList"),n=Ia(),s=at(!1),a=at(!0),o=at([]),r=at(),l=at();$a(l,async()=>{a.value&&await u()},{distance:100});const p=_t(()=>{const d={};for(const h of o.value){const g=ht(h.datetime).format("LL");d[g]===void 0?d[g]=[h]:d[g].push(h)}return d}),c=_t(()=>i.find(d=>d.id===n.params.filter).name);async function u(){var d,h;if(!s.value)try{const g=(d=r.value)!=null?d:"0";s.value=!0;const _=await We.get(Xi("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}",{filter:e.filter,since:g}));o.value.push(..._.data.ocs.data.map(C=>new Ii(C))),r.value=_.headers["x-activity-last-given"],a.value=!0}catch(g){if(Ji.isAxiosError(g)&&((h=g.response)==null?void 0:h.status)===304){a.value=!1;return}ie.error(g),qe(B("activity","Could not load activities"))}finally{s.value=!1}}return Ai(()=>{u()}),Li(e,()=>{o.value=[],r.value=void 0,u()}),{__sfc:!0,navigationList:i,route:n,props:e,loading:s,hasMoreActivites:a,allActivities:o,lastActivityLoaded:r,container:l,groupedActivities:p,headingTitle:c,loadActivities:u,NcAppContent:ns,NcIconSvgWrapper:He,NcEmptyContent:$i,NcLoadingIcon:Ue,ActivityGroup:xs,appIconSVG:Ss,t:B}}});var Ra=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.NcAppContent,{staticClass:"activity-app"},[e("h1",{staticClass:"activity-app__heading"},[t._v(" "+t._s(i.headingTitle)+" ")]),i.hasMoreActivites&&i.allActivities.length===0?e(i.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:i.t("activity","Loading activities"),description:i.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.NcLoadingIcon,{attrs:{size:36}})]},proxy:!0}],null,!1,3043861167)}):i.allActivities.length===0?e(i.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:i.t("activity","No activity yet"),description:i.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.NcIconSvgWrapper,{attrs:{svg:i.appIconSVG,size:36}})]},proxy:!0}])}):t._e(),e("div",{ref:"container",staticClass:"activity-app__container"},[t._l(i.groupedActivities,function(n,s){return e(i.ActivityGroup,{key:s,attrs:{activities:n}})}),i.hasMoreActivites&&i.allActivities.length>0?e(i.NcLoadingIcon,{staticClass:"activity-app__loading-indicator",attrs:{name:i.t("activity","Loading more activities"),size:64}}):!i.hasMoreActivites&&i.allActivities.length>0?e("div",{staticClass:"activity-app__loading-indicator"},[t._v(" "+t._s(i.t("activity","No more activities."))+" ")]):t._e()],2)],1)},Va=[],Ha=Dt(Ba,Ra,Va,!1,null,"6798da20");const ja=Ha.exports,Fa={name:"NcAppNavigationList"};var Ua=function(){var t=this,e=t._self._c;return e("ul",{staticClass:"app-navigation-list"},[t._t("default")],2)},Wa=[],Za=x(Fa,Ua,Wa,!1,null,"058e6060");const qa=Za.exports;it(Yi);const Ka={name:"MenuIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Ga=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon menu-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},Xa=[],Ja=x(Ka,Ga,Xa,!1,null,null);const Ya=Ja.exports,Qa={name:"MenuOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var to=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon menu-open-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},eo=[],io=x(Qa,to,eo,!1,null,null);const no=io.exports,so={name:"NcAppNavigationToggle",components:{NcButton:lt,MenuIcon:Ya,MenuOpenIcon:no},props:{open:{type:Boolean,required:!0}},emits:["update:open"],computed:{label(){return this.open?T("Close navigation"):T("Open navigation")}},methods:{toggleNavigation(){this.$emit("update:open",!this.open)}}};var ao=function(){var t=this,e=t._self._c;return e("div",{staticClass:"app-navigation-toggle-wrapper"},[e("NcButton",{staticClass:"app-navigation-toggle",attrs:{type:"tertiary","aria-expanded":t.open?"true":"false","aria-label":t.label,title:t.label,"aria-controls":"app-navigation-vue"},on:{click:t.toggleNavigation},scopedSlots:t._u([{key:"icon",fn:function(){return[t.open?e("MenuOpenIcon",{attrs:{size:20}}):e("MenuIcon",{attrs:{size:20}})]},proxy:!0}])})],1)},oo=[],ro=x(so,ao,oo,!1,null,"b6024aba");const lo=ro.exports,co={name:"NcAppNavigation",components:{NcAppNavigationList:qa,NcAppNavigationToggle:lo},inject:{setHasAppNavigation:{default:()=>()=>R.util.warn("NcAppNavigation is not mounted inside NcContent, this is probably an error."),from:"NcContent:setHasAppNavigation"}},props:{ariaLabel:{type:String,default:""},ariaLabelledby:{type:String,default:""}},setup(){return{isMobile:Nt()}},data(){return{open:!this.isMobile,focusTrap:null}},watch:{isMobile(){this.open=!this.isMobile,this.toggleFocusTrap()},open(){this.toggleFocusTrap()}},mounted(){this.setHasAppNavigation(!0),Ui("toggle-navigation",this.toggleNavigationByEventBus),Y("navigation-toggled",{open:this.open}),this.focusTrap=Qi(this.$refs.appNavigationContainer,{allowOutsideClick:!0,fallbackFocus:this.$refs.appNavigationContainer,trapStack:tn(),escapeDeactivates:!1}),this.toggleFocusTrap()},unmounted(){this.setHasAppNavigation(!1),Wi("toggle-navigation",this.toggleNavigationByEventBus),this.focusTrap.deactivate()},methods:{toggleNavigation(t){if(this.open===t){Y("navigation-toggled",{open:this.open});return}this.open=typeof t>"u"?!this.open:t;const e=getComputedStyle(document.body),i=parseInt(e.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{Y("navigation-toggled",{open:this.open})},1.5*i)},toggleNavigationByEventBus({open:t}){this.toggleNavigation(t)},toggleFocusTrap(){this.isMobile&&this.open?this.focusTrap.activate():this.focusTrap.deactivate()},handleEsc(){this.isMobile&&this.toggleNavigation(!1)}}};var uo=function(){var t=this,e=t._self._c;return e("div",{ref:"appNavigationContainer",staticClass:"app-navigation",class:{"app-navigation--close":!t.open}},[e("nav",{staticClass:"app-navigation__content",attrs:{id:"app-navigation-vue","aria-hidden":t.open?"false":"true","aria-label":t.ariaLabel||void 0,"aria-labelledby":t.ariaLabelledby||void 0,inert:!t.open||void 0},on:{keydown:function(i){return!i.type.indexOf("key")&&t._k(i.keyCode,"esc",27,i.key,["Esc","Escape"])?null:t.handleEsc.apply(null,arguments)}}},[e("div",{staticClass:"app-navigation__search"},[t._t("search")],2),e("div",{staticClass:"app-navigation__body",class:{"app-navigation__body--no-list":!t.$scopedSlots.list}},[t._t("default")],2),t.$scopedSlots.list?e("NcAppNavigationList",{staticClass:"app-navigation__list"},[t._t("list")],2):t._e(),t._t("footer")],2),e("NcAppNavigationToggle",{attrs:{open:t.open},on:{"update:open":t.toggleNavigation}})],1)},po=[],ho=x(co,uo,po,!1,null,"e7d078cc");const fo=ho.exports,vo={name:"NcActionButton",components:{CheckIcon:Bi,ChevronRightIcon:en},mixins:[Ri],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{ariaHidden:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>["button","checkbox","radio","reset","submit"].includes(t)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const t={};return this.isInSemanticMenu?(t.role="menuitem",this.type==="radio"?(t.role="menuitemradio",t["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(t.role="menuitemcheckbox",t["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(t["aria-pressed"]=this.modelValue?"true":"false"),t}},methods:{handleClick(t){this.onClick(t),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}};var go=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",class:{"action--disabled":t.disabled},attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("button",t._b({class:["action-button button-vue",{"action-button--active":t.isChecked,focusable:t.isFocusable}],attrs:{"aria-label":t.ariaLabel,disabled:t.disabled,title:t.title,type:t.nativeType},on:{click:t.handleClick}},"button",t.buttonAttributes,!1),[t._t("icon",function(){return[e("span",{staticClass:"action-button__icon",class:[t.isIconUrl?"action-button__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?"url(".concat(t.icon,")"):null},attrs:{"aria-hidden":"true"}})]}),t.name?e("span",{staticClass:"action-button__longtext-wrapper"},[e("strong",{staticClass:"action-button__name"},[t._v(" "+t._s(t.name)+" ")]),e("br"),e("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-button__text"},[t._v(t._s(t.text))]),t.isMenu?e("ChevronRightIcon",{staticClass:"action-button__menu-icon",attrs:{size:20}}):t.isChecked===!0?e("CheckIcon",{staticClass:"action-button__pressed-icon",attrs:{size:20}}):t.isChecked===!1?e("span",{staticClass:"action-button__pressed-icon material-design-icon"}):t._e(),t._e()],2)])},mo=[],yo=x(vo,go,mo,!1,null,"dba65098");const _o=yo.exports,Co={name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(t){var e,i,n;return this.vnodes||((e=this.$slots)==null?void 0:e.default)||((n=(i=this.$scopedSlots)==null?void 0:i.default)==null?void 0:n.call(i))}},bo=null,xo=null;var So=x(Co,bo,xo,!1,null,null);const wo=So.exports,ko={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var zo=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon chevron-up-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},No=[],Do=x(ko,zo,No,!1,null,null);const Eo=Do.exports;it(nn);const Po={name:"NcInputConfirmCancel",components:{NcButton:lt,ArrowRight:je,Close:sn},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},value:{default:"",type:String}},emits:["input","confirm","cancel"],data(){return{labelConfirm:T("Confirm changes"),labelCancel:T("Cancel changes")}},computed:{valueModel:{get(){return this.value},set(t){this.$emit("input",t)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}};var Mo=function(){var t=this,e=t._self._c;return e("div",{staticClass:"app-navigation-input-confirm"},[e("form",{on:{submit:function(i){return i.preventDefault(),t.confirm.apply(null,arguments)},keydown:function(i){return!i.type.indexOf("key")&&t._k(i.keyCode,"esc",27,i.key,["Esc","Escape"])||i.ctrlKey||i.shiftKey||i.altKey||i.metaKey?null:(i.stopPropagation(),i.preventDefault(),t.cancel.apply(null,arguments))},click:function(i){i.stopPropagation(),i.preventDefault()}}},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.valueModel,expression:"valueModel"}],ref:"input",staticClass:"app-navigation-input-confirm__input",attrs:{type:"text",placeholder:t.placeholder},domProps:{value:t.valueModel},on:{input:function(i){i.target.composing||(t.valueModel=i.target.value)}}}),e("NcButton",{attrs:{"native-type":"submit",type:"primary","aria-label":t.labelConfirm},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),t.confirm.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ArrowRight",{attrs:{size:20}})]},proxy:!0}])}),e("NcButton",{attrs:{"native-type":"reset",type:t.primary?"primary":"tertiary","aria-label":t.labelCancel},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),t.cancel.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Close",{attrs:{size:20}})]},proxy:!0}])})],1)])},Ao=[],Lo=x(Po,Mo,Ao,!1,null,"0e795eb7");const Oo=Lo.exports;it(an);const To={name:"NcAppNavigationIconCollapsible",components:{NcButton:lt,ChevronDown:Vi,ChevronUp:Eo},props:{open:{type:Boolean,default:!0}},emits:["click"],computed:{labelButton(){return this.open?T("Collapse menu"):T("Open menu")}},methods:{onClick(t){this.$emit("click",t)}}};var $o=function(){var t=this,e=t._self._c;return e("NcButton",{staticClass:"icon-collapse",class:{"icon-collapse--open":t.open},attrs:{type:"tertiary","aria-label":t.labelButton},on:{click:t.onClick},scopedSlots:t._u([{key:"icon",fn:function(){return[t.open?e("ChevronUp",{attrs:{size:20}}):e("ChevronDown",{attrs:{size:20}})]},proxy:!0}])})},Io=[],Bo=x(To,$o,Io,!1,null,"cadd59ae");const Ro=Bo.exports;it(rn,on);const Vo={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Ho=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon pencil-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},jo=[],Fo=x(Vo,Ho,jo,!1,null,null);const Uo=Fo.exports,Wo={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Zo=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon undo-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},qo=[],Ko=x(Wo,Zo,qo,!1,null,null);const Go=Ko.exports,Xo={name:"NcAppNavigationItem",components:{NcActions:ln,NcActionButton:_o,NcAppNavigationIconCollapsible:Ro,NcInputConfirmCancel:Oo,NcLoadingIcon:Ue,NcVNodes:wo,Pencil:Uo,Undo:Go},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>"app-navigation-item-"+cn(),validator:t=>t.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},exact:{type:Boolean,default:!1},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:""},editPlaceholder:{type:String,default:""},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:"bottom"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:["update:menuOpen","update:open","update:name","click","undo"],setup(){return{isMobile:Nt()}},data(){return{editingValue:"",opened:this.open,editingActive:!1,hasChildren:!1,menuOpenLocalValue:!1,focused:!1,collapsible:!1,actionsBoundariesElement:void 0}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},hasUtils(){return!!(this.$slots.actions||this.$slots.counter||this.editable||this.undo)},editButtonAriaLabel(){return this.editLabel?this.editLabel:T("Edit item")},undoButtonAriaLabel(){return T("Undo changes")}},watch:{open(t){this.opened=t}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},created(){this.updateSlotInfo()},beforeUpdate(){this.updateSlotInfo()},methods:{onMenuToggle(t){this.$emit("update:menuOpen",t),this.menuOpenLocalValue=t},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(t,e,i){this.$emit("click",t),!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&i&&(e==null||e(t),t.preventDefault())},handleEdit(){this.editingValue=this.name,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick(()=>{this.$refs.editingInput.focusInput()})},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit("update:name",this.editingValue),this.editingValue="",this.editingActive=!1},handleUndo(){this.$emit("undo")},updateSlotInfo(){this.hasChildren=!!this.$slots.default,this.collapsible=this.allowCollapse&&!!this.$slots.default},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(t){this.$refs.actions&&(this.focused?(t.preventDefault(),this.$refs.actions.$refs.menuButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.menuButton.$el.blur())},isExternal(t){return t&&t.match(/[a-z]+:\/\//i)}}};var Jo=function(){var t=this,e=t._self._c;return e("li",{staticClass:"app-navigation-entry-wrapper",class:{"app-navigation-entry--opened":t.opened,"app-navigation-entry--pinned":t.pinned,"app-navigation-entry--collapsible":t.collapsible},attrs:{id:t.id}},[e(t.isRouterLink?"router-link":"NcVNodes",{tag:"component",attrs:{custom:!!t.isRouterLink,to:t.to,exact:t.isRouterLink?t.exact:null},scopedSlots:t._u([{key:"default",fn:function({href:i,navigate:n,isActive:s}){return[e("div",{staticClass:"app-navigation-entry",class:{"app-navigation-entry--editing":t.editingActive,"app-navigation-entry--deleted":t.undo,active:s&&t.to||t.active}},[t.undo?t._e():e("a",{staticClass:"app-navigation-entry-link",attrs:{"aria-current":t.active||s&&t.to?"page":void 0,"aria-description":t.ariaDescription,"aria-expanded":t.hasChildren?t.opened.toString():void 0,href:t.href||i||"#",target:t.isExternal(t.href)?"_blank":void 0,title:t.title||t.name},on:{blur:t.handleBlur,click:function(a){return t.onClick(a,n,i)},focus:t.handleFocus,keydown:function(a){return!a.type.indexOf("key")&&t._k(a.keyCode,"tab",9,a.key,"Tab")||a.ctrlKey||a.shiftKey||a.altKey||a.metaKey?null:t.handleTab.apply(null,arguments)}}},[e("div",{staticClass:"app-navigation-entry-icon",class:{[t.icon]:t.icon}},[t.loading?e("NcLoadingIcon"):t._t("icon")],2),t.editingActive?t._e():e("span",{staticClass:"app-navigation-entry__name"},[t._v(" "+t._s(t.name)+" ")]),t.editingActive?e("div",{staticClass:"editingContainer"},[e("NcInputConfirmCancel",{ref:"editingInput",attrs:{placeholder:t.editPlaceholder!==""?t.editPlaceholder:t.name,primary:s&&t.to||t.active},on:{cancel:t.cancelEditing,confirm:t.handleEditingDone},model:{value:t.editingValue,callback:function(a){t.editingValue=a},expression:"editingValue"}})],1):t._e()]),t.undo?e("div",{staticClass:"app-navigation-entry__deleted"},[e("div",{staticClass:"app-navigation-entry__deleted-description"},[t._v(" "+t._s(t.name)+" ")])]):t._e(),t.hasUtils&&!t.editingActive?e("div",{staticClass:"app-navigation-entry__utils",class:{"app-navigation-entry__utils--display-actions":t.forceDisplayActions||t.menuOpenLocalValue||t.menuOpen}},[t.$slots.counter?e("div",{staticClass:"app-navigation-entry__counter-wrapper"},[t._t("counter")],2):t._e(),t.$slots.actions||t.editable&&!t.editingActive||t.undo?e("NcActions",{ref:"actions",staticClass:"app-navigation-entry__actions",attrs:{inline:t.inlineActions,container:"#app-navigation-vue","boundaries-element":t.actionsBoundariesElement,placement:t.menuPlacement,open:t.menuOpen,type:s&&t.to||t.active?"primary":null,"force-menu":t.forceMenu,"default-icon":t.menuIcon},on:{"update:open":t.onMenuToggle},scopedSlots:t._u([{key:"icon",fn:function(){return[t._t("menu-icon")]},proxy:!0}],null,!0)},[t.editable&&!t.editingActive?e("NcActionButton",{attrs:{"aria-label":t.editButtonAriaLabel},on:{click:t.handleEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.editLabel)+" ")]):t._e(),t.undo?e("NcActionButton",{attrs:{"aria-label":t.undoButtonAriaLabel},on:{click:t.handleUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Undo",{attrs:{size:20}})]},proxy:!0}],null,!0)}):t._e(),t._t("actions")],2):t._e()],1):t._e(),t.collapsible?e("NcAppNavigationIconCollapsible",{attrs:{open:t.opened},on:{click:function(a){return a.preventDefault(),a.stopPropagation(),t.toggleCollapse.apply(null,arguments)}}}):t._e(),t._t("extra")],2)]}}],null,!0)}),t.canHaveChildren&&t.hasChildren?e("ul",{staticClass:"app-navigation-entry__children"},[t._t("default")],2):t._e()],1)},Yo=[],Qo=x(Xo,Jo,Yo,!1,null,"97fce21a");const tr=Qo.exports,er={props:{excludeClickOutsideSelectors:{type:[String,Array],default:()=>[]}},computed:{clickOutsideOptions(){return{ignore:Array.isArray(this.excludeClickOutsideSelectors)?this.excludeClickOutsideSelectors:[this.excludeClickOutsideSelectors]}}}};it(un);const ir={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var nr=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon cog-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},sr=[],ar=x(ir,nr,sr,!1,null,null);const or=ar.exports,rr={directives:{ClickOutside:Hi},components:{Cog:or},mixins:[er],props:{name:{type:String,required:!1,default:T("Settings")}},data(){return{open:!1}},computed:{clickOutsideConfig(){return[this.closeMenu,this.clickOutsideOptions]}},methods:{toggleMenu(){this.open=!this.open},closeMenu(){this.open=!1}}};var lr=function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.clickOutsideConfig,expression:"clickOutsideConfig"}],class:{open:t.open},attrs:{id:"app-settings"}},[e("div",{attrs:{id:"app-settings__header"}},[e("button",{staticClass:"settings-button",attrs:{type:"button","aria-expanded":t.open?"true":"false","aria-controls":"app-settings__content"},on:{click:t.toggleMenu}},[e("Cog",{staticClass:"settings-button__icon",attrs:{size:20}}),e("span",{staticClass:"settings-button__label"},[t._v(t._s(t.name))])],1)]),e("Transition",{attrs:{name:"slide-up"}},[e("div",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],attrs:{id:"app-settings__content"}},[t._t("default")],2)])],1)},cr=[],ur=x(rr,lr,cr,!1,null,"981e215c");const pr=ur.exports,dr={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var hr=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon content-copy-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},fr=[],vr=Dt(dr,hr,fr,!1,null,null);const gr=vr.exports,mr=Ut({__name:"ActivityAppNavigation",setup(t){const{rssLink:e,personalSettingsLink:i}=ne(Rt,"settings"),n=ne(Rt,"navigationList"),s=at(e),a=_t(()=>!!s.value);async function o(){try{const{data:l}=await We.post(Ze("/apps/activity/settings/feed"),{enable:!a.value});s.value=l.data.rsslink}catch(l){qe(B("activity","Could not enable RSS link")),ie.error(l)}}async function r(){try{window.navigator.clipboard.writeText(s.value),dn(B("activity","RSS link copied to clipboard"))}catch(l){ie.debug(l),window.prompt(B("activity","Could not copy the RSS link, please copy manually:"),s.value)}}return{__sfc:!0,initialRSSLink:e,personalSettingsLink:i,navigationList:n,rssLink:s,hasRSSLink:a,toggleRSSLink:o,copyRSSLink:r,t:B,NcAppNavigation:fo,NcAppNavigationItem:tr,NcAppNavigationSettings:pr,NcButton:lt,NcCheckboxRadioSwitch:pn,NcInputField:ji,IconContentCopy:gr}}});var yr=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.NcAppNavigation,{attrs:{"aria-label":i.t("activity","Activity")},scopedSlots:t._u([{key:"list",fn:function(){return t._l(i.navigationList,function(n){return e(i.NcAppNavigationItem,{key:n.id,attrs:{"data-navigation":n.id,to:n.id,name:n.name},scopedSlots:t._u([n.icon?{key:"icon",fn:function(){return[e("img",{staticClass:"navigation-icon",attrs:{alt:"",src:n.icon,role:"presentation"}})]},proxy:!0}:null],null,!0)})})},proxy:!0},{key:"footer",fn:function(){return[e(i.NcAppNavigationSettings,{attrs:{name:i.t("activity","Activity settings")}},[e(i.NcCheckboxRadioSwitch,{attrs:{type:"switch",checked:i.hasRSSLink},on:{"update:checked":i.toggleRSSLink}},[t._v(" "+t._s(i.t("activity","Enable RSS feed"))+" ")]),i.hasRSSLink?e(i.NcInputField,{attrs:{label:i.t("activity","RSS feed"),"show-trailing-button":!0,"trailing-button-label":i.t("activity","Copy RSS feed link"),readonly:"readonly"},on:{"trailing-button-click":i.copyRSSLink},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e(i.IconContentCopy,{attrs:{size:20}})]},proxy:!0}],null,!1,4025534811),model:{value:i.rssLink,callback:function(n){i.rssLink=n},expression:"rssLink"}}):t._e(),e(i.NcButton,{staticClass:"settings-link",attrs:{href:i.personalSettingsLink,title:i.t("activity","Personal notification settings"),type:"tertiary"}},[t._v(" "+t._s(i.t("activity","Personal notification settings"))+" ")])],1)]},proxy:!0}])})},_r=[],Cr=Dt(mr,yr,_r,!1,null,null);const br=Cr.exports,xr=[{path:"/",name:"root",redirect:{path:"/all"}},{path:"/:filter?",components:{default:ja,navigation:br},props:{default:!0}}];R.prototype.t=B,R.prototype.n=Oi,R.use(Fe);const Sr=new Fe({mode:"history",base:Ze("/apps/activity"),linkActiveClass:"active",routes:xr});new R({el:"#content",name:"ActivityRoot",router:Sr,render:t=>t(En)}); +import{V as R,d as Ut,c as _t,t as B,g as ze,a as Ei,e as Pi,s as Mi,r as at,o as Ai,w as Li,b as Oi}from"./index-CpOKyUsr.chunk.mjs";import{N as He,u as Nt,A as je,m as ht,a as Ti,b as $i,c as Ii,C as Bi,d as Ri,e as Vi,v as Hi,f as ji,V as Fe}from"./Activity-Bii4XQFb.chunk.mjs";import{e as Y,g as Fi,l as ie,s as Ui,u as Wi}from"./logger-DdfSSqJ9.chunk.mjs";import{r as it,t as Zi,n as x,N as lt,a as T,b as Dt,c as qi,u as Ki,V as Gi,l as ne,d as Ue,e as We,v as Xi,f as Ji,g as Yi,h as Qi,i as tn,C as en,j as nn,k as sn,m as an,o as on,p as rn,q as ln,G as cn,s as un,w as pn,_ as Ze}from"./NcCheckboxRadioSwitch-CvMEEI9x-CRJk_h3R.chunk.mjs";import{s as qe,a as dn}from"./NcNoteCard-CImn6F9p-CWGSZ4YZ.chunk.mjs";import"./_commonjsHelpers-D9DevfhH.chunk.mjs";const Rt="activity";let hn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",fn=(t=21)=>{let e="",i=t|0;for(;i--;)e+=hn[Math.random()*64|0];return e};function Ot(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ot=function(e){return typeof e}:Ot=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ot(t)}var Ke={selector:"vue-portal-target-".concat(fn())},vn=function(t){return Ke.selector=t},Jt=typeof window<"u"&&(typeof document>"u"?"undefined":Ot(document))!==void 0,gn=R.extend({abstract:!0,name:"PortalOutlet",props:["nodes","tag"],data:function(t){return{updatedNodes:t.nodes}},render:function(t){var e=this.updatedNodes&&this.updatedNodes();return e?e.length===1&&!e[0].text?e:t(this.tag||"DIV",e):t()},destroyed:function(){var t=this.$el;t&&t.parentNode.removeChild(t)}}),Ge=R.extend({name:"VueSimplePortal",props:{disabled:{type:Boolean},prepend:{type:Boolean},selector:{type:String,default:function(){return"#".concat(Ke.selector)}},tag:{type:String,default:"DIV"}},render:function(t){if(this.disabled){var e=this.$scopedSlots&&this.$scopedSlots.default();return e?e.length<2&&!e[0].text?e:t(this.tag,e):t()}return t()},created:function(){this.getTargetEl()||this.insertTargetEl()},updated:function(){var t=this;this.$nextTick(function(){!t.disabled&&t.slotFn!==t.$scopedSlots.default&&(t.container.updatedNodes=t.$scopedSlots.default),t.slotFn=t.$scopedSlots.default})},beforeDestroy:function(){this.unmount()},watch:{disabled:{immediate:!0,handler:function(t){t?this.unmount():this.$nextTick(this.mount)}}},methods:{getTargetEl:function(){if(Jt)return document.querySelector(this.selector)},insertTargetEl:function(){if(Jt){var t=document.querySelector("body"),e=document.createElement(this.tag);e.id=this.selector.substring(1),t.appendChild(e)}},mount:function(){if(Jt){var t=this.getTargetEl(),e=document.createElement("DIV");this.prepend&&t.firstChild?t.insertBefore(e,t.firstChild):t.appendChild(e),this.container=new gn({el:e,parent:this,propsData:{tag:this.tag,nodes:this.$scopedSlots.default}})}},unmount:function(){this.container&&(this.container.$destroy(),delete this.container)}}});function mn(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t.component(e.name||"portal",Ge),e.defaultSelector&&vn(e.defaultSelector)}typeof window<"u"&&window.Vue&&window.Vue===R&&R.use(mn),it(Zi);const yn='\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',_n='\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',Cn={name:"NcContent",components:{NcButton:lt,NcIconSvgWrapper:He,Teleport:Ge},provide(){return{"NcContent:setHasAppNavigation":this.setAppNavigation,"NcContent:selector":"#content-vue"}},props:{appName:{type:String,required:!0}},setup(){return{isMobile:Nt()}},data(){return{hasAppNavigation:!1,currentFocus:""}},computed:{currentImage(){return this.currentFocus==="navigation"?_n:yn}},beforeMount(){const t=document.getElementById("skip-actions");t&&(t.innerHTML="",t.classList.add("vue-skip-actions"))},methods:{t:T,openAppNavigation(){Y("toggle-navigation",{open:!0}),this.$nextTick(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})},setAppNavigation(t){this.hasAppNavigation=t,this.currentFocus===""&&(this.currentFocus="navigation")}}};var bn=function(){var t=this,e=t._self._c;return e("div",{class:["content","app-".concat(t.appName.toLowerCase())],attrs:{id:"content-vue"}},[e("Teleport",{attrs:{selector:"#skip-actions"}},[e("div",{staticClass:"vue-skip-actions__container"},[e("div",{staticClass:"vue-skip-actions__headline"},[t._v(" "+t._s(t.t("Keyboard navigation help"))+" ")]),e("div",{staticClass:"vue-skip-actions__buttons"},[e("NcButton",{directives:[{name:"show",rawName:"v-show",value:t.hasAppNavigation,expression:"hasAppNavigation"}],attrs:{type:"tertiary",href:"#app-navigation-vue"},on:{click:function(i){return i.preventDefault(),t.openAppNavigation.apply(null,arguments)},focusin:function(i){t.currentFocus="navigation"},mouseover:function(i){t.currentFocus="navigation"}}},[t._v(" "+t._s(t.t("Skip to app navigation"))+" ")]),e("NcButton",{attrs:{type:"tertiary",href:"#app-content-vue"},on:{focusin:function(i){t.currentFocus="content"},mouseover:function(i){t.currentFocus="content"}}},[t._v(" "+t._s(t.t("Skip to main content"))+" ")])],1),e("NcIconSvgWrapper",{directives:[{name:"show",rawName:"v-show",value:!t.isMobile,expression:"!isMobile"}],staticClass:"vue-skip-actions__image",attrs:{svg:t.currentImage,size:"auto"}})],1),t._v("  ")]),t._t("default")],2)},xn=[],Sn=x(Cn,bn,xn,!1,null,"d8f0539f");const wn=Sn.exports,kn=Ut({__name:"ActivityApp",setup(t){return{__sfc:!0,NcContent:wn}}});var zn=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.NcContent,{attrs:{"app-name":"activity"}},[e("router-view",{attrs:{name:"navigation"}}),e("router-view")],1)},Nn=[],Dn=Dt(kn,zn,Nn,!1,null,null);const En=Dn.exports;var Pn=Object.defineProperty,Mn=Object.defineProperties,An=Object.getOwnPropertyDescriptors,Vt=Object.getOwnPropertySymbols,Xe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,Ne=(t,e,i)=>e in t?Pn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ln=(t,e)=>{for(var i in e||(e={}))Xe.call(e,i)&&Ne(t,i,e[i]);if(Vt)for(var i of Vt(e))Je.call(e,i)&&Ne(t,i,e[i]);return t},On=(t,e)=>Mn(t,An(e)),Tn=(t,e)=>{var i={};for(var n in t)Xe.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(t!=null&&Vt)for(var n of Vt(t))e.indexOf(n)<0&&Je.call(t,n)&&(i[n]=t[n]);return i};function Ye(t,e,i,n,s,a,o,r){var l=typeof t=="function"?t.options:t;e&&(l.render=e,l.staticRenderFns=i,l._compiled=!0);var p;if(s&&(p=s),p)if(l.functional){l._injectStyles=p;var c=l.render;l.render=function(d,h){return p.call(h),c(d,h)}}else{var u=l.beforeCreate;l.beforeCreate=u?[].concat(u,p):[p]}return{exports:t,options:l}}const $n={name:"splitpanes",props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce((t,e)=>(t[e.id]=e)&&t,{})}},methods:{updatePaneComponents(){this.panes.forEach(t=>{t.update&&t.update({[this.horizontal?"height":"width"]:"".concat(this.indexedPanes[t.id].size,"%")})})},bindEvents(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown(t,e){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=e},onMouseMove(t){this.touch.mouseDown&&(t.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(t)),this.$emit("resize",this.panes.map(e=>({min:e.min,max:e.max,size:e.size}))))},onMouseUp(){this.touch.dragging&&this.$emit("resized",this.panes.map(t=>({min:t.min,max:t.max,size:t.size}))),this.touch.mouseDown=!1,setTimeout(()=>{this.touch.dragging=!1,this.unbindEvents()},100)},onSplitterClick(t,e){"ontouchstart"in window&&(t.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===e?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(t,e),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=e,this.splitterTaps.timeoutId=setTimeout(()=>{this.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[e])},onSplitterDblClick(t,e){let i=0;this.panes=this.panes.map((n,s)=>(n.size=s===e?n.max:n.min,s!==e&&(i+=n.min),n)),this.panes[e].size-=i,this.$emit("pane-maximize",this.panes[e])},onPaneClick(t,e){this.$emit("pane-click",this.indexedPanes[e])},getCurrentMouseDrag(t){const e=this.container.getBoundingClientRect(),{clientX:i,clientY:n}="ontouchstart"in window&&t.touches?t.touches[0]:t;return{x:i-e.left,y:n-e.top}},getCurrentDragPercentage(t){t=t[this.horizontal?"y":"x"];const e=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(t=e-t),t*100/e},calculatePanesSize(t){const e=this.touch.activeSplitter;let i={prevPanesSize:this.sumPrevPanesSize(e),nextPanesSize:this.sumNextPanesSize(e),prevReachedMinPanes:0,nextReachedMinPanes:0};const n=0+(this.pushOtherPanes?0:i.prevPanesSize),s=100-(this.pushOtherPanes?0:i.nextPanesSize),a=Math.max(Math.min(this.getCurrentDragPercentage(t),s),n);let o=[e,e+1],r=this.panes[o[0]]||null,l=this.panes[o[1]]||null;const p=r.max<100&&a>=r.max+i.prevPanesSize,c=l.max<100&&a<=100-(l.max+this.sumNextPanesSize(e+1));if(p||c){p?(r.size=r.max,l.size=Math.max(100-r.max-i.prevPanesSize-i.nextPanesSize,0)):(r.size=Math.max(100-l.max-i.prevPanesSize-this.sumNextPanesSize(e+1),0),l.size=l.max);return}if(this.pushOtherPanes){const u=this.doPushOtherPanes(i,a);if(!u)return;({sums:i,panesToResize:o}=u),r=this.panes[o[0]]||null,l=this.panes[o[1]]||null}r!==null&&(r.size=Math.min(Math.max(a-i.prevPanesSize-i.prevReachedMinPanes,r.min),r.max)),l!==null&&(l.size=Math.min(Math.max(100-a-i.nextPanesSize-i.nextReachedMinPanes,l.min),l.max))},doPushOtherPanes(t,e){const i=this.touch.activeSplitter,n=[i,i+1];return e{a>n[0]&&a<=i&&(s.size=s.min,t.prevReachedMinPanes+=s.min)}),t.prevPanesSize=this.sumPrevPanesSize(n[0]),n[0]===void 0)?(t.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach((s,a)=>{a>0&&a<=i&&(s.size=s.min,t.prevReachedMinPanes+=s.min)}),this.panes[n[1]].size=100-t.prevReachedMinPanes-this.panes[0].min-t.prevPanesSize-t.nextPanesSize,null):e>100-t.nextPanesSize-this.panes[n[1]].min&&(n[1]=this.findNextExpandedPane(i).index,t.nextReachedMinPanes=0,n[1]>i+1&&this.panes.forEach((s,a)=>{a>i&&a{a=i+1&&(s.size=s.min,t.nextReachedMinPanes+=s.min)}),this.panes[n[0]].size=100-t.prevPanesSize-t.nextReachedMinPanes-this.panes[this.panesCount-1].min-t.nextPanesSize,null):{sums:t,panesToResize:n}},sumPrevPanesSize(t){return this.panes.reduce((e,i,n)=>e+(ne+(n>t+1?i.size:0),0)},findPrevExpandedPane(t){return[...this.panes].reverse().find(e=>e.indexe.min)||{}},findNextExpandedPane(t){return this.panes.find(e=>e.index>t+1&&e.size>e.min)||{}},checkSplitpanesNodes(){Array.from(this.container.children).forEach(t=>{const e=t.classList.contains("splitpanes__pane"),i=t.classList.contains("splitpanes__splitter");if(!e&&!i){t.parentNode.removeChild(t),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.");return}})},addSplitter(t,e,i=!1){const n=t-1,s=document.createElement("div");s.classList.add("splitpanes__splitter"),i||(s.onmousedown=a=>this.onMouseDown(a,n),typeof window<"u"&&"ontouchstart"in window&&(s.ontouchstart=a=>this.onMouseDown(a,n)),s.onclick=a=>this.onSplitterClick(a,n+1)),this.dblClickSplitter&&(s.ondblclick=a=>this.onSplitterDblClick(a,n+1)),e.parentNode.insertBefore(s,e)},removeSplitter(t){t.onmousedown=void 0,t.onclick=void 0,t.ondblclick=void 0,t.parentNode.removeChild(t)},redoSplitters(){const t=Array.from(this.container.children);t.forEach(i=>{i.className.includes("splitpanes__splitter")&&this.removeSplitter(i)});let e=0;t.forEach(i=>{i.className.includes("splitpanes__pane")&&(!e&&this.firstSplitter?this.addSplitter(e,i,!0):e&&this.addSplitter(e,i),e++)})},requestUpdate(t){var e=t,{target:i}=e,n=Tn(e,["target"]);const s=this.indexedPanes[i._uid];Object.entries(n).forEach(([a,o])=>s[a]=o)},onPaneAdd(t){let e=-1;Array.from(t.$el.parentNode.children).some(s=>(s.className.includes("splitpanes__pane")&&e++,s===t.$el));const i=parseFloat(t.minSize),n=parseFloat(t.maxSize);this.panes.splice(e,0,{id:t._uid,index:e,min:isNaN(i)?0:i,max:isNaN(n)?100:n,size:t.size===null?null:parseFloat(t.size),givenSize:t.size,update:t.update}),this.panes.forEach((s,a)=>s.index=a),this.ready&&this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[e]}),this.$emit("pane-add",{index:e,panes:this.panes.map(s=>({min:s.min,max:s.max,size:s.size}))})})},onPaneRemove(t){const e=this.panes.findIndex(n=>n.id===t._uid),i=this.panes.splice(e,1)[0];this.panes.forEach((n,s)=>n.index=s),this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:On(Ln({},i),{index:e})}),this.$emit("pane-remove",{removed:i,panes:this.panes.map(n=>({min:n.min,max:n.max,size:n.size}))})})},resetPaneSizes(t={}){!t.addedPane&&!t.removedPane?this.initialPanesSizing():this.panes.some(e=>e.givenSize!==null||e.min||e.max<100)?this.equalizeAfterAddOrRemove(t):this.equalize(),this.ready&&this.$emit("resized",this.panes.map(e=>({min:e.min,max:e.max,size:e.size})))},equalize(){const t=100/this.panesCount;let e=0,i=[],n=[];this.panes.forEach(s=>{s.size=Math.max(Math.min(t,s.max),s.min),e-=s.size,s.size>=s.max&&i.push(s.id),s.size<=s.min&&n.push(s.id)}),e>.1&&this.readjustSizes(e,i,n)},initialPanesSizing(){100/this.panesCount;let t=100,e=[],i=[],n=0;this.panes.forEach(a=>{t-=a.size,a.size!==null&&n++,a.size>=a.max&&e.push(a.id),a.size<=a.min&&i.push(a.id)});let s=100;t>.1&&(this.panes.forEach(a=>{a.size===null&&(a.size=Math.max(Math.min(t/(this.panesCount-n),a.max),a.min)),s-=a.size}),s>.1&&this.readjustSizes(t,e,i))},equalizeAfterAddOrRemove({addedPane:t,removedPane:e}={}){let i=100/this.panesCount,n=0,s=[],a=[];t&&t.givenSize!==null&&(i=(100-t.givenSize)/(this.panesCount-1)),this.panes.forEach(o=>{n-=o.size,o.size>=o.max&&s.push(o.id),o.size<=o.min&&a.push(o.id)}),!(Math.abs(n)<.1)&&(this.panes.forEach(o=>{t&&t.givenSize!==null&&t.id===o.id||(o.size=Math.max(Math.min(i,o.max),o.min)),n-=o.size,o.size>=o.max&&s.push(o.id),o.size<=o.min&&a.push(o.id)}),n>.1&&this.readjustSizes(n,s,a))},readjustSizes(t,e,i){let n;t>0?n=t/(this.panesCount-e.length):n=t/(this.panesCount-i.length),this.panes.forEach((s,a)=>{if(t>0&&!e.includes(s.id)){const o=Math.max(Math.min(s.size+n,s.max),s.min),r=o-s.size;t-=r,s.size=o}else if(!i.includes(s.id)){const o=Math.max(Math.min(s.size+n,s.max),s.min),r=o-s.size;t-=r,s.size=o}s.update({[this.horizontal?"height":"width"]:"".concat(this.indexedPanes[s.id].size,"%")})}),Math.abs(t)>.1&&this.$nextTick(()=>{this.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(t){[...this.container.querySelectorAll(".splitpanes__splitter")].forEach((e,i)=>{e.ondblclick=t?n=>this.onSplitterDblClick(n,i):void 0})}},beforeDestroy(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render(t){return t("div",{ref:"container",class:["splitpanes","splitpanes--".concat(this.horizontal?"horizontal":"vertical"),{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default)}};let In,Bn;const De={};var Rn=Ye($n,In,Bn,!1,Vn);function Vn(t){for(let e in De)this[e]=De[e]}var Hn=function(){return Rn.exports}(),jn=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"splitpanes__pane",style:t.style,on:{click:function(n){return t.onPaneClick(n,t._uid)}}},[t._t("default")],2)},Fn=[];const Un={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeDestroy(){this.onPaneRemove(this)},methods:{update(t){this.style=t}},computed:{sizeNumber(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(t){this.requestUpdate({target:this,size:t})},minSizeNumber(t){this.requestUpdate({target:this,min:t})},maxSizeNumber(t){this.requestUpdate({target:this,max:t})}}},Ee={};var Wn=Ye(Un,jn,Fn,!1,Zn);function Zn(t){for(let e in Ee)this[e]=Ee[e]}var qn=function(){return Wn.exports}();it(qi);const Kn={name:"NcAppDetailsToggle",directives:{tooltip:Gi},components:{NcButton:lt,ArrowRight:je},setup(){return{isMobile:Nt()}},computed:{title(){return T("Go back to the list")}},watch:{isMobile:{immediate:!0,handler(){this.toggleAppNavigationButton(this.isMobile)}}},beforeDestroy(){this.isMobile&&this.toggleAppNavigationButton(!1)},methods:{toggleAppNavigationButton(t=!0){const e=document.querySelector(".app-navigation .app-navigation-toggle");e&&(e.style.display=t?"none":null,t===!0&&Y("toggle-navigation",{open:!1}))}}};var Gn=function(){var t=this,e=t._self._c;return e("NcButton",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.title,expression:"title"}],staticClass:"app-details-toggle",class:{"app-details-toggle--mobile":t.isMobile},attrs:{type:"tertiary","aria-label":t.title},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ArrowRight",{attrs:{size:20}})]},proxy:!0}])})},Xn=[],Jn=x(Kn,Gn,Xn,!1,null,"7692fc78");const Yn=Jn.exports,Pe=Fi("nextcloud").persist().build(),Qn={name:"NcAppContent",components:{NcAppDetailsToggle:Yn,Pane:qn,Splitpanes:Hn},props:{allowSwipeNavigation:{type:Boolean,default:!0},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},pageHeading:{type:String,default:null},layout:{type:String,default:"vertical-split",validator(t){return["no-split","vertical-split","horizontal-split"].includes(t)}}},emits:["update:showDetails","resize:list"],setup(){return{isMobile:Nt()}},data(){return{contentHeight:0,hasList:!1,hasContent:!1,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return"pane-list-size-".concat(this.paneConfigKey);try{return"pane-list-size-".concat(Rt)}catch{return console.info("[INFO] AppContent:","falling back to global nextcloud pane config"),"pane-list-size-nextcloud"}},detailsPaneSize(){return this.listPaneSize?100-this.listPaneSize:this.paneDefaults.details.size},paneDefaults(){return{list:{size:this.listSize,min:this.listMinWidth,max:this.listMaxWidth},details:{size:100-this.listSize,min:100-this.listMaxWidth,max:100-this.listMinWidth}}}},updated(){this.checkSlots()},mounted(){this.allowSwipeNavigation&&(this.swiping=Ki(this.$el,{onSwipeEnd:this.handleSwipe})),this.checkSlots(),this.restorePaneConfig()},methods:{handleSwipe(t,e){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&e==="right"?Y("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&e==="left"&&Y("toggle-navigation",{open:!1}))},handlePaneResize(t){const e=parseInt(t[0].size,10);Pe.setItem(this.paneConfigID,JSON.stringify(e)),this.listPaneSize=e,this.$emit("resize:list",{size:e}),console.debug("AppContent pane config",e)},checkSlots(){this.hasList=!!this.$scopedSlots.list,this.hasContent=!!this.$scopedSlots.default},restorePaneConfig(){const t=parseInt(Pe.getItem(this.paneConfigID),10);if(!isNaN(t)&&t!==this.listPaneSize)return console.debug("AppContent pane config",t),this.listPaneSize=t,t},hideDetails(){this.$emit("update:showDetails",!1)}}};var ts=function(){var t=this,e=t._self._c;return e("main",{staticClass:"app-content no-snapper",class:{"app-content--has-list":t.hasList},attrs:{id:"app-content-vue"}},[t.pageHeading?e("h1",{staticClass:"hidden-visually"},[t._v(" "+t._s(t.pageHeading)+" ")]):t._e(),t.hasList?[t.isMobile||t.layout==="no-split"?e("div",{staticClass:"app-content-wrapper app-content-wrapper--no-split",class:{"app-content-wrapper--show-details":t.showDetails,"app-content-wrapper--show-list":!t.showDetails,"app-content-wrapper--mobile":t.isMobile}},[t.showDetails?e("NcAppDetailsToggle",{nativeOn:{click:function(i){return i.stopPropagation(),i.preventDefault(),t.hideDetails.apply(null,arguments)}}}):t._e(),t.showDetails?t._t("default"):t._t("list")],2):t.layout==="vertical-split"||t.layout==="horizontal-split"?e("div",{staticClass:"app-content-wrapper"},[e("Splitpanes",{staticClass:"default-theme",class:{"splitpanes--horizontal":t.layout==="horizontal-split","splitpanes--vertical":t.layout==="vertical-split"},attrs:{horizontal:t.layout==="horizontal-split"},on:{resized:t.handlePaneResize}},[e("Pane",{staticClass:"splitpanes__pane-list",attrs:{size:t.listPaneSize||t.paneDefaults.list.size,"min-size":t.paneDefaults.list.min,"max-size":t.paneDefaults.list.max}},[t._t("list")],2),e("Pane",{staticClass:"splitpanes__pane-details",attrs:{size:t.detailsPaneSize,"min-size":t.paneDefaults.details.min,"max-size":t.paneDefaults.details.max}},[t._t("default")],2)],1)],1):t._e()]:t._e(),t.hasList?t._e():t._t("default")],2)},es=[],is=x(Qn,ts,es,!1,null,"de6986e3");const ns=is.exports;var Wt=Symbol(),Ct=Symbol(),Me=Symbol(),Ae=Symbol(),de=function(t){return"frag"in t},ss={get:function(){return this[Ct]||this.parentElement},configurable:!0},bt=function(t,e){Ct in t||(t[Ct]=e,Object.defineProperty(t,"parentNode",ss))},as={get:function(){var t=this.parentNode.childNodes,e=t.indexOf(this);return e>-1&&t[e+1]||null}},Tt=function(t){Me in t||(t[Me]=!0,Object.defineProperty(t,"nextSibling",as))},os=function(t,e){for(;t.parentNode!==e;){var i=t,n=i.parentNode;n&&(t=n)}return t},Yt,Qe=function(t){if(!Yt){var e=Object.getOwnPropertyDescriptor(Node.prototype,"childNodes");Yt=e.get}var i=Yt.apply(t),n=Array.from(i).map(function(s){return os(s,t)});return n.filter(function(s,a){return s!==n[a-1]})},rs={get:function(){return this.frag||Qe(this)}},ls={get:function(){return this.childNodes[0]||null}};function cs(){return this.childNodes.length>0}var Le=function(t){Ae in t||(t[Ae]=!0,Object.defineProperties(t,{childNodes:rs,firstChild:ls}),t.hasChildNodes=cs)};function us(){var t;(t=this.frag[0]).before.apply(t,arguments)}function ps(){var t=this.frag,e=t.splice(0,t.length);e.forEach(function(i){i.remove()})}var ds=function t(e){var i;return(i=Array.prototype).concat.apply(i,e.map(function(n){return de(n)?t(n.frag):n}))},hs=function(t,e){var i=t[Wt];e.before(i),bt(i,t),t.frag.unshift(i)};function Oe(t){if(de(this)){var e=this.frag.indexOf(t);if(e>-1){var i=this.frag.splice(e,1),n=i[0];this.frag.length===0&&hs(this,n),t.remove()}}else{var s=Qe(this),a=s.indexOf(t);a>-1&&t.remove()}return t}function Te(t,e){var i=this,n=t.frag||[t];if(de(this)){if(t[Ct]===this&&t.parentElement)return t;var s=this.frag;if(e){var a=s.indexOf(e);a>-1&&(s.splice.apply(s,[a,0].concat(n)),e.before.apply(e,n))}else{var o=s[s.length-1];s.push.apply(s,n),o.after.apply(o,n)}ti(this)}else e?this.childNodes.includes(e)&&e.before.apply(e,n):this.append.apply(this,n);n.forEach(function(l){bt(l,i)});var r=n[n.length-1];return Tt(r),t}function fs(t){if(t[Ct]===this&&t.parentElement)return t;var e=this.frag,i=e[e.length-1];return i.after(t),bt(t,this),ti(this),e.push(t),t}var ti=function(t){var e=t[Wt];t.frag[0]===e&&(t.frag.shift(),e.remove())},vs={set:function(t){var e=this;if(this.frag[0]!==this[Wt]&&this.frag.slice().forEach(function(n){return e.removeChild(n)}),t){var i=document.createElement("div");i.innerHTML=t,Array.from(i.childNodes).forEach(function(n){e.appendChild(n)})}},get:function(){return""}},gs={inserted:function(t){var e=t.parentNode,i=t.nextSibling,n=t.previousSibling,s=Array.from(t.childNodes),a=document.createComment("");s.length===0&&s.push(a),t.frag=s,t[Wt]=a;var o=document.createDocumentFragment();o.append.apply(o,ds(s)),t.replaceWith(o),s.forEach(function(r){bt(r,t),Tt(r)}),Le(t),Object.assign(t,{remove:ps,appendChild:fs,insertBefore:Te,removeChild:Oe,before:us}),Object.defineProperty(t,"innerHTML",vs),e&&(Object.assign(e,{removeChild:Oe,insertBefore:Te}),bt(t,e),Le(e)),i&&Tt(t),n&&Tt(n)},unbind:function(t){t.remove()}},ms={name:"Fragment",directives:{frag:gs},render:function(t){return t("div",{directives:[{name:"frag"}]},this.$slots.default)}};const ys=Ut({__name:"ActivityGroup",props:{activities:null},setup(t){const e=t,i=_t(()=>{const s=ht(),a=ht().subtract(1,"day"),o=ht(e.activities[0].datetime);return o.isSame(s,"day")?B("activity","Today"):o.isSame(a,"day")?B("activity","Yesterday"):o.format("LL")}),n=_t(()=>{const s=ht(e.activities[0].datetime).format("LL");return s!==i.value?s:void 0});return{__sfc:!0,props:e,dateText:i,fullDate:n,Activity:Ti,Fragment:ms}}});var _s=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.Fragment,[e("h2",{staticClass:"activity-group__heading",attrs:{title:i.fullDate}},[t._v(" "+t._s(i.dateText)+" ")]),e("ul",t._l(t.activities,function(n){return e(i.Activity,{key:n.id,attrs:{activity:n,"show-previews":!0}})}),1)])},Cs=[],bs=Dt(ys,_s,Cs,!1,null,"c16e5a63");const xs=bs.exports,Ss='';function ws(t){const e=Object.create(null);for(const i of t.split(","))e[i]=1;return i=>i in e}const he={},$t=()=>{},ei=Object.assign,ks=Object.prototype.hasOwnProperty,se=(t,e)=>ks.call(t,e),M=Array.isArray,ft=t=>Zt(t)==="[object Map]",zs=t=>Zt(t)==="[object Set]",V=t=>typeof t=="function",Ns=t=>typeof t=="string",Et=t=>typeof t=="symbol",ct=t=>t!==null&&typeof t=="object",Ds=t=>(ct(t)||V(t))&&V(t.then)&&V(t.catch),Es=Object.prototype.toString,Zt=t=>Es.call(t),Ps=t=>Zt(t).slice(8,-1),Ms=t=>Zt(t)==="[object Object]",fe=t=>Ns(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Z=(t,e)=>!Object.is(t,e);let $e;const ae=()=>$e||($e=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof ze<"u"?ze:{});let y;const Qt=new WeakSet;class As{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Qt.has(this)&&(Qt.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||ni(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ie(this),si(this);const e=y,i=A;y=this,A=!0;try{return this.fn()}finally{ai(this),y=e,A=i,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)me(e);this.deps=this.depsTail=void 0,Ie(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Qt.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){oe(this)&&this.run()}get dirty(){return oe(this)}}let ii=0,vt,gt;function ni(t,e=!1){if(t.flags|=8,e){t.next=gt,gt=t;return}t.next=vt,vt=t}function ve(){ii++}function ge(){if(--ii>0)return;if(gt){let e=gt;for(gt=void 0;e;){const i=e.next;e.next=void 0,e.flags&=-9,e=i}}let t;for(;vt;){let e=vt;for(vt=void 0;e;){const i=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=i}}if(t)throw t}function si(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function ai(t){let e,i=t.depsTail,n=i;for(;n;){const s=n.prevDep;n.version===-1?(n===i&&(i=s),me(n),Ls(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}t.deps=e,t.depsTail=i}function oe(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(oi(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function oi(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===xt))return;t.globalVersion=xt;const e=t.dep;if(t.flags|=2,e.version>0&&!t.isSSR&&t.deps&&!oe(t)){t.flags&=-3;return}const i=y,n=A;y=t,A=!0;try{si(t);const s=t.fn(t._value);(e.version===0||Z(s,t._value))&&(t._value=s,e.version++)}catch(s){throw e.version++,s}finally{y=i,A=n,ai(t),t.flags&=-3}}function me(t,e=!1){const{dep:i,prevSub:n,nextSub:s}=t;if(n&&(n.nextSub=s,t.prevSub=void 0),s&&(s.prevSub=n,t.nextSub=void 0),i.subs===t&&(i.subs=n,!n&&i.computed)){i.computed.flags&=-5;for(let a=i.computed.deps;a;a=a.nextDep)me(a,!0)}!e&&!--i.sc&&i.map&&i.map.delete(i.key)}function Ls(t){const{prevDep:e,nextDep:i}=t;e&&(e.nextDep=i,t.prevDep=void 0),i&&(i.prevDep=e,t.nextDep=void 0)}let A=!0;const ri=[];function qt(){ri.push(A),A=!1}function Kt(){const t=ri.pop();A=t===void 0?!0:t}function Ie(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const i=y;y=void 0;try{e()}finally{y=i}}}let xt=0;class Os{constructor(e,i){this.sub=e,this.dep=i,this.version=i.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ye{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!y||!A||y===this.computed)return;let i=this.activeLink;if(i===void 0||i.sub!==y)i=this.activeLink=new Os(y,this),y.deps?(i.prevDep=y.depsTail,y.depsTail.nextDep=i,y.depsTail=i):y.deps=y.depsTail=i,li(i);else if(i.version===-1&&(i.version=this.version,i.nextDep)){const n=i.nextDep;n.prevDep=i.prevDep,i.prevDep&&(i.prevDep.nextDep=n),i.prevDep=y.depsTail,i.nextDep=void 0,y.depsTail.nextDep=i,y.depsTail=i,y.deps===i&&(y.deps=n)}return i}trigger(e){this.version++,xt++,this.notify(e)}notify(e){ve();try{for(let i=this.subs;i;i=i.prevSub)i.sub.notify()&&i.sub.dep.notify()}finally{ge()}}}function li(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)li(n)}const i=t.dep.subs;i!==t&&(t.prevSub=i,i&&(i.nextSub=t)),t.dep.subs=t}}const re=new WeakMap,Q=Symbol(""),le=Symbol(""),St=Symbol("");function z(t,e,i){if(A&&y){let n=re.get(t);n||re.set(t,n=new Map);let s=n.get(i);s||(n.set(i,s=new ye),s.map=n,s.key=i),s.track()}}function U(t,e,i,n,s,a){const o=re.get(t);if(!o){xt++;return}const r=l=>{l&&l.trigger()};if(ve(),e==="clear")o.forEach(r);else{const l=M(t),p=l&&fe(i);if(l&&i==="length"){const c=Number(n);o.forEach((u,d)=>{(d==="length"||d===St||!Et(d)&&d>=c)&&r(u)})}else switch((i!==void 0||o.has(void 0))&&r(o.get(i)),p&&r(o.get(St)),e){case"add":l?p&&r(o.get("length")):(r(o.get(Q)),ft(t)&&r(o.get(le)));break;case"delete":l||(r(o.get(Q)),ft(t)&&r(o.get(le)));break;case"set":ft(t)&&r(o.get(Q));break}}ge()}function st(t){const e=m(t);return e===t?e:(z(e,"iterate",St),L(t)?e:e.map(k))}function _e(t){return z(t=m(t),"iterate",St),t}const Ts={__proto__:null,[Symbol.iterator](){return te(this,Symbol.iterator,k)},concat(...t){return st(this).concat(...t.map(e=>M(e)?st(e):e))},entries(){return te(this,"entries",t=>(t[1]=k(t[1]),t))},every(t,e){return $(this,"every",t,e,void 0,arguments)},filter(t,e){return $(this,"filter",t,e,i=>i.map(k),arguments)},find(t,e){return $(this,"find",t,e,k,arguments)},findIndex(t,e){return $(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return $(this,"findLast",t,e,k,arguments)},findLastIndex(t,e){return $(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return $(this,"forEach",t,e,void 0,arguments)},includes(...t){return ee(this,"includes",t)},indexOf(...t){return ee(this,"indexOf",t)},join(t){return st(this).join(t)},lastIndexOf(...t){return ee(this,"lastIndexOf",t)},map(t,e){return $(this,"map",t,e,void 0,arguments)},pop(){return dt(this,"pop")},push(...t){return dt(this,"push",t)},reduce(t,...e){return Be(this,"reduce",t,e)},reduceRight(t,...e){return Be(this,"reduceRight",t,e)},shift(){return dt(this,"shift")},some(t,e){return $(this,"some",t,e,void 0,arguments)},splice(...t){return dt(this,"splice",t)},toReversed(){return st(this).toReversed()},toSorted(t){return st(this).toSorted(t)},toSpliced(...t){return st(this).toSpliced(...t)},unshift(...t){return dt(this,"unshift",t)},values(){return te(this,"values",k)}};function te(t,e,i){const n=_e(t),s=n[e]();return n!==t&&!L(t)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.value&&(a.value=i(a.value)),a}),s}const $s=Array.prototype;function $(t,e,i,n,s,a){const o=_e(t),r=o!==t&&!L(t),l=o[e];if(l!==$s[e]){const u=l.apply(t,a);return r?k(u):u}let p=i;o!==t&&(r?p=function(u,d){return i.call(this,k(u),d,t)}:i.length>2&&(p=function(u,d){return i.call(this,u,d,t)}));const c=l.call(o,p,n);return r&&s?s(c):c}function Be(t,e,i,n){const s=_e(t);let a=i;return s!==t&&(L(t)?i.length>3&&(a=function(o,r,l){return i.call(this,o,r,l,t)}):a=function(o,r,l){return i.call(this,o,k(r),l,t)}),s[e](a,...n)}function ee(t,e,i){const n=m(t);z(n,"iterate",St);const s=n[e](...i);return(s===-1||s===!1)&&Js(i[0])?(i[0]=m(i[0]),n[e](...i)):s}function dt(t,e,i=[]){qt(),ve();const n=m(t)[e].apply(t,i);return ge(),Kt(),n}const Is=ws("__proto__,__v_isRef,__isVue"),ci=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Et));function Bs(t){Et(t)||(t=String(t));const e=m(this);return z(e,"has",t),e.hasOwnProperty(t)}class ui{constructor(e=!1,i=!1){this._isReadonly=e,this._isShallow=i}get(e,i,n){if(i==="__v_skip")return e.__v_skip;const s=this._isReadonly,a=this._isShallow;if(i==="__v_isReactive")return!s;if(i==="__v_isReadonly")return s;if(i==="__v_isShallow")return a;if(i==="__v_raw")return n===(s?a?Ks:hi:a?qs:di).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const o=M(e);if(!s){let l;if(o&&(l=Ts[i]))return l;if(i==="hasOwnProperty")return Bs}const r=Reflect.get(e,i,O(e)?e:n);return(Et(i)?ci.has(i):Is(i))||(s||z(e,"get",i),a)?r:O(r)?o&&fe(i)?r:r.value:ct(r)?s?fi(r):wt(r):r}}class Rs extends ui{constructor(e=!1){super(!1,e)}set(e,i,n,s){let a=e[i];if(!this._isShallow){const l=tt(a);if(!L(n)&&!tt(n)&&(a=m(a),n=m(n)),!M(e)&&O(a)&&!O(n))return l?!1:(a.value=n,!0)}const o=M(e)&&fe(i)?Number(i)t,Mt=t=>Reflect.getPrototypeOf(t);function Fs(t,e,i){return function(...n){const s=this.__v_raw,a=m(s),o=ft(a),r=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,p=s[t](...n),c=i?ce:e?ue:k;return!e&&z(a,"iterate",l?le:Q),{next(){const{value:u,done:d}=p.next();return d?{value:u,done:d}:{value:r?[c(u[0]),c(u[1])]:c(u),done:d}},[Symbol.iterator](){return this}}}}function At(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Us(t,e){const i={get(n){const s=this.__v_raw,a=m(s),o=m(n);t||(Z(n,o)&&z(a,"get",n),z(a,"get",o));const{has:r}=Mt(a),l=e?ce:t?ue:k;if(r.call(a,n))return l(s.get(n));if(r.call(a,o))return l(s.get(o));s!==a&&s.get(n)},get size(){const n=this.__v_raw;return!t&&z(m(n),"iterate",Q),Reflect.get(n,"size",n)},has(n){const s=this.__v_raw,a=m(s),o=m(n);return t||(Z(n,o)&&z(a,"has",n),z(a,"has",o)),n===o?s.has(n):s.has(n)||s.has(o)},forEach(n,s){const a=this,o=a.__v_raw,r=m(o),l=e?ce:t?ue:k;return!t&&z(r,"iterate",Q),o.forEach((p,c)=>n.call(s,l(p),l(c),a))}};return ei(i,t?{add:At("add"),set:At("set"),delete:At("delete"),clear:At("clear")}:{add(n){!e&&!L(n)&&!tt(n)&&(n=m(n));const s=m(this);return Mt(s).has.call(s,n)||(s.add(n),U(s,"add",n,n)),this},set(n,s){!e&&!L(s)&&!tt(s)&&(s=m(s));const a=m(this),{has:o,get:r}=Mt(a);let l=o.call(a,n);l||(n=m(n),l=o.call(a,n));const p=r.call(a,n);return a.set(n,s),l?Z(s,p)&&U(a,"set",n,s):U(a,"add",n,s),this},delete(n){const s=m(this),{has:a,get:o}=Mt(s);let r=a.call(s,n);r||(n=m(n),r=a.call(s,n)),o&&o.call(s,n);const l=s.delete(n);return r&&U(s,"delete",n,void 0),l},clear(){const n=m(this),s=n.size!==0,a=n.clear();return s&&U(n,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(n=>{i[n]=Fs(n,t,e)}),i}function pi(t,e){const i=Us(t,e);return(n,s,a)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?n:Reflect.get(se(i,s)&&s in n?i:n,s,a)}const Ws={get:pi(!1,!1)},Zs={get:pi(!0,!1)},di=new WeakMap,qs=new WeakMap,hi=new WeakMap,Ks=new WeakMap;function Gs(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xs(t){return t.__v_skip||!Object.isExtensible(t)?0:Gs(Ps(t))}function wt(t){return tt(t)?t:vi(t,!1,Hs,Ws,di)}function fi(t){return vi(t,!0,js,Zs,hi)}function vi(t,e,i,n,s){if(!ct(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const a=s.get(t);if(a)return a;const o=Xs(t);if(o===0)return t;const r=new Proxy(t,o===2?n:i);return s.set(t,r),r}function It(t){return tt(t)?It(t.__v_raw):!!(t&&t.__v_isReactive)}function tt(t){return!!(t&&t.__v_isReadonly)}function L(t){return!!(t&&t.__v_isShallow)}function Js(t){return t?!!t.__v_raw:!1}function m(t){const e=t&&t.__v_raw;return e?m(e):t}const k=t=>ct(t)?wt(t):t,ue=t=>ct(t)?fi(t):t;function O(t){return t?t.__v_isRef===!0:!1}function gi(t){return mi(t,!1)}function mt(t){return mi(t,!0)}function mi(t,e){return O(t)?t:new Ys(t,e)}class Ys{constructor(e,i){this.dep=new ye,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=i?e:m(e),this._value=i?e:k(e),this.__v_isShallow=i}get value(){return this.dep.track(),this._value}set value(e){const i=this._rawValue,n=this.__v_isShallow||L(e)||tt(e);e=n?e:m(e),Z(e,i)&&(this._rawValue=e,this._value=n?e:k(e),this.dep.trigger())}}function yi(t){return O(t)?t.value:t}function w(t){return V(t)?t():yi(t)}class Qs{constructor(e,i,n){this.fn=e,this.setter=i,this._value=void 0,this.dep=new ye(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=xt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!i,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&y!==this)return ni(this,!0),!0}get value(){const e=this.dep.track();return oi(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function ta(t,e,i=!1){let n,s;return V(t)?n=t:(n=t.get,s=t.set),new Qs(n,s,i)}const Lt={},Ht=new WeakMap;let J;function ea(t,e=!1,i=J){if(i){let n=Ht.get(i);n||Ht.set(i,n=[]),n.push(t)}}function ia(t,e,i=he){const{immediate:n,deep:s,once:a,scheduler:o,augmentJob:r,call:l}=i,p=f=>s?f:L(f)||s===!1||s===0?W(f,1):W(f);let c,u,d,h,g=!1,_=!1;if(O(t)?(u=()=>t.value,g=L(t)):It(t)?(u=()=>p(t),g=!0):M(t)?(_=!0,g=t.some(f=>It(f)||L(f)),u=()=>t.map(f=>{if(O(f))return f.value;if(It(f))return p(f);if(V(f))return l?l(f,2):f()})):V(t)?e?u=l?()=>l(t,2):t:u=()=>{if(d){qt();try{d()}finally{Kt()}}const f=J;J=c;try{return l?l(t,3,[h]):t(h)}finally{J=f}}:u=$t,e&&s){const f=u,D=s===!0?1/0:s;u=()=>W(f(),D)}const C=()=>{c.stop()};if(a&&e){const f=e;e=(...D)=>{f(...D),C()}}let b=_?new Array(t.length).fill(Lt):Lt;const S=f=>{if(!(!(c.flags&1)||!c.dirty&&!f))if(e){const D=c.run();if(s||g||(_?D.some((q,K)=>Z(q,b[K])):Z(D,b))){d&&d();const q=J;J=c;try{const K=[D,b===Lt?void 0:_&&b[0]===Lt?[]:b,h];l?l(e,3,K):e(...K),b=D}finally{J=q}}}else c.run()};return r&&r(S),c=new As(u),c.scheduler=o?()=>o(S,!1):S,h=f=>ea(f,!1,c),d=c.onStop=()=>{const f=Ht.get(c);if(f){if(l)l(f,4);else for(const D of f)D();Ht.delete(c)}},e?n?S(!0):b=c.run():o?o(S.bind(null,!0),!0):c.run(),C.pause=c.pause.bind(c),C.resume=c.resume.bind(c),C.stop=C,C}function W(t,e=1/0,i){if(e<=0||!ct(t)||t.__v_skip||(i=i||new Set,i.has(t)))return t;if(i.add(t),e--,O(t))W(t.value,e,i);else if(M(t))for(let n=0;n{W(n,e,i)});else if(Ms(t)){for(const n in t)W(t[n],e,i);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&W(t[n],e,i)}return t}function Ce(t,e,i,n){try{return n?t(...n):t()}catch(s){_i(s,e,i)}}function be(t,e,i,n){if(V(t)){const s=Ce(t,e,i,n);return s&&Ds(s)&&s.catch(a=>{_i(a,e,i)}),s}if(M(t)){const s=[];for(let a=0;a>>1,s=P[n],a=kt(s);a=kt(i)?P.push(t):P.splice(sa(e),0,t),t.flags|=1,bi()}}function bi(){jt||(jt=Ci.then(xi))}function oa(t){M(t)?rt.push(...t):F&&t.id===-1?F.splice(ot+1,0,t):t.flags&1||(rt.push(t),t.flags|=1),bi()}function ra(t){if(rt.length){const e=[...new Set(rt)].sort((i,n)=>kt(i)-kt(n));if(rt.length=0,F){F.push(...e);return}for(F=e,ot=0;ott.id==null?t.flags&2?-1:1/0:t.id;function xi(t){try{for(I=0;I{qt();const r=ma(i),l=be(e,i,t,o);return r(),Kt(),l});return n?s.unshift(a):s.push(a),a}}const wi=t=>(e,i=nt)=>{(!zt||t==="sp")&&la(t,(...n)=>e(...n),i)},ki=wi("m"),ca=wi("um");let ua=null;function pa(t,e,i=!1){const n=nt||Si;if(n||ua){const s=n?n.parent==null?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(s&&t in s)return s[t];if(arguments.length>1)return i&&V(e)?e.call(n&&n.proxy):e}}const da=ga,ha=Symbol.for("v-scx"),fa=()=>pa(ha);function Gt(t,e,i){return va(t,e,i)}function va(t,e,i=he){const{immediate:n,deep:s,flush:a,once:o}=i,r=ei({},i),l=e&&n||!e&&a!=="post";let p;if(zt){if(a==="sync"){const h=fa();p=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=$t,h.resume=$t,h.pause=$t,h}}const c=nt;r.call=(h,g,_)=>be(h,c,g,_);let u=!1;a==="post"?r.scheduler=h=>{da(h,c&&c.suspense)}:a!=="sync"&&(u=!0,r.scheduler=(h,g)=>{g?h():aa(h)}),r.augmentJob=h=>{e&&(h.flags|=4),u&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const d=ia(t,e,r);return zt&&(p?p.push(d):l&&d()),d}function ga(t,e){e&&e.pendingBranch?M(t)?e.effects.push(...t):e.effects.push(t):oa(t)}let nt=null;const zi=()=>nt||Si;let pe;{const t=ae(),e=(i,n)=>{let s;return(s=t[i])||(s=t[i]=[]),s.push(n),a=>{s.length>1?s.forEach(o=>o(a)):s[0](a)}};pe=e("__VUE_INSTANCE_SETTERS__",i=>nt=i),e("__VUE_SSR_SETTERS__",i=>zt=i)}const ma=t=>{const e=nt;return pe(t),t.scope.on(),()=>{t.scope.off(),pe(e)}};let zt=!1;const et=(t,e)=>ta(t,e,zt),ya=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const _a=t=>t!=null,Ca=Object.prototype.toString,ba=t=>Ca.call(t)==="[object Object]",H=()=>{};function Ni(t,e){function i(...n){return new Promise((s,a)=>{Promise.resolve(t(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})).then(s).catch(a)})}return i}function xa(t,e={}){let i,n,s=H;const a=r=>{clearTimeout(r),s(),s=H};let o;return r=>{const l=w(t),p=w(e.maxWait);return i&&a(i),l<=0||p!==void 0&&p<=0?(n&&(a(n),n=null),Promise.resolve(r())):new Promise((c,u)=>{s=e.rejectOnCancel?u:c,o=r,p&&!n&&(n=setTimeout(()=>{i&&a(i),n=null,c(o())},p)),i=setTimeout(()=>{n&&a(n),n=null,c(r())},l)})}}function Sa(...t){let e=0,i,n=!0,s=H,a,o,r,l,p;!O(t[0])&&typeof t[0]=="object"?{delay:o,trailing:r=!0,leading:l=!0,rejectOnCancel:p=!1}=t[0]:[o,r=!0,l=!0,p=!1]=t;const c=()=>{i&&(clearTimeout(i),i=void 0,s(),s=H)};return u=>{const d=w(o),h=Date.now()-e,g=()=>a=u();return c(),d<=0?(e=Date.now(),g()):(h>d&&(l||!n)?(e=Date.now(),g()):r&&(a=new Promise((_,C)=>{s=p?C:_,i=setTimeout(()=>{e=Date.now(),n=!0,_(g()),c()},Math.max(0,d-h))})),!l&&!i&&(i=setTimeout(()=>n=!0,d)),n=!1,a)}}function Di(t){return zi()}function Bt(t){return Array.isArray(t)?t:[t]}function wa(t,e=200,i={}){return Ni(xa(e,i),t)}function ka(t,e=200,i=!1,n=!0,s=!1){return Ni(Sa(e,i,n,s),t)}function za(t,e=!0,i){Di()?ki(t,i):e?t():Ft(t)}function Na(t,e){Di()&&ca(t,e)}function Da(t,e,i){return Gt(t,e,{...i,immediate:!0})}function Ea(t,e,i){const n=Gt(t,(...s)=>(Ft(()=>n()),e(...s)),i);return n}const Xt=ya?window:void 0;function yt(t){var e;const i=w(t);return(e=i==null?void 0:i.$el)!=null?e:i}function Re(...t){const e=[],i=()=>{e.forEach(o=>o()),e.length=0},n=(o,r,l,p)=>(o.addEventListener(r,l,p),()=>o.removeEventListener(r,l,p)),s=et(()=>{const o=Bt(w(t[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0}),a=Da(()=>{var o,r;return[(r=(o=s.value)==null?void 0:o.map(l=>yt(l)))!=null?r:[Xt].filter(l=>l!=null),Bt(w(s.value?t[1]:t[0])),Bt(yi(s.value?t[2]:t[1])),w(s.value?t[3]:t[2])]},([o,r,l,p])=>{if(i(),!(o!=null&&o.length)||!(r!=null&&r.length)||!(l!=null&&l.length))return;const c=ba(p)?{...p}:p;e.push(...o.flatMap(u=>r.flatMap(d=>l.map(h=>n(u,d,h,c)))))},{flush:"post"});return()=>{a(),i()}}function Pa(){const t=mt(!1),e=zi();return e&&ki(()=>{t.value=!0},e),t}function Ma(t){const e=Pa();return et(()=>(e.value,!!t()))}function Aa(t,e,i={}){const{root:n,rootMargin:s="0px",threshold:a=0,window:o=Xt,immediate:r=!0}=i,l=Ma(()=>o&&"IntersectionObserver"in o),p=et(()=>{const h=w(t);return Bt(h).map(yt).filter(_a)});let c=H;const u=gi(r),d=l.value?Gt(()=>[p.value,yt(n),u.value],([h,g])=>{if(c(),!u.value||!h.length)return;const _=new IntersectionObserver(e,{root:yt(g),rootMargin:s,threshold:a});h.forEach(C=>C&&_.observe(C)),c=()=>{_.disconnect(),c=H}},{immediate:r,flush:"post"}):H;return{isSupported:l,isActive:u,pause(){c(),u.value=!1},resume(){u.value=!0},stop:()=>{c(),d(),u.value=!1}}}function La(t,e={}){const{window:i=Xt,scrollTarget:n,threshold:s=0,rootMargin:a,once:o=!1}=e,r=mt(!1),{stop:l}=Aa(t,p=>{let c=r.value,u=0;for(const d of p)d.time>=u&&(u=d.time,c=d.isIntersecting);r.value=c,o&&Ea(r,()=>{l()})},{root:n,window:i,threshold:s,rootMargin:w(a)});return r}function Oa(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}const Ve=1;function Ta(t,e={}){const{throttle:i=0,idle:n=200,onStop:s=H,onScroll:a=H,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:r={capture:!1,passive:!0},behavior:l="auto",window:p=Xt,onError:c=v=>{console.error(v)}}=e,u=mt(0),d=mt(0),h=et({get(){return u.value},set(v){_(v,void 0)}}),g=et({get(){return d.value},set(v){_(void 0,v)}});function _(v,G){var E,ut,pt,Pt;if(!p)return;const N=w(t);if(!N)return;(pt=N instanceof Document?p.document.body:N)==null||pt.scrollTo({top:(E=w(G))!=null?E:g.value,left:(ut=w(v))!=null?ut:h.value,behavior:w(l)});const j=((Pt=N==null?void 0:N.document)==null?void 0:Pt.documentElement)||(N==null?void 0:N.documentElement)||N;h!=null&&(u.value=j.scrollLeft),g!=null&&(d.value=j.scrollTop)}const C=mt(!1),b=wt({left:!0,right:!1,top:!0,bottom:!1}),S=wt({left:!1,right:!1,top:!1,bottom:!1}),f=v=>{C.value&&(C.value=!1,S.left=!1,S.right=!1,S.top=!1,S.bottom=!1,s(v))},D=wa(f,i+n),q=v=>{var G;if(!p)return;const E=((G=v==null?void 0:v.document)==null?void 0:G.documentElement)||(v==null?void 0:v.documentElement)||yt(v),{display:ut,flexDirection:pt,direction:Pt}=getComputedStyle(E),N=Pt==="rtl"?-1:1,j=E.scrollLeft;S.left=ju.value;const xe=j*N<=(o.left||0),Se=j*N+E.clientWidth>=E.scrollWidth-(o.right||0)-Ve;ut==="flex"&&pt==="row-reverse"?(b.left=Se,b.right=xe):(b.left=xe,b.right=Se),u.value=j;let X=E.scrollTop;v===p.document&&!X&&(X=p.document.body.scrollTop),S.top=Xd.value;const we=X<=(o.top||0),ke=X+E.clientHeight>=E.scrollHeight-(o.bottom||0)-Ve;ut==="flex"&&pt==="column-reverse"?(b.top=ke,b.bottom=we):(b.top=we,b.bottom=ke),d.value=X},K=v=>{var G;if(!p)return;const E=(G=v.target.documentElement)!=null?G:v.target;q(E),C.value=!0,D(v),a(v)};return Re(t,"scroll",i?ka(K,i,!0,!1):K,r),za(()=>{try{const v=w(t);if(!v)return;q(v)}catch(v){c(v)}}),Re(t,"scrollend",f,r),{x:h,y:g,isScrolling:C,arrivedState:b,directions:S,measure(){const v=w(t);p&&v&&q(v)}}}function $a(t,e,i={}){var n;const{direction:s="bottom",interval:a=100,canLoadMore:o=()=>!0}=i,r=wt(Ta(t,{...i,offset:{[s]:(n=i.distance)!=null?n:0,...i.offset}})),l=gi(),p=et(()=>!!l.value),c=et(()=>Oa(w(t))),u=La(c);function d(){if(r.measure(),!c.value||!u.value||!o(c.value))return;const{scrollHeight:g,clientHeight:_,scrollWidth:C,clientWidth:b}=c.value,S=s==="bottom"||s==="top"?g<=_:C<=b;(r.arrivedState[s]||S)&&(l.value||(l.value=Promise.all([e(r),new Promise(f=>setTimeout(f,a))]).finally(()=>{l.value=null,Ft(()=>d())})))}const h=Gt(()=>[r.arrivedState[s],u.value],d,{immediate:!0});return Na(h),{isLoading:p,reset(){Ft(()=>d())}}}function Ia(){var t=Ei().proxy.$root;if(!t._$route){var e=Pi(!0).run(function(){return Mi(Object.assign({},t.$router.currentRoute))});t._$route=e,t.$router.afterEach(function(i){Object.assign(e,i)})}return t._$route}const Ba=Ut({__name:"ActivityAppFeed",props:{filter:{default:"all"}},setup(t){const e=t,i=ne(Rt,"navigationList"),n=Ia(),s=at(!1),a=at(!0),o=at([]),r=at(),l=at();$a(l,async()=>{a.value&&await u()},{distance:100});const p=_t(()=>{const d={};for(const h of o.value){const g=ht(h.datetime).format("LL");d[g]===void 0?d[g]=[h]:d[g].push(h)}return d}),c=_t(()=>i.find(d=>d.id===n.params.filter).name);async function u(){var d,h;if(!s.value)try{const g=(d=r.value)!=null?d:"0";s.value=!0;const _=await We.get(Xi("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}",{filter:e.filter,since:g}));o.value.push(..._.data.ocs.data.map(C=>new Ii(C))),r.value=_.headers["x-activity-last-given"],a.value=!0}catch(g){if(Ji.isAxiosError(g)&&((h=g.response)==null?void 0:h.status)===304){a.value=!1;return}ie.error(g),qe(B("activity","Could not load activities"))}finally{s.value=!1}}return Ai(()=>{u()}),Li(e,()=>{o.value=[],r.value=void 0,u()}),{__sfc:!0,navigationList:i,route:n,props:e,loading:s,hasMoreActivites:a,allActivities:o,lastActivityLoaded:r,container:l,groupedActivities:p,headingTitle:c,loadActivities:u,NcAppContent:ns,NcIconSvgWrapper:He,NcEmptyContent:$i,NcLoadingIcon:Ue,ActivityGroup:xs,appIconSVG:Ss,t:B}}});var Ra=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.NcAppContent,{staticClass:"activity-app"},[e("h1",{staticClass:"activity-app__heading"},[t._v(" "+t._s(i.headingTitle)+" ")]),i.hasMoreActivites&&i.allActivities.length===0?e(i.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:i.t("activity","Loading activities"),description:i.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.NcLoadingIcon,{attrs:{size:36}})]},proxy:!0}],null,!1,3043861167)}):i.allActivities.length===0?e(i.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:i.t("activity","No activity yet"),description:i.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.NcIconSvgWrapper,{attrs:{svg:i.appIconSVG,size:36}})]},proxy:!0}])}):t._e(),e("div",{ref:"container",staticClass:"activity-app__container"},[t._l(i.groupedActivities,function(n,s){return e(i.ActivityGroup,{key:s,attrs:{activities:n}})}),i.hasMoreActivites&&i.allActivities.length>0?e(i.NcLoadingIcon,{staticClass:"activity-app__loading-indicator",attrs:{name:i.t("activity","Loading more activities"),size:64}}):!i.hasMoreActivites&&i.allActivities.length>0?e("div",{staticClass:"activity-app__loading-indicator"},[t._v(" "+t._s(i.t("activity","No more activities."))+" ")]):t._e()],2)],1)},Va=[],Ha=Dt(Ba,Ra,Va,!1,null,"6798da20");const ja=Ha.exports,Fa={name:"NcAppNavigationList"};var Ua=function(){var t=this,e=t._self._c;return e("ul",{staticClass:"app-navigation-list"},[t._t("default")],2)},Wa=[],Za=x(Fa,Ua,Wa,!1,null,"058e6060");const qa=Za.exports;it(Yi);const Ka={name:"MenuIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Ga=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon menu-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},Xa=[],Ja=x(Ka,Ga,Xa,!1,null,null);const Ya=Ja.exports,Qa={name:"MenuOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var to=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon menu-open-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},eo=[],io=x(Qa,to,eo,!1,null,null);const no=io.exports,so={name:"NcAppNavigationToggle",components:{NcButton:lt,MenuIcon:Ya,MenuOpenIcon:no},props:{open:{type:Boolean,required:!0}},emits:["update:open"],computed:{label(){return this.open?T("Close navigation"):T("Open navigation")}},methods:{toggleNavigation(){this.$emit("update:open",!this.open)}}};var ao=function(){var t=this,e=t._self._c;return e("div",{staticClass:"app-navigation-toggle-wrapper"},[e("NcButton",{staticClass:"app-navigation-toggle",attrs:{type:"tertiary","aria-expanded":t.open?"true":"false","aria-label":t.label,title:t.label,"aria-controls":"app-navigation-vue"},on:{click:t.toggleNavigation},scopedSlots:t._u([{key:"icon",fn:function(){return[t.open?e("MenuOpenIcon",{attrs:{size:20}}):e("MenuIcon",{attrs:{size:20}})]},proxy:!0}])})],1)},oo=[],ro=x(so,ao,oo,!1,null,"b6024aba");const lo=ro.exports,co={name:"NcAppNavigation",components:{NcAppNavigationList:qa,NcAppNavigationToggle:lo},inject:{setHasAppNavigation:{default:()=>()=>R.util.warn("NcAppNavigation is not mounted inside NcContent, this is probably an error."),from:"NcContent:setHasAppNavigation"}},props:{ariaLabel:{type:String,default:""},ariaLabelledby:{type:String,default:""}},setup(){return{isMobile:Nt()}},data(){return{open:!this.isMobile,focusTrap:null}},watch:{isMobile(){this.open=!this.isMobile,this.toggleFocusTrap()},open(){this.toggleFocusTrap()}},mounted(){this.setHasAppNavigation(!0),Ui("toggle-navigation",this.toggleNavigationByEventBus),Y("navigation-toggled",{open:this.open}),this.focusTrap=Qi(this.$refs.appNavigationContainer,{allowOutsideClick:!0,fallbackFocus:this.$refs.appNavigationContainer,trapStack:tn(),escapeDeactivates:!1}),this.toggleFocusTrap()},unmounted(){this.setHasAppNavigation(!1),Wi("toggle-navigation",this.toggleNavigationByEventBus),this.focusTrap.deactivate()},methods:{toggleNavigation(t){if(this.open===t){Y("navigation-toggled",{open:this.open});return}this.open=typeof t>"u"?!this.open:t;const e=getComputedStyle(document.body),i=parseInt(e.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{Y("navigation-toggled",{open:this.open})},1.5*i)},toggleNavigationByEventBus({open:t}){this.toggleNavigation(t)},toggleFocusTrap(){this.isMobile&&this.open?this.focusTrap.activate():this.focusTrap.deactivate()},handleEsc(){this.isMobile&&this.toggleNavigation(!1)}}};var uo=function(){var t=this,e=t._self._c;return e("div",{ref:"appNavigationContainer",staticClass:"app-navigation",class:{"app-navigation--close":!t.open}},[e("nav",{staticClass:"app-navigation__content",attrs:{id:"app-navigation-vue","aria-hidden":t.open?"false":"true","aria-label":t.ariaLabel||void 0,"aria-labelledby":t.ariaLabelledby||void 0,inert:!t.open||void 0},on:{keydown:function(i){return!i.type.indexOf("key")&&t._k(i.keyCode,"esc",27,i.key,["Esc","Escape"])?null:t.handleEsc.apply(null,arguments)}}},[e("div",{staticClass:"app-navigation__search"},[t._t("search")],2),e("div",{staticClass:"app-navigation__body",class:{"app-navigation__body--no-list":!t.$scopedSlots.list}},[t._t("default")],2),t.$scopedSlots.list?e("NcAppNavigationList",{staticClass:"app-navigation__list"},[t._t("list")],2):t._e(),t._t("footer")],2),e("NcAppNavigationToggle",{attrs:{open:t.open},on:{"update:open":t.toggleNavigation}})],1)},po=[],ho=x(co,uo,po,!1,null,"e7d078cc");const fo=ho.exports,vo={name:"NcActionButton",components:{CheckIcon:Bi,ChevronRightIcon:en},mixins:[Ri],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{ariaHidden:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>["button","checkbox","radio","reset","submit"].includes(t)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const t={};return this.isInSemanticMenu?(t.role="menuitem",this.type==="radio"?(t.role="menuitemradio",t["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(t.role="menuitemcheckbox",t["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(t["aria-pressed"]=this.modelValue?"true":"false"),t}},methods:{handleClick(t){this.onClick(t),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}};var go=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",class:{"action--disabled":t.disabled},attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("button",t._b({class:["action-button button-vue",{"action-button--active":t.isChecked,focusable:t.isFocusable}],attrs:{"aria-label":t.ariaLabel,disabled:t.disabled,title:t.title,type:t.nativeType},on:{click:t.handleClick}},"button",t.buttonAttributes,!1),[t._t("icon",function(){return[e("span",{staticClass:"action-button__icon",class:[t.isIconUrl?"action-button__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?"url(".concat(t.icon,")"):null},attrs:{"aria-hidden":"true"}})]}),t.name?e("span",{staticClass:"action-button__longtext-wrapper"},[e("strong",{staticClass:"action-button__name"},[t._v(" "+t._s(t.name)+" ")]),e("br"),e("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-button__text"},[t._v(t._s(t.text))]),t.isMenu?e("ChevronRightIcon",{staticClass:"action-button__menu-icon",attrs:{size:20}}):t.isChecked===!0?e("CheckIcon",{staticClass:"action-button__pressed-icon",attrs:{size:20}}):t.isChecked===!1?e("span",{staticClass:"action-button__pressed-icon material-design-icon"}):t._e(),t._e()],2)])},mo=[],yo=x(vo,go,mo,!1,null,"dba65098");const _o=yo.exports,Co={name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(t){var e,i,n;return this.vnodes||((e=this.$slots)==null?void 0:e.default)||((n=(i=this.$scopedSlots)==null?void 0:i.default)==null?void 0:n.call(i))}},bo=null,xo=null;var So=x(Co,bo,xo,!1,null,null);const wo=So.exports,ko={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var zo=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon chevron-up-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},No=[],Do=x(ko,zo,No,!1,null,null);const Eo=Do.exports;it(nn);const Po={name:"NcInputConfirmCancel",components:{NcButton:lt,ArrowRight:je,Close:sn},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},value:{default:"",type:String}},emits:["input","confirm","cancel"],data(){return{labelConfirm:T("Confirm changes"),labelCancel:T("Cancel changes")}},computed:{valueModel:{get(){return this.value},set(t){this.$emit("input",t)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}};var Mo=function(){var t=this,e=t._self._c;return e("div",{staticClass:"app-navigation-input-confirm"},[e("form",{on:{submit:function(i){return i.preventDefault(),t.confirm.apply(null,arguments)},keydown:function(i){return!i.type.indexOf("key")&&t._k(i.keyCode,"esc",27,i.key,["Esc","Escape"])||i.ctrlKey||i.shiftKey||i.altKey||i.metaKey?null:(i.stopPropagation(),i.preventDefault(),t.cancel.apply(null,arguments))},click:function(i){i.stopPropagation(),i.preventDefault()}}},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.valueModel,expression:"valueModel"}],ref:"input",staticClass:"app-navigation-input-confirm__input",attrs:{type:"text",placeholder:t.placeholder},domProps:{value:t.valueModel},on:{input:function(i){i.target.composing||(t.valueModel=i.target.value)}}}),e("NcButton",{attrs:{"native-type":"submit",type:"primary","aria-label":t.labelConfirm},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),t.confirm.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ArrowRight",{attrs:{size:20}})]},proxy:!0}])}),e("NcButton",{attrs:{"native-type":"reset",type:t.primary?"primary":"tertiary","aria-label":t.labelCancel},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),t.cancel.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Close",{attrs:{size:20}})]},proxy:!0}])})],1)])},Ao=[],Lo=x(Po,Mo,Ao,!1,null,"0e795eb7");const Oo=Lo.exports;it(an);const To={name:"NcAppNavigationIconCollapsible",components:{NcButton:lt,ChevronDown:Vi,ChevronUp:Eo},props:{open:{type:Boolean,default:!0}},emits:["click"],computed:{labelButton(){return this.open?T("Collapse menu"):T("Open menu")}},methods:{onClick(t){this.$emit("click",t)}}};var $o=function(){var t=this,e=t._self._c;return e("NcButton",{staticClass:"icon-collapse",class:{"icon-collapse--open":t.open},attrs:{type:"tertiary","aria-label":t.labelButton},on:{click:t.onClick},scopedSlots:t._u([{key:"icon",fn:function(){return[t.open?e("ChevronUp",{attrs:{size:20}}):e("ChevronDown",{attrs:{size:20}})]},proxy:!0}])})},Io=[],Bo=x(To,$o,Io,!1,null,"cadd59ae");const Ro=Bo.exports;it(rn,on);const Vo={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Ho=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon pencil-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},jo=[],Fo=x(Vo,Ho,jo,!1,null,null);const Uo=Fo.exports,Wo={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Zo=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon undo-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},qo=[],Ko=x(Wo,Zo,qo,!1,null,null);const Go=Ko.exports,Xo={name:"NcAppNavigationItem",components:{NcActions:ln,NcActionButton:_o,NcAppNavigationIconCollapsible:Ro,NcInputConfirmCancel:Oo,NcLoadingIcon:Ue,NcVNodes:wo,Pencil:Uo,Undo:Go},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>"app-navigation-item-"+cn(),validator:t=>t.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},exact:{type:Boolean,default:!1},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:""},editPlaceholder:{type:String,default:""},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:"bottom"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:["update:menuOpen","update:open","update:name","click","undo"],setup(){return{isMobile:Nt()}},data(){return{editingValue:"",opened:this.open,editingActive:!1,hasChildren:!1,menuOpenLocalValue:!1,focused:!1,collapsible:!1,actionsBoundariesElement:void 0}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},hasUtils(){return!!(this.$slots.actions||this.$slots.counter||this.editable||this.undo)},editButtonAriaLabel(){return this.editLabel?this.editLabel:T("Edit item")},undoButtonAriaLabel(){return T("Undo changes")}},watch:{open(t){this.opened=t}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},created(){this.updateSlotInfo()},beforeUpdate(){this.updateSlotInfo()},methods:{onMenuToggle(t){this.$emit("update:menuOpen",t),this.menuOpenLocalValue=t},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(t,e,i){this.$emit("click",t),!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&i&&(e==null||e(t),t.preventDefault())},handleEdit(){this.editingValue=this.name,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick(()=>{this.$refs.editingInput.focusInput()})},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit("update:name",this.editingValue),this.editingValue="",this.editingActive=!1},handleUndo(){this.$emit("undo")},updateSlotInfo(){this.hasChildren=!!this.$slots.default,this.collapsible=this.allowCollapse&&!!this.$slots.default},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(t){this.$refs.actions&&(this.focused?(t.preventDefault(),this.$refs.actions.$refs.menuButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.menuButton.$el.blur())},isExternal(t){return t&&t.match(/[a-z]+:\/\//i)}}};var Jo=function(){var t=this,e=t._self._c;return e("li",{staticClass:"app-navigation-entry-wrapper",class:{"app-navigation-entry--opened":t.opened,"app-navigation-entry--pinned":t.pinned,"app-navigation-entry--collapsible":t.collapsible},attrs:{id:t.id}},[e(t.isRouterLink?"router-link":"NcVNodes",{tag:"component",attrs:{custom:!!t.isRouterLink,to:t.to,exact:t.isRouterLink?t.exact:null},scopedSlots:t._u([{key:"default",fn:function({href:i,navigate:n,isActive:s}){return[e("div",{staticClass:"app-navigation-entry",class:{"app-navigation-entry--editing":t.editingActive,"app-navigation-entry--deleted":t.undo,active:s&&t.to||t.active}},[t.undo?t._e():e("a",{staticClass:"app-navigation-entry-link",attrs:{"aria-current":t.active||s&&t.to?"page":void 0,"aria-description":t.ariaDescription,"aria-expanded":t.hasChildren?t.opened.toString():void 0,href:t.href||i||"#",target:t.isExternal(t.href)?"_blank":void 0,title:t.title||t.name},on:{blur:t.handleBlur,click:function(a){return t.onClick(a,n,i)},focus:t.handleFocus,keydown:function(a){return!a.type.indexOf("key")&&t._k(a.keyCode,"tab",9,a.key,"Tab")||a.ctrlKey||a.shiftKey||a.altKey||a.metaKey?null:t.handleTab.apply(null,arguments)}}},[e("div",{staticClass:"app-navigation-entry-icon",class:{[t.icon]:t.icon}},[t.loading?e("NcLoadingIcon"):t._t("icon")],2),t.editingActive?t._e():e("span",{staticClass:"app-navigation-entry__name"},[t._v(" "+t._s(t.name)+" ")]),t.editingActive?e("div",{staticClass:"editingContainer"},[e("NcInputConfirmCancel",{ref:"editingInput",attrs:{placeholder:t.editPlaceholder!==""?t.editPlaceholder:t.name,primary:s&&t.to||t.active},on:{cancel:t.cancelEditing,confirm:t.handleEditingDone},model:{value:t.editingValue,callback:function(a){t.editingValue=a},expression:"editingValue"}})],1):t._e()]),t.undo?e("div",{staticClass:"app-navigation-entry__deleted"},[e("div",{staticClass:"app-navigation-entry__deleted-description"},[t._v(" "+t._s(t.name)+" ")])]):t._e(),t.hasUtils&&!t.editingActive?e("div",{staticClass:"app-navigation-entry__utils",class:{"app-navigation-entry__utils--display-actions":t.forceDisplayActions||t.menuOpenLocalValue||t.menuOpen}},[t.$slots.counter?e("div",{staticClass:"app-navigation-entry__counter-wrapper"},[t._t("counter")],2):t._e(),t.$slots.actions||t.editable&&!t.editingActive||t.undo?e("NcActions",{ref:"actions",staticClass:"app-navigation-entry__actions",attrs:{inline:t.inlineActions,container:"#app-navigation-vue","boundaries-element":t.actionsBoundariesElement,placement:t.menuPlacement,open:t.menuOpen,type:s&&t.to||t.active?"primary":null,"force-menu":t.forceMenu,"default-icon":t.menuIcon},on:{"update:open":t.onMenuToggle},scopedSlots:t._u([{key:"icon",fn:function(){return[t._t("menu-icon")]},proxy:!0}],null,!0)},[t.editable&&!t.editingActive?e("NcActionButton",{attrs:{"aria-label":t.editButtonAriaLabel},on:{click:t.handleEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.editLabel)+" ")]):t._e(),t.undo?e("NcActionButton",{attrs:{"aria-label":t.undoButtonAriaLabel},on:{click:t.handleUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Undo",{attrs:{size:20}})]},proxy:!0}],null,!0)}):t._e(),t._t("actions")],2):t._e()],1):t._e(),t.collapsible?e("NcAppNavigationIconCollapsible",{attrs:{open:t.opened},on:{click:function(a){return a.preventDefault(),a.stopPropagation(),t.toggleCollapse.apply(null,arguments)}}}):t._e(),t._t("extra")],2)]}}],null,!0)}),t.canHaveChildren&&t.hasChildren?e("ul",{staticClass:"app-navigation-entry__children"},[t._t("default")],2):t._e()],1)},Yo=[],Qo=x(Xo,Jo,Yo,!1,null,"97fce21a");const tr=Qo.exports,er={props:{excludeClickOutsideSelectors:{type:[String,Array],default:()=>[]}},computed:{clickOutsideOptions(){return{ignore:Array.isArray(this.excludeClickOutsideSelectors)?this.excludeClickOutsideSelectors:[this.excludeClickOutsideSelectors]}}}};it(un);const ir={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var nr=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon cog-icon",attrs:{"aria-hidden":t.title?null:!0,"aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},sr=[],ar=x(ir,nr,sr,!1,null,null);const or=ar.exports,rr={directives:{ClickOutside:Hi},components:{Cog:or},mixins:[er],props:{name:{type:String,required:!1,default:T("Settings")}},data(){return{open:!1}},computed:{clickOutsideConfig(){return[this.closeMenu,this.clickOutsideOptions]}},methods:{toggleMenu(){this.open=!this.open},closeMenu(){this.open=!1}}};var lr=function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.clickOutsideConfig,expression:"clickOutsideConfig"}],class:{open:t.open},attrs:{id:"app-settings"}},[e("div",{attrs:{id:"app-settings__header"}},[e("button",{staticClass:"settings-button",attrs:{type:"button","aria-expanded":t.open?"true":"false","aria-controls":"app-settings__content"},on:{click:t.toggleMenu}},[e("Cog",{staticClass:"settings-button__icon",attrs:{size:20}}),e("span",{staticClass:"settings-button__label"},[t._v(t._s(t.name))])],1)]),e("Transition",{attrs:{name:"slide-up"}},[e("div",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],attrs:{id:"app-settings__content"}},[t._t("default")],2)])],1)},cr=[],ur=x(rr,lr,cr,!1,null,"981e215c");const pr=ur.exports,dr={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var hr=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon content-copy-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(i){return t.$emit("click",i)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},fr=[],vr=Dt(dr,hr,fr,!1,null,null);const gr=vr.exports,mr=Ut({__name:"ActivityAppNavigation",setup(t){const{rssLink:e,personalSettingsLink:i}=ne(Rt,"settings"),n=ne(Rt,"navigationList"),s=at(e),a=_t(()=>!!s.value);async function o(){try{const{data:l}=await We.post(Ze("/apps/activity/settings/feed"),{enable:!a.value});s.value=l.data.rsslink}catch(l){qe(B("activity","Could not enable RSS link")),ie.error(l)}}async function r(){try{window.navigator.clipboard.writeText(s.value),dn(B("activity","RSS link copied to clipboard"))}catch(l){ie.debug(l),window.prompt(B("activity","Could not copy the RSS link, please copy manually:"),s.value)}}return{__sfc:!0,initialRSSLink:e,personalSettingsLink:i,navigationList:n,rssLink:s,hasRSSLink:a,toggleRSSLink:o,copyRSSLink:r,t:B,NcAppNavigation:fo,NcAppNavigationItem:tr,NcAppNavigationSettings:pr,NcButton:lt,NcCheckboxRadioSwitch:pn,NcInputField:ji,IconContentCopy:gr}}});var yr=function(){var t=this,e=t._self._c,i=t._self._setupProxy;return e(i.NcAppNavigation,{attrs:{"aria-label":i.t("activity","Activity")},scopedSlots:t._u([{key:"list",fn:function(){return t._l(i.navigationList,function(n){return e(i.NcAppNavigationItem,{key:n.id,attrs:{"data-navigation":n.id,to:n.id,name:n.name},scopedSlots:t._u([n.icon?{key:"icon",fn:function(){return[e("img",{staticClass:"navigation-icon",attrs:{alt:"",src:n.icon,role:"presentation"}})]},proxy:!0}:null],null,!0)})})},proxy:!0},{key:"footer",fn:function(){return[e(i.NcAppNavigationSettings,{attrs:{name:i.t("activity","Activity settings")}},[e(i.NcCheckboxRadioSwitch,{attrs:{type:"switch",checked:i.hasRSSLink},on:{"update:checked":i.toggleRSSLink}},[t._v(" "+t._s(i.t("activity","Enable RSS feed"))+" ")]),i.hasRSSLink?e(i.NcInputField,{attrs:{label:i.t("activity","RSS feed"),"show-trailing-button":!0,"trailing-button-label":i.t("activity","Copy RSS feed link"),readonly:"readonly"},on:{"trailing-button-click":i.copyRSSLink},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e(i.IconContentCopy,{attrs:{size:20}})]},proxy:!0}],null,!1,4025534811),model:{value:i.rssLink,callback:function(n){i.rssLink=n},expression:"rssLink"}}):t._e(),e(i.NcButton,{staticClass:"settings-link",attrs:{href:i.personalSettingsLink,title:i.t("activity","Personal notification settings"),type:"tertiary"}},[t._v(" "+t._s(i.t("activity","Personal notification settings"))+" ")])],1)]},proxy:!0}])})},_r=[],Cr=Dt(mr,yr,_r,!1,null,null);const br=Cr.exports,xr=[{path:"/",name:"root",redirect:{path:"/all"}},{path:"/:filter?",components:{default:ja,navigation:br},props:{default:!0}}];R.prototype.t=B,R.prototype.n=Oi,R.use(Fe);const Sr=new Fe({mode:"history",base:Ze("/apps/activity"),linkActiveClass:"active",routes:xr});new R({el:"#content",name:"ActivityRoot",router:Sr,render:t=>t(En)}); diff --git a/js/activity-app.mjs.map b/js/activity-app.mjs.map index c14d31770..46d07ad5b 100644 --- a/js/activity-app.mjs.map +++ b/js/activity-app.mjs.map @@ -1 +1 @@ -{"version":3,"file":"activity-app.mjs","sources":["../node_modules/nanoid/non-secure/index.js","../node_modules/@linusborg/vue-simple-portal/dist/index.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcContent-DKpTIl9F.mjs","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-lEyly7Jk.mjs","../node_modules/vue-frag/dist/frag.esm.js","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/@vueuse/core/node_modules/@vueuse/shared/index.mjs","../node_modules/@vueuse/core/index.mjs","../node_modules/vue-router/composables.mjs","../src/views/ActivityAppFeed.vue","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigationList.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationToggle-BXainLDc.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-CxsxPI9x.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs","../node_modules/@nextcloud/vue/dist/Components/NcVNodes.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ljACquzS.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-PXVZ7mLT.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-MvvOWnip.mjs","../node_modules/@nextcloud/vue/dist/Mixins/clickOutsideOptions.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-DScz0UWm.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nexport { nanoid, customAlphabet }\n","\n/**\n * vue-simple-portal\n * version: 0.1.5,\n * (c) Thorsten Lünborg, 2021 - present\n * LICENCE: Apache-2.0\n * http://github.com/linusborg/vue-simple-portal\n*/\nimport Vue from 'vue';\nimport { nanoid } from 'nanoid/non-secure';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar config = {\n selector: \"vue-portal-target-\".concat(nanoid())\n};\nvar setSelector = function setSelector(selector) {\n return config.selector = selector;\n};\nvar isBrowser = typeof window !== 'undefined' && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) !== undefined;\n\nvar TargetContainer = Vue.extend({\n // as an abstract component, it doesn't appear in\n // the $parent chain of components.\n // which means the next parent of any component rendered inside of this oen\n // will be the parent from which is was sent\n // @ts-expect-error\n abstract: true,\n name: 'PortalOutlet',\n props: ['nodes', 'tag'],\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n render: function render(h) {\n var nodes = this.updatedNodes && this.updatedNodes();\n if (!nodes) return h();\n return nodes.length === 1 && !nodes[0].text ? nodes : h(this.tag || 'DIV', nodes);\n },\n destroyed: function destroyed() {\n var el = this.$el;\n el && el.parentNode.removeChild(el);\n }\n});\n\nvar Portal = Vue.extend({\n name: 'VueSimplePortal',\n props: {\n disabled: {\n type: Boolean\n },\n prepend: {\n type: Boolean\n },\n selector: {\n type: String,\n default: function _default() {\n return \"#\".concat(config.selector);\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n }\n },\n render: function render(h) {\n if (this.disabled) {\n var nodes = this.$scopedSlots && this.$scopedSlots.default();\n if (!nodes) return h();\n return nodes.length < 2 && !nodes[0].text ? nodes : h(this.tag, nodes);\n }\n\n return h();\n },\n created: function created() {\n if (!this.getTargetEl()) {\n this.insertTargetEl();\n }\n },\n updated: function updated() {\n var _this = this;\n\n // We only update the target container component\n // if the scoped slot function is a fresh one\n // The new slot syntax (since Vue 2.6) can cache unchanged slot functions\n // and we want to respect that here.\n this.$nextTick(function () {\n if (!_this.disabled && _this.slotFn !== _this.$scopedSlots.default) {\n _this.container.updatedNodes = _this.$scopedSlots.default;\n }\n\n _this.slotFn = _this.$scopedSlots.default;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.unmount();\n },\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmount() : this.$nextTick(this.mount);\n }\n }\n },\n methods: {\n // This returns the element into which the content should be mounted.\n getTargetEl: function getTargetEl() {\n if (!isBrowser) return;\n return document.querySelector(this.selector);\n },\n insertTargetEl: function insertTargetEl() {\n if (!isBrowser) return;\n var parent = document.querySelector('body');\n var child = document.createElement(this.tag);\n child.id = this.selector.substring(1);\n parent.appendChild(child);\n },\n mount: function mount() {\n if (!isBrowser) return;\n var targetEl = this.getTargetEl();\n var el = document.createElement('DIV');\n\n if (this.prepend && targetEl.firstChild) {\n targetEl.insertBefore(el, targetEl.firstChild);\n } else {\n targetEl.appendChild(el);\n }\n\n this.container = new TargetContainer({\n el: el,\n parent: this,\n propsData: {\n tag: this.tag,\n nodes: this.$scopedSlots.default\n }\n });\n },\n unmount: function unmount() {\n if (this.container) {\n this.container.$destroy();\n delete this.container;\n }\n }\n }\n});\n\nfunction install(_Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _Vue.component(options.name || 'portal', Portal);\n\n if (options.defaultSelector) {\n setSelector(options.defaultSelector);\n }\n}\n\nif (typeof window !== 'undefined' && window.Vue && window.Vue === Vue) {\n // plugin was inlcuded directly in a browser\n Vue.use(install);\n}\n\nexport default install;\nexport { Portal, config, setSelector };\n","import '../assets/NcContent-ZFNIjylG.css';\nimport { emit } from \"@nextcloud/event-bus\";\nimport { Portal } from \"@linusborg/vue-simple-portal\";\nimport { useIsMobile } from \"../Composables/useIsMobile.mjs\";\nimport { r as register, G as t29, a as t } from \"./_l10n-JYjUKekn.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-DjrkBUkC.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t29);\nconst contentSvg = '\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n';\nconst navigationSvg = '\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n';\nconst _sfc_main = {\n name: \"NcContent\",\n components: {\n NcButton,\n NcIconSvgWrapper,\n Teleport: Portal\n },\n provide() {\n return {\n \"NcContent:setHasAppNavigation\": this.setAppNavigation,\n \"NcContent:selector\": \"#content-vue\"\n };\n },\n props: {\n appName: {\n type: String,\n required: true\n }\n },\n setup() {\n const isMobile = useIsMobile();\n return {\n isMobile\n };\n },\n data() {\n return {\n hasAppNavigation: false,\n currentFocus: \"\"\n // unknown\n };\n },\n computed: {\n currentImage() {\n if (this.currentFocus === \"navigation\") {\n return navigationSvg;\n }\n return contentSvg;\n }\n },\n beforeMount() {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n },\n methods: {\n t,\n openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n this.$nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n },\n setAppNavigation(value) {\n this.hasAppNavigation = value;\n if (this.currentFocus === \"\") {\n this.currentFocus = \"navigation\";\n }\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { class: [\"content\", \"app-\".concat(_vm.appName.toLowerCase())], attrs: { \"id\": \"content-vue\" } }, [_c(\"Teleport\", { attrs: { \"selector\": \"#skip-actions\" } }, [_c(\"div\", { staticClass: \"vue-skip-actions__container\" }, [_c(\"div\", { staticClass: \"vue-skip-actions__headline\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Keyboard navigation help\")) + \" \")]), _c(\"div\", { staticClass: \"vue-skip-actions__buttons\" }, [_c(\"NcButton\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.hasAppNavigation, expression: \"hasAppNavigation\" }], attrs: { \"type\": \"tertiary\", \"href\": \"#app-navigation-vue\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openAppNavigation.apply(null, arguments);\n }, \"focusin\": function($event) {\n _vm.currentFocus = \"navigation\";\n }, \"mouseover\": function($event) {\n _vm.currentFocus = \"navigation\";\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Skip to app navigation\")) + \" \")]), _c(\"NcButton\", { attrs: { \"type\": \"tertiary\", \"href\": \"#app-content-vue\" }, on: { \"focusin\": function($event) {\n _vm.currentFocus = \"content\";\n }, \"mouseover\": function($event) {\n _vm.currentFocus = \"content\";\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Skip to main content\")) + \" \")])], 1), _c(\"NcIconSvgWrapper\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !_vm.isMobile, expression: \"!isMobile\" }], staticClass: \"vue-skip-actions__image\", attrs: { \"svg\": _vm.currentImage, \"size\": \"auto\" } })], 1), _vm._v(\"  \")]), _vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"d8f0539f\"\n);\nconst NcContent = __component__.exports;\nexport {\n NcContent as N\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar splitpanes_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __vue2_script$1 = {\n name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean },\n pushOtherPanes: { type: Boolean, default: true },\n dblClickSplitter: { type: Boolean, default: true },\n rtl: { type: Boolean, default: false },\n firstSplitter: { type: Boolean }\n },\n provide() {\n return {\n requestUpdate: this.requestUpdate,\n onPaneAdd: this.onPaneAdd,\n onPaneRemove: this.onPaneRemove,\n onPaneClick: this.onPaneClick\n };\n },\n data: () => ({\n container: null,\n ready: false,\n panes: [],\n touch: {\n mouseDown: false,\n dragging: false,\n activeSplitter: null\n },\n splitterTaps: {\n splitter: null,\n timeoutId: null\n }\n }),\n computed: {\n panesCount() {\n return this.panes.length;\n },\n indexedPanes() {\n return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});\n }\n },\n methods: {\n updatePaneComponents() {\n this.panes.forEach((pane2) => {\n pane2.update && pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n },\n bindEvents() {\n document.addEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.addEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"touchend\", this.onMouseUp);\n }\n },\n unbindEvents() {\n document.removeEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.removeEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"touchend\", this.onMouseUp);\n }\n },\n onMouseDown(event, splitterIndex) {\n this.bindEvents();\n this.touch.mouseDown = true;\n this.touch.activeSplitter = splitterIndex;\n },\n onMouseMove(event) {\n if (this.touch.mouseDown) {\n event.preventDefault();\n this.touch.dragging = true;\n this.calculatePanesSize(this.getCurrentMouseDrag(event));\n this.$emit(\"resize\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n },\n onMouseUp() {\n if (this.touch.dragging) {\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n this.touch.mouseDown = false;\n setTimeout(() => {\n this.touch.dragging = false;\n this.unbindEvents();\n }, 100);\n },\n onSplitterClick(event, splitterIndex) {\n if (\"ontouchstart\" in window) {\n event.preventDefault();\n if (this.dblClickSplitter) {\n if (this.splitterTaps.splitter === splitterIndex) {\n clearTimeout(this.splitterTaps.timeoutId);\n this.splitterTaps.timeoutId = null;\n this.onSplitterDblClick(event, splitterIndex);\n this.splitterTaps.splitter = null;\n } else {\n this.splitterTaps.splitter = splitterIndex;\n this.splitterTaps.timeoutId = setTimeout(() => {\n this.splitterTaps.splitter = null;\n }, 500);\n }\n }\n }\n if (!this.touch.dragging)\n this.$emit(\"splitter-click\", this.panes[splitterIndex]);\n },\n onSplitterDblClick(event, splitterIndex) {\n let totalMinSizes = 0;\n this.panes = this.panes.map((pane2, i) => {\n pane2.size = i === splitterIndex ? pane2.max : pane2.min;\n if (i !== splitterIndex)\n totalMinSizes += pane2.min;\n return pane2;\n });\n this.panes[splitterIndex].size -= totalMinSizes;\n this.$emit(\"pane-maximize\", this.panes[splitterIndex]);\n },\n onPaneClick(event, paneId) {\n this.$emit(\"pane-click\", this.indexedPanes[paneId]);\n },\n getCurrentMouseDrag(event) {\n const rect = this.container.getBoundingClientRect();\n const { clientX, clientY } = \"ontouchstart\" in window && event.touches ? event.touches[0] : event;\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n };\n },\n getCurrentDragPercentage(drag) {\n drag = drag[this.horizontal ? \"y\" : \"x\"];\n const containerSize = this.container[this.horizontal ? \"clientHeight\" : \"clientWidth\"];\n if (this.rtl && !this.horizontal)\n drag = containerSize - drag;\n return drag * 100 / containerSize;\n },\n calculatePanesSize(drag) {\n const splitterIndex = this.touch.activeSplitter;\n let sums = {\n prevPanesSize: this.sumPrevPanesSize(splitterIndex),\n nextPanesSize: this.sumNextPanesSize(splitterIndex),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);\n const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);\n const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);\n let panesToResize = [splitterIndex, splitterIndex + 1];\n let paneBefore = this.panes[panesToResize[0]] || null;\n let paneAfter = this.panes[panesToResize[1]] || null;\n const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;\n const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n if (paneBeforeMaxReached) {\n paneBefore.size = paneBefore.max;\n paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);\n } else {\n paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);\n paneAfter.size = paneAfter.max;\n }\n return;\n }\n if (this.pushOtherPanes) {\n const vars = this.doPushOtherPanes(sums, dragPercentage);\n if (!vars)\n return;\n ({ sums, panesToResize } = vars);\n paneBefore = this.panes[panesToResize[0]] || null;\n paneAfter = this.panes[panesToResize[1]] || null;\n }\n if (paneBefore !== null) {\n paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);\n }\n if (paneAfter !== null) {\n paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);\n }\n },\n doPushOtherPanes(sums, dragPercentage) {\n const splitterIndex = this.touch.activeSplitter;\n const panesToResize = [splitterIndex, splitterIndex + 1];\n if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {\n panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;\n sums.prevReachedMinPanes = 0;\n if (panesToResize[0] < splitterIndex) {\n this.panes.forEach((pane2, i) => {\n if (i > panesToResize[0] && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n }\n sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);\n if (panesToResize[0] === void 0) {\n sums.prevReachedMinPanes = 0;\n this.panes[0].size = this.panes[0].min;\n this.panes.forEach((pane2, i) => {\n if (i > 0 && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;\n return null;\n }\n }\n if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {\n panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;\n sums.nextReachedMinPanes = 0;\n if (panesToResize[1] > splitterIndex + 1) {\n this.panes.forEach((pane2, i) => {\n if (i > splitterIndex && i < panesToResize[1]) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n }\n sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);\n if (panesToResize[1] === void 0) {\n sums.nextReachedMinPanes = 0;\n this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;\n this.panes.forEach((pane2, i) => {\n if (i < this.panesCount - 1 && i >= splitterIndex + 1) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;\n return null;\n }\n }\n return { sums, panesToResize };\n },\n sumPrevPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);\n },\n sumNextPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);\n },\n findPrevExpandedPane(splitterIndex) {\n const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);\n return pane2 || {};\n },\n findNextExpandedPane(splitterIndex) {\n const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);\n return pane2 || {};\n },\n checkSplitpanesNodes() {\n const children = Array.from(this.container.children);\n children.forEach((child) => {\n const isPane = child.classList.contains(\"splitpanes__pane\");\n const isSplitter = child.classList.contains(\"splitpanes__splitter\");\n if (!isPane && !isSplitter) {\n child.parentNode.removeChild(child);\n console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\");\n return;\n }\n });\n },\n addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {\n const splitterIndex = paneIndex - 1;\n const elm = document.createElement(\"div\");\n elm.classList.add(\"splitpanes__splitter\");\n if (!isVeryFirst) {\n elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);\n if (typeof window !== \"undefined\" && \"ontouchstart\" in window) {\n elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);\n }\n elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);\n }\n if (this.dblClickSplitter) {\n elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);\n }\n nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);\n },\n removeSplitter(node) {\n node.onmousedown = void 0;\n node.onclick = void 0;\n node.ondblclick = void 0;\n node.parentNode.removeChild(node);\n },\n redoSplitters() {\n const children = Array.from(this.container.children);\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__splitter\"))\n this.removeSplitter(el);\n });\n let paneIndex = 0;\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__pane\")) {\n if (!paneIndex && this.firstSplitter)\n this.addSplitter(paneIndex, el, true);\n else if (paneIndex)\n this.addSplitter(paneIndex, el);\n paneIndex++;\n }\n });\n },\n requestUpdate(_a) {\n var _b = _a, { target } = _b, args = __objRest(_b, [\"target\"]);\n const pane2 = this.indexedPanes[target._uid];\n Object.entries(args).forEach(([key, value]) => pane2[key] = value);\n },\n onPaneAdd(pane2) {\n let index = -1;\n Array.from(pane2.$el.parentNode.children).some((el) => {\n if (el.className.includes(\"splitpanes__pane\"))\n index++;\n return el === pane2.$el;\n });\n const min = parseFloat(pane2.minSize);\n const max = parseFloat(pane2.maxSize);\n this.panes.splice(index, 0, {\n id: pane2._uid,\n index,\n min: isNaN(min) ? 0 : min,\n max: isNaN(max) ? 100 : max,\n size: pane2.size === null ? null : parseFloat(pane2.size),\n givenSize: pane2.size,\n update: pane2.update\n });\n this.panes.forEach((p, i) => p.index = i);\n if (this.ready) {\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ addedPane: this.panes[index] });\n this.$emit(\"pane-add\", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n }\n },\n onPaneRemove(pane2) {\n const index = this.panes.findIndex((p) => p.id === pane2._uid);\n const removed = this.panes.splice(index, 1)[0];\n this.panes.forEach((p, i) => p.index = i);\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });\n this.$emit(\"pane-remove\", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n },\n resetPaneSizes(changedPanes = {}) {\n if (!changedPanes.addedPane && !changedPanes.removedPane)\n this.initialPanesSizing();\n else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))\n this.equalizeAfterAddOrRemove(changedPanes);\n else\n this.equalize();\n if (this.ready)\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n },\n equalize() {\n const equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n this.panes.forEach((pane2) => {\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n initialPanesSizing() {\n 100 / this.panesCount;\n let leftToAllocate = 100;\n let ungrowable = [];\n let unshrinkable = [];\n let definedSizes = 0;\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size !== null)\n definedSizes++;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n let leftToAllocate2 = 100;\n if (leftToAllocate > 0.1) {\n this.panes.forEach((pane2) => {\n if (pane2.size === null) {\n pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);\n }\n leftToAllocate2 -= pane2.size;\n });\n if (leftToAllocate2 > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n }\n },\n equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {\n let equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n if (addedPane && addedPane.givenSize !== null) {\n equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);\n }\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (Math.abs(leftToAllocate) < 0.1)\n return;\n this.panes.forEach((pane2) => {\n if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)\n ;\n else\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n readjustSizes(leftToAllocate, ungrowable, unshrinkable) {\n let equalSpaceToAllocate;\n if (leftToAllocate > 0)\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);\n else\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);\n this.panes.forEach((pane2, i) => {\n if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n } else if (!unshrinkable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n }\n pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n if (Math.abs(leftToAllocate) > 0.1) {\n this.$nextTick(() => {\n if (this.ready) {\n console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n }\n });\n }\n }\n },\n watch: {\n panes: {\n deep: true,\n immediate: false,\n handler() {\n this.updatePaneComponents();\n }\n },\n horizontal() {\n this.updatePaneComponents();\n },\n firstSplitter() {\n this.redoSplitters();\n },\n dblClickSplitter(enable) {\n const splitters = [...this.container.querySelectorAll(\".splitpanes__splitter\")];\n splitters.forEach((splitter, i) => {\n splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;\n });\n }\n },\n beforeDestroy() {\n this.ready = false;\n },\n mounted() {\n this.container = this.$refs.container;\n this.checkSplitpanesNodes();\n this.redoSplitters();\n this.resetPaneSizes();\n this.$emit(\"ready\");\n this.ready = true;\n },\n render(h) {\n return h(\"div\", {\n ref: \"container\",\n class: [\n \"splitpanes\",\n `splitpanes--${this.horizontal ? \"horizontal\" : \"vertical\"}`,\n {\n \"splitpanes--dragging\": this.touch.dragging\n }\n ]\n }, this.$slots.default);\n }\n};\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar splitpanes = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"splitpanes__pane\", style: _vm.style, on: { \"click\": function($event) {\n return _vm.onPaneClick($event, _vm._uid);\n } } }, [_vm._t(\"default\")], 2);\n};\nvar staticRenderFns = [];\nconst __vue2_script = {\n name: \"pane\",\n inject: [\"requestUpdate\", \"onPaneAdd\", \"onPaneRemove\", \"onPaneClick\"],\n props: {\n size: { type: [Number, String], default: null },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n data: () => ({\n style: {}\n }),\n mounted() {\n this.onPaneAdd(this);\n },\n beforeDestroy() {\n this.onPaneRemove(this);\n },\n methods: {\n update(style) {\n this.style = style;\n }\n },\n computed: {\n sizeNumber() {\n return this.size || this.size === 0 ? parseFloat(this.size) : null;\n },\n minSizeNumber() {\n return parseFloat(this.minSize);\n },\n maxSizeNumber() {\n return parseFloat(this.maxSize);\n }\n },\n watch: {\n sizeNumber(size) {\n this.requestUpdate({ target: this, size });\n },\n minSizeNumber(min) {\n this.requestUpdate({ target: this, min });\n },\n maxSizeNumber(max) {\n this.requestUpdate({ target: this, max });\n }\n }\n};\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar pane = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { pane as Pane, splitpanes as Splitpanes };\n","import '../assets/NcAppContent-DVBVZyuW.css';\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { r as register, D as t26, a as t } from \"./_l10n-JYjUKekn.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { A as ArrowRight } from \"./ArrowRight-KsL2PC-o.mjs\";\nimport { useIsMobile } from \"../Composables/useIsMobile.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Pane, Splitpanes } from \"splitpanes\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t26);\nconst _sfc_main$1 = {\n name: \"NcAppDetailsToggle\",\n directives: {\n tooltip: VTooltip\n },\n components: {\n NcButton,\n ArrowRight\n },\n setup() {\n return {\n isMobile: useIsMobile()\n };\n },\n computed: {\n title() {\n return t(\"Go back to the list\");\n }\n },\n watch: {\n isMobile: {\n immediate: true,\n handler() {\n this.toggleAppNavigationButton(this.isMobile);\n }\n }\n },\n beforeDestroy() {\n if (this.isMobile) {\n this.toggleAppNavigationButton(false);\n }\n },\n methods: {\n toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : null;\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"NcButton\", { directives: [{ name: \"tooltip\", rawName: \"v-tooltip\", value: _vm.title, expression: \"title\" }], staticClass: \"app-details-toggle\", class: { \"app-details-toggle--mobile\": _vm.isMobile }, attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.title }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowRight\", { attrs: { \"size\": 20 } })];\n }, proxy: true }]) });\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"7692fc78\"\n);\nconst NcAppDetailsToggle = __component__$1.exports;\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state\n */\n allowSwipeNavigation: {\n type: Boolean,\n default: true\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * Allows you to set the default height of the resizable list in % on horizontal-split\n * Must be between listMinWidth and listMaxWidth\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * Allows you to set the minimum height of the list column in % on horizontal-split\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * Allows you to set the maximum height of the list column in % on horizontal-split\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: true\n },\n /**\n * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n }\n },\n emits: [\n \"update:showDetails\",\n \"resize:list\"\n ],\n setup() {\n return {\n isMobile: useIsMobile()\n };\n },\n data() {\n return {\n contentHeight: 0,\n hasList: false,\n hasContent: false,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return \"pane-list-size-\".concat(this.paneConfigKey);\n }\n try {\n return \"pane-list-size-\".concat(appName);\n } catch (e) {\n console.info(\"[INFO] AppContent:\", \"falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n }\n },\n updated() {\n this.checkSlots();\n },\n mounted() {\n if (this.allowSwipeNavigation) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.checkSlots();\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resize:list\", { size: listPaneSize });\n console.debug(\"AppContent pane config\", listPaneSize);\n },\n // $slots is not reactive, we need to update this manually\n checkSlots() {\n this.hasList = !!this.$scopedSlots.list;\n this.hasContent = !!this.$scopedSlots.default;\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n console.debug(\"AppContent pane config\", listPaneSize);\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"main\", { staticClass: \"app-content no-snapper\", class: { \"app-content--has-list\": _vm.hasList }, attrs: { \"id\": \"app-content-vue\" } }, [_vm.pageHeading ? _c(\"h1\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(_vm.pageHeading) + \" \")]) : _vm._e(), _vm.hasList ? [_vm.isMobile || _vm.layout === \"no-split\" ? _c(\"div\", { staticClass: \"app-content-wrapper app-content-wrapper--no-split\", class: {\n \"app-content-wrapper--show-details\": _vm.showDetails,\n \"app-content-wrapper--show-list\": !_vm.showDetails,\n \"app-content-wrapper--mobile\": _vm.isMobile\n } }, [_vm.showDetails ? _c(\"NcAppDetailsToggle\", { nativeOn: { \"click\": function($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.hideDetails.apply(null, arguments);\n } } }) : _vm._e(), !_vm.showDetails ? _vm._t(\"list\") : _vm._t(\"default\")], 2) : _vm.layout === \"vertical-split\" || _vm.layout === \"horizontal-split\" ? _c(\"div\", { staticClass: \"app-content-wrapper\" }, [_c(\"Splitpanes\", { staticClass: \"default-theme\", class: {\n \"splitpanes--horizontal\": _vm.layout === \"horizontal-split\",\n \"splitpanes--vertical\": _vm.layout === \"vertical-split\"\n }, attrs: { \"horizontal\": _vm.layout === \"horizontal-split\" }, on: { \"resized\": _vm.handlePaneResize } }, [_c(\"Pane\", { staticClass: \"splitpanes__pane-list\", attrs: { \"size\": _vm.listPaneSize || _vm.paneDefaults.list.size, \"min-size\": _vm.paneDefaults.list.min, \"max-size\": _vm.paneDefaults.list.max } }, [_vm._t(\"list\")], 2), _c(\"Pane\", { staticClass: \"splitpanes__pane-details\", attrs: { \"size\": _vm.detailsPaneSize, \"min-size\": _vm.paneDefaults.details.min, \"max-size\": _vm.paneDefaults.details.max } }, [_vm._t(\"default\")], 2)], 1)], 1) : _vm._e()] : _vm._e(), !_vm.hasList ? _vm._t(\"default\") : _vm._e()], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"de6986e3\"\n);\nconst NcAppContent = __component__.exports;\nexport {\n NcAppContent as N\n};\n","var $placeholder = Symbol();\n\nvar $fakeParent = Symbol();\n\nvar $nextSiblingPatched = Symbol();\n\nvar $childNodesPatched = Symbol();\n\nvar isFrag = function isFrag(node) {\n return \"frag\" in node;\n};\n\nvar parentNodeDescriptor = {\n get: function get() {\n return this[$fakeParent] || this.parentElement;\n },\n configurable: true\n};\n\nvar patchParentNode = function patchParentNode(node, fakeParent) {\n if ($fakeParent in node) {\n return;\n }\n node[$fakeParent] = fakeParent;\n Object.defineProperty(node, \"parentNode\", parentNodeDescriptor);\n};\n\nvar nextSiblingDescriptor = {\n get: function get() {\n var childNodes = this.parentNode.childNodes;\n var index = childNodes.indexOf(this);\n if (index > -1) {\n return childNodes[index + 1] || null;\n }\n return null;\n }\n};\n\nvar patchNextSibling = function patchNextSibling(node) {\n if ($nextSiblingPatched in node) {\n return;\n }\n node[$nextSiblingPatched] = true;\n Object.defineProperty(node, \"nextSibling\", nextSiblingDescriptor);\n};\n\nvar getTopFragment = function getTopFragment(node, fromParent) {\n while (node.parentNode !== fromParent) {\n var _node = node, parentNode = _node.parentNode;\n if (parentNode) {\n node = parentNode;\n }\n }\n return node;\n};\n\nvar getChildNodes;\n\nvar getChildNodesWithFragments = function getChildNodesWithFragments(node) {\n if (!getChildNodes) {\n var _childNodesDescriptor = Object.getOwnPropertyDescriptor(Node.prototype, \"childNodes\");\n getChildNodes = _childNodesDescriptor.get;\n }\n var realChildNodes = getChildNodes.apply(node);\n var childNodes = Array.from(realChildNodes).map((function(childNode) {\n return getTopFragment(childNode, node);\n }));\n return childNodes.filter((function(childNode, index) {\n return childNode !== childNodes[index - 1];\n }));\n};\n\nvar childNodesDescriptor = {\n get: function get() {\n return this.frag || getChildNodesWithFragments(this);\n }\n};\n\nvar firstChildDescriptor = {\n get: function get() {\n return this.childNodes[0] || null;\n }\n};\n\nfunction hasChildNodes() {\n return this.childNodes.length > 0;\n}\n\nvar patchChildNodes = function patchChildNodes(node) {\n if ($childNodesPatched in node) {\n return;\n }\n node[$childNodesPatched] = true;\n Object.defineProperties(node, {\n childNodes: childNodesDescriptor,\n firstChild: firstChildDescriptor\n });\n node.hasChildNodes = hasChildNodes;\n};\n\nfunction before() {\n var _this$frag$;\n (_this$frag$ = this.frag[0]).before.apply(_this$frag$, arguments);\n}\n\nfunction remove() {\n var frag = this.frag;\n var removed = frag.splice(0, frag.length);\n removed.forEach((function(node) {\n node.remove();\n }));\n}\n\nvar getFragmentLeafNodes = function getFragmentLeafNodes(children) {\n var _Array$prototype;\n return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, children.map((function(childNode) {\n return isFrag(childNode) ? getFragmentLeafNodes(childNode.frag) : childNode;\n })));\n};\n\nvar addPlaceholder = function addPlaceholder(node, insertBeforeNode) {\n var placeholder = node[$placeholder];\n insertBeforeNode.before(placeholder);\n patchParentNode(placeholder, node);\n node.frag.unshift(placeholder);\n};\n\nfunction removeChild(node) {\n if (isFrag(this)) {\n var hasChildInFragment = this.frag.indexOf(node);\n if (hasChildInFragment > -1) {\n var _this$frag$splice = this.frag.splice(hasChildInFragment, 1), removedNode = _this$frag$splice[0];\n if (this.frag.length === 0) {\n addPlaceholder(this, removedNode);\n }\n node.remove();\n }\n } else {\n var children = getChildNodesWithFragments(this);\n var hasChild = children.indexOf(node);\n if (hasChild > -1) {\n node.remove();\n }\n }\n return node;\n}\n\nfunction insertBefore(insertNode, insertBeforeNode) {\n var _this = this;\n var insertNodes = insertNode.frag || [ insertNode ];\n if (isFrag(this)) {\n if (insertNode[$fakeParent] === this && insertNode.parentElement) {\n return insertNode;\n }\n var _frag = this.frag;\n if (insertBeforeNode) {\n var index = _frag.indexOf(insertBeforeNode);\n if (index > -1) {\n _frag.splice.apply(_frag, [ index, 0 ].concat(insertNodes));\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n var _lastNode = _frag[_frag.length - 1];\n _frag.push.apply(_frag, insertNodes);\n _lastNode.after.apply(_lastNode, insertNodes);\n }\n removePlaceholder(this);\n } else if (insertBeforeNode) {\n if (this.childNodes.includes(insertBeforeNode)) {\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n this.append.apply(this, insertNodes);\n }\n insertNodes.forEach((function(node) {\n patchParentNode(node, _this);\n }));\n var lastNode = insertNodes[insertNodes.length - 1];\n patchNextSibling(lastNode);\n return insertNode;\n}\n\nfunction appendChild(node) {\n if (node[$fakeParent] === this && node.parentElement) {\n return node;\n }\n var frag = this.frag;\n var lastChild = frag[frag.length - 1];\n lastChild.after(node);\n patchParentNode(node, this);\n removePlaceholder(this);\n frag.push(node);\n return node;\n}\n\nvar removePlaceholder = function removePlaceholder(node) {\n var placeholder = node[$placeholder];\n if (node.frag[0] === placeholder) {\n node.frag.shift();\n placeholder.remove();\n }\n};\n\nvar innerHTMLDescriptor = {\n set: function set(htmlString) {\n var _this2 = this;\n if (this.frag[0] !== this[$placeholder]) {\n this.frag.slice().forEach((function(child) {\n return _this2.removeChild(child);\n }));\n }\n if (htmlString) {\n var domify = document.createElement(\"div\");\n domify.innerHTML = htmlString;\n Array.from(domify.childNodes).forEach((function(node) {\n _this2.appendChild(node);\n }));\n }\n },\n get: function get() {\n return \"\";\n }\n};\n\nvar frag = {\n inserted: function inserted(element) {\n var parentNode = element.parentNode, nextSibling = element.nextSibling, previousSibling = element.previousSibling;\n var childNodes = Array.from(element.childNodes);\n var placeholder = document.createComment(\"\");\n if (childNodes.length === 0) {\n childNodes.push(placeholder);\n }\n element.frag = childNodes;\n element[$placeholder] = placeholder;\n var fragment = document.createDocumentFragment();\n fragment.append.apply(fragment, getFragmentLeafNodes(childNodes));\n element.replaceWith(fragment);\n childNodes.forEach((function(node) {\n patchParentNode(node, element);\n patchNextSibling(node);\n }));\n patchChildNodes(element);\n Object.assign(element, {\n remove: remove,\n appendChild: appendChild,\n insertBefore: insertBefore,\n removeChild: removeChild,\n before: before\n });\n Object.defineProperty(element, \"innerHTML\", innerHTMLDescriptor);\n if (parentNode) {\n Object.assign(parentNode, {\n removeChild: removeChild,\n insertBefore: insertBefore\n });\n patchParentNode(element, parentNode);\n patchChildNodes(parentNode);\n }\n if (nextSibling) {\n patchNextSibling(element);\n }\n if (previousSibling) {\n patchNextSibling(previousSibling);\n }\n },\n unbind: function unbind(element) {\n element.remove();\n }\n};\n\nvar fragment = {\n name: \"Fragment\",\n directives: {\n frag: frag\n },\n render: function render(h) {\n return h(\"div\", {\n directives: [ {\n name: \"frag\"\n } ]\n }, this.$slots[\"default\"]);\n }\n};\n\nexport { fragment as Fragment, frag as default };\n","\n\n\n\n\n\n\n","export default \"\"","/**\n* @vue/shared v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(() => {\n mountToTarget();\n n2.el.__isMounted = true;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n delete n1.el.__isMounted;\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n","import '../assets/NcAppNavigationList-BIbyyT7b.css';\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"ul\", { staticClass: \"app-navigation-list\" }, [_vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"058e6060\"\n);\nconst NcAppNavigationList = __component__.exports;\nexport {\n NcAppNavigationList as default\n};\n","import '../assets/NcAppNavigationToggle-DvYpNzHv.css';\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { r as register, C as t19, a as t } from \"./_l10n-JYjUKekn.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t19);\nconst _sfc_main$2 = {\n name: \"MenuIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$2 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon menu-icon\", attrs: { \"aria-hidden\": _vm.title ? null : true, \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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\": \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst MenuIcon = __component__$2.exports;\nconst _sfc_main$1 = {\n name: \"MenuOpenIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$1 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon menu-open-icon\", attrs: { \"aria-hidden\": _vm.title ? null : true, \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"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\": \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst MenuOpenIcon = __component__$1.exports;\nconst _sfc_main = {\n name: \"NcAppNavigationToggle\",\n components: {\n NcButton,\n MenuIcon,\n MenuOpenIcon\n },\n props: {\n /**\n * Tracks whether the toggle has been clicked or not.\n * If it has been clicked, switches between the different MenuIcons\n * and emits a boolean indicating its opened status\n */\n open: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"update:open\"],\n computed: {\n label() {\n return this.open ? t(\"Close navigation\") : t(\"Open navigation\");\n }\n },\n methods: {\n /**\n * Once the toggle has been clicked, emits the toggle status\n * so parent components can gauge the status of the navigation button\n */\n toggleNavigation() {\n this.$emit(\"update:open\", !this.open);\n }\n }\n};\nvar _sfc_render = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"app-navigation-toggle-wrapper\" }, [_c(\"NcButton\", { staticClass: \"app-navigation-toggle\", attrs: { \"type\": \"tertiary\", \"aria-expanded\": _vm.open ? \"true\" : \"false\", \"aria-label\": _vm.label, \"title\": _vm.label, \"aria-controls\": \"app-navigation-vue\" }, on: { \"click\": _vm.toggleNavigation }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.open ? _c(\"MenuOpenIcon\", { attrs: { \"size\": 20 } }) : _c(\"MenuIcon\", { attrs: { \"size\": 20 } })];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"b6024aba\"\n);\nconst NcAppNavigationToggle = __component__.exports;\nexport {\n NcAppNavigationToggle as N\n};\n","import '../assets/NcAppNavigation-fhylfTxx.css';\nimport { useIsMobile } from \"../Composables/useIsMobile.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-Cecv_gjR.mjs\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport NcAppNavigationList from \"../Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationToggle } from \"./NcAppNavigationToggle-BXainLDc.mjs\";\nimport Vue from \"vue\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigation\",\n components: {\n NcAppNavigationList,\n NcAppNavigationToggle\n },\n // Injected from NcContent\n inject: {\n setHasAppNavigation: {\n default: () => () => Vue.util.warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n from: \"NcContent:setHasAppNavigation\"\n }\n },\n props: {\n /**\n * The aria label to describe the navigation\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * aria-labelledby attribute to describe the navigation\n */\n ariaLabelledby: {\n type: String,\n default: \"\"\n }\n },\n setup() {\n return {\n isMobile: useIsMobile()\n };\n },\n data() {\n return {\n open: !this.isMobile,\n focusTrap: null\n };\n },\n watch: {\n isMobile() {\n this.open = !this.isMobile;\n this.toggleFocusTrap();\n },\n open() {\n this.toggleFocusTrap();\n }\n },\n mounted() {\n this.setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", this.toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: this.open\n });\n this.focusTrap = createFocusTrap(this.$refs.appNavigationContainer, {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.appNavigationContainer,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n this.toggleFocusTrap();\n },\n unmounted() {\n this.setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", this.toggleNavigationByEventBus);\n this.focusTrap.deactivate();\n },\n methods: {\n /**\n * Toggle the navigation\n *\n * @param {boolean} [state] set the state instead of inverting the current one\n */\n toggleNavigation(state) {\n if (this.open === state) {\n emit(\"navigation-toggled\", {\n open: this.open\n });\n return;\n }\n this.open = typeof state === \"undefined\" ? !this.open : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: this.open\n });\n }, 1.5 * animationLength);\n },\n toggleNavigationByEventBus({ open }) {\n this.toggleNavigation(open);\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.isMobile && this.open) {\n this.focusTrap.activate();\n } else {\n this.focusTrap.deactivate();\n }\n },\n handleEsc() {\n if (this.isMobile) {\n this.toggleNavigation(false);\n }\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"appNavigationContainer\", staticClass: \"app-navigation\", class: { \"app-navigation--close\": !_vm.open } }, [_c(\"nav\", { staticClass: \"app-navigation__content\", attrs: { \"id\": \"app-navigation-vue\", \"aria-hidden\": _vm.open ? \"false\" : \"true\", \"aria-label\": _vm.ariaLabel || void 0, \"aria-labelledby\": _vm.ariaLabelledby || void 0, \"inert\": !_vm.open || void 0 }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n return _vm.handleEsc.apply(null, arguments);\n } } }, [_c(\"div\", { staticClass: \"app-navigation__search\" }, [_vm._t(\"search\")], 2), _c(\"div\", { staticClass: \"app-navigation__body\", class: { \"app-navigation__body--no-list\": !_vm.$scopedSlots.list } }, [_vm._t(\"default\")], 2), _vm.$scopedSlots.list ? _c(\"NcAppNavigationList\", { staticClass: \"app-navigation__list\" }, [_vm._t(\"list\")], 2) : _vm._e(), _vm._t(\"footer\")], 2), _c(\"NcAppNavigationToggle\", { attrs: { \"open\": _vm.open }, on: { \"update:open\": _vm.toggleNavigation } })], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"e7d078cc\"\n);\nconst NcAppNavigation = __component__.exports;\nexport {\n NcAppNavigation as N\n};\n","import '../assets/NcActionButton-D90PTEA5.css';\nimport { C as Check } from \"../chunks/Check-XHAzUBkX.mjs\";\nimport { C as ChevronRight } from \"../chunks/ChevronRight-C3eVhc5a.mjs\";\nimport { A as ActionTextMixin } from \"../chunks/actionText-fFcUPi2g.mjs\";\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n CheckIcon: Check,\n ChevronRightIcon: ChevronRight\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n props: {\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n default: null\n },\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ``\n */\n value: {\n type: String,\n default: null\n }\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the