diff --git a/js/activity-app.mjs b/js/activity-app.mjs index 3e31590ff..985905e05 100644 --- a/js/activity-app.mjs +++ b/js/activity-app.mjs @@ -1,5 +1,5 @@ -(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;inset-inline-start:0!important;width:100vw;height:100vh;padding:var(--body-container-margin)!important;-webkit-backdrop-filter:brightness(50%);backdrop-filter:brightness(50%)}@media only screen and (min-width:1024px){.content:not(.content--legacy) .app-navigation:not(.app-navigation--closed):not(.app-navigation--close)~.app-content{border-inline-start:1px solid var(--color-border);border-start-start-radius:var(--body-container-radius);border-end-start-radius:var(--body-container-radius)}}.material-design-icon[data-v-91d07631]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-91d07631]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-91d07631]{font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-91d07631]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-91d07631]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-91d07631]{margin-top:12px}.vue-skip-actions__image[data-v-91d07631]:dir(rtl){transform:rotateY(180deg)}.content[data-v-91d07631]{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-91d07631]:not(.content--legacy){background-color:var(--color-main-background-blur, var(--color-main-background));backdrop-filter:var(--filter-background-blur, none);-webkit-backdrop-filter:var(--filter-background-blur, none)}.content[data-v-91d07631]:not(.with-sidebar--full){position:fixed}.content[data-v-91d07631],.content[data-v-91d07631] *{box-sizing:border-box}.material-design-icon[data-v-a28923a1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-a28923a1]{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);inset-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2)}.app-details-toggle--mobile[data-v-a28923a1]{inset-inline-start:var(--app-navigation-padding)}.app-details-toggle[data-v-a28923a1]:active,.app-details-toggle[data-v-a28923a1]:hover,.app-details-toggle[data-v-a28923a1]:focus{opacity:1}.material-design-icon[data-v-ea1e6879]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-ea1e6879]{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-ea1e6879]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-ea1e6879]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-ea1e6879] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-ea1e6879] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-ea1e6879] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-ea1e6879] .app-content-details{display:block}[data-v-ea1e6879] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width<1024px){[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width<1024px){[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-ea1e6879] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-ea1e6879] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-ea1e6879] .app-content-list{max-width:none}.app-content-wrapper__list[data-v-ea1e6879]{height:100%}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane,*:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out;will-change:width}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out;will-change:height}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.default-theme.splitpanes .splitpanes__splitter:hover:before,.default-theme.splitpanes .splitpanes__splitter:hover:after{background-color:#00000040}.default-theme.splitpanes .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{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{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-36bba25c]{line-height:1.5;margin-block:30px 12px}.activity-group__heading[data-v-36bba25c]:first-of-type{margin-block-start:0}.activity-app[data-v-42a0aad3]{display:flex;flex-direction:column;overflow:hidden}.activity-app__empty-content[data-v-42a0aad3]{height:100%}.activity-app__loading-indicator[data-v-42a0aad3]{color:var(--color-text-maxcontrast);justify-self:center;margin-block:30px 6px;text-align:center}.activity-app__container[data-v-42a0aad3]{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__new-activities-indicator[data-v-42a0aad3]{position:sticky;top:8px;align-self:center;z-index:10;padding:6px 16px;border-radius:var(--border-radius-pill);border:none;background-color:var(--color-primary-element);color:var(--color-primary-element-text);font-weight:700;cursor:pointer;box-shadow:0 2px 8px var(--color-box-shadow)}.activity-app__new-activities-indicator[data-v-42a0aad3]:hover{background-color:var(--color-primary-element-hover)}.activity-app__heading[data-v-42a0aad3]{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[data-v-5a15295d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-toggle-wrapper[data-v-5a15295d]{position:absolute;top:var(--app-navigation-padding);inset-inline-end:calc(0px - var(--app-navigation-padding));margin-inline-end:calc(-1 * var(--default-clickable-area))}button.app-navigation-toggle[data-v-5a15295d]{background-color:var(--color-main-background)}.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-3b634fbd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-3b634fbd]{--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;inset-inline-start:0;padding:0;z-index:1800;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:transparent}.app-navigation--legacy[data-v-3b634fbd]{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--closed[data-v-3b634fbd]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-3b634fbd]{width:100%}.app-navigation__body[data-v-3b634fbd]{overflow-y:scroll}.app-navigation__content>ul[data-v-3b634fbd]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.app-navigation .app-navigation__list[data-v-3b634fbd]{height:100%}.app-navigation__body--no-list[data-v-3b634fbd]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-3b634fbd]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-3b634fbd]{border-inline-end:1px solid var(--color-border)}@media only screen and (max-width:1024px){.app-navigation[data-v-3b634fbd]{position:absolute;border-inline-end:1px solid var(--color-border);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)}}@media only screen and (max-width:512px){.app-navigation[data-v-3b634fbd]{z-index:1400}}.material-design-icon[data-v-d72957ed]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-list[data-v-d72957ed]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.material-design-icon[data-v-acf5ed2f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-acf5ed2f]{position:relative;inset-inline-end:0}.icon-collapse[data-v-acf5ed2f]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-acf5ed2f]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-e4d562ae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-e4d562ae]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;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)}.app-navigation-entry-wrapper[data-v-e4d562ae]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]{background-color:var(--color-primary-element-light)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]:hover{background-color:var(--color-primary-element-light-hover)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-e4d562ae var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-e4d562ae]:focus-within,.app-navigation-entry[data-v-e4d562ae]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__children[data-v-e4d562ae]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:500;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-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-e4d562ae]{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-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-e4d562ae]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-e4d562ae]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]: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)}.app-navigation-entry__children[data-v-e4d562ae]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-e4d562ae]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-e4d562ae]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-e4d562ae]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-e4d562ae]{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-e4d562ae]{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-e4d562ae]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-e4d562ae]{margin-inline-end: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-e4d562ae]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-e4d562ae]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-e4d562ae]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-e4d562ae]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-e4d562ae]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-e4d562ae]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-e4d562ae{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-a8724c7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-a8724c7f]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-a8724c7f]{display:flex}.app-navigation-input-confirm__input[data-v-a8724c7f]{height:34px;flex:1 1 100%;font-size:100%!important;margin:5px!important;margin-inline-start:-8px!important;padding:7px!important}.app-navigation-input-confirm__input[data-v-a8724c7f]:active,.app-navigation-input-confirm__input[data-v-a8724c7f]:focus,.app-navigation-input-confirm__input[data-v-a8724c7f]:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) form[data-v-a8724c7f]{align-items:center;gap:5px;padding-inline-end:5px}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) .app-navigation-input-confirm__input[data-v-a8724c7f]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-a8724c7f]:not(.app-navigation-input-confirm--legacy) .button-vue{width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px}._container_RFk6U{margin-top:auto;padding:var(--default-grid-baseline)}._header_2CtDS{margin-block:0 var(--default-grid-baseline);margin-inline:var(--default-grid-baseline)}._button_tAyis{padding-inline:0 calc((var(--default-clickable-area) - 16px) / 2)!important}._button_tAyis .button-vue__text{font-weight:var(--font-weight-default, normal)}._content_--KYD{display:block;padding:10px;margin-bottom:calc(-1 * var(--default-grid-baseline));max-height:300px;overflow-y:auto}._animationActive_DAG1p{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden!important}._animationStop_fWYQj{max-height:0!important;padding:0 10px!important}.app-activity .settings-link{max-width:100%}.app-activity .app-navigation-entry.active.app-navigation-entry--legacy .navigation-icon{filter:var(--primary-invert-if-dark)}.app-activity .app-navigation-entry.active:not(.app-navigation-entry--legacy) .navigation-icon,.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{e as le,g as mt,a as Re,s as gt,u as ft,b as We}from"./index-DxSbrVwz.chunk.mjs";import{d as X,o as yt,a as r,c as m,b as S,e as D,t as N,u as v,w as oe,v as he,f as L,g as z,h as ae,i as Q,T as Ct,r as A,n as B,j as V,k as $,p as Y,l as pe,m as T,q as bt,s as te,x as ge,y as Pe,z as Xe,A as ie,B as xt,C as _t,D as wt,E as k,F as me,G as ne,H as Ye,I as zt,J as $e,K as Oe,L as Ae,M,N as Je,O as kt,P as St,Q as Me,R as Dt,S as Lt,U as Et,V as Nt,W as Pt,X as $t}from"./translation-DoG5ZELJ-aI5-wD1r.chunk.mjs";import{r as se,t as At,_ as H,a as Z,N as J,b as ee,i as fe,u as ye,l as ve,c as we,d as Mt,e as Bt,f as Le,g as Be,h as Ie,j as Ee,k as xe,m as Ne,n as It,o as Vt,p as Tt,q as Ht,s as Rt,v as Ot,w as Ft,x as Zt,y as Ut,z as Kt,A as jt,B as qt,C as Gt}from"./_plugin-vue_export-helper-ethH7c1Z.chunk.mjs";import{s as Qe,a as Wt}from"./index-C1xmmKTZ-DaF1grv2.chunk.mjs";import{g as Xt,u as Yt,m as Jt,a as Fe,b as Ze,_ as Qt,c as ue,d as ei,A as Ue,N as Ke,e as ti,f as ii,h as ai,i as ni,j as li,o as si,k as oi,l as ri}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-BvEev7bF.chunk.mjs";import{l as ze}from"./logger-BgVM16Kc.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";const _e="activity",ht="8.0.0-dev.0",et=Symbol.for("NcContent:setHasAppNavigation"),ci=Symbol.for("NcContent:selector");se(At);const di=` @@ -51,5 +51,5 @@ import{e as le,g as mt,a as Re,s as gt,u as ft,b as We}from"./index-DxSbrVwz.chu -`,pi={class:"vue-skip-actions__container"},vi={class:"vue-skip-actions__headline"},hi={class:"vue-skip-actions__buttons"},mi=X({__name:"NcContent",props:{appName:{}},setup(i){const n=i;Y(et,x),Y(ci,"#content-vue"),Y("appName",$(()=>n.appName));const e=ye(),p=V(!1),s=V(),t=$(()=>s.value==="navigation"?ui:di);yt(()=>{const g=document.getElementById("skip-actions");g&&(g.innerHTML="",g.classList.add("vue-skip-actions"))});function u(){le("toggle-navigation",{open:!0}),pe(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function x(g){p.value=g,s.value||(s.value="navigation")}return(g,b)=>(r(),m("div",{id:"content-vue",class:B(["content",[`app-${g.appName.toLowerCase()}`,{"content--legacy":v(fe)}]])},[(r(),S(Ct,{to:"#skip-actions"},[D("div",pi,[D("div",vi,N(v(Z)("Keyboard navigation help")),1),D("div",hi,[oe(L(J,{href:"#app-navigation-vue",variant:"tertiary",onClick:Q(u,["prevent"]),onFocusin:b[0]||(b[0]=f=>s.value="navigation"),onMouseover:b[1]||(b[1]=f=>s.value="navigation")},{default:z(()=>[ae(N(v(Z)("Skip to app navigation")),1)]),_:1},512),[[he,p.value]]),L(J,{href:"#app-content-vue",variant:"tertiary",onFocusin:b[2]||(b[2]=f=>s.value="content"),onMouseover:b[3]||(b[3]=f=>s.value="content")},{default:z(()=>[ae(N(v(Z)("Skip to main content")),1)]),_:1})]),oe(L(ee,{class:"vue-skip-actions__image",svg:t.value,size:"auto"},null,8,["svg"]),[[he,!v(e)]])])])),A(g.$slots,"default",{},void 0,!0)],2))}}),gi=H(mi,[["__scopeId","data-v-91d07631"]]),fi=X({__name:"ActivityApp",setup(i){return(n,e)=>{const p=T("router-view");return r(),S(v(gi),{appName:"activity"},{default:z(()=>[L(p,{name:"navigation"}),L(p)]),_:1})}}}),yi={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(i,{emit:n}){const e=n,p=i,s=bt(),t=V([]),u=$(()=>t.value.reduce((a,l)=>(a[~~l.id]=l)&&a,{})),x=$(()=>t.value.length),g=V(null),b=V(!1),f=V({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),_=V({splitter:null,timeoutId:null}),F=$(()=>({[`splitpanes splitpanes--${p.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":f.value.dragging})),E=()=>{document.addEventListener("mousemove",C,{passive:!1}),document.addEventListener("mouseup",U),"ontouchstart"in window&&(document.addEventListener("touchmove",C,{passive:!1}),document.addEventListener("touchend",U))},j=()=>{document.removeEventListener("mousemove",C,{passive:!1}),document.removeEventListener("mouseup",U),"ontouchstart"in window&&(document.removeEventListener("touchmove",C,{passive:!1}),document.removeEventListener("touchend",U))},h=(a,l)=>{const d=a.target.closest(".splitpanes__splitter");if(d){const{left:o,top:c}=d.getBoundingClientRect(),{clientX:y,clientY:w}="ontouchstart"in window&&a.touches?a.touches[0]:a;f.value.cursorOffset=p.horizontal?w-c:y-o}E(),f.value.mouseDown=!0,f.value.activeSplitter=l},C=a=>{f.value.mouseDown&&(a.preventDefault(),f.value.dragging=!0,requestAnimationFrame(()=>{P(de(a)),G("resize",{event:a},!0)}))},U=a=>{f.value.dragging&&(window.getSelection().removeAllRanges(),G("resized",{event:a},!0)),f.value.mouseDown=!1,f.value.activeSplitter=null,setTimeout(()=>{f.value.dragging=!1,j()},100)},re=(a,l)=>{"ontouchstart"in window&&(a.preventDefault(),_.value.splitter===l?(clearTimeout(_.value.timeoutId),_.value.timeoutId=null,ce(a,l),_.value.splitter=null):(_.value.splitter=l,_.value.timeoutId=setTimeout(()=>_.value.splitter=null,500))),f.value.dragging||G("splitter-click",{event:a,index:l},!0)},ce=(a,l)=>{if(G("splitter-dblclick",{event:a,index:l},!0),p.maximizePanes){let d=0;t.value=t.value.map((o,c)=>(o.size=c===l?o.max:o.min,c!==l&&(d+=o.min),o)),t.value[l].size-=d,G("pane-maximize",{event:a,index:l,pane:t.value[l]}),G("resized",{event:a,index:l},!0)}},Ce=(a,l)=>{G("pane-click",{event:a,index:u.value[l].index,pane:u.value[l]})},de=a=>{const l=g.value.getBoundingClientRect(),{clientX:d,clientY:o}="ontouchstart"in window&&a.touches?a.touches[0]:a;return{x:d-(p.horizontal?0:f.value.cursorOffset)-l.left,y:o-(p.horizontal?f.value.cursorOffset:0)-l.top}},I=a=>{a=a[p.horizontal?"y":"x"];const l=g.value[p.horizontal?"clientHeight":"clientWidth"];return p.rtl&&!p.horizontal&&(a=l-a),a*100/l},P=a=>{const l=f.value.activeSplitter;let d={prevPanesSize:K(l),nextPanesSize:q(l),prevReachedMinPanes:0,nextReachedMinPanes:0};const o=0+(p.pushOtherPanes?0:d.prevPanesSize),c=100-(p.pushOtherPanes?0:d.nextPanesSize),y=Math.max(Math.min(I(a),c),o);let w=[l,l+1],O=t.value[w[0]]||null,W=t.value[w[1]]||null;const Te=O.max<100&&y>=O.max+d.prevPanesSize,vt=W.max<100&&y<=100-(W.max+q(l+1));if(Te||vt){Te?(O.size=O.max,W.size=Math.max(100-O.max-d.prevPanesSize-d.nextPanesSize,0)):(O.size=Math.max(100-W.max-d.prevPanesSize-q(l+1),0),W.size=W.max);return}if(p.pushOtherPanes){const He=R(d,y);if(!He)return;({sums:d,panesToResize:w}=He),O=t.value[w[0]]||null,W=t.value[w[1]]||null}O!==null&&(O.size=Math.min(Math.max(y-d.prevPanesSize-d.prevReachedMinPanes,O.min),O.max)),W!==null&&(W.size=Math.min(Math.max(100-y-d.nextPanesSize-d.nextReachedMinPanes,W.min),W.max))},R=(a,l)=>{const d=f.value.activeSplitter,o=[d,d+1];return l{y>o[0]&&y<=d&&(c.size=c.min,a.prevReachedMinPanes+=c.min)}),a.prevPanesSize=K(o[0]),o[0]===void 0)?(a.prevReachedMinPanes=0,t.value[0].size=t.value[0].min,t.value.forEach((c,y)=>{y>0&&y<=d&&(c.size=c.min,a.prevReachedMinPanes+=c.min)}),t.value[o[1]].size=100-a.prevReachedMinPanes-t.value[0].min-a.prevPanesSize-a.nextPanesSize,null):l>100-a.nextPanesSize-t.value[o[1]].min&&(o[1]=at(d).index,a.nextReachedMinPanes=0,o[1]>d+1&&t.value.forEach((c,y)=>{y>d&&y{y=d+1&&(c.size=c.min,a.nextReachedMinPanes+=c.min)}),t.value[o[0]].size=100-a.prevPanesSize-q(o[0]-1),null):{sums:a,panesToResize:o}},K=a=>t.value.reduce((l,d,o)=>l+(ot.value.reduce((l,d,o)=>l+(o>a+1?d.size:0),0),ke=a=>[...t.value].reverse().find(l=>l.indexl.min)||{},at=a=>t.value.find(l=>l.index>a+1&&l.size>l.min)||{},nt=()=>{var a;const l=Array.from(((a=g.value)==null?void 0:a.children)||[]);for(const d of l){const o=d.classList.contains("splitpanes__pane"),c=d.classList.contains("splitpanes__splitter");!o&&!c&&(d.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},Ve=(a,l,d=!1)=>{const o=a-1,c=document.createElement("div");c.classList.add("splitpanes__splitter"),d||(c.onmousedown=y=>h(y,o),typeof window<"u"&&"ontouchstart"in window&&(c.ontouchstart=y=>h(y,o)),c.onclick=y=>re(y,o+1)),c.ondblclick=y=>ce(y,o+1),l.parentNode.insertBefore(c,l)},lt=a=>{a.onmousedown=void 0,a.onclick=void 0,a.ondblclick=void 0,a.remove()},be=()=>{var a;const l=Array.from(((a=g.value)==null?void 0:a.children)||[]);for(const o of l)o.className.includes("splitpanes__splitter")&<(o);let d=0;for(const o of l)o.className.includes("splitpanes__pane")&&(!d&&p.firstSplitter?Ve(d,o,!0):d&&Ve(d,o),d++)},st=({uid:a,...l})=>{const d=u.value[a];for(const[o,c]of Object.entries(l))d[o]=c},ot=a=>{var l;let d=-1;Array.from(((l=g.value)==null?void 0:l.children)||[]).some(o=>(o.className.includes("splitpanes__pane")&&d++,o.isSameNode(a.el))),t.value.splice(d,0,{...a,index:d}),t.value.forEach((o,c)=>o.index=c),b.value&&pe(()=>{be(),Se({addedPane:t.value[d]}),G("pane-add",{pane:t.value[d]})})},rt=a=>{const l=t.value.findIndex(o=>o.id===a);t.value[l].el=null;const d=t.value.splice(l,1)[0];t.value.forEach((o,c)=>o.index=c),pe(()=>{be(),G("pane-remove",{pane:d}),Se({removedPane:{...d}})})},Se=(a={})=>{!a.addedPane&&!a.removedPane?dt():t.value.some(l=>l.givenSize!==null||l.min||l.max<100)?ut(a):ct(),b.value&&G("resized")},ct=()=>{const a=100/x.value;let l=0;const d=[],o=[];for(const c of t.value)c.size=Math.max(Math.min(a,c.max),c.min),l-=c.size,c.size>=c.max&&d.push(c.id),c.size<=c.min&&o.push(c.id);l>.1&&De(l,d,o)},dt=()=>{let a=100;const l=[],d=[];let o=0;for(const y of t.value)a-=y.size,y.givenSize!==null&&o++,y.size>=y.max&&l.push(y.id),y.size<=y.min&&d.push(y.id);let c=100;if(a>.1){for(const y of t.value)y.givenSize===null&&(y.size=Math.max(Math.min(a/(x.value-o),y.max),y.min)),c-=y.size;c>.1&&De(c,l,d)}},ut=({addedPane:a,removedPane:l}={})=>{let d=100/x.value,o=0;const c=[],y=[];(a?.givenSize??null)!==null&&(d=(100-a.givenSize)/(x.value-1));for(const w of t.value)o-=w.size,w.size>=w.max&&c.push(w.id),w.size<=w.min&&y.push(w.id);if(!(Math.abs(o)<.1)){for(const w of t.value)a?.givenSize!==null&&a?.id===w.id||(w.size=Math.max(Math.min(d,w.max),w.min)),o-=w.size,w.size>=w.max&&c.push(w.id),w.size<=w.min&&y.push(w.id);o>.1&&De(o,c,y)}},De=(a,l,d)=>{let o;a>0?o=a/(x.value-l.length):o=a/(x.value-d.length),t.value.forEach((c,y)=>{if(a>0&&!l.includes(c.id)){const w=Math.max(Math.min(c.size+o,c.max),c.min),O=w-c.size;a-=O,c.size=w}else if(!d.includes(c.id)){const w=Math.max(Math.min(c.size+o,c.max),c.min),O=w-c.size;a-=O,c.size=w}}),Math.abs(a)>.1&&pe(()=>{b.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},G=(a,l=void 0,d=!1)=>{const o=l?.index??f.value.activeSplitter??null;e(a,{...l,...o!==null&&{index:o},...d&&o!==null&&{prevPane:t.value[o-(p.firstSplitter?1:0)],nextPane:t.value[o+(p.firstSplitter?0:1)]},panes:t.value.map(c=>({min:c.min,max:c.max,size:c.size}))})};te(()=>p.firstSplitter,()=>be()),ge(()=>{nt(),be(),Se(),G("ready"),b.value=!0}),Pe(()=>b.value=!1);const pt=()=>{var a;return wt("div",{ref:g,class:F.value},(a=s.default)==null?void 0:a.call(s))};return Y("panes",t),Y("indexedPanes",u),Y("horizontal",$(()=>p.horizontal)),Y("requestUpdate",st),Y("onPaneAdd",ot),Y("onPaneRemove",rt),Y("onPaneClick",Ce),(a,l)=>(r(),S(Xe(pt)))}},Ci={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(i){var n;const e=i,p=ie("requestUpdate"),s=ie("onPaneAdd"),t=ie("horizontal"),u=ie("onPaneRemove"),x=ie("onPaneClick"),g=(n=xt())==null?void 0:n.uid,b=ie("indexedPanes"),f=$(()=>b.value[g]),_=V(null),F=$(()=>{const C=isNaN(e.size)||e.size===void 0?0:parseFloat(e.size);return Math.max(Math.min(C,j.value),E.value)}),E=$(()=>{const C=parseFloat(e.minSize);return isNaN(C)?0:C}),j=$(()=>{const C=parseFloat(e.maxSize);return isNaN(C)?100:C}),h=$(()=>{var C;return`${t.value?"height":"width"}: ${(C=f.value)==null?void 0:C.size}%`});return te(()=>F.value,C=>p({uid:g,size:C})),te(()=>E.value,C=>p({uid:g,min:C})),te(()=>j.value,C=>p({uid:g,max:C})),ge(()=>{s({id:g,el:_.value,min:E.value,max:j.value,givenSize:e.size===void 0?null:F.value,size:F.value})}),Pe(()=>u(g)),(C,U)=>(r(),m("div",{ref_key:"paneEl",ref:_,class:"splitpanes__pane",onClick:U[0]||(U[0]=re=>v(x)(re,C._.uid)),style:_t(h.value)},[A(C.$slots,"default")],4))}};function bi(i){let n=!1,e;return(...p)=>(n||(n=!0,e=i(...p)),e)}let tt="missing-app-name";try{tt=_e}catch{ve.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const xi=tt;let _i="";try{_i=ht}catch{ve.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}function it(){return ie("appName",xi)}const wi=bi(()=>{const i=we("core","apps",[]),n=it();return i.find(({id:e})=>e===n)?.name??n});se(Mt);const zi=X({__name:"NcAppContentDetailsToggle",setup(i){const n=ye();te(n,e),ge(()=>{e(n.value)}),Pe(()=>{n.value&&e(!1)});function e(p=!0){const s=document.querySelector(".app-navigation .app-navigation-toggle");s&&(s.style.display=p?"none":"",p===!0&&le("toggle-navigation",{open:!1}))}return(p,s)=>(r(),S(v(J),{"aria-label":v(Z)("Go back to the list"),class:B(["app-details-toggle",{"app-details-toggle--mobile":v(n)}]),title:v(Z)("Go back to the list"),variant:"tertiary"},{icon:z(()=>[L(v(ee),{directional:"",path:v(Jt)},null,8,["path"])]),_:1},8,["aria-label","class","title"]))}}),ki=H(zi,[["__scopeId","data-v-a28923a1"]]),je=mt("nextcloud").persist().build(),Si=Xt().theming?.name??"Nextcloud",Di={name:"NcAppContent",components:{NcAppContentDetailsToggle:ki,Pane:Ci,Splitpanes:yi},props:{disableSwipe:{type:Boolean,default:!1},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},layout:{type:String,default:"vertical-split",validator(i){return["no-split","vertical-split","horizontal-split"].includes(i)}},pageHeading:{type:String,default:null},pageTitle:{type:String,default:null}},emits:["update:showDetails","resizeList"],setup(){return{appName:it(),localizedAppName:wi(),isMobile:ye(),isRtl:Bt}},data(){return{contentHeight:0,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return`pane-list-size-${this.paneConfigKey}`;try{return`pane-list-size-${this.appName}`}catch{return ve.info("[NcAppContent]: 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}}},realPageTitle(){const i=new Set;if(this.pageTitle)for(const n of this.pageTitle.split(" - "))i.add(n);else if(this.pageHeading){for(const n of this.pageHeading.split(" - "))i.add(n);i.size>0&&i.add(this.localizedAppName)}else return null;return i.add(Si),[...i.values()].join(" - ")}},watch:{realPageTitle:{immediate:!0,handler(){this.realPageTitle!==null&&(document.title=this.realPageTitle)}},paneConfigKey:{immediate:!0,handler(){this.restorePaneConfig()}}},mounted(){this.disableSwipe||(this.swiping=Yt(this.$el,{onSwipeEnd:this.handleSwipe})),this.restorePaneConfig()},methods:{handleSwipe(i,n){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&n==="right"?le("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&n==="left"&&le("toggle-navigation",{open:!1}))},handlePaneResize(i){const n=parseInt(i.panes[0].size,10);je.setItem(this.paneConfigID,JSON.stringify(n)),this.listPaneSize=n,this.$emit("resizeList",{size:n}),ve.debug("[NcAppContent] pane config",{listPaneSize:n})},restorePaneConfig(){const i=parseInt(je.getItem(this.paneConfigID),10);if(!isNaN(i)&&i!==this.listPaneSize)return ve.debug("[NcAppContent] pane config",{listPaneSize:i}),this.listPaneSize=i,i},hideDetails(){this.$emit("update:showDetails",!1)}}},Li={key:0,class:"hidden-visually"},Ei={class:"app-content-wrapper__list"},Ni={key:1,class:"app-content-wrapper"};function Pi(i,n,e,p,s,t){const u=T("NcAppContentDetailsToggle"),x=T("Pane"),g=T("Splitpanes");return r(),m("main",{id:"app-content-vue",class:B(["app-content no-snapper",{"app-content--has-list":!!i.$slots.list}])},[e.pageHeading?(r(),m("h1",Li,N(e.pageHeading),1)):k("",!0),i.$slots.list?(r(),m(me,{key:1},[p.isMobile||e.layout==="no-split"?(r(),m("div",{key:0,class:B(["app-content-wrapper app-content-wrapper--no-split",{"app-content-wrapper--show-details":e.showDetails,"app-content-wrapper--show-list":!e.showDetails,"app-content-wrapper--mobile":p.isMobile}])},[e.showDetails?(r(),S(u,{key:0,onClick:Q(t.hideDetails,["stop","prevent"])},null,8,["onClick"])):k("",!0),oe(D("div",Ei,[A(i.$slots,"list",{},void 0,!0)],512),[[he,!e.showDetails]]),e.showDetails?A(i.$slots,"default",{key:1},void 0,!0):k("",!0)],2)):e.layout==="vertical-split"||e.layout==="horizontal-split"?(r(),m("div",Ni,[L(g,{horizontal:e.layout==="horizontal-split",class:B(["default-theme",{"splitpanes--horizontal":e.layout==="horizontal-split","splitpanes--vertical":e.layout==="vertical-split"}]),rtl:p.isRtl,onResized:t.handlePaneResize},{default:z(()=>[L(x,{class:"splitpanes__pane-list",size:s.listPaneSize||t.paneDefaults.list.size,minSize:t.paneDefaults.list.min,maxSize:t.paneDefaults.list.max},{default:z(()=>[A(i.$slots,"list",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"]),L(x,{class:"splitpanes__pane-details",size:t.detailsPaneSize,minSize:t.paneDefaults.details.min,maxSize:t.paneDefaults.details.max},{default:z(()=>[A(i.$slots,"default",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"])]),_:3},8,["horizontal","class","rtl","onResized"])])):k("",!0)],64)):k("",!0),i.$slots.list?k("",!0):A(i.$slots,"default",{key:2},void 0,!0)],2)}const $i=H(Di,[["render",Pi],["__scopeId","data-v-ea1e6879"]]),Ai={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mi=["aria-hidden","aria-label"],Bi=["fill","width","height"],Ii={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Vi={key:0};function Ti(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon close-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",Ii,[e.title?(r(),m("title",Vi,N(e.title),1)):k("",!0)])],8,Bi))],16,Mi)}const Hi=H(Ai,[["render",Ti]]),Ri={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Oi=["aria-hidden","aria-label"],Fi=["fill","width","height"],Zi={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},Ui={key:0};function Ki(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",Zi,[e.title?(r(),m("title",Ui,N(e.title),1)):k("",!0)])],8,Fi))],16,Oi)}const ji=H(Ri,[["render",Ki]]),qi={class:"input-field__main-wrapper"},Gi=["id","aria-describedby","disabled","placeholder","type","value"],Wi=["for"],Xi={class:"input-field__icon input-field__icon--leading"},Yi={key:2,class:"input-field__icon input-field__icon--trailing"},Ji=["id"],Qi=X({inheritAttrs:!1,__name:"NcInputField",props:Oe({class:{default:""},inputClass:{default:""},id:{default:()=>Be()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:Oe(["trailingButtonClick"],["update:modelValue"]),setup(i,{expose:n,emit:e}){const p=Ye(i,"modelValue"),s=i,t=e;n({focus:F,select:E});const u=zt(),x=$e("input"),g=$(()=>s.showTrailingButton||s.success),b=$(()=>{if(s.placeholder)return s.placeholder;if(s.label)return Le?s.label:""}),f=$(()=>s.label||s.labelOutside),_=$(()=>{const h=[];return s.helperText&&h.push(`${s.id}-helper-text`),u["aria-describedby"]&&h.push(String(u["aria-describedby"])),h.join(" ")||void 0});function F(h){x.value.focus(h)}function E(){x.value.select()}function j(h){const C=h.target;p.value=s.type==="number"&&typeof p.value=="number"?parseFloat(C.value):C.value}return(h,C)=>(r(),m("div",{class:B(["input-field",[{"input-field--disabled":h.disabled,"input-field--error":h.error,"input-field--label-outside":h.labelOutside||!f.value,"input-field--leading-icon":!!h.$slots.icon,"input-field--trailing-icon":g.value,"input-field--pill":h.pill,"input-field--success":h.success,"input-field--legacy":v(Le)},h.$props.class]])},[D("div",qi,[D("input",ne(h.$attrs,{id:h.id,ref:"input","aria-describedby":_.value,"aria-live":"polite",class:["input-field__input",h.inputClass],disabled:h.disabled,placeholder:b.value,type:h.type,value:p.value.toString(),onInput:j}),null,16,Gi),!h.labelOutside&&f.value?(r(),m("label",{key:0,class:"input-field__label",for:h.id},N(h.label),9,Wi)):k("",!0),oe(D("div",Xi,[A(h.$slots,"icon",{},void 0,!0)],512),[[he,!!h.$slots.icon]]),h.showTrailingButton?(r(),S(J,{key:1,class:"input-field__trailing-button","aria-label":h.trailingButtonLabel,disabled:h.disabled,variant:"tertiary-no-background",onClick:C[0]||(C[0]=U=>t("trailingButtonClick",U))},{icon:z(()=>[A(h.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):h.success||h.error?(r(),m("div",Yi,[h.success?(r(),S(ee,{key:0,path:v(Fe)},null,8,["path"])):(r(),S(ee,{key:1,path:v(Ze)},null,8,["path"]))])):k("",!0)]),h.helperText?(r(),m("p",{key:0,id:`${h.id}-helper-text`,class:"input-field__helper-text-message"},[h.success?(r(),S(ee,{key:0,class:"input-field__helper-text-message__icon",path:v(Fe),inline:""},null,8,["path"])):h.error?(r(),S(ee,{key:1,class:"input-field__helper-text-message__icon",path:v(Ze),inline:""},null,8,["path"])):k("",!0),ae(" "+N(h.helperText),1)],8,Ji)):k("",!0)],2))}}),ea=H(Qi,[["__scopeId","data-v-8e16cbb5"]]),ta=["title"],ia=X({__name:"ActivityGroup",props:{activities:{}},setup(i){const n=i,e=$(()=>{const s=ue(),t=ue().subtract(1,"day"),u=ue(n.activities[0].datetime);return u.isSame(s,"day")?M("activity","Today"):u.isSame(t,"day")?M("activity","Yesterday"):u.format("LL")}),p=$(()=>{const s=ue(n.activities[0].datetime).format("LL");return s!==e.value?s:void 0});return(s,t)=>(r(),m(me,null,[D("h2",{class:"activity-group__heading",title:p.value},N(e.value),9,ta),D("ul",null,[(r(!0),m(me,null,Ae(i.activities,u=>(r(),S(Qt,{key:u.id,activity:u,showPreviews:!0},null,8,["activity"]))),128))])],64))}}),aa=Ie(ia,[["__scopeId","data-v-36bba25c"]]),na='',la={class:"activity-app__heading"},sa={key:2,class:"activity-app__loading-indicator"},qe=3e4,oa=X({__name:"ActivityAppFeed",props:{filter:{default:"all"}},setup(i){const n=i,e=we(_e,"navigationList"),p=It(),s=V(!1),t=V(!0),u=V([]),x=V(),g=V(),b=V(!1);let f,_=new AbortController;const F=ii(),E=V();ei(E,async()=>{t.value&&await C()},{distance:100});const j=$(()=>{const I={};for(const P of u.value){const R=ue(P.datetime).format("LL");I[R]===void 0?I[R]=[P]:I[R].push(P)}return I}),h=$(()=>e.find(I=>I.id===p.params.filter).name);async function C(){if(s.value)return;const{signal:I}=_;try{const P=x.value??"0";s.value=!0;const R=await Ee.get(Re("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}",{filter:n.filter,since:P}),{signal:I});if(I.aborted)return;const K=R.data.ocs.data.map(q=>new Ue(q));u.value.push(...K),x.value=R.headers["x-activity-last-given"],t.value=!0,g.value===void 0&&K.length>0&&(g.value=K[0].id),pe(async()=>{E.value&&E.value.clientHeight===E.value.scrollHeight&&await C()})}catch(P){if(xe.isCancel(P))return;if(xe.isAxiosError(P)&&P.response?.status===304){t.value=!1;return}ze.error(P),Qe(M("activity","Could not load activities"))}finally{I.aborted||(s.value=!1)}}async function U(){const{signal:I}=_;try{const P=String(g.value??0),R=await Ee.get(Re("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}&sort=asc",{filter:n.filter,since:P}),{signal:I});if(!I.aborted&&R.data.ocs.data.length>0){const K=R.data.ocs.data.map(q=>new Ue(q));K.sort((q,ke)=>ke.id-q.id),g.value=K[0].id,u.value.unshift(...K),!E.value||E.value.scrollTop<50||(b.value=!0)}}catch(P){!xe.isCancel(P)&&(!xe.isAxiosError(P)||P.response?.status!==304)&&ze.error(P)}f!==void 0&&(f=setTimeout(U,qe))}function re(){b.value=!1,E.value?.scrollTo({top:0,behavior:"smooth"})}const ce=ti(()=>{E.value&&E.value.scrollTop<50&&(b.value=!1)},100);function Ce(){de(),f=setTimeout(U,qe)}function de(){f!==void 0&&(clearTimeout(f),f=void 0)}return ge(()=>{C(),Ce()}),Je(()=>{de(),_.abort()}),te(F,I=>{I==="hidden"?de():Ce()}),te(n,()=>{_.abort(),_=new AbortController,u.value=[],b.value=!1,x.value=void 0,g.value=void 0,t.value=!0,C()}),(I,P)=>(r(),S(v($i),{class:"activity-app"},{default:z(()=>[D("h1",la,N(h.value),1),t.value&&u.value.length===0?(r(),S(v(Ke),{key:0,class:"activity-app__empty-content",name:v(M)("activity","Loading activities"),description:v(M)("activity","This stream will show events like additions, changes & shares")},{icon:z(()=>[L(v(Ne),{size:36})]),_:1},8,["name","description"])):u.value.length===0?(r(),S(v(Ke),{key:1,class:"activity-app__empty-content",name:v(M)("activity","No activity yet"),description:v(M)("activity","This stream will show events like additions, changes & shares")},{icon:z(()=>[L(v(ee),{svg:v(na),size:36},null,8,["svg"])]),_:1},8,["name","description"])):k("",!0),D("div",{ref_key:"container",ref:E,class:"activity-app__container",onScroll:P[0]||(P[0]=(...R)=>v(ce)&&v(ce)(...R))},[b.value?(r(),S(v(J),{key:0,class:"activity-app__new-activities-indicator",type:"button",onClick:re},{default:z(()=>[ae(N(v(M)("activity","New activities")),1)]),_:1})):k("",!0),(r(!0),m(me,null,Ae(j.value,(R,K)=>(r(),S(aa,{key:K,activities:R},null,8,["activities"]))),128)),t.value&&u.value.length>0?(r(),S(v(Ne),{key:1,name:v(M)("activity","Loading more activities"),size:64,class:"activity-app__loading-indicator"},null,8,["name"])):!t.value&&u.value.length>0?(r(),m("div",sa,N(v(M)("activity","No more activities.")),1)):k("",!0)],544)]),_:1}))}}),ra=Ie(oa,[["__scopeId","data-v-42a0aad3"]]),ca={name:"NcAppNavigationList"},da={class:"app-navigation-list"};function ua(i,n,e,p,s,t){return r(),m("ul",da,[A(i.$slots,"default",{},void 0,!0)])}const pa=H(ca,[["render",ua],["__scopeId","data-v-d72957ed"]]);se(Vt);const va={class:"app-navigation-toggle-wrapper"},ha=X({__name:"NcAppNavigationToggle",props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:["update:open"],setup(i){const n=Ye(i,"open"),e=$(()=>n.value?Z("Close navigation"):Z("Open navigation"));return(p,s)=>(r(),m("div",va,[L(v(J),{class:"app-navigation-toggle","aria-controls":"app-navigation-vue","aria-expanded":n.value?"true":"false","aria-label":e.value,title:e.value,variant:"tertiary",onClick:s[0]||(s[0]=t=>n.value=!n.value)},{icon:z(()=>[L(ee,{path:n.value?v(ai):v(ni)},null,8,["path"])]),_:1},8,["aria-expanded","aria-label","title"])]))}}),ma=H(ha,[["__scopeId","data-v-5a15295d"]]),ga=["aria-hidden","aria-label","aria-labelledby","inert"],fa={class:"app-navigation__search"},ya=X({__name:"NcAppNavigation",props:{ariaLabel:{},ariaLabelledby:{}},setup(i){const n=i;let e;const p=ie(et,()=>kt(),!1),s=$e("appNavigationContainer"),t=ye(),u=V(!t.value);St(()=>{!n.ariaLabel&&n.ariaLabelledby}),te(t,()=>{u.value=!t.value}),te(u,()=>{b()}),ge(()=>{p(!0),gt("toggle-navigation",g),le("navigation-toggled",{open:u.value}),e=Tt(s.value,{allowOutsideClick:!0,clickOutsideDeactivates:()=>(t.value&&(e.deactivate({returnFocus:!1}),x(!1)),!1),fallbackFocus:s.value,trapStack:Ht(),escapeDeactivates:!1}),b()}),Je(()=>{p(!1),ft("toggle-navigation",g),e.deactivate()});function x(_){if(u.value===_){le("navigation-toggled",{open:u.value});return}u.value=_===void 0?!u.value:_;const F=getComputedStyle(document.body),E=parseInt(F.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{le("navigation-toggled",{open:u.value})},1.5*E)}function g({open:_}){return x(_)}function b(){t.value&&u.value?e.activate():e.deactivate()}function f(){t.value&&x(!1)}return(_,F)=>(r(),m("div",{ref:"appNavigationContainer",class:B(["app-navigation",{"app-navigation--closed":!u.value,"app-navigation--legacy":v(fe)}])},[D("nav",{id:"app-navigation-vue","aria-hidden":u.value?"false":"true","aria-label":_.ariaLabel||void 0,"aria-labelledby":_.ariaLabelledby||void 0,class:"app-navigation__content",inert:!u.value||void 0,onKeydown:Me(f,["esc"])},[D("div",fa,[A(_.$slots,"search",{},void 0,!0)]),D("div",{class:B(["app-navigation__body",{"app-navigation__body--no-list":!_.$slots.list}])},[A(_.$slots,"default",{},void 0,!0)],2),_.$slots.list?(r(),S(pa,{key:0,class:"app-navigation__list"},{default:z(()=>[A(_.$slots,"list",{},void 0,!0)]),_:3})):k("",!0),A(_.$slots,"footer",{},void 0,!0)],40,ga),L(ma,{open:u.value,"onUpdate:open":x},null,8,["open"])],2))}}),Ca=H(ya,[["__scopeId","data-v-3b634fbd"]]),ba={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xa=["aria-hidden","aria-label"],_a=["fill","width","height"],wa={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},za={key:0};function ka(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",wa,[e.title?(r(),m("title",za,N(e.title),1)):k("",!0)])],8,_a))],16,xa)}const Sa=H(ba,[["render",ka]]),Da={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},La=["aria-hidden","aria-label"],Ea=["fill","width","height"],Na={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},Pa={key:0};function $a(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",Na,[e.title?(r(),m("title",Pa,N(e.title),1)):k("",!0)])],8,Ea))],16,La)}const Aa=H(Da,[["render",$a]]);se(Rt);const Ma={name:"NcInputConfirmCancel",components:{IconArrowRight:Aa,IconClose:Hi,NcButton:J},setup(){return{isLegacy34:fe}},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},modelValue:{default:"",type:String}},emits:["cancel","confirm","update:modelValue"],data(){return{labelConfirm:Z("Confirm changes"),labelCancel:Z("Cancel changes")}},computed:{valueModel:{get(){return this.modelValue},set(i){this.$emit("update:modelValue",i)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}},Ba=["placeholder"];function Ia(i,n,e,p,s,t){const u=T("IconArrowRight"),x=T("NcButton"),g=T("IconClose");return r(),m("div",{class:B(["app-navigation-input-confirm",{"app-navigation-input-confirm--legacy":p.isLegacy34}])},[D("form",{onSubmit:n[1]||(n[1]=Q((...b)=>t.confirm&&t.confirm(...b),["prevent"])),onKeydown:n[2]||(n[2]=Me(Q((...b)=>t.cancel&&t.cancel(...b),["exact","stop","prevent"]),["esc"])),onClick:n[3]||(n[3]=Q(()=>{},["stop","prevent"]))},[oe(D("input",{ref:"input","onUpdate:modelValue":n[0]||(n[0]=b=>t.valueModel=b),type:"text",class:"app-navigation-input-confirm__input",placeholder:e.placeholder},null,8,Ba),[[Dt,t.valueModel]]),L(x,{"aria-label":s.labelConfirm,type:"submit",variant:"primary",onClick:Q(t.confirm,["stop","prevent"])},{icon:z(()=>[L(u,{size:20})]),_:1},8,["aria-label","onClick"]),L(x,{"aria-label":s.labelCancel,type:"reset",variant:e.primary?"primary":"tertiary",onClick:Q(t.cancel,["stop","prevent"])},{icon:z(()=>[L(g,{size:20})]),_:1},8,["aria-label","variant","onClick"])],32)],2)}const Va=H(Ma,[["render",Ia],["__scopeId","data-v-a8724c7f"]]),Ta=X({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}}),Ha={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ra=["aria-hidden","aria-label"],Oa=["fill","width","height"],Fa={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"},Za={key:0};function Ua(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon pencil-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",Fa,[e.title?(r(),m("title",Za,N(e.title),1)):k("",!0)])],8,Oa))],16,Ra)}const Ka=H(Ha,[["render",Ua]]),ja={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qa=["aria-hidden","aria-label"],Ga=["fill","width","height"],Wa={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"},Xa={key:0};function Ya(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon undo-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",Wa,[e.title?(r(),m("title",Xa,N(e.title),1)):k("",!0)])],8,Ga))],16,qa)}const Ja=H(ja,[["render",Ya]]);se(Ot);const Qa={name:"NcAppNavigationIconCollapsible",components:{NcButton:J,ChevronDown:ji,ChevronUp:Sa},setup(){return{isLegacy34:fe}},props:{open:{type:Boolean,required:!0},active:{type:Boolean,required:!0}},emits:["click"],computed:{labelButton(){return this.open?Z("Collapse menu"):Z("Open menu")}},methods:{onClick(i){this.$emit("click",i)}}};function en(i,n,e,p,s,t){const u=T("ChevronUp"),x=T("ChevronDown"),g=T("NcButton");return r(),S(g,{class:B(["icon-collapse",{"icon-collapse--active":e.active,"icon-collapse--open":e.open}]),"aria-label":t.labelButton,variant:e.active&&p.isLegacy34?"tertiary-on-primary":"tertiary",onClick:t.onClick},{icon:z(()=>[e.open?(r(),S(u,{key:0,size:20})):(r(),S(x,{key:1,size:20}))]),_:1},8,["class","aria-label","variant","onClick"])}const tn=H(Qa,[["render",en],["__scopeId","data-v-acf5ed2f"]]);se(Zt,Ft);const an={name:"NcAppNavigationItem",components:{NcActions:Ut,NcActionButton:li,NcAppNavigationIconCollapsible:tn,NcInputConfirmCancel:Va,NcLoadingIcon:Ne,NcVNodes:Ta,Pencil:Ka,Undo:Ja},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>Be(),validator:i=>i.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},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:ye(),isLegacy34:fe}},data(){return{actionsBoundariesElement:void 0,editingValue:"",opened:this.open,editingActive:!1,menuOpenLocalValue:!1,focused:!1}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},editButtonAriaLabel(){return this.editLabel?this.editLabel:Z("Edit item")},undoButtonAriaLabel(){return Z("Undo changes")}},watch:{open(i){this.opened=i}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},methods:{onMenuToggle(i){this.$emit("update:menuOpen",i),this.menuOpenLocalValue=i},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(i,n,e){this.$emit("click",i),!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)&&e&&(n?.(i),i.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")},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(i){this.$refs.actions&&(this.focused?(i.preventDefault(),this.$refs.actions.$refs.triggerButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.triggerButton.$el.blur())},isExternal(i){return i&&i.match(/[a-z]+:\/\//i)}}},nn=["id"],ln=["aria-current","aria-description","aria-expanded","href","target","title","onClick"],sn={key:0,class:"editingContainer"},on={key:1,class:"app-navigation-entry__deleted"},rn={class:"app-navigation-entry__deleted-description"},cn={key:0,class:"app-navigation-entry__counter-wrapper"},dn={key:0,class:"app-navigation-entry__children"};function un(i,n,e,p,s,t){const u=T("NcLoadingIcon"),x=T("NcInputConfirmCancel"),g=T("Pencil"),b=T("NcActionButton"),f=T("Undo"),_=T("NcActions"),F=T("NcAppNavigationIconCollapsible");return r(),m("li",{id:e.id,class:B([{"app-navigation-entry--opened":s.opened,"app-navigation-entry--pinned":e.pinned,"app-navigation-entry--collapsible":e.allowCollapse&&!!i.$slots.default},"app-navigation-entry-wrapper"])},[(r(),S(Xe(t.isRouterLink?"router-link":"NcVNodes"),Lt(Et({...t.isRouterLink&&{custom:!0,to:e.to}})),{default:z(({href:E,navigate:j,isActive:h})=>[D("div",{class:B(["app-navigation-entry",{"app-navigation-entry--editing":s.editingActive,"app-navigation-entry--deleted":e.undo,"app-navigation-entry--legacy":p.isLegacy34,active:e.to&&h||e.active}])},[e.undo?k("",!0):(r(),m("a",{key:0,class:"app-navigation-entry-link","aria-current":e.active||e.to&&h?"page":void 0,"aria-description":e.ariaDescription,"aria-expanded":i.$slots.default?s.opened.toString():void 0,href:e.href||E||"#",target:t.isExternal(e.href)?"_blank":void 0,title:e.title||e.name,onBlur:n[1]||(n[1]=(...C)=>t.handleBlur&&t.handleBlur(...C)),onClick:C=>t.onClick(C,j,E),onFocus:n[2]||(n[2]=(...C)=>t.handleFocus&&t.handleFocus(...C)),onKeydown:n[3]||(n[3]=Me(Q((...C)=>t.handleTab&&t.handleTab(...C),["exact"]),["tab"]))},[D("div",{class:B(["app-navigation-entry-icon",{[e.icon]:e.icon}])},[e.loading?(r(),S(u,{key:0})):A(i.$slots,"icon",{key:1,active:e.active||e.to&&h},void 0,!0)],2),D("span",{class:B(["app-navigation-entry__name",{"hidden-visually":s.editingActive}])},N(e.name),3),s.editingActive?(r(),m("div",sn,[L(x,{ref:"editingInput",modelValue:s.editingValue,"onUpdate:modelValue":n[0]||(n[0]=C=>s.editingValue=C),placeholder:e.editPlaceholder!==""?e.editPlaceholder:e.name,primary:e.to&&h||e.active,onCancel:t.cancelEditing,onConfirm:t.handleEditingDone},null,8,["modelValue","placeholder","primary","onCancel","onConfirm"])])):k("",!0)],40,ln)),e.undo?(r(),m("div",on,[D("div",rn,N(e.name),1)])):k("",!0),(i.$slots.actions||i.$slots.counter||e.editable||e.undo)&&!s.editingActive?(r(),m("div",{key:2,class:B(["app-navigation-entry__utils",{"app-navigation-entry__utils--display-actions":e.forceDisplayActions||s.menuOpenLocalValue||e.menuOpen}])},[i.$slots.counter?(r(),m("div",cn,[A(i.$slots,"counter",{},void 0,!0)])):k("",!0),i.$slots.actions||e.editable&&!s.editingActive||e.undo?(r(),S(_,{key:1,ref:"actions",class:"app-navigation-entry__actions",container:"#app-navigation-vue",boundariesElement:s.actionsBoundariesElement,inline:e.inlineActions,placement:e.menuPlacement,open:e.menuOpen,forceMenu:e.forceMenu,defaultIcon:e.menuIcon,variant:"tertiary","onUpdate:open":t.onMenuToggle},{icon:z(()=>[A(i.$slots,"menu-icon",{},void 0,!0)]),default:z(()=>[e.editable&&!s.editingActive?(r(),S(b,{key:0,"aria-label":t.editButtonAriaLabel,onClick:t.handleEdit},{icon:z(()=>[L(g,{size:20})]),default:z(()=>[ae(" "+N(e.editLabel),1)]),_:1},8,["aria-label","onClick"])):k("",!0),e.undo?(r(),S(b,{key:1,"aria-label":t.undoButtonAriaLabel,onClick:t.handleUndo},{icon:z(()=>[L(f,{size:20})]),_:1},8,["aria-label","onClick"])):k("",!0),A(i.$slots,"actions",{},void 0,!0)]),_:3},8,["boundariesElement","inline","placement","open","forceMenu","defaultIcon","onUpdate:open"])):k("",!0)],2)):k("",!0),e.allowCollapse&&i.$slots.default?(r(),S(F,{key:3,active:e.to&&h||e.active,open:s.opened,onClick:Q(t.toggleCollapse,["prevent","stop"])},null,8,["active","open","onClick"])):k("",!0),A(i.$slots,"extra",{},void 0,!0)],2)]),_:3},16)),t.canHaveChildren&&i.$slots.default?(r(),m("ul",dn,[A(i.$slots,"default",{},void 0,!0)])):k("",!0)],10,nn)}const pn=H(an,[["render",un],["__scopeId","data-v-e4d562ae"]]);se(Kt);const vn=["id"],hn=X({__name:"NcAppNavigationSettings",props:{excludeClickOutsideSelectors:{default:()=>[]},name:{default:()=>Z("Settings")}},setup(i){const n=Be(),e=V(!1),p=$e("wrapperElement"),s=$(()=>Array.isArray(i.excludeClickOutsideSelectors)?i.excludeClickOutsideSelectors:i.excludeClickOutsideSelectors.split(" "));return si(p,()=>{e.value=!1},{ignore:s}),(t,u)=>(r(),m("div",{ref:"wrapperElement",class:B(t.$style.container)},[D("div",{class:B(t.$style.header)},[L(J,{"aria-controls":v(n),"aria-expanded":e.value?"true":"false",class:B(t.$style.button),alignment:"start",variant:"tertiary",wide:"",onClick:u[0]||(u[0]=x=>e.value=!e.value)},{icon:z(()=>[L(ee,{path:v(Le)?v(oi):v(ri)},null,8,["path"])]),default:z(()=>[ae(" "+N(t.name),1)]),_:1},8,["aria-controls","aria-expanded","class"])],2),L(Nt,{enterActiveClass:t.$style.animationActive,leaveActiveClass:t.$style.animationActive,enterFromClass:t.$style.animationStop,leaveToClass:t.$style.animationStop},{default:z(()=>[oe(D("div",{id:v(n),class:B(t.$style.content)},[A(t.$slots,"default")],10,vn),[[he,e.value]])]),_:3},8,["enterActiveClass","leaveActiveClass","enterFromClass","leaveToClass"])],2))}}),mn="_container_RFk6U",gn="_header_2CtDS",fn="_button_tAyis",yn="_content_--KYD",Cn="_animationActive_DAG1p",bn="_animationStop_fWYQj",xn={container:mn,header:gn,button:fn,content:yn,animationActive:Cn,animationStop:bn},_n={$style:xn},wn=H(hn,[["__cssModules",_n]]),zn={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},kn=["aria-hidden","aria-label"],Sn=["fill","width","height"],Dn={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"},Ln={key:0};function En(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon content-copy-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[D("path",Dn,[e.title?(r(),m("title",Ln,N(e.title),1)):k("",!0)])],8,Sn))],16,kn)}const Nn=Ie(zn,[["render",En]]),Pn=["src"],$n=X({__name:"ActivityAppNavigation",setup(i){const{rssLink:n,personalSettingsLink:e}=we(_e,"settings"),p=we(_e,"navigationList"),s=V(n),t=$(()=>!!s.value);async function u(){try{const{data:g}=await Ee.post(We("/apps/activity/settings/feed"),{enable:!t.value});s.value=g.data.rsslink}catch(g){Qe(M("activity","Could not enable RSS link")),ze.error(g)}}async function x(){try{window.navigator.clipboard.writeText(s.value),Wt(M("activity","RSS link copied to clipboard"))}catch(g){ze.debug(g),window.prompt(M("activity","Could not copy the RSS link, please copy manually:"),s.value)}}return(g,b)=>(r(),S(v(Ca),{"aria-label":v(M)("activity","Activity")},{list:z(()=>[(r(!0),m(me,null,Ae(v(p),f=>(r(),S(v(pn),{key:f.id,"data-navigation":f.id,to:f.id,name:f.name},Pt({_:2},[f.icon?{name:"icon",fn:z(()=>[D("img",{alt:"",src:f.icon,class:"navigation-icon",role:"presentation"},null,8,Pn)]),key:"0"}:void 0]),1032,["data-navigation","to","name"]))),128))]),footer:z(()=>[L(v(wn),{name:v(M)("activity","Activity settings")},{default:z(()=>[L(v(jt),{modelValue:t.value,"onUpdate:modelValue":[b[0]||(b[0]=f=>t.value=f),u],type:"switch"},{default:z(()=>[ae(N(v(M)("activity","Enable RSS feed")),1)]),_:1},8,["modelValue"]),t.value?(r(),S(v(ea),{key:0,modelValue:s.value,"onUpdate:modelValue":b[1]||(b[1]=f=>s.value=f),label:v(M)("activity","RSS feed"),showTrailingButton:!0,trailingButtonLabel:v(M)("activity","Copy RSS feed link"),readonly:"readonly",onTrailingButtonClick:x},{"trailing-button-icon":z(()=>[L(Nn,{size:20})]),_:1},8,["modelValue","label","trailingButtonLabel"])):k("",!0),L(v(J),{class:"settings-link",href:v(e),title:v(M)("activity","Personal notification settings"),variant:"tertiary"},{default:z(()=>[ae(N(v(M)("activity","Personal notification settings")),1)]),_:1},8,["href","title"])]),_:1},8,["name"])]),_:1},8,["aria-label"]))}}),An=[{path:"/",name:"root",redirect:{path:"/all"}},{path:"/:filter?",components:{default:ra,navigation:$n},props:{default:!0}}],Mn=qt({history:Gt(We("/apps/activity")),linkActiveClass:"active",routes:An}),Ge=$t(fi);Ge.use(Mn),Ge.mount("#content"); +`,pi={class:"vue-skip-actions__container"},vi={class:"vue-skip-actions__headline"},hi={class:"vue-skip-actions__buttons"},mi=X({__name:"NcContent",props:{appName:{}},setup(i){const n=i;Y(et,b),Y(ci,"#content-vue"),Y("appName",$(()=>n.appName));const e=fe(),p=T(!1),s=T(),t=$(()=>s.value==="navigation"?ui:di);yt(()=>{const g=document.getElementById("skip-actions");g&&(g.innerHTML="",g.classList.add("vue-skip-actions"))});function u(){le("toggle-navigation",{open:!0}),pe(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function b(g){p.value=g,s.value||(s.value="navigation")}return(g,_)=>(r(),m("div",{id:"content-vue",class:B(["content",[`app-${g.appName.toLowerCase()}`,{"content--legacy":v(ge)}]])},[(r(),D(Ct,{to:"#skip-actions"},[S("div",pi,[S("div",vi,N(v(Z)("Keyboard navigation help")),1),S("div",hi,[oe(L(J,{href:"#app-navigation-vue",variant:"tertiary",onClick:Q(u,["prevent"]),onFocusin:_[0]||(_[0]=f=>s.value="navigation"),onMouseover:_[1]||(_[1]=f=>s.value="navigation")},{default:z(()=>[ae(N(v(Z)("Skip to app navigation")),1)]),_:1},512),[[he,p.value]]),L(J,{href:"#app-content-vue",variant:"tertiary",onFocusin:_[2]||(_[2]=f=>s.value="content"),onMouseover:_[3]||(_[3]=f=>s.value="content")},{default:z(()=>[ae(N(v(Z)("Skip to main content")),1)]),_:1})]),oe(L(ee,{class:"vue-skip-actions__image",svg:t.value,size:"auto"},null,8,["svg"]),[[he,!v(e)]])])])),A(g.$slots,"default",{},void 0,!0)],2))}}),gi=H(mi,[["__scopeId","data-v-91d07631"]]),fi=X({__name:"ActivityApp",setup(i){return(n,e)=>{const p=V("router-view");return r(),D(v(gi),{appName:"activity"},{default:z(()=>[L(p,{name:"navigation"}),L(p)]),_:1})}}}),yi={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(i,{emit:n}){const e=n,p=i,s=_t(),t=T([]),u=$(()=>t.value.reduce((a,l)=>(a[~~l.id]=l)&&a,{})),b=$(()=>t.value.length),g=T(null),_=T(!1),f=T({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),x=T({splitter:null,timeoutId:null}),F=$(()=>({[`splitpanes splitpanes--${p.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":f.value.dragging})),E=()=>{document.addEventListener("mousemove",C,{passive:!1}),document.addEventListener("mouseup",U),"ontouchstart"in window&&(document.addEventListener("touchmove",C,{passive:!1}),document.addEventListener("touchend",U))},j=()=>{document.removeEventListener("mousemove",C,{passive:!1}),document.removeEventListener("mouseup",U),"ontouchstart"in window&&(document.removeEventListener("touchmove",C,{passive:!1}),document.removeEventListener("touchend",U))},h=(a,l)=>{const d=a.target.closest(".splitpanes__splitter");if(d){const{left:o,top:c}=d.getBoundingClientRect(),{clientX:y,clientY:w}="ontouchstart"in window&&a.touches?a.touches[0]:a;f.value.cursorOffset=p.horizontal?w-c:y-o}E(),f.value.mouseDown=!0,f.value.activeSplitter=l},C=a=>{f.value.mouseDown&&(a.preventDefault(),f.value.dragging=!0,requestAnimationFrame(()=>{P(de(a)),G("resize",{event:a},!0)}))},U=a=>{f.value.dragging&&(window.getSelection().removeAllRanges(),G("resized",{event:a},!0)),f.value.mouseDown=!1,f.value.activeSplitter=null,setTimeout(()=>{f.value.dragging=!1,j()},100)},re=(a,l)=>{"ontouchstart"in window&&(a.preventDefault(),x.value.splitter===l?(clearTimeout(x.value.timeoutId),x.value.timeoutId=null,ce(a,l),x.value.splitter=null):(x.value.splitter=l,x.value.timeoutId=setTimeout(()=>x.value.splitter=null,500))),f.value.dragging||G("splitter-click",{event:a,index:l},!0)},ce=(a,l)=>{if(G("splitter-dblclick",{event:a,index:l},!0),p.maximizePanes){let d=0;t.value=t.value.map((o,c)=>(o.size=c===l?o.max:o.min,c!==l&&(d+=o.min),o)),t.value[l].size-=d,G("pane-maximize",{event:a,index:l,pane:t.value[l]}),G("resized",{event:a,index:l},!0)}},ye=(a,l)=>{G("pane-click",{event:a,index:u.value[l].index,pane:u.value[l]})},de=a=>{const l=g.value.getBoundingClientRect(),{clientX:d,clientY:o}="ontouchstart"in window&&a.touches?a.touches[0]:a;return{x:d-(p.horizontal?0:f.value.cursorOffset)-l.left,y:o-(p.horizontal?f.value.cursorOffset:0)-l.top}},I=a=>{a=a[p.horizontal?"y":"x"];const l=g.value[p.horizontal?"clientHeight":"clientWidth"];return p.rtl&&!p.horizontal&&(a=l-a),a*100/l},P=a=>{const l=f.value.activeSplitter;let d={prevPanesSize:K(l),nextPanesSize:q(l),prevReachedMinPanes:0,nextReachedMinPanes:0};const o=0+(p.pushOtherPanes?0:d.prevPanesSize),c=100-(p.pushOtherPanes?0:d.nextPanesSize),y=Math.max(Math.min(I(a),c),o);let w=[l,l+1],O=t.value[w[0]]||null,W=t.value[w[1]]||null;const Ve=O.max<100&&y>=O.max+d.prevPanesSize,vt=W.max<100&&y<=100-(W.max+q(l+1));if(Ve||vt){Ve?(O.size=O.max,W.size=Math.max(100-O.max-d.prevPanesSize-d.nextPanesSize,0)):(O.size=Math.max(100-W.max-d.prevPanesSize-q(l+1),0),W.size=W.max);return}if(p.pushOtherPanes){const He=R(d,y);if(!He)return;({sums:d,panesToResize:w}=He),O=t.value[w[0]]||null,W=t.value[w[1]]||null}O!==null&&(O.size=Math.min(Math.max(y-d.prevPanesSize-d.prevReachedMinPanes,O.min),O.max)),W!==null&&(W.size=Math.min(Math.max(100-y-d.nextPanesSize-d.nextReachedMinPanes,W.min),W.max))},R=(a,l)=>{const d=f.value.activeSplitter,o=[d,d+1];return l{y>o[0]&&y<=d&&(c.size=c.min,a.prevReachedMinPanes+=c.min)}),a.prevPanesSize=K(o[0]),o[0]===void 0)?(a.prevReachedMinPanes=0,t.value[0].size=t.value[0].min,t.value.forEach((c,y)=>{y>0&&y<=d&&(c.size=c.min,a.prevReachedMinPanes+=c.min)}),t.value[o[1]].size=100-a.prevReachedMinPanes-t.value[0].min-a.prevPanesSize-a.nextPanesSize,null):l>100-a.nextPanesSize-t.value[o[1]].min&&(o[1]=at(d).index,a.nextReachedMinPanes=0,o[1]>d+1&&t.value.forEach((c,y)=>{y>d&&y{y=d+1&&(c.size=c.min,a.nextReachedMinPanes+=c.min)}),t.value[o[0]].size=100-a.prevPanesSize-q(o[0]-1),null):{sums:a,panesToResize:o}},K=a=>t.value.reduce((l,d,o)=>l+(ot.value.reduce((l,d,o)=>l+(o>a+1?d.size:0),0),ke=a=>[...t.value].reverse().find(l=>l.indexl.min)||{},at=a=>t.value.find(l=>l.index>a+1&&l.size>l.min)||{},nt=()=>{var a;const l=Array.from(((a=g.value)==null?void 0:a.children)||[]);for(const d of l){const o=d.classList.contains("splitpanes__pane"),c=d.classList.contains("splitpanes__splitter");!o&&!c&&(d.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},Te=(a,l,d=!1)=>{const o=a-1,c=document.createElement("div");c.classList.add("splitpanes__splitter"),d||(c.onmousedown=y=>h(y,o),typeof window<"u"&&"ontouchstart"in window&&(c.ontouchstart=y=>h(y,o)),c.onclick=y=>re(y,o+1)),c.ondblclick=y=>ce(y,o+1),l.parentNode.insertBefore(c,l)},lt=a=>{a.onmousedown=void 0,a.onclick=void 0,a.ondblclick=void 0,a.remove()},Ce=()=>{var a;const l=Array.from(((a=g.value)==null?void 0:a.children)||[]);for(const o of l)o.className.includes("splitpanes__splitter")&<(o);let d=0;for(const o of l)o.className.includes("splitpanes__pane")&&(!d&&p.firstSplitter?Te(d,o,!0):d&&Te(d,o),d++)},st=({uid:a,...l})=>{const d=u.value[a];for(const[o,c]of Object.entries(l))d[o]=c},ot=a=>{var l;let d=-1;Array.from(((l=g.value)==null?void 0:l.children)||[]).some(o=>(o.className.includes("splitpanes__pane")&&d++,o.isSameNode(a.el))),t.value.splice(d,0,{...a,index:d}),t.value.forEach((o,c)=>o.index=c),_.value&&pe(()=>{Ce(),Se({addedPane:t.value[d]}),G("pane-add",{pane:t.value[d]})})},rt=a=>{const l=t.value.findIndex(o=>o.id===a);t.value[l].el=null;const d=t.value.splice(l,1)[0];t.value.forEach((o,c)=>o.index=c),pe(()=>{Ce(),G("pane-remove",{pane:d}),Se({removedPane:{...d}})})},Se=(a={})=>{!a.addedPane&&!a.removedPane?dt():t.value.some(l=>l.givenSize!==null||l.min||l.max<100)?ut(a):ct(),_.value&&G("resized")},ct=()=>{const a=100/b.value;let l=0;const d=[],o=[];for(const c of t.value)c.size=Math.max(Math.min(a,c.max),c.min),l-=c.size,c.size>=c.max&&d.push(c.id),c.size<=c.min&&o.push(c.id);l>.1&&De(l,d,o)},dt=()=>{let a=100;const l=[],d=[];let o=0;for(const y of t.value)a-=y.size,y.givenSize!==null&&o++,y.size>=y.max&&l.push(y.id),y.size<=y.min&&d.push(y.id);let c=100;if(a>.1){for(const y of t.value)y.givenSize===null&&(y.size=Math.max(Math.min(a/(b.value-o),y.max),y.min)),c-=y.size;c>.1&&De(c,l,d)}},ut=({addedPane:a,removedPane:l}={})=>{let d=100/b.value,o=0;const c=[],y=[];(a?.givenSize??null)!==null&&(d=(100-a.givenSize)/(b.value-1));for(const w of t.value)o-=w.size,w.size>=w.max&&c.push(w.id),w.size<=w.min&&y.push(w.id);if(!(Math.abs(o)<.1)){for(const w of t.value)a?.givenSize!==null&&a?.id===w.id||(w.size=Math.max(Math.min(d,w.max),w.min)),o-=w.size,w.size>=w.max&&c.push(w.id),w.size<=w.min&&y.push(w.id);o>.1&&De(o,c,y)}},De=(a,l,d)=>{let o;a>0?o=a/(b.value-l.length):o=a/(b.value-d.length),t.value.forEach((c,y)=>{if(a>0&&!l.includes(c.id)){const w=Math.max(Math.min(c.size+o,c.max),c.min),O=w-c.size;a-=O,c.size=w}else if(!d.includes(c.id)){const w=Math.max(Math.min(c.size+o,c.max),c.min),O=w-c.size;a-=O,c.size=w}}),Math.abs(a)>.1&&pe(()=>{_.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},G=(a,l=void 0,d=!1)=>{const o=l?.index??f.value.activeSplitter??null;e(a,{...l,...o!==null&&{index:o},...d&&o!==null&&{prevPane:t.value[o-(p.firstSplitter?1:0)],nextPane:t.value[o+(p.firstSplitter?0:1)]},panes:t.value.map(c=>({min:c.min,max:c.max,size:c.size}))})};te(()=>p.firstSplitter,()=>Ce()),me(()=>{nt(),Ce(),Se(),G("ready"),_.value=!0}),Pe(()=>_.value=!1);const pt=()=>{var a;return wt("div",{ref:g,class:F.value},(a=s.default)==null?void 0:a.call(s))};return Y("panes",t),Y("indexedPanes",u),Y("horizontal",$(()=>p.horizontal)),Y("requestUpdate",st),Y("onPaneAdd",ot),Y("onPaneRemove",rt),Y("onPaneClick",ye),(a,l)=>(r(),D(Xe(pt)))}},Ci={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(i){var n;const e=i,p=ie("requestUpdate"),s=ie("onPaneAdd"),t=ie("horizontal"),u=ie("onPaneRemove"),b=ie("onPaneClick"),g=(n=bt())==null?void 0:n.uid,_=ie("indexedPanes"),f=$(()=>_.value[g]),x=T(null),F=$(()=>{const C=isNaN(e.size)||e.size===void 0?0:parseFloat(e.size);return Math.max(Math.min(C,j.value),E.value)}),E=$(()=>{const C=parseFloat(e.minSize);return isNaN(C)?0:C}),j=$(()=>{const C=parseFloat(e.maxSize);return isNaN(C)?100:C}),h=$(()=>{var C;return`${t.value?"height":"width"}: ${(C=f.value)==null?void 0:C.size}%`});return te(()=>F.value,C=>p({uid:g,size:C})),te(()=>E.value,C=>p({uid:g,min:C})),te(()=>j.value,C=>p({uid:g,max:C})),me(()=>{s({id:g,el:x.value,min:E.value,max:j.value,givenSize:e.size===void 0?null:F.value,size:F.value})}),Pe(()=>u(g)),(C,U)=>(r(),m("div",{ref_key:"paneEl",ref:x,class:"splitpanes__pane",onClick:U[0]||(U[0]=re=>v(b)(re,C._.uid)),style:xt(h.value)},[A(C.$slots,"default")],4))}};function _i(i){let n=!1,e;return(...p)=>(n||(n=!0,e=i(...p)),e)}let tt="missing-app-name";try{tt=be}catch{ve.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const bi=tt;let xi="";try{xi=ht}catch{ve.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}function it(){return ie("appName",bi)}const wi=_i(()=>{const i=xe("core","apps",[]),n=it();return i.find(({id:e})=>e===n)?.name??n});se(Mt);const zi=X({__name:"NcAppContentDetailsToggle",setup(i){const n=fe();te(n,e),me(()=>{e(n.value)}),Pe(()=>{n.value&&e(!1)});function e(p=!0){const s=document.querySelector(".app-navigation .app-navigation-toggle");s&&(s.style.display=p?"none":"",p===!0&&le("toggle-navigation",{open:!1}))}return(p,s)=>(r(),D(v(J),{"aria-label":v(Z)("Go back to the list"),class:B(["app-details-toggle",{"app-details-toggle--mobile":v(n)}]),title:v(Z)("Go back to the list"),variant:"tertiary"},{icon:z(()=>[L(v(ee),{directional:"",path:v(Jt)},null,8,["path"])]),_:1},8,["aria-label","class","title"]))}}),ki=H(zi,[["__scopeId","data-v-a28923a1"]]),je=mt("nextcloud").persist().build(),Si=Xt().theming?.name??"Nextcloud",Di={name:"NcAppContent",components:{NcAppContentDetailsToggle:ki,Pane:Ci,Splitpanes:yi},props:{disableSwipe:{type:Boolean,default:!1},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},layout:{type:String,default:"vertical-split",validator(i){return["no-split","vertical-split","horizontal-split"].includes(i)}},pageHeading:{type:String,default:null},pageTitle:{type:String,default:null}},emits:["update:showDetails","resizeList"],setup(){return{appName:it(),localizedAppName:wi(),isMobile:fe(),isRtl:Bt}},data(){return{contentHeight:0,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return`pane-list-size-${this.paneConfigKey}`;try{return`pane-list-size-${this.appName}`}catch{return ve.info("[NcAppContent]: 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}}},realPageTitle(){const i=new Set;if(this.pageTitle)for(const n of this.pageTitle.split(" - "))i.add(n);else if(this.pageHeading){for(const n of this.pageHeading.split(" - "))i.add(n);i.size>0&&i.add(this.localizedAppName)}else return null;return i.add(Si),[...i.values()].join(" - ")}},watch:{realPageTitle:{immediate:!0,handler(){this.realPageTitle!==null&&(document.title=this.realPageTitle)}},paneConfigKey:{immediate:!0,handler(){this.restorePaneConfig()}}},mounted(){this.disableSwipe||(this.swiping=Yt(this.$el,{onSwipeEnd:this.handleSwipe})),this.restorePaneConfig()},methods:{handleSwipe(i,n){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&n==="right"?le("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&n==="left"&&le("toggle-navigation",{open:!1}))},handlePaneResize(i){const n=parseInt(i.panes[0].size,10);je.setItem(this.paneConfigID,JSON.stringify(n)),this.listPaneSize=n,this.$emit("resizeList",{size:n}),ve.debug("[NcAppContent] pane config",{listPaneSize:n})},restorePaneConfig(){const i=parseInt(je.getItem(this.paneConfigID),10);if(!isNaN(i)&&i!==this.listPaneSize)return ve.debug("[NcAppContent] pane config",{listPaneSize:i}),this.listPaneSize=i,i},hideDetails(){this.$emit("update:showDetails",!1)}}},Li={key:0,class:"hidden-visually"},Ei={class:"app-content-wrapper__list"},Ni={key:1,class:"app-content-wrapper"};function Pi(i,n,e,p,s,t){const u=V("NcAppContentDetailsToggle"),b=V("Pane"),g=V("Splitpanes");return r(),m("main",{id:"app-content-vue",class:B(["app-content no-snapper",{"app-content--has-list":!!i.$slots.list}])},[e.pageHeading?(r(),m("h1",Li,N(e.pageHeading),1)):k("",!0),i.$slots.list?(r(),m(ze,{key:1},[p.isMobile||e.layout==="no-split"?(r(),m("div",{key:0,class:B(["app-content-wrapper app-content-wrapper--no-split",{"app-content-wrapper--show-details":e.showDetails,"app-content-wrapper--show-list":!e.showDetails,"app-content-wrapper--mobile":p.isMobile}])},[e.showDetails?(r(),D(u,{key:0,onClick:Q(t.hideDetails,["stop","prevent"])},null,8,["onClick"])):k("",!0),oe(S("div",Ei,[A(i.$slots,"list",{},void 0,!0)],512),[[he,!e.showDetails]]),e.showDetails?A(i.$slots,"default",{key:1},void 0,!0):k("",!0)],2)):e.layout==="vertical-split"||e.layout==="horizontal-split"?(r(),m("div",Ni,[L(g,{horizontal:e.layout==="horizontal-split",class:B(["default-theme",{"splitpanes--horizontal":e.layout==="horizontal-split","splitpanes--vertical":e.layout==="vertical-split"}]),rtl:p.isRtl,onResized:t.handlePaneResize},{default:z(()=>[L(b,{class:"splitpanes__pane-list",size:s.listPaneSize||t.paneDefaults.list.size,minSize:t.paneDefaults.list.min,maxSize:t.paneDefaults.list.max},{default:z(()=>[A(i.$slots,"list",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"]),L(b,{class:"splitpanes__pane-details",size:t.detailsPaneSize,minSize:t.paneDefaults.details.min,maxSize:t.paneDefaults.details.max},{default:z(()=>[A(i.$slots,"default",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"])]),_:3},8,["horizontal","class","rtl","onResized"])])):k("",!0)],64)):k("",!0),i.$slots.list?k("",!0):A(i.$slots,"default",{key:2},void 0,!0)],2)}const $i=H(Di,[["render",Pi],["__scopeId","data-v-ea1e6879"]]),Ai={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mi=["aria-hidden","aria-label"],Bi=["fill","width","height"],Ii={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},Ti={key:0};function Vi(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon close-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",Ii,[e.title?(r(),m("title",Ti,N(e.title),1)):k("",!0)])],8,Bi))],16,Mi)}const Hi=H(Ai,[["render",Vi]]),Ri={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Oi=["aria-hidden","aria-label"],Fi=["fill","width","height"],Zi={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},Ui={key:0};function Ki(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",Zi,[e.title?(r(),m("title",Ui,N(e.title),1)):k("",!0)])],8,Fi))],16,Oi)}const ji=H(Ri,[["render",Ki]]),qi={class:"input-field__main-wrapper"},Gi=["id","aria-describedby","disabled","placeholder","type","value"],Wi=["for"],Xi={class:"input-field__icon input-field__icon--leading"},Yi={key:2,class:"input-field__icon input-field__icon--trailing"},Ji=["id"],Qi=X({inheritAttrs:!1,__name:"NcInputField",props:Oe({class:{default:""},inputClass:{default:""},id:{default:()=>Be()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:Oe(["trailingButtonClick"],["update:modelValue"]),setup(i,{expose:n,emit:e}){const p=Ye(i,"modelValue"),s=i,t=e;n({focus:F,select:E});const u=zt(),b=$e("input"),g=$(()=>s.showTrailingButton||s.success),_=$(()=>{if(s.placeholder)return s.placeholder;if(s.label)return Le?s.label:""}),f=$(()=>s.label||s.labelOutside),x=$(()=>{const h=[];return s.helperText&&h.push(`${s.id}-helper-text`),u["aria-describedby"]&&h.push(String(u["aria-describedby"])),h.join(" ")||void 0});function F(h){b.value.focus(h)}function E(){b.value.select()}function j(h){const C=h.target;p.value=s.type==="number"&&typeof p.value=="number"?parseFloat(C.value):C.value}return(h,C)=>(r(),m("div",{class:B(["input-field",[{"input-field--disabled":h.disabled,"input-field--error":h.error,"input-field--label-outside":h.labelOutside||!f.value,"input-field--leading-icon":!!h.$slots.icon,"input-field--trailing-icon":g.value,"input-field--pill":h.pill,"input-field--success":h.success,"input-field--legacy":v(Le)},h.$props.class]])},[S("div",qi,[S("input",ne(h.$attrs,{id:h.id,ref:"input","aria-describedby":x.value,"aria-live":"polite",class:["input-field__input",h.inputClass],disabled:h.disabled,placeholder:_.value,type:h.type,value:p.value.toString(),onInput:j}),null,16,Gi),!h.labelOutside&&f.value?(r(),m("label",{key:0,class:"input-field__label",for:h.id},N(h.label),9,Wi)):k("",!0),oe(S("div",Xi,[A(h.$slots,"icon",{},void 0,!0)],512),[[he,!!h.$slots.icon]]),h.showTrailingButton?(r(),D(J,{key:1,class:"input-field__trailing-button","aria-label":h.trailingButtonLabel,disabled:h.disabled,variant:"tertiary-no-background",onClick:C[0]||(C[0]=U=>t("trailingButtonClick",U))},{icon:z(()=>[A(h.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):h.success||h.error?(r(),m("div",Yi,[h.success?(r(),D(ee,{key:0,path:v(Fe)},null,8,["path"])):(r(),D(ee,{key:1,path:v(Ze)},null,8,["path"]))])):k("",!0)]),h.helperText?(r(),m("p",{key:0,id:`${h.id}-helper-text`,class:"input-field__helper-text-message"},[h.success?(r(),D(ee,{key:0,class:"input-field__helper-text-message__icon",path:v(Fe),inline:""},null,8,["path"])):h.error?(r(),D(ee,{key:1,class:"input-field__helper-text-message__icon",path:v(Ze),inline:""},null,8,["path"])):k("",!0),ae(" "+N(h.helperText),1)],8,Ji)):k("",!0)],2))}}),ea=H(Qi,[["__scopeId","data-v-8e16cbb5"]]),ta={class:"activity-group"},ia=["title"],aa=X({__name:"ActivityGroup",props:{activities:{}},setup(i){const n=i,e=$(()=>{const s=ue(),t=ue().subtract(1,"day"),u=ue(n.activities[0].datetime);return u.isSame(s,"day")?M("activity","Today"):u.isSame(t,"day")?M("activity","Yesterday"):u.format("LL")}),p=$(()=>{const s=ue(n.activities[0].datetime).format("LL");return s!==e.value?s:void 0});return(s,t)=>(r(),m("section",ta,[S("h2",{class:"activity-group__heading",title:p.value},N(e.value),9,ia),S("ul",null,[(r(!0),m(ze,null,Ae(i.activities,u=>(r(),D(Qt,{key:u.id,activity:u,showPreviews:!0},null,8,["activity"]))),128))])]))}}),na=Ie(aa,[["__scopeId","data-v-c06a2b9c"]]),la='',sa={class:"activity-app__heading hidden-visually"},oa={class:"activity-app__content"},ra={key:2,class:"activity-app__loading-indicator activity-app__loading-indicator--end"},qe=3e4,ca=X({__name:"ActivityAppFeed",props:{filter:{default:"all"}},setup(i){const n=i,e=xe(be,"navigationList"),p=It(),s=T(!1),t=T(!0),u=T([]),b=T(),g=T(),_=T(!1);let f,x=new AbortController;const F=ii(),E=T();ei(E,async()=>{t.value&&await C()},{distance:100});const j=$(()=>{const I={};for(const P of u.value){const R=ue(P.datetime).format("LL");I[R]===void 0?I[R]=[P]:I[R].push(P)}return I}),h=$(()=>e.find(I=>I.id===p.params.filter).name);async function C(){if(s.value)return;const{signal:I}=x;try{const P=b.value??"0";s.value=!0;const R=await Ee.get(Re("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}",{filter:n.filter,since:P}),{signal:I});if(I.aborted)return;const K=R.data.ocs.data.map(q=>new Ue(q));u.value.push(...K),b.value=R.headers["x-activity-last-given"],t.value=!0,g.value===void 0&&K.length>0&&(g.value=K[0].id),pe(async()=>{E.value&&E.value.clientHeight===E.value.scrollHeight&&await C()})}catch(P){if(_e.isCancel(P))return;if(_e.isAxiosError(P)&&P.response?.status===304){t.value=!1;return}we.error(P),Qe(M("activity","Could not load activities"))}finally{I.aborted||(s.value=!1)}}async function U(){const{signal:I}=x;try{const P=String(g.value??0),R=await Ee.get(Re("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}&sort=asc",{filter:n.filter,since:P}),{signal:I});if(!I.aborted&&R.data.ocs.data.length>0){const K=R.data.ocs.data.map(q=>new Ue(q));K.sort((q,ke)=>ke.id-q.id),g.value=K[0].id,u.value.unshift(...K),!E.value||E.value.scrollTop<50||(_.value=!0)}}catch(P){!_e.isCancel(P)&&(!_e.isAxiosError(P)||P.response?.status!==304)&&we.error(P)}f!==void 0&&(f=setTimeout(U,qe))}function re(){_.value=!1,E.value?.scrollTo({top:0,behavior:"smooth"})}const ce=ti(()=>{E.value&&E.value.scrollTop<50&&(_.value=!1)},100);function ye(){de(),f=setTimeout(U,qe)}function de(){f!==void 0&&(clearTimeout(f),f=void 0)}return me(()=>{C(),ye()}),Je(()=>{de(),x.abort()}),te(F,I=>{I==="hidden"?de():ye()}),te(n,()=>{x.abort(),x=new AbortController,u.value=[],_.value=!1,b.value=void 0,g.value=void 0,t.value=!0,C()}),(I,P)=>(r(),D(v($i),{class:"activity-app"},{default:z(()=>[S("h1",sa,N(h.value),1),t.value&&u.value.length===0?(r(),D(v(Ke),{key:0,class:"activity-app__empty-content",name:v(M)("activity","Loading activities"),description:v(M)("activity","This stream will show events like additions, changes & shares")},{icon:z(()=>[L(v(Ne),{size:36})]),_:1},8,["name","description"])):u.value.length===0?(r(),D(v(Ke),{key:1,class:"activity-app__empty-content",name:v(M)("activity","No activity yet"),description:v(M)("activity","This stream will show events like additions, changes & shares")},{icon:z(()=>[L(v(ee),{svg:v(la),size:36},null,8,["svg"])]),_:1},8,["name","description"])):k("",!0),S("div",{ref_key:"container",ref:E,class:"activity-app__container",onScroll:P[0]||(P[0]=(...R)=>v(ce)&&v(ce)(...R))},[S("div",oa,[_.value?(r(),D(v(J),{key:0,class:"activity-app__new-activities-indicator",type:"button",onClick:re},{default:z(()=>[ae(N(v(M)("activity","New activities")),1)]),_:1})):k("",!0),(r(!0),m(ze,null,Ae(j.value,(R,K)=>(r(),D(na,{key:K,activities:R},null,8,["activities"]))),128)),t.value&&u.value.length>0?(r(),D(v(Ne),{key:1,name:v(M)("activity","Loading more activities"),size:64,class:"activity-app__loading-indicator"},null,8,["name"])):!t.value&&u.value.length>0?(r(),m("div",ra,N(v(M)("activity","No more activities.")),1)):k("",!0)])],544)]),_:1}))}}),da=Ie(ca,[["__scopeId","data-v-eb423d7c"]]),ua={name:"NcAppNavigationList"},pa={class:"app-navigation-list"};function va(i,n,e,p,s,t){return r(),m("ul",pa,[A(i.$slots,"default",{},void 0,!0)])}const ha=H(ua,[["render",va],["__scopeId","data-v-d72957ed"]]);se(Tt);const ma={class:"app-navigation-toggle-wrapper"},ga=X({__name:"NcAppNavigationToggle",props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:["update:open"],setup(i){const n=Ye(i,"open"),e=$(()=>n.value?Z("Close navigation"):Z("Open navigation"));return(p,s)=>(r(),m("div",ma,[L(v(J),{class:"app-navigation-toggle","aria-controls":"app-navigation-vue","aria-expanded":n.value?"true":"false","aria-label":e.value,title:e.value,variant:"tertiary",onClick:s[0]||(s[0]=t=>n.value=!n.value)},{icon:z(()=>[L(ee,{path:n.value?v(ai):v(ni)},null,8,["path"])]),_:1},8,["aria-expanded","aria-label","title"])]))}}),fa=H(ga,[["__scopeId","data-v-5a15295d"]]),ya=["aria-hidden","aria-label","aria-labelledby","inert"],Ca={class:"app-navigation__search"},_a=X({__name:"NcAppNavigation",props:{ariaLabel:{},ariaLabelledby:{}},setup(i){const n=i;let e;const p=ie(et,()=>kt(),!1),s=$e("appNavigationContainer"),t=fe(),u=T(!t.value);St(()=>{!n.ariaLabel&&n.ariaLabelledby}),te(t,()=>{u.value=!t.value}),te(u,()=>{_()}),me(()=>{p(!0),gt("toggle-navigation",g),le("navigation-toggled",{open:u.value}),e=Vt(s.value,{allowOutsideClick:!0,clickOutsideDeactivates:()=>(t.value&&(e.deactivate({returnFocus:!1}),b(!1)),!1),fallbackFocus:s.value,trapStack:Ht(),escapeDeactivates:!1}),_()}),Je(()=>{p(!1),ft("toggle-navigation",g),e.deactivate()});function b(x){if(u.value===x){le("navigation-toggled",{open:u.value});return}u.value=x===void 0?!u.value:x;const F=getComputedStyle(document.body),E=parseInt(F.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{le("navigation-toggled",{open:u.value})},1.5*E)}function g({open:x}){return b(x)}function _(){t.value&&u.value?e.activate():e.deactivate()}function f(){t.value&&b(!1)}return(x,F)=>(r(),m("div",{ref:"appNavigationContainer",class:B(["app-navigation",{"app-navigation--closed":!u.value,"app-navigation--legacy":v(ge)}])},[S("nav",{id:"app-navigation-vue","aria-hidden":u.value?"false":"true","aria-label":x.ariaLabel||void 0,"aria-labelledby":x.ariaLabelledby||void 0,class:"app-navigation__content",inert:!u.value||void 0,onKeydown:Me(f,["esc"])},[S("div",Ca,[A(x.$slots,"search",{},void 0,!0)]),S("div",{class:B(["app-navigation__body",{"app-navigation__body--no-list":!x.$slots.list}])},[A(x.$slots,"default",{},void 0,!0)],2),x.$slots.list?(r(),D(ha,{key:0,class:"app-navigation__list"},{default:z(()=>[A(x.$slots,"list",{},void 0,!0)]),_:3})):k("",!0),A(x.$slots,"footer",{},void 0,!0)],40,ya),L(fa,{open:u.value,"onUpdate:open":b},null,8,["open"])],2))}}),ba=H(_a,[["__scopeId","data-v-3b634fbd"]]),xa={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},wa=["aria-hidden","aria-label"],za=["fill","width","height"],ka={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},Sa={key:0};function Da(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",ka,[e.title?(r(),m("title",Sa,N(e.title),1)):k("",!0)])],8,za))],16,wa)}const La=H(xa,[["render",Da]]),Ea={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Na=["aria-hidden","aria-label"],Pa=["fill","width","height"],$a={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},Aa={key:0};function Ma(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",$a,[e.title?(r(),m("title",Aa,N(e.title),1)):k("",!0)])],8,Pa))],16,Na)}const Ba=H(Ea,[["render",Ma]]);se(Rt);const Ia={name:"NcInputConfirmCancel",components:{IconArrowRight:Ba,IconClose:Hi,NcButton:J},setup(){return{isLegacy34:ge}},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},modelValue:{default:"",type:String}},emits:["cancel","confirm","update:modelValue"],data(){return{labelConfirm:Z("Confirm changes"),labelCancel:Z("Cancel changes")}},computed:{valueModel:{get(){return this.modelValue},set(i){this.$emit("update:modelValue",i)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}},Ta=["placeholder"];function Va(i,n,e,p,s,t){const u=V("IconArrowRight"),b=V("NcButton"),g=V("IconClose");return r(),m("div",{class:B(["app-navigation-input-confirm",{"app-navigation-input-confirm--legacy":p.isLegacy34}])},[S("form",{onSubmit:n[1]||(n[1]=Q((..._)=>t.confirm&&t.confirm(..._),["prevent"])),onKeydown:n[2]||(n[2]=Me(Q((..._)=>t.cancel&&t.cancel(..._),["exact","stop","prevent"]),["esc"])),onClick:n[3]||(n[3]=Q(()=>{},["stop","prevent"]))},[oe(S("input",{ref:"input","onUpdate:modelValue":n[0]||(n[0]=_=>t.valueModel=_),type:"text",class:"app-navigation-input-confirm__input",placeholder:e.placeholder},null,8,Ta),[[Dt,t.valueModel]]),L(b,{"aria-label":s.labelConfirm,type:"submit",variant:"primary",onClick:Q(t.confirm,["stop","prevent"])},{icon:z(()=>[L(u,{size:20})]),_:1},8,["aria-label","onClick"]),L(b,{"aria-label":s.labelCancel,type:"reset",variant:e.primary?"primary":"tertiary",onClick:Q(t.cancel,["stop","prevent"])},{icon:z(()=>[L(g,{size:20})]),_:1},8,["aria-label","variant","onClick"])],32)],2)}const Ha=H(Ia,[["render",Va],["__scopeId","data-v-a8724c7f"]]),Ra=X({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}}),Oa={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fa=["aria-hidden","aria-label"],Za=["fill","width","height"],Ua={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"},Ka={key:0};function ja(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon pencil-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",Ua,[e.title?(r(),m("title",Ka,N(e.title),1)):k("",!0)])],8,Za))],16,Fa)}const qa=H(Oa,[["render",ja]]),Ga={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Wa=["aria-hidden","aria-label"],Xa=["fill","width","height"],Ya={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"},Ja={key:0};function Qa(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon undo-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",Ya,[e.title?(r(),m("title",Ja,N(e.title),1)):k("",!0)])],8,Xa))],16,Wa)}const en=H(Ga,[["render",Qa]]);se(Ot);const tn={name:"NcAppNavigationIconCollapsible",components:{NcButton:J,ChevronDown:ji,ChevronUp:La},setup(){return{isLegacy34:ge}},props:{open:{type:Boolean,required:!0},active:{type:Boolean,required:!0}},emits:["click"],computed:{labelButton(){return this.open?Z("Collapse menu"):Z("Open menu")}},methods:{onClick(i){this.$emit("click",i)}}};function an(i,n,e,p,s,t){const u=V("ChevronUp"),b=V("ChevronDown"),g=V("NcButton");return r(),D(g,{class:B(["icon-collapse",{"icon-collapse--active":e.active,"icon-collapse--open":e.open}]),"aria-label":t.labelButton,variant:e.active&&p.isLegacy34?"tertiary-on-primary":"tertiary",onClick:t.onClick},{icon:z(()=>[e.open?(r(),D(u,{key:0,size:20})):(r(),D(b,{key:1,size:20}))]),_:1},8,["class","aria-label","variant","onClick"])}const nn=H(tn,[["render",an],["__scopeId","data-v-acf5ed2f"]]);se(Zt,Ft);const ln={name:"NcAppNavigationItem",components:{NcActions:Ut,NcActionButton:li,NcAppNavigationIconCollapsible:nn,NcInputConfirmCancel:Ha,NcLoadingIcon:Ne,NcVNodes:Ra,Pencil:qa,Undo:en},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>Be(),validator:i=>i.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},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:fe(),isLegacy34:ge}},data(){return{actionsBoundariesElement:void 0,editingValue:"",opened:this.open,editingActive:!1,menuOpenLocalValue:!1,focused:!1}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},editButtonAriaLabel(){return this.editLabel?this.editLabel:Z("Edit item")},undoButtonAriaLabel(){return Z("Undo changes")}},watch:{open(i){this.opened=i}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},methods:{onMenuToggle(i){this.$emit("update:menuOpen",i),this.menuOpenLocalValue=i},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(i,n,e){this.$emit("click",i),!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)&&e&&(n?.(i),i.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")},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(i){this.$refs.actions&&(this.focused?(i.preventDefault(),this.$refs.actions.$refs.triggerButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.triggerButton.$el.blur())},isExternal(i){return i&&i.match(/[a-z]+:\/\//i)}}},sn=["id"],on=["aria-current","aria-description","aria-expanded","href","target","title","onClick"],rn={key:0,class:"editingContainer"},cn={key:1,class:"app-navigation-entry__deleted"},dn={class:"app-navigation-entry__deleted-description"},un={key:0,class:"app-navigation-entry__counter-wrapper"},pn={key:0,class:"app-navigation-entry__children"};function vn(i,n,e,p,s,t){const u=V("NcLoadingIcon"),b=V("NcInputConfirmCancel"),g=V("Pencil"),_=V("NcActionButton"),f=V("Undo"),x=V("NcActions"),F=V("NcAppNavigationIconCollapsible");return r(),m("li",{id:e.id,class:B([{"app-navigation-entry--opened":s.opened,"app-navigation-entry--pinned":e.pinned,"app-navigation-entry--collapsible":e.allowCollapse&&!!i.$slots.default},"app-navigation-entry-wrapper"])},[(r(),D(Xe(t.isRouterLink?"router-link":"NcVNodes"),Lt(Et({...t.isRouterLink&&{custom:!0,to:e.to}})),{default:z(({href:E,navigate:j,isActive:h})=>[S("div",{class:B(["app-navigation-entry",{"app-navigation-entry--editing":s.editingActive,"app-navigation-entry--deleted":e.undo,"app-navigation-entry--legacy":p.isLegacy34,active:e.to&&h||e.active}])},[e.undo?k("",!0):(r(),m("a",{key:0,class:"app-navigation-entry-link","aria-current":e.active||e.to&&h?"page":void 0,"aria-description":e.ariaDescription,"aria-expanded":i.$slots.default?s.opened.toString():void 0,href:e.href||E||"#",target:t.isExternal(e.href)?"_blank":void 0,title:e.title||e.name,onBlur:n[1]||(n[1]=(...C)=>t.handleBlur&&t.handleBlur(...C)),onClick:C=>t.onClick(C,j,E),onFocus:n[2]||(n[2]=(...C)=>t.handleFocus&&t.handleFocus(...C)),onKeydown:n[3]||(n[3]=Me(Q((...C)=>t.handleTab&&t.handleTab(...C),["exact"]),["tab"]))},[S("div",{class:B(["app-navigation-entry-icon",{[e.icon]:e.icon}])},[e.loading?(r(),D(u,{key:0})):A(i.$slots,"icon",{key:1,active:e.active||e.to&&h},void 0,!0)],2),S("span",{class:B(["app-navigation-entry__name",{"hidden-visually":s.editingActive}])},N(e.name),3),s.editingActive?(r(),m("div",rn,[L(b,{ref:"editingInput",modelValue:s.editingValue,"onUpdate:modelValue":n[0]||(n[0]=C=>s.editingValue=C),placeholder:e.editPlaceholder!==""?e.editPlaceholder:e.name,primary:e.to&&h||e.active,onCancel:t.cancelEditing,onConfirm:t.handleEditingDone},null,8,["modelValue","placeholder","primary","onCancel","onConfirm"])])):k("",!0)],40,on)),e.undo?(r(),m("div",cn,[S("div",dn,N(e.name),1)])):k("",!0),(i.$slots.actions||i.$slots.counter||e.editable||e.undo)&&!s.editingActive?(r(),m("div",{key:2,class:B(["app-navigation-entry__utils",{"app-navigation-entry__utils--display-actions":e.forceDisplayActions||s.menuOpenLocalValue||e.menuOpen}])},[i.$slots.counter?(r(),m("div",un,[A(i.$slots,"counter",{},void 0,!0)])):k("",!0),i.$slots.actions||e.editable&&!s.editingActive||e.undo?(r(),D(x,{key:1,ref:"actions",class:"app-navigation-entry__actions",container:"#app-navigation-vue",boundariesElement:s.actionsBoundariesElement,inline:e.inlineActions,placement:e.menuPlacement,open:e.menuOpen,forceMenu:e.forceMenu,defaultIcon:e.menuIcon,variant:"tertiary","onUpdate:open":t.onMenuToggle},{icon:z(()=>[A(i.$slots,"menu-icon",{},void 0,!0)]),default:z(()=>[e.editable&&!s.editingActive?(r(),D(_,{key:0,"aria-label":t.editButtonAriaLabel,onClick:t.handleEdit},{icon:z(()=>[L(g,{size:20})]),default:z(()=>[ae(" "+N(e.editLabel),1)]),_:1},8,["aria-label","onClick"])):k("",!0),e.undo?(r(),D(_,{key:1,"aria-label":t.undoButtonAriaLabel,onClick:t.handleUndo},{icon:z(()=>[L(f,{size:20})]),_:1},8,["aria-label","onClick"])):k("",!0),A(i.$slots,"actions",{},void 0,!0)]),_:3},8,["boundariesElement","inline","placement","open","forceMenu","defaultIcon","onUpdate:open"])):k("",!0)],2)):k("",!0),e.allowCollapse&&i.$slots.default?(r(),D(F,{key:3,active:e.to&&h||e.active,open:s.opened,onClick:Q(t.toggleCollapse,["prevent","stop"])},null,8,["active","open","onClick"])):k("",!0),A(i.$slots,"extra",{},void 0,!0)],2)]),_:3},16)),t.canHaveChildren&&i.$slots.default?(r(),m("ul",pn,[A(i.$slots,"default",{},void 0,!0)])):k("",!0)],10,sn)}const hn=H(ln,[["render",vn],["__scopeId","data-v-e4d562ae"]]);se(Kt);const mn=["id"],gn=X({__name:"NcAppNavigationSettings",props:{excludeClickOutsideSelectors:{default:()=>[]},name:{default:()=>Z("Settings")}},setup(i){const n=Be(),e=T(!1),p=$e("wrapperElement"),s=$(()=>Array.isArray(i.excludeClickOutsideSelectors)?i.excludeClickOutsideSelectors:i.excludeClickOutsideSelectors.split(" "));return si(p,()=>{e.value=!1},{ignore:s}),(t,u)=>(r(),m("div",{ref:"wrapperElement",class:B(t.$style.container)},[S("div",{class:B(t.$style.header)},[L(J,{"aria-controls":v(n),"aria-expanded":e.value?"true":"false",class:B(t.$style.button),alignment:"start",variant:"tertiary",wide:"",onClick:u[0]||(u[0]=b=>e.value=!e.value)},{icon:z(()=>[L(ee,{path:v(Le)?v(oi):v(ri)},null,8,["path"])]),default:z(()=>[ae(" "+N(t.name),1)]),_:1},8,["aria-controls","aria-expanded","class"])],2),L(Nt,{enterActiveClass:t.$style.animationActive,leaveActiveClass:t.$style.animationActive,enterFromClass:t.$style.animationStop,leaveToClass:t.$style.animationStop},{default:z(()=>[oe(S("div",{id:v(n),class:B(t.$style.content)},[A(t.$slots,"default")],10,mn),[[he,e.value]])]),_:3},8,["enterActiveClass","leaveActiveClass","enterFromClass","leaveToClass"])],2))}}),fn="_container_RFk6U",yn="_header_2CtDS",Cn="_button_tAyis",_n="_content_--KYD",bn="_animationActive_DAG1p",xn="_animationStop_fWYQj",wn={container:fn,header:yn,button:Cn,content:_n,animationActive:bn,animationStop:xn},zn={$style:wn},kn=H(gn,[["__cssModules",zn]]),Sn={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Dn=["aria-hidden","aria-label"],Ln=["fill","width","height"],En={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"},Nn={key:0};function Pn(i,n,e,p,s,t){return r(),m("span",ne(i.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon content-copy-icon",role:"img",onClick:n[0]||(n[0]=u=>i.$emit("click",u))}),[(r(),m("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",En,[e.title?(r(),m("title",Nn,N(e.title),1)):k("",!0)])],8,Ln))],16,Dn)}const $n=Ie(Sn,[["render",Pn]]),An=["src"],Mn=X({__name:"ActivityAppNavigation",setup(i){const{rssLink:n,personalSettingsLink:e}=xe(be,"settings"),p=xe(be,"navigationList"),s=T(n),t=$(()=>!!s.value);async function u(){try{const{data:g}=await Ee.post(We("/apps/activity/settings/feed"),{enable:!t.value});s.value=g.data.rsslink}catch(g){Qe(M("activity","Could not enable RSS link")),we.error(g)}}async function b(){try{window.navigator.clipboard.writeText(s.value),Wt(M("activity","RSS link copied to clipboard"))}catch(g){we.debug(g),window.prompt(M("activity","Could not copy the RSS link, please copy manually:"),s.value)}}return(g,_)=>(r(),D(v(ba),{"aria-label":v(M)("activity","Activity")},{list:z(()=>[(r(!0),m(ze,null,Ae(v(p),f=>(r(),D(v(hn),{key:f.id,"data-navigation":f.id,to:f.id,name:f.name},Pt({_:2},[f.icon?{name:"icon",fn:z(()=>[S("img",{alt:"",src:f.icon,class:"navigation-icon",role:"presentation"},null,8,An)]),key:"0"}:void 0]),1032,["data-navigation","to","name"]))),128))]),footer:z(()=>[L(v(kn),{name:v(M)("activity","Activity settings")},{default:z(()=>[L(v(jt),{modelValue:t.value,"onUpdate:modelValue":[_[0]||(_[0]=f=>t.value=f),u],type:"switch"},{default:z(()=>[ae(N(v(M)("activity","Enable RSS feed")),1)]),_:1},8,["modelValue"]),t.value?(r(),D(v(ea),{key:0,modelValue:s.value,"onUpdate:modelValue":_[1]||(_[1]=f=>s.value=f),label:v(M)("activity","RSS feed"),showTrailingButton:!0,trailingButtonLabel:v(M)("activity","Copy RSS feed link"),readonly:"readonly",onTrailingButtonClick:b},{"trailing-button-icon":z(()=>[L($n,{size:20})]),_:1},8,["modelValue","label","trailingButtonLabel"])):k("",!0),L(v(J),{class:"settings-link",href:v(e),title:v(M)("activity","Personal notification settings"),variant:"tertiary"},{default:z(()=>[ae(N(v(M)("activity","Personal notification settings")),1)]),_:1},8,["href","title"])]),_:1},8,["name"])]),_:1},8,["aria-label"]))}}),Bn=[{path:"/",name:"root",redirect:{path:"/all"}},{path:"/:filter?",components:{default:da,navigation:Mn},props:{default:!0}}],In=qt({history:Gt(We("/apps/activity")),linkActiveClass:"active",routes:Bn}),Ge=$t(fi);Ge.use(In),Ge.mount("#content"); //# sourceMappingURL=activity-app.mjs.map diff --git a/js/activity-app.mjs.map b/js/activity-app.mjs.map index 973630fb6..43e4da737 100644 --- a/js/activity-app.mjs.map +++ b/js/activity-app.mjs.map @@ -1 +1 @@ -{"version":3,"file":"activity-app.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-Dd15hgck.mjs","../src/views/ActivityApp.vue","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DyNMVZpX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-taTvqnvd.mjs","../node_modules/@nextcloud/vue/dist/chunks/Close-CuhcJnX2.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-C6gc637b.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-C3iof9pY.mjs","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../src/views/ActivityAppFeed.vue","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-Bb54U_qJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ChH8oB7p.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-B1ncAhus.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-BL_BkfXh.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-Dg2d2AwS.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-CJ2z5cYU.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-Ciwvl5xb.mjs.map\n","import '../assets/NcContent-DXc6geEw.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, openBlock, createElementBlock, normalizeClass, unref, createBlock, Teleport, createElementVNode, toDisplayString, withDirectives, createVNode, withModifiers, withCtx, createTextVNode, vShow, renderSlot, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t30);\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 _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", [`app-${_ctx.appName.toLowerCase()}`, { \"content--legacy\": unref(isLegacy34) }]])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-91d07631\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-Dd15hgck.mjs.map\n","\n\n\n\n\n","import { useSlots as ce, ref as k, computed as z, watch as B, onMounted as G, onBeforeUnmount as X, provide as g, createBlock as ve, openBlock as Y, resolveDynamicComponent as me, nextTick as T, h as fe, inject as w, getCurrentInstance as de, createElementBlock as pe, normalizeStyle as ze, unref as he, renderSlot as xe } from \"vue\";\nconst Pe = {\n __name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean, default: !1 },\n pushOtherPanes: { type: Boolean, default: !0 },\n maximizePanes: { type: Boolean, default: !0 },\n // Maximize pane on splitter double click/tap.\n rtl: { type: Boolean, default: !1 },\n // Right to left direction.\n firstSplitter: { type: Boolean, default: !1 }\n },\n emits: [\n \"ready\",\n \"resize\",\n \"resized\",\n \"pane-click\",\n \"pane-maximize\",\n \"pane-add\",\n \"pane-remove\",\n \"splitter-click\",\n \"splitter-dblclick\"\n ],\n setup(D, { emit: h }) {\n const y = h, u = D, E = ce(), l = k([]), M = z(() => l.value.reduce((e, n) => (e[~~n.id] = n) && e, {})), m = z(() => l.value.length), x = k(null), S = k(!1), c = k({\n mouseDown: !1,\n dragging: !1,\n activeSplitter: null,\n cursorOffset: 0\n // Cursor offset within the splitter.\n }), f = k({\n // Used to detect double click on touch devices.\n splitter: null,\n timeoutId: null\n }), _ = z(() => ({\n [`splitpanes splitpanes--${u.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n \"splitpanes--dragging\": c.value.dragging\n })), R = () => {\n document.addEventListener(\"mousemove\", r, { passive: !1 }), document.addEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", r, { passive: !1 }), document.addEventListener(\"touchend\", P));\n }, O = () => {\n document.removeEventListener(\"mousemove\", r, { passive: !1 }), document.removeEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", r, { passive: !1 }), document.removeEventListener(\"touchend\", P));\n }, b = (e, n) => {\n const t = e.target.closest(\".splitpanes__splitter\");\n if (t) {\n const { left: i, top: a } = t.getBoundingClientRect(), { clientX: s, clientY: o } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n c.value.cursorOffset = u.horizontal ? o - a : s - i;\n }\n R(), c.value.mouseDown = !0, c.value.activeSplitter = n;\n }, r = (e) => {\n c.value.mouseDown && (e.preventDefault(), c.value.dragging = !0, requestAnimationFrame(() => {\n K(I(e)), d(\"resize\", { event: e }, !0);\n }));\n }, P = (e) => {\n c.value.dragging && (window.getSelection().removeAllRanges(), d(\"resized\", { event: e }, !0)), c.value.mouseDown = !1, c.value.activeSplitter = null, setTimeout(() => {\n c.value.dragging = !1, O();\n }, 100);\n }, A = (e, n) => {\n \"ontouchstart\" in window && (e.preventDefault(), f.value.splitter === n ? (clearTimeout(f.value.timeoutId), f.value.timeoutId = null, U(e, n), f.value.splitter = null) : (f.value.splitter = n, f.value.timeoutId = setTimeout(() => f.value.splitter = null, 500))), c.value.dragging || d(\"splitter-click\", { event: e, index: n }, !0);\n }, U = (e, n) => {\n if (d(\"splitter-dblclick\", { event: e, index: n }, !0), u.maximizePanes) {\n let t = 0;\n l.value = l.value.map((i, a) => (i.size = a === n ? i.max : i.min, a !== n && (t += i.min), i)), l.value[n].size -= t, d(\"pane-maximize\", { event: e, index: n, pane: l.value[n] }), d(\"resized\", { event: e, index: n }, !0);\n }\n }, W = (e, n) => {\n d(\"pane-click\", {\n event: e,\n index: M.value[n].index,\n pane: M.value[n]\n });\n }, I = (e) => {\n const n = x.value.getBoundingClientRect(), { clientX: t, clientY: i } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n return {\n x: t - (u.horizontal ? 0 : c.value.cursorOffset) - n.left,\n y: i - (u.horizontal ? c.value.cursorOffset : 0) - n.top\n };\n }, J = (e) => {\n e = e[u.horizontal ? \"y\" : \"x\"];\n const n = x.value[u.horizontal ? \"clientHeight\" : \"clientWidth\"];\n return u.rtl && !u.horizontal && (e = n - e), e * 100 / n;\n }, K = (e) => {\n const n = c.value.activeSplitter;\n let t = {\n prevPanesSize: $(n),\n nextPanesSize: N(n),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const i = 0 + (u.pushOtherPanes ? 0 : t.prevPanesSize), a = 100 - (u.pushOtherPanes ? 0 : t.nextPanesSize), s = Math.max(Math.min(J(e), a), i);\n let o = [n, n + 1], v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n const H = v.max < 100 && s >= v.max + t.prevPanesSize, ue = p.max < 100 && s <= 100 - (p.max + N(n + 1));\n if (H || ue) {\n H ? (v.size = v.max, p.size = Math.max(100 - v.max - t.prevPanesSize - t.nextPanesSize, 0)) : (v.size = Math.max(100 - p.max - t.prevPanesSize - N(n + 1), 0), p.size = p.max);\n return;\n }\n if (u.pushOtherPanes) {\n const j = Q(t, s);\n if (!j) return;\n ({ sums: t, panesToResize: o } = j), v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n }\n v !== null && (v.size = Math.min(Math.max(s - t.prevPanesSize - t.prevReachedMinPanes, v.min), v.max)), p !== null && (p.size = Math.min(Math.max(100 - s - t.nextPanesSize - t.nextReachedMinPanes, p.min), p.max));\n }, Q = (e, n) => {\n const t = c.value.activeSplitter, i = [t, t + 1];\n return n < e.prevPanesSize + l.value[i[0]].min && (i[0] = V(t).index, e.prevReachedMinPanes = 0, i[0] < t && l.value.forEach((a, s) => {\n s > i[0] && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), e.prevPanesSize = $(i[0]), i[0] === void 0) ? (e.prevReachedMinPanes = 0, l.value[0].size = l.value[0].min, l.value.forEach((a, s) => {\n s > 0 && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), l.value[i[1]].size = 100 - e.prevReachedMinPanes - l.value[0].min - e.prevPanesSize - e.nextPanesSize, null) : n > 100 - e.nextPanesSize - l.value[i[1]].min && (i[1] = Z(t).index, e.nextReachedMinPanes = 0, i[1] > t + 1 && l.value.forEach((a, s) => {\n s > t && s < i[1] && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), e.nextPanesSize = N(i[1] - 1), i[1] === void 0) ? (e.nextReachedMinPanes = 0, l.value.forEach((a, s) => {\n s < m.value - 1 && s >= t + 1 && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), l.value[i[0]].size = 100 - e.prevPanesSize - N(i[0] - 1), null) : { sums: e, panesToResize: i };\n }, $ = (e) => l.value.reduce((n, t, i) => n + (i < e ? t.size : 0), 0), N = (e) => l.value.reduce((n, t, i) => n + (i > e + 1 ? t.size : 0), 0), V = (e) => [...l.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, Z = (e) => l.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, ee = () => {\n var n;\n const e = Array.from(((n = x.value) == null ? void 0 : n.children) || []);\n for (const t of e) {\n const i = t.classList.contains(\"splitpanes__pane\"), a = t.classList.contains(\"splitpanes__splitter\");\n !i && !a && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n }\n }, F = (e, n, t = !1) => {\n const i = e - 1, a = document.createElement(\"div\");\n a.classList.add(\"splitpanes__splitter\"), t || (a.onmousedown = (s) => b(s, i), typeof window < \"u\" && \"ontouchstart\" in window && (a.ontouchstart = (s) => b(s, i)), a.onclick = (s) => A(s, i + 1)), a.ondblclick = (s) => U(s, i + 1), n.parentNode.insertBefore(a, n);\n }, ne = (e) => {\n e.onmousedown = void 0, e.onclick = void 0, e.ondblclick = void 0, e.remove();\n }, C = () => {\n var t;\n const e = Array.from(((t = x.value) == null ? void 0 : t.children) || []);\n for (const i of e)\n i.className.includes(\"splitpanes__splitter\") && ne(i);\n let n = 0;\n for (const i of e)\n i.className.includes(\"splitpanes__pane\") && (!n && u.firstSplitter ? F(n, i, !0) : n && F(n, i), n++);\n }, ie = ({ uid: e, ...n }) => {\n const t = M.value[e];\n for (const [i, a] of Object.entries(n)) t[i] = a;\n }, te = (e) => {\n var t;\n let n = -1;\n Array.from(((t = x.value) == null ? void 0 : t.children) || []).some((i) => (i.className.includes(\"splitpanes__pane\") && n++, i.isSameNode(e.el))), l.value.splice(n, 0, { ...e, index: n }), l.value.forEach((i, a) => i.index = a), S.value && T(() => {\n C(), L({ addedPane: l.value[n] }), d(\"pane-add\", { pane: l.value[n] });\n });\n }, ae = (e) => {\n const n = l.value.findIndex((i) => i.id === e);\n l.value[n].el = null;\n const t = l.value.splice(n, 1)[0];\n l.value.forEach((i, a) => i.index = a), T(() => {\n C(), d(\"pane-remove\", { pane: t }), L({ removedPane: { ...t } });\n });\n }, L = (e = {}) => {\n !e.addedPane && !e.removedPane ? le() : l.value.some((n) => n.givenSize !== null || n.min || n.max < 100) ? oe(e) : se(), S.value && d(\"resized\");\n }, se = () => {\n const e = 100 / m.value;\n let n = 0;\n const t = [], i = [];\n for (const a of l.value)\n a.size = Math.max(Math.min(e, a.max), a.min), n -= a.size, a.size >= a.max && t.push(a.id), a.size <= a.min && i.push(a.id);\n n > 0.1 && q(n, t, i);\n }, le = () => {\n let e = 100;\n const n = [], t = [];\n let i = 0;\n for (const s of l.value)\n e -= s.size, s.givenSize !== null && i++, s.size >= s.max && n.push(s.id), s.size <= s.min && t.push(s.id);\n let a = 100;\n if (e > 0.1) {\n for (const s of l.value)\n s.givenSize === null && (s.size = Math.max(Math.min(e / (m.value - i), s.max), s.min)), a -= s.size;\n a > 0.1 && q(a, n, t);\n }\n }, oe = ({ addedPane: e, removedPane: n } = {}) => {\n let t = 100 / m.value, i = 0;\n const a = [], s = [];\n ((e == null ? void 0 : e.givenSize) ?? null) !== null && (t = (100 - e.givenSize) / (m.value - 1));\n for (const o of l.value)\n i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n if (!(Math.abs(i) < 0.1)) {\n for (const o of l.value)\n (e == null ? void 0 : e.givenSize) !== null && (e == null ? void 0 : e.id) === o.id || (o.size = Math.max(Math.min(t, o.max), o.min)), i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n i > 0.1 && q(i, a, s);\n }\n }, q = (e, n, t) => {\n let i;\n e > 0 ? i = e / (m.value - n.length) : i = e / (m.value - t.length), l.value.forEach((a, s) => {\n if (e > 0 && !n.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n } else if (!t.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n }\n }), Math.abs(e) > 0.1 && T(() => {\n S.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n });\n }, d = (e, n = void 0, t = !1) => {\n const i = (n == null ? void 0 : n.index) ?? c.value.activeSplitter ?? null;\n y(e, {\n ...n,\n ...i !== null && { index: i },\n ...t && i !== null && {\n prevPane: l.value[i - (u.firstSplitter ? 1 : 0)],\n nextPane: l.value[i + (u.firstSplitter ? 0 : 1)]\n },\n panes: l.value.map((a) => ({ min: a.min, max: a.max, size: a.size }))\n });\n };\n B(() => u.firstSplitter, () => C()), G(() => {\n ee(), C(), L(), d(\"ready\"), S.value = !0;\n }), X(() => S.value = !1);\n const re = () => {\n var e;\n return fe(\n \"div\",\n { ref: x, class: _.value },\n (e = E.default) == null ? void 0 : e.call(E)\n );\n };\n return g(\"panes\", l), g(\"indexedPanes\", M), g(\"horizontal\", z(() => u.horizontal)), g(\"requestUpdate\", ie), g(\"onPaneAdd\", te), g(\"onPaneRemove\", ae), g(\"onPaneClick\", W), (e, n) => (Y(), ve(me(re)));\n }\n}, ge = {\n __name: \"pane\",\n props: {\n size: { type: [Number, String] },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n setup(D) {\n var b;\n const h = D, y = w(\"requestUpdate\"), u = w(\"onPaneAdd\"), E = w(\"horizontal\"), l = w(\"onPaneRemove\"), M = w(\"onPaneClick\"), m = (b = de()) == null ? void 0 : b.uid, x = w(\"indexedPanes\"), S = z(() => x.value[m]), c = k(null), f = z(() => {\n const r = isNaN(h.size) || h.size === void 0 ? 0 : parseFloat(h.size);\n return Math.max(Math.min(r, R.value), _.value);\n }), _ = z(() => {\n const r = parseFloat(h.minSize);\n return isNaN(r) ? 0 : r;\n }), R = z(() => {\n const r = parseFloat(h.maxSize);\n return isNaN(r) ? 100 : r;\n }), O = z(() => {\n var r;\n return `${E.value ? \"height\" : \"width\"}: ${(r = S.value) == null ? void 0 : r.size}%`;\n });\n return B(() => f.value, (r) => y({ uid: m, size: r })), B(() => _.value, (r) => y({ uid: m, min: r })), B(() => R.value, (r) => y({ uid: m, max: r })), G(() => {\n u({\n id: m,\n el: c.value,\n min: _.value,\n max: R.value,\n // The given size (useful to know the user intention).\n givenSize: h.size === void 0 ? null : f.value,\n size: f.value\n // The computed current size at any time.\n });\n }), X(() => l(m)), (r, P) => (Y(), pe(\"div\", {\n ref_key: \"paneEl\",\n ref: c,\n class: \"splitpanes__pane\",\n onClick: P[0] || (P[0] = (A) => he(M)(A, r._.uid)),\n style: ze(O.value)\n }, [\n xe(r.$slots, \"default\")\n ], 4));\n }\n};\nexport {\n ge as Pane,\n Pe as Splitpanes\n};\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { inject } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nfunction useAppName() {\n return inject(\"appName\", APP_NAME);\n}\nconst useLocalizedAppName = once(() => {\n const apps = loadState(\"core\", \"apps\", []);\n const realAppName2 = useAppName();\n return apps.find(({ id }) => id === realAppName2)?.name ?? realAppName2;\n});\nexport {\n APP_VERSION as A,\n useAppName as a,\n useLocalizedAppName as u\n};\n//# sourceMappingURL=appName-DyNMVZpX.mjs.map\n","import '../assets/NcAppContent-BC7DBer3.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, openBlock, createBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, toDisplayString, createCommentVNode, Fragment, withModifiers, withDirectives, createElementVNode, renderSlot, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-CpchYUUV.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, G as t27, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as useLocalizedAppName, a as useAppName } from \"./appName-DyNMVZpX.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t27);\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\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 * or respectively the minimum height 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 * or respectively the maximum height 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 *\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 * 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 * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's ``\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n appName: useAppName(),\n localizedAppName: useLocalizedAppName(),\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${this.appName}`;\n } catch {\n logger.info(\"[NcAppContent]: 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 realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(this.localizedAppName);\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\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.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\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 logger.debug(\"[NcAppContent] 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};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = { class: \"app-content-wrapper__list\" };\nconst _hoisted_3 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n minSize: $options.paneDefaults.list.min,\n maxSize: $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n minSize: $options.paneDefaults.details.min,\n maxSize: $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-ea1e6879\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-taTvqnvd.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"CloseIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconClose as I\n};\n//# sourceMappingURL=Close-CuhcJnX2.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronDownIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown-C6gc637b.mjs.map\n","import '../assets/NcInputField-DpyFJ1xw.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": _ctx.disabled,\n \"input-field--error\": _ctx.error,\n \"input-field--label-outside\": _ctx.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": _ctx.pill,\n \"input-field--success\": _ctx.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: _ctx.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", _ctx.inputClass],\n disabled: _ctx.disabled,\n placeholder: internalPlaceholder.value,\n type: _ctx.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !_ctx.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: _ctx.id\n }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n _ctx.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": _ctx.trailingButtonLabel,\n disabled: _ctx.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : _ctx.success || _ctx.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n _ctx.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${_ctx.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : _ctx.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(_ctx.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8e16cbb5\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-C3iof9pY.mjs.map\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<h2 class=\"activity-group__heading\" :title=\"fullDate\">\n\t\t{{ dateText }}\n\t</h2>\n\t<ul>\n\t\t<ActivityComponent\n\t\t\tv-for=\"activity in activities\"\n\t\t\t:key=\"activity.id\"\n\t\t\t:activity=\"activity\"\n\t\t\t:showPreviews=\"true\" />\n\t</ul>\n</template>\n\n<script setup lang=\"ts\">\nimport type ActivityModel from '../models/ActivityModel.ts'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { computed } from 'vue'\nimport ActivityComponent from './ActivityComponent.vue'\n\nconst props = defineProps<{\n\tactivities: ActivityModel[]\n}>()\n\n/**\n * Title to show for the date either Today, Yesterday or the full date\n */\nconst dateText = computed(() => {\n\tconst today = moment()\n\tconst yesterday = moment().subtract(1, 'day')\n\tconst first = moment(props.activities[0].datetime)\n\n\tif (first.isSame(today, 'day')) {\n\t\treturn t('activity', 'Today')\n\t} else if (first.isSame(yesterday, 'day')) {\n\t\treturn t('activity', 'Yesterday')\n\t}\n\treturn first.format('LL')\n})\n\n/**\n * If the heading is yesterday or today, show the full date as title, otherwise no title is shown\n */\nconst fullDate = computed(() => {\n\tconst formatted = moment(props.activities[0].datetime).format('LL')\n\treturn formatted !== dateText.value ? formatted : undefined\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-group {\n\t&__heading {\n\t\tline-height: 1.5;\n\t\tmargin-block: 30px 12px;\n\n\t\t&:first-of-type {\n\t\t\t// Already padding from h1\n\t\t\tmargin-block-start: 0;\n\t\t}\n\t}\n}\n</style>\n","export default \"<svg viewBox=\\\"0 0 32 32\\\" height=\\\"32\\\" width=\\\"32\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xml:space=\\\"preserve\\\" style=\\\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\\\"><path d=\\\"m8 22 1-7H4l9-13h2l-1 8h6L10 22H8Z\\\" style=\\\"fill-rule:nonzero\\\" transform=\\\"matrix(1.5 0 0 1.5 -2 -2)\\\"/></svg>\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcAppContent class=\"activity-app\">\n\t\t<h1 class=\"activity-app__heading\">\n\t\t\t{{ headingTitle }}\n\t\t</h1>\n\t\t<NcEmptyContent\n\t\t\tv-if=\"hasMoreActivites && allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'Loading activities')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<NcEmptyContent\n\t\t\tv-else-if=\"allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'No activity yet')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"appIconSVG\" :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<div ref=\"container\" class=\"activity-app__container\" @scroll=\"onScroll\">\n\t\t\t<NcButton\n\t\t\t\tv-if=\"newActivitiesAvailable\"\n\t\t\t\tclass=\"activity-app__new-activities-indicator\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t@click=\"scrollToTop\">\n\t\t\t\t{{ t('activity', 'New activities') }}\n\t\t\t</NcButton>\n\t\t\t<ActivityGroup v-for=\"activities, date of groupedActivities\" :key=\"date\" :activities=\"activities\" />\n\t\t\t<!-- Only show if not showing the inital empty content for loading -->\n\t\t\t<NcLoadingIcon\n\t\t\t\tv-if=\"hasMoreActivites && allActivities.length > 0\"\n\t\t\t\t:name=\"t('activity', 'Loading more activities')\"\n\t\t\t\t:size=\"64\"\n\t\t\t\tclass=\"activity-app__loading-indicator\" />\n\t\t\t<div\n\t\t\t\tv-else-if=\"!hasMoreActivites && allActivities.length > 0\"\n\t\t\t\tclass=\"activity-app__loading-indicator\">\n\t\t\t\t{{ t('activity', 'No more activities.') }}\n\t\t\t</div>\n\t\t</div>\n\t</NcAppContent>\n</template>\n\n<script setup lang=\"ts\">\nimport type { IRawActivity } from '../models/types.ts'\n\nimport ncAxios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { useDebounceFn, useDocumentVisibility, useInfiniteScroll } from '@vueuse/core'\nimport axios from 'axios'\nimport { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport ActivityGroup from '../components/ActivityGroup.vue'\nimport appIconSVG from '../../img/activity-dark.svg?raw'\nimport ActivityModel from '../models/ActivityModel.ts'\nimport logger from '../utils/logger.ts'\n\ninterface INavigationEntry {\n\tid: string\n\ticon?: string\n\tname: string\n\turl: string\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * The currently active activities filter\n\t */\n\tfilter?: string\n}>(), {\n\t// default to 'all'\n\tfilter: 'all',\n})\n\nconst navigationList = loadState<INavigationEntry[]>(appName, 'navigationList')\n\nconst route = useRoute()\n\n/**\n * Whether activities are currently being loaded\n */\nconst loading = ref(false)\n\n/**\n * Whether more activites can be loaded\n */\nconst hasMoreActivites = ref(true)\n\n/**\n * All loaded actvities\n */\nconst allActivities = ref<ActivityModel[]>([])\n\n/**\n * Last loaded activity (oldest) for backward pagination\n * This is set by the backend in the API result as a header value for pagination\n */\nconst lastActivityLoaded = ref<string>()\n\n/**\n * First loaded activity ID (newest) for polling new activities\n */\nconst newestActivityId = ref<number>()\n\n/**\n * Whether new activities have been prepended while the user was scrolled\n * away from the top — used to show the \"New activities\" navigation button\n */\nconst newActivitiesAvailable = ref(false)\n\n/**\n * Polling interval in milliseconds\n */\nconst POLL_INTERVAL = 30000\n\n/**\n * Polling timer reference (setTimeout-based for self-scheduling)\n */\nlet pollTimer: ReturnType<typeof setTimeout> | undefined\n\n/**\n * AbortController for in-flight load and poll requests.\n * Replaced on filter change and aborted on unmount so stale responses\n * are never applied to the wrong filter's state.\n */\nlet requestController = new AbortController()\n\n/**\n * Document visibility for pausing polling when tab is hidden\n */\nconst visibility = useDocumentVisibility()\n\n/**\n * Container element for the activites\n */\nconst container = ref<HTMLDivElement>()\n\n/**\n * Use infinite scroll for the container and load activities when reaching the bottom\n */\nuseInfiniteScroll(container, async () => {\n\tif (hasMoreActivites.value) {\n\t\tawait loadActivities()\n\t}\n}, {\n\tdistance: 100,\n})\n\n/**\n * Activities grouped by date\n */\nconst groupedActivities = computed(() => {\n\tconst groups = {} as Record<string, ActivityModel[]>\n\tfor (const activity of allActivities.value) {\n\t\tconst date = moment(activity.datetime).format('LL')\n\t\tif (groups[date] === undefined) {\n\t\t\tgroups[date] = [activity]\n\t\t} else {\n\t\t\tgroups[date].push(activity)\n\t\t}\n\t}\n\treturn groups\n})\n\nconst headingTitle = computed(() => {\n\treturn navigationList.find((navigationEl) => navigationEl.id === route.params.filter).name\n})\n\n/**\n * Load activities for current filter or load more if already loaded\n */\nasync function loadActivities() {\n\t// Skip if already loading\n\tif (loading.value) {\n\t\treturn\n\t}\n\n\tconst { signal } = requestController\n\ttry {\n\t\tconst since = lastActivityLoaded.value ?? '0'\n\t\tloading.value = true\n\t\tconst response = await ncAxios.get(generateOcsUrl('apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}', { filter: props.filter, since }), { signal })\n\t\tif (signal.aborted) {\n\t\t\treturn\n\t\t}\n\t\tconst newActivities = response.data.ocs.data.map((raw: IRawActivity) => new ActivityModel(raw))\n\t\tallActivities.value.push(...newActivities)\n\t\tlastActivityLoaded.value = response.headers['x-activity-last-given']\n\t\thasMoreActivites.value = true\n\n\t\t// Track the newest activity ID for polling\n\t\tif (newestActivityId.value === undefined && newActivities.length > 0) {\n\t\t\tnewestActivityId.value = newActivities[0].id\n\t\t}\n\n\t\tnextTick(async () => {\n\t\t\tif (container.value && container.value.clientHeight === container.value.scrollHeight) {\n\t\t\t\t// Container is non-scrollable, thus useInfiniteScroll isn't triggered\n\t\t\t\t// Do it manually to ensure there are no activities to fetch anymore\n\t\t\t\tawait loadActivities()\n\t\t\t}\n\t\t})\n\t} catch (error) {\n\t\tif (axios.isCancel(error)) {\n\t\t\treturn\n\t\t}\n\t\t// Skip if no activities are available\n\t\tif (axios.isAxiosError(error) && error.response?.status === 304) {\n\t\t\thasMoreActivites.value = false\n\t\t\treturn\n\t\t}\n\n\t\tlogger.error(error as Error)\n\t\tshowError(t('activity', 'Could not load activities'))\n\t} finally {\n\t\t// Don't clear the loading flag if this request was superseded — the\n\t\t// replacement loadActivities() call has already set it to true.\n\t\tif (!signal.aborted) {\n\t\t\tloading.value = false\n\t\t}\n\t}\n}\n\n/**\n * Poll for new activities and either prepend them directly (when near top)\n * or queue them so the user can load them without disrupting their scroll position\n */\nasync function pollNewActivities() {\n\tconst { signal } = requestController\n\ttry {\n\t\tconst since = String(newestActivityId.value ?? 0)\n\t\tconst response = await ncAxios.get(generateOcsUrl('apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}&sort=asc', { filter: props.filter, since }), { signal })\n\t\tif (!signal.aborted && response.data.ocs.data.length > 0) {\n\t\t\tconst newActivities: ActivityModel[] = response.data.ocs.data.map((raw: IRawActivity) => new ActivityModel(raw))\n\t\t\t// Sort newest first for prepending\n\t\t\tnewActivities.sort((a: ActivityModel, b: ActivityModel) => b.id - a.id)\n\t\t\tnewestActivityId.value = newActivities[0]!.id\n\t\t\tallActivities.value.unshift(...newActivities)\n\n\t\t\t// Show the navigation button only when the user is not already at the top\n\t\t\t// (browser scroll anchoring keeps their reading position stable on prepend)\n\t\t\tconst isNearTop = !container.value || container.value.scrollTop < 50\n\t\t\tif (!isNearTop) {\n\t\t\t\tnewActivitiesAvailable.value = true\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\t// Silently ignore cancellations and polling errors (304 = no new activities)\n\t\tif (!axios.isCancel(error) && (!axios.isAxiosError(error) || error.response?.status !== 304)) {\n\t\t\tlogger.error(error as Error)\n\t\t}\n\t}\n\n\t// Self-schedule only if polling wasn't stopped while the request was in flight\n\tif (pollTimer !== undefined) {\n\t\tpollTimer = setTimeout(pollNewActivities, POLL_INTERVAL)\n\t}\n}\n\n/**\n * Scroll to the top of the container to reveal the newly prepended activities\n */\nfunction scrollToTop() {\n\tnewActivitiesAvailable.value = false\n\tcontainer.value?.scrollTo({ top: 0, behavior: 'smooth' })\n}\n\n/**\n * Hide the \"New activities\" button once the user scrolls back near the top\n */\nconst onScroll = useDebounceFn(() => {\n\tif (container.value && container.value.scrollTop < 50) {\n\t\tnewActivitiesAvailable.value = false\n\t}\n}, 100)\n\n/**\n *\n */\nfunction startPolling() {\n\tstopPolling()\n\t// Use a sentinel value so the self-scheduling logic in pollNewActivities\n\t// knows polling is active even before the first tick fires\n\tpollTimer = setTimeout(pollNewActivities, POLL_INTERVAL)\n}\n\n/**\n *\n */\nfunction stopPolling() {\n\tif (pollTimer !== undefined) {\n\t\tclearTimeout(pollTimer)\n\t\tpollTimer = undefined\n\t}\n}\n\n/**\n * Load activities when mounted and start polling\n */\nonMounted(() => {\n\tloadActivities()\n\tstartPolling()\n})\n\nonUnmounted(() => {\n\tstopPolling()\n\trequestController.abort()\n})\n\nwatch(visibility, (value) => {\n\tif (value === 'hidden') {\n\t\tstopPolling()\n\t} else {\n\t\tstartPolling()\n\t}\n})\n\n/**\n * Reload activities when filter changed\n */\nwatch(props, () => {\n\trequestController.abort()\n\trequestController = new AbortController()\n\tallActivities.value = []\n\tnewActivitiesAvailable.value = false\n\tlastActivityLoaded.value = undefined\n\tnewestActivityId.value = undefined\n\thasMoreActivites.value = true\n\tloadActivities()\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-app {\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\n\t&__empty-content {\n\t\theight: 100%;\n\t}\n\n\t&__loading-indicator {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tjustify-self: center;\n\t\tmargin-block: 30px 6px;\n\t\ttext-align: center;\n\t}\n\n\t&__container {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\theight: 100%;\n\t\twidth: min(100%, 924px);\n\t\tmax-width: 924px;\n\t\tmargin: 0 auto;\n\t\tpadding-inline: 12px;\n\t\toverflow-y: scroll;\n\t}\n\n\t&__new-activities-indicator {\n\t\tposition: sticky;\n\t\ttop: 8px;\n\t\talign-self: center;\n\t\tz-index: 10;\n\t\tpadding: 6px 16px;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tborder: none;\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-element-text);\n\t\tfont-weight: bold;\n\t\tcursor: pointer;\n\t\tbox-shadow: 0 2px 8px var(--color-box-shadow);\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t}\n\n\t&__heading {\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 44px; // to align height with the app navigation toggle\n\t\t// Align with app navigation toggle\n\t\tmargin-top: 1px;\n\t\tmargin-inline: calc(2 * var(--app-navigation-padding, 8px) + 44px) var(--app-navigation-padding, 8px);\n\t}\n}\n</style>\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { openBlock, createElementBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-CGSWabRB.mjs.map\n","import '../assets/NcAppNavigation-ykL7Wz6L.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, renderSlot, createBlock, createCommentVNode } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-CGSWabRB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n clickOutsideDeactivates: () => {\n if (isMobile.value) {\n focusTrap.deactivate({ returnFocus: false });\n toggleNavigation(false);\n }\n return false;\n },\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", {\n \"app-navigation--closed\": !open.value,\n \"app-navigation--legacy\": unref(isLegacy34)\n }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": _ctx.ariaLabel || void 0,\n \"aria-labelledby\": _ctx.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-3b634fbd\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-Bb54U_qJ.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-ChH8oB7p.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-B1ncAhus.mjs.map\n","import '../assets/NcInputConfirmCancel-BEmwC87z.css';\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, withKeys, withDirectives, vModelText, createVNode, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-input-confirm\", { \"app-navigation-input-confirm--legacy\": $setup.isLegacy34 }])\n }, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_1), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ], 2);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a8724c7f\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-BL_BkfXh.mjs.map\n","import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcAppNavigationItem-DF81QkEz.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { r as register, N as t21, a as t, b as t51, O as t23 } from \"./_l10n-BCg4udFv.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-BL_BkfXh.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BJKJG2zO.mjs\";\nimport { N as NcActions } from \"./NcActions-fCXSb_0o.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-CInLzPtA.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\n name: \"PencilIcon\",\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};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { 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\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"UndoIcon\",\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};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { 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\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active && $setup.isLegacy34 ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-acf5ed2f\"]]);\nregister(t23, t51);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `<router-link />` that points to that route.\n * By leaving this blank, the root element will be a `<li>`.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isLegacy34\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n \"app-navigation-entry--legacy\": $setup.isLegacy34,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n boundariesElement: $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n forceMenu: $props.forceMenu,\n defaultIcon: $props.menuIcon,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"boundariesElement\", \"inline\", \"placement\", \"open\", \"forceMenu\", \"defaultIcon\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e4d562ae\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-Dg2d2AwS.mjs.map\n","import '../assets/NcAppNavigationSettings-HQEDobBQ.css';\nimport { defineComponent, ref, useTemplateRef, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { C as mdiCog, D as mdiCogOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { r as register, B as t47, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t47);\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSettings\",\n props: {\n excludeClickOutsideSelectors: { default: () => [] },\n name: { default: () => t(\"Settings\") }\n },\n setup(__props) {\n const contentId = createElementId();\n const open = ref(false);\n const container2 = useTemplateRef(\"wrapperElement\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(container2, () => {\n open.value = false;\n }, { ignore });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"wrapperElement\",\n class: normalizeClass(_ctx.$style.container)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.header)\n }, [\n createVNode(NcButton, {\n \"aria-controls\": unref(contentId),\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n class: normalizeClass(_ctx.$style.button),\n alignment: \"start\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(isLegacy) ? unref(mdiCog) : unref(mdiCogOutline)\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(_ctx.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-controls\", \"aria-expanded\", \"class\"])\n ], 2),\n createVNode(Transition, {\n enterActiveClass: _ctx.$style.animationActive,\n leaveActiveClass: _ctx.$style.animationActive,\n enterFromClass: _ctx.$style.animationStop,\n leaveToClass: _ctx.$style.animationStop\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n id: unref(contentId),\n class: normalizeClass(_ctx.$style.content)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1), [\n [vShow, open.value]\n ])\n ]),\n _: 3\n }, 8, [\"enterActiveClass\", \"leaveActiveClass\", \"enterFromClass\", \"leaveToClass\"])\n ], 2);\n };\n }\n});\nconst container = \"_container_RFk6U\";\nconst header = \"_header_2CtDS\";\nconst button = \"_button_tAyis\";\nconst content = \"_content_--KYD\";\nconst animationActive = \"_animationActive_DAG1p\";\nconst animationStop = \"_animationStop_fWYQj\";\nconst style0 = {\n container,\n header,\n button,\n content,\n animationActive,\n animationStop\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-CJ2z5cYU.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon content-copy-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { RouteRecordRaw } from 'vue-router'\n\nimport ActivityAppFeed from './views/ActivityAppFeed.vue'\nimport ActivityAppNavigation from './views/ActivityAppNavigation.vue'\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tredirect: { path: '/all' },\n\t},\n\t{\n\t\tpath: '/:filter?',\n\t\tcomponents: {\n\t\t\tdefault: ActivityAppFeed,\n\t\t\tnavigation: ActivityAppNavigation,\n\t\t},\n\t\tprops: {\n\t\t\tdefault: true,\n\t\t},\n\t},\n] as RouteRecordRaw[]\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport ActivityApp from './views/ActivityApp.vue'\nimport { routes } from './routes.ts'\n\nconst router = createRouter({\n\thistory: createWebHistory(generateUrl('/apps/activity')),\n\tlinkActiveClass: 'active',\n\troutes,\n})\n\nconst app = createApp(ActivityApp)\napp.use(router)\napp.mount('#content')\n"],"names":["HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","register","t30","contentSvg","navigationSvg","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","defineComponent","__props","props","provide","setAppNavigation","computed","isMobile","useIsMobile","hasAppNavigation","ref","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","emit","nextTick","value","_ctx","_cache","openBlock","createElementBlock","normalizeClass","unref","isLegacy34","createBlock","Teleport","createElementVNode","toDisplayString","t","withDirectives","createVNode","NcButton","withModifiers","$event","withCtx","createTextVNode","vShow","NcIconSvgWrapper","renderSlot","NcContent","_export_sfc","_createBlock","_unref","_createVNode","_component_router_view","Pe","D","h","y","u","E","ce","l","k","M","z","e","n","m","x","S","c","f","_","R","r","P","O","b","i","a","s","o","K","I","d","A","U","W","J","$","N","v","p","H","ue","j","Q","V","Z","ee","F","ne","C","ie","te","T","L","ae","le","oe","se","q","B","G","X","re","fe","g","Y","ve","me","ge","w","de","pe","he","ze","xe","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","useAppName","inject","useLocalizedAppName","apps","loadState","realAppName2","id","t27","_sfc_main$1","watch","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","mdiArrowRight","NcAppContentDetailsToggle","browserStorage","getBuilder","instanceName","getCapabilities","Pane","Splitpanes","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createCommentVNode","Fragment","NcAppContent","_hoisted_4","mergeProps","IconClose","ChevronDown","_hoisted_5","_hoisted_6","mergeModels","createElementId","__expose","__emit","modelValue","useModel","focus","select","attrs","useAttrs","inputElement","useTemplateRef","hasTrailingIcon","internalPlaceholder","isLegacy","isValidLabel","ariaDescribedby","ariaDescribedby2","options","handleInput","target","mdiCheck","mdiAlertCircleOutline","NcInputField","dateText","today","moment","yesterday","first","fullDate","formatted","_createElementVNode","_createElementBlock","_Fragment","_renderList","activity","ActivityComponent","appIconSVG","POLL_INTERVAL","navigationList","route","useRoute","loading","hasMoreActivites","allActivities","lastActivityLoaded","newestActivityId","newActivitiesAvailable","pollTimer","requestController","visibility","useDocumentVisibility","useInfiniteScroll","loadActivities","groupedActivities","groups","date","headingTitle","navigationEl","signal","since","response","ncAxios","generateOcsUrl","newActivities","raw","ActivityModel","error","axios","showError","pollNewActivities","scrollToTop","onScroll","useDebounceFn","startPolling","stopPolling","onUnmounted","_toDisplayString","NcEmptyContent","NcLoadingIcon","_openBlock","activities","ActivityGroup","NcAppNavigationList","t20","_hoisted_1$1","open","title","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","focusTrap","setHasAppNavigation","warn","appNavigationContainerElement","watchEffect","toggleFocusTrap","subscribe","toggleNavigationByEventBus","createFocusTrap","toggleNavigation","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open2","handleEsc","withKeys","NcAppNavigation","ChevronUp","IconArrowRight","t14","newValue","_component_IconArrowRight","_component_NcButton","_component_IconClose","vModelText","NcInputConfirmCancel","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","t21","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcActions","NcActionButton","_sfc_main$4","newVal","navigate","routerLinkHref","href","_hoisted_7","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcActions","_component_NcAppNavigationIconCollapsible","resolveDynamicComponent","normalizeProps","guardReactiveProps","isActive","NcAppNavigationItem","t47","contentId","container2","ignore","onClickOutside","mdiCog","mdiCogOutline","Transition","header","button","content","animationActive","animationStop","style0","cssModules","NcAppNavigationSettings","_mergeProps","initialRSSLink","personalSettingsLink","rssLink","hasRSSLink","toggleRSSLink","data","generateUrl","copyRSSLink","showSuccess","navigationItem","NcCheckboxRadioSwitch","IconContentCopy","routes","ActivityAppFeed","ActivityAppNavigation","router","createRouter","createWebHistory","app","createApp","ActivityApp"],"mappings":"ouCAIMA,GAAyC,OAAO,IAAI,+BAA+B,EACnFC,GAAuC,OAAO,IAAI,oBAAoB,ECK5EC,GAASC,EAAG,EACZ,MAAMC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACbC,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAChBC,GAAa,CAAE,MAAO,6BAA6B,EACnDC,GAAa,CAAE,MAAO,4BAA4B,EAClDC,GAAa,CAAE,MAAO,2BAA2B,EACjDC,GAA4BC,EAAgB,CAChD,OAAQ,YACR,MAAO,CACL,QAAS,CAAA,CACb,EACE,MAAMC,EAAS,CACb,MAAMC,EAAQD,EACdE,EAAQb,GAAwBc,CAAgB,EAChDD,EAAQZ,GAAsB,cAAc,EAC5CY,EAAQ,UAAWE,EAAS,IAAMH,EAAM,OAAO,CAAC,EAChD,MAAMI,EAAWC,GAAW,EACtBC,EAAmBC,EAAI,EAAK,EAC5BC,EAAeD,EAAG,EAClBE,EAAeN,EAAS,IAAMK,EAAa,QAAU,aAAef,GAAgBD,EAAU,EACpGkB,GAAc,IAAM,CAClB,MAAMC,EAAY,SAAS,eAAe,cAAc,EACpDA,IACFA,EAAU,UAAY,GACtBA,EAAU,UAAU,IAAI,kBAAkB,EAE9C,CAAC,EACD,SAASC,GAAoB,CAC3BC,GAAK,oBAAqB,CAAE,KAAM,EAAI,CAAE,EACxCC,GAAS,IAAM,CACb,OAAO,SAAS,KAAO,qBACvB,SAAS,eAAe,oBAAoB,EAAE,MAAK,CACrD,CAAC,CACH,CACA,SAASZ,EAAiBa,EAAO,CAC/BT,EAAiB,MAAQS,EACpBP,EAAa,QAChBA,EAAa,MAAQ,aAEzB,CACA,MAAO,CAACQ,EAAMC,KACLC,EAAS,EAAIC,EAAmB,MAAO,CAC5C,GAAI,cACJ,MAAOC,EAAe,CAAC,UAAW,CAAC,OAAOJ,EAAK,QAAQ,YAAW,CAAE,GAAI,CAAE,kBAAmBK,EAAMC,EAAU,CAAC,CAAE,CAAC,CAAC,CAC1H,EAAS,EACAJ,EAAS,EAAIK,EAAYC,GAAU,CAAE,GAAI,eAAe,EAAI,CAC3DC,EAAmB,MAAO/B,GAAY,CACpC+B,EAAmB,MAAO9B,GAAY+B,EAAgBL,EAAMM,CAAC,EAAE,0BAA0B,CAAC,EAAG,CAAC,EAC9FF,EAAmB,MAAO7B,GAAY,CACpCgC,GAAeC,EAAYC,EAAU,CACnC,KAAM,sBACN,QAAS,WACT,QAASC,EAAcnB,EAAmB,CAAC,SAAS,CAAC,EACrD,UAAWK,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWxB,EAAa,MAAQ,cACtE,YAAaS,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWxB,EAAa,MAAQ,aACxF,EAAiB,CACD,QAASyB,EAAQ,IAAM,CACrBC,GAAgBR,EAAgBL,EAAMM,CAAC,EAAE,wBAAwB,CAAC,EAAG,CAAC,CACxF,CAAiB,EACD,EAAG,CACnB,EAAiB,GAAG,EAAG,CACP,CAACQ,GAAO7B,EAAiB,KAAK,CAC9C,CAAe,EACDuB,EAAYC,EAAU,CACpB,KAAM,mBACN,QAAS,WACT,UAAWb,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWxB,EAAa,MAAQ,WACtE,YAAaS,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWxB,EAAa,MAAQ,UACxF,EAAiB,CACD,QAASyB,EAAQ,IAAM,CACrBC,GAAgBR,EAAgBL,EAAMM,CAAC,EAAE,sBAAsB,CAAC,EAAG,CAAC,CACtF,CAAiB,EACD,EAAG,CACnB,CAAe,CACf,CAAa,EACDC,GAAeC,EAAYO,GAAkB,CAC3C,MAAO,0BACP,IAAK3B,EAAa,MAClB,KAAM,MACpB,EAAe,KAAM,EAAG,CAAC,KAAK,CAAC,EAAG,CACpB,CAAC0B,GAAO,CAACd,EAAMjB,CAAQ,CAAC,CACtC,CAAa,CACb,CAAW,CACX,CAAS,GACDiC,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CAC3D,EAAS,CAAC,EAER,CACF,CAAC,EACKsB,GAA4BC,EAAY1C,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,wFC7F1F2C,EAGYC,EAAAH,EAAA,EAAA,CAHD,QAAQ,YAAU,WAC5B,IAAiC,CAAjCI,EAAiCC,EAAA,CAApB,KAAK,aAAY,EAC9BD,EAAeC,CAAA,CAAA,aCPXC,GAAK,CACT,OAAQ,aACR,MAAO,CACL,WAAY,CAAE,KAAM,QAAS,QAAS,EAAE,EACxC,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,cAAe,CAAE,KAAM,QAAS,QAAS,EAAE,EAE3C,IAAK,CAAE,KAAM,QAAS,QAAS,EAAE,EAEjC,cAAe,CAAE,KAAM,QAAS,QAAS,EAAE,CAC/C,EACE,MAAO,CACL,QACA,SACA,UACA,aACA,gBACA,WACA,cACA,iBACA,mBACJ,EACE,MAAMC,EAAG,CAAE,KAAMC,CAAC,EAAI,CACpB,MAAMC,EAAID,EAAGE,EAAIH,EAAGI,EAAIC,GAAE,EAAIC,EAAIC,EAAE,CAAA,CAAE,EAAGC,EAAIC,EAAE,IAAMH,EAAE,MAAM,OAAO,CAACI,EAAGC,KAAOD,EAAE,CAAC,CAACC,EAAE,EAAE,EAAIA,IAAMD,EAAG,CAAA,CAAE,CAAC,EAAGE,EAAIH,EAAE,IAAMH,EAAE,MAAM,MAAM,EAAGO,EAAIN,EAAE,IAAI,EAAGO,EAAIP,EAAE,EAAE,EAAGQ,EAAIR,EAAE,CACnK,UAAW,GACX,SAAU,GACV,eAAgB,KAChB,aAAc,CAEpB,CAAK,EAAGS,EAAIT,EAAE,CAER,SAAU,KACV,UAAW,IACjB,CAAK,EAAGU,EAAIR,EAAE,KAAO,CACf,CAAC,0BAA0BN,EAAE,WAAa,aAAe,UAAU,EAAE,EAAG,GACxE,uBAAwBY,EAAE,MAAM,QACtC,EAAM,EAAGG,EAAI,IAAM,CACb,SAAS,iBAAiB,YAAaC,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,iBAAiB,UAAWC,CAAC,EAAG,iBAAkB,SAAW,SAAS,iBAAiB,YAAaD,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,iBAAiB,WAAYC,CAAC,EACvO,EAAGC,EAAI,IAAM,CACX,SAAS,oBAAoB,YAAaF,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,oBAAoB,UAAWC,CAAC,EAAG,iBAAkB,SAAW,SAAS,oBAAoB,YAAaD,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,oBAAoB,WAAYC,CAAC,EACnP,EAAGE,EAAI,CAACZ,EAAGC,IAAM,CACf,MAAM7B,EAAI4B,EAAE,OAAO,QAAQ,uBAAuB,EAClD,GAAI5B,EAAG,CACL,KAAM,CAAE,KAAMyC,EAAG,IAAKC,CAAC,EAAK1C,EAAE,wBAAyB,CAAE,QAAS2C,EAAG,QAASC,CAAC,EAAK,iBAAkB,QAAUhB,EAAE,QAAUA,EAAE,QAAQ,CAAC,EAAIA,EAC3IK,EAAE,MAAM,aAAeZ,EAAE,WAAauB,EAAIF,EAAIC,EAAIF,CACpD,CACAL,EAAC,EAAIH,EAAE,MAAM,UAAY,GAAIA,EAAE,MAAM,eAAiBJ,CACxD,EAAGQ,EAAKT,GAAM,CACZK,EAAE,MAAM,YAAcL,EAAE,eAAc,EAAIK,EAAE,MAAM,SAAW,GAAI,sBAAsB,IAAM,CAC3FY,EAAEC,GAAElB,CAAC,CAAC,EAAGmB,EAAE,SAAU,CAAE,MAAOnB,CAAC,EAAI,EAAE,CACvC,CAAC,EACH,EAAGU,EAAKV,GAAM,CACZK,EAAE,MAAM,WAAa,OAAO,aAAY,EAAG,gBAAe,EAAIc,EAAE,UAAW,CAAE,MAAOnB,CAAC,EAAI,EAAE,GAAIK,EAAE,MAAM,UAAY,GAAIA,EAAE,MAAM,eAAiB,KAAM,WAAW,IAAM,CACrKA,EAAE,MAAM,SAAW,GAAIM,EAAC,CAC1B,EAAG,GAAG,CACR,EAAGS,GAAI,CAACpB,EAAGC,IAAM,CACf,iBAAkB,SAAWD,EAAE,eAAc,EAAIM,EAAE,MAAM,WAAaL,GAAK,aAAaK,EAAE,MAAM,SAAS,EAAGA,EAAE,MAAM,UAAY,KAAMe,GAAErB,EAAGC,CAAC,EAAGK,EAAE,MAAM,SAAW,OAASA,EAAE,MAAM,SAAWL,EAAGK,EAAE,MAAM,UAAY,WAAW,IAAMA,EAAE,MAAM,SAAW,KAAM,GAAG,IAAKD,EAAE,MAAM,UAAYc,EAAE,iBAAkB,CAAE,MAAOnB,EAAG,MAAOC,CAAC,EAAI,EAAE,CAC3U,EAAGoB,GAAI,CAACrB,EAAGC,IAAM,CACf,GAAIkB,EAAE,oBAAqB,CAAE,MAAOnB,EAAG,MAAOC,GAAK,EAAE,EAAGR,EAAE,cAAe,CACvE,IAAIrB,EAAI,EACRwB,EAAE,MAAQA,EAAE,MAAM,IAAI,CAACiB,EAAGC,KAAOD,EAAE,KAAOC,IAAMb,EAAIY,EAAE,IAAMA,EAAE,IAAKC,IAAMb,IAAM7B,GAAKyC,EAAE,KAAMA,EAAE,EAAGjB,EAAE,MAAMK,CAAC,EAAE,MAAQ7B,EAAG+C,EAAE,gBAAiB,CAAE,MAAOnB,EAAG,MAAOC,EAAG,KAAML,EAAE,MAAMK,CAAC,CAAC,CAAE,EAAGkB,EAAE,UAAW,CAAE,MAAOnB,EAAG,MAAOC,CAAC,EAAI,EAAE,CAC9N,CACF,EAAGqB,GAAI,CAACtB,EAAGC,IAAM,CACfkB,EAAE,aAAc,CACd,MAAOnB,EACP,MAAOF,EAAE,MAAMG,CAAC,EAAE,MAClB,KAAMH,EAAE,MAAMG,CAAC,CACvB,CAAO,CACH,EAAGiB,GAAKlB,GAAM,CACZ,MAAMC,EAAIE,EAAE,MAAM,sBAAqB,EAAI,CAAE,QAAS/B,EAAG,QAASyC,CAAC,EAAK,iBAAkB,QAAUb,EAAE,QAAUA,EAAE,QAAQ,CAAC,EAAIA,EAC/H,MAAO,CACL,EAAG5B,GAAKqB,EAAE,WAAa,EAAIY,EAAE,MAAM,cAAgBJ,EAAE,KACrD,EAAGY,GAAKpB,EAAE,WAAaY,EAAE,MAAM,aAAe,GAAKJ,EAAE,GAC7D,CACI,EAAGsB,EAAKvB,GAAM,CACZA,EAAIA,EAAEP,EAAE,WAAa,IAAM,GAAG,EAC9B,MAAMQ,EAAIE,EAAE,MAAMV,EAAE,WAAa,eAAiB,aAAa,EAC/D,OAAOA,EAAE,KAAO,CAACA,EAAE,aAAeO,EAAIC,EAAID,GAAIA,EAAI,IAAMC,CAC1D,EAAGgB,EAAKjB,GAAM,CACZ,MAAMC,EAAII,EAAE,MAAM,eAClB,IAAIjC,EAAI,CACN,cAAeoD,EAAEvB,CAAC,EAClB,cAAewB,EAAExB,CAAC,EAClB,oBAAqB,EACrB,oBAAqB,CAC7B,EACM,MAAMY,EAAI,GAAKpB,EAAE,eAAiB,EAAIrB,EAAE,eAAgB0C,EAAI,KAAOrB,EAAE,eAAiB,EAAIrB,EAAE,eAAgB2C,EAAI,KAAK,IAAI,KAAK,IAAIQ,EAAEvB,CAAC,EAAGc,CAAC,EAAGD,CAAC,EAC7I,IAAIG,EAAI,CAACf,EAAGA,EAAI,CAAC,EAAGyB,EAAI9B,EAAE,MAAMoB,EAAE,CAAC,CAAC,GAAK,KAAMW,EAAI/B,EAAE,MAAMoB,EAAE,CAAC,CAAC,GAAK,KACpE,MAAMY,GAAIF,EAAE,IAAM,KAAOX,GAAKW,EAAE,IAAMtD,EAAE,cAAeyD,GAAKF,EAAE,IAAM,KAAOZ,GAAK,KAAOY,EAAE,IAAMF,EAAExB,EAAI,CAAC,GACtG,GAAI2B,IAAKC,GAAI,CACXD,IAAKF,EAAE,KAAOA,EAAE,IAAKC,EAAE,KAAO,KAAK,IAAI,IAAMD,EAAE,IAAMtD,EAAE,cAAgBA,EAAE,cAAe,CAAC,IAAMsD,EAAE,KAAO,KAAK,IAAI,IAAMC,EAAE,IAAMvD,EAAE,cAAgBqD,EAAExB,EAAI,CAAC,EAAG,CAAC,EAAG0B,EAAE,KAAOA,EAAE,KAC1K,MACF,CACA,GAAIlC,EAAE,eAAgB,CACpB,MAAMqC,GAAIC,EAAE3D,EAAG2C,CAAC,EAChB,GAAI,CAACe,GAAG,QACP,CAAE,KAAM1D,EAAG,cAAe4C,CAAC,EAAKc,IAAIJ,EAAI9B,EAAE,MAAMoB,EAAE,CAAC,CAAC,GAAK,KAAMW,EAAI/B,EAAE,MAAMoB,EAAE,CAAC,CAAC,GAAK,IACvF,CACAU,IAAM,OAASA,EAAE,KAAO,KAAK,IAAI,KAAK,IAAIX,EAAI3C,EAAE,cAAgBA,EAAE,oBAAqBsD,EAAE,GAAG,EAAGA,EAAE,GAAG,GAAIC,IAAM,OAASA,EAAE,KAAO,KAAK,IAAI,KAAK,IAAI,IAAMZ,EAAI3C,EAAE,cAAgBA,EAAE,oBAAqBuD,EAAE,GAAG,EAAGA,EAAE,GAAG,EACpN,EAAGI,EAAI,CAAC/B,EAAGC,IAAM,CACf,MAAM7B,EAAIiC,EAAE,MAAM,eAAgBQ,EAAI,CAACzC,EAAGA,EAAI,CAAC,EAC/C,OAAO6B,EAAID,EAAE,cAAgBJ,EAAE,MAAMiB,EAAE,CAAC,CAAC,EAAE,MAAQA,EAAE,CAAC,EAAImB,GAAE5D,CAAC,EAAE,MAAO4B,EAAE,oBAAsB,EAAGa,EAAE,CAAC,EAAIzC,GAAKwB,EAAE,MAAM,QAAQ,CAACkB,EAAGC,IAAM,CACrIA,EAAIF,EAAE,CAAC,GAAKE,GAAK3C,IAAM0C,EAAE,KAAOA,EAAE,IAAKd,EAAE,qBAAuBc,EAAE,IACpE,CAAC,EAAGd,EAAE,cAAgBwB,EAAEX,EAAE,CAAC,CAAC,EAAGA,EAAE,CAAC,IAAM,SAAWb,EAAE,oBAAsB,EAAGJ,EAAE,MAAM,CAAC,EAAE,KAAOA,EAAE,MAAM,CAAC,EAAE,IAAKA,EAAE,MAAM,QAAQ,CAACkB,EAAGC,IAAM,CACxIA,EAAI,GAAKA,GAAK3C,IAAM0C,EAAE,KAAOA,EAAE,IAAKd,EAAE,qBAAuBc,EAAE,IACjE,CAAC,EAAGlB,EAAE,MAAMiB,EAAE,CAAC,CAAC,EAAE,KAAO,IAAMb,EAAE,oBAAsBJ,EAAE,MAAM,CAAC,EAAE,IAAMI,EAAE,cAAgBA,EAAE,cAAe,MAAQC,EAAI,IAAMD,EAAE,cAAgBJ,EAAE,MAAMiB,EAAE,CAAC,CAAC,EAAE,MAAQA,EAAE,CAAC,EAAIoB,GAAE7D,CAAC,EAAE,MAAO4B,EAAE,oBAAsB,EAAGa,EAAE,CAAC,EAAIzC,EAAI,GAAKwB,EAAE,MAAM,QAAQ,CAACkB,EAAGC,IAAM,CAC3PA,EAAI3C,GAAK2C,EAAIF,EAAE,CAAC,IAAMC,EAAE,KAAOA,EAAE,IAAKd,EAAE,qBAAuBc,EAAE,IACnE,CAAC,EAAGd,EAAE,cAAgByB,EAAEZ,EAAE,CAAC,EAAI,CAAC,EAAGA,EAAE,CAAC,IAAM,SAAWb,EAAE,oBAAsB,EAAGJ,EAAE,MAAM,QAAQ,CAACkB,EAAGC,IAAM,CAC1GA,EAAIb,EAAE,MAAQ,GAAKa,GAAK3C,EAAI,IAAM0C,EAAE,KAAOA,EAAE,IAAKd,EAAE,qBAAuBc,EAAE,IAC/E,CAAC,EAAGlB,EAAE,MAAMiB,EAAE,CAAC,CAAC,EAAE,KAAO,IAAMb,EAAE,cAAgByB,EAAEZ,EAAE,CAAC,EAAI,CAAC,EAAG,MAAQ,CAAE,KAAMb,EAAG,cAAea,CAAC,CACnG,EAAGW,EAAKxB,GAAMJ,EAAE,MAAM,OAAO,CAACK,EAAG7B,EAAGyC,IAAMZ,GAAKY,EAAIb,EAAI5B,EAAE,KAAO,GAAI,CAAC,EAAGqD,EAAKzB,GAAMJ,EAAE,MAAM,OAAO,CAACK,EAAG7B,EAAGyC,IAAMZ,GAAKY,EAAIb,EAAI,EAAI5B,EAAE,KAAO,GAAI,CAAC,EAAG4D,GAAKhC,GAAM,CAAC,GAAGJ,EAAE,KAAK,EAAE,QAAO,EAAG,KAAMxB,GAAMA,EAAE,MAAQ4B,GAAK5B,EAAE,KAAOA,EAAE,GAAG,GAAK,CAAA,EAAI6D,GAAKjC,GAAMJ,EAAE,MAAM,KAAMxB,GAAMA,EAAE,MAAQ4B,EAAI,GAAK5B,EAAE,KAAOA,EAAE,GAAG,GAAK,CAAA,EAAI8D,GAAK,IAAM,CACvT,IAAIjC,EACJ,MAAMD,EAAI,MAAM,OAAOC,EAAIE,EAAE,QAAU,KAAO,OAASF,EAAE,WAAa,CAAA,CAAE,EACxE,UAAW7B,KAAK4B,EAAG,CACjB,MAAMa,EAAIzC,EAAE,UAAU,SAAS,kBAAkB,EAAG0C,EAAI1C,EAAE,UAAU,SAAS,sBAAsB,EACnG,CAACyC,GAAK,CAACC,IAAM1C,EAAE,OAAM,EAAI,QAAQ,KAAK,8GAA8G,EACtJ,CACF,EAAG+D,GAAI,CAACnC,EAAGC,EAAG7B,EAAI,KAAO,CACvB,MAAMyC,EAAIb,EAAI,EAAGc,EAAI,SAAS,cAAc,KAAK,EACjDA,EAAE,UAAU,IAAI,sBAAsB,EAAG1C,IAAM0C,EAAE,YAAeC,GAAMH,EAAEG,EAAGF,CAAC,EAAG,OAAO,OAAS,KAAO,iBAAkB,SAAWC,EAAE,aAAgBC,GAAMH,EAAEG,EAAGF,CAAC,GAAIC,EAAE,QAAWC,GAAMK,GAAEL,EAAGF,EAAI,CAAC,GAAIC,EAAE,WAAcC,GAAMM,GAAEN,EAAGF,EAAI,CAAC,EAAGZ,EAAE,WAAW,aAAaa,EAAGb,CAAC,CACzQ,EAAGmC,GAAMpC,GAAM,CACbA,EAAE,YAAc,OAAQA,EAAE,QAAU,OAAQA,EAAE,WAAa,OAAQA,EAAE,OAAM,CAC7E,EAAGqC,GAAI,IAAM,CACX,IAAIjE,EACJ,MAAM4B,EAAI,MAAM,OAAO5B,EAAI+B,EAAE,QAAU,KAAO,OAAS/B,EAAE,WAAa,CAAA,CAAE,EACxE,UAAWyC,KAAKb,EACda,EAAE,UAAU,SAAS,sBAAsB,GAAKuB,GAAGvB,CAAC,EACtD,IAAIZ,EAAI,EACR,UAAWY,KAAKb,EACda,EAAE,UAAU,SAAS,kBAAkB,IAAM,CAACZ,GAAKR,EAAE,cAAgB0C,GAAElC,EAAGY,EAAG,EAAE,EAAIZ,GAAKkC,GAAElC,EAAGY,CAAC,EAAGZ,IACrG,EAAGqC,GAAK,CAAC,CAAE,IAAKtC,EAAG,GAAGC,KAAQ,CAC5B,MAAM7B,EAAI0B,EAAE,MAAME,CAAC,EACnB,SAAW,CAACa,EAAGC,CAAC,IAAK,OAAO,QAAQb,CAAC,EAAG7B,EAAEyC,CAAC,EAAIC,CACjD,EAAGyB,GAAMvC,GAAM,CACb,IAAI5B,EACJ,IAAI6B,EAAI,GACR,MAAM,OAAO7B,EAAI+B,EAAE,QAAU,KAAO,OAAS/B,EAAE,WAAa,CAAA,CAAE,EAAE,KAAMyC,IAAOA,EAAE,UAAU,SAAS,kBAAkB,GAAKZ,IAAKY,EAAE,WAAWb,EAAE,EAAE,EAAE,EAAGJ,EAAE,MAAM,OAAOK,EAAG,EAAG,CAAE,GAAGD,EAAG,MAAOC,CAAC,CAAE,EAAGL,EAAE,MAAM,QAAQ,CAACiB,EAAGC,IAAMD,EAAE,MAAQC,CAAC,EAAGV,EAAE,OAASoC,GAAE,IAAM,CACvPH,GAAC,EAAII,GAAE,CAAE,UAAW7C,EAAE,MAAMK,CAAC,CAAC,CAAE,EAAGkB,EAAE,WAAY,CAAE,KAAMvB,EAAE,MAAMK,CAAC,EAAG,CACvE,CAAC,CACH,EAAGyC,GAAM1C,GAAM,CACb,MAAMC,EAAIL,EAAE,MAAM,UAAWiB,GAAMA,EAAE,KAAOb,CAAC,EAC7CJ,EAAE,MAAMK,CAAC,EAAE,GAAK,KAChB,MAAM7B,EAAIwB,EAAE,MAAM,OAAOK,EAAG,CAAC,EAAE,CAAC,EAChCL,EAAE,MAAM,QAAQ,CAACiB,EAAGC,IAAMD,EAAE,MAAQC,CAAC,EAAG0B,GAAE,IAAM,CAC9CH,GAAC,EAAIlB,EAAE,cAAe,CAAE,KAAM/C,CAAC,CAAE,EAAGqE,GAAE,CAAE,YAAa,CAAE,GAAGrE,CAAC,CAAE,CAAE,CACjE,CAAC,CACH,EAAGqE,GAAI,CAACzC,EAAI,KAAO,CACjB,CAACA,EAAE,WAAa,CAACA,EAAE,YAAc2C,GAAE,EAAK/C,EAAE,MAAM,KAAMK,GAAMA,EAAE,YAAc,MAAQA,EAAE,KAAOA,EAAE,IAAM,GAAG,EAAI2C,GAAG5C,CAAC,EAAI6C,GAAE,EAAIzC,EAAE,OAASe,EAAE,SAAS,CAClJ,EAAG0B,GAAK,IAAM,CACZ,MAAM7C,EAAI,IAAME,EAAE,MAClB,IAAID,EAAI,EACR,MAAM7B,EAAI,GAAIyC,EAAI,CAAA,EAClB,UAAWC,KAAKlB,EAAE,MAChBkB,EAAE,KAAO,KAAK,IAAI,KAAK,IAAId,EAAGc,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGb,GAAKa,EAAE,KAAMA,EAAE,MAAQA,EAAE,KAAO1C,EAAE,KAAK0C,EAAE,EAAE,EAAGA,EAAE,MAAQA,EAAE,KAAOD,EAAE,KAAKC,EAAE,EAAE,EAC5Hb,EAAI,IAAO6C,GAAE7C,EAAG7B,EAAGyC,CAAC,CACtB,EAAG8B,GAAK,IAAM,CACZ,IAAI3C,EAAI,IACR,MAAMC,EAAI,GAAI7B,EAAI,CAAA,EAClB,IAAIyC,EAAI,EACR,UAAWE,KAAKnB,EAAE,MAChBI,GAAKe,EAAE,KAAMA,EAAE,YAAc,MAAQF,IAAKE,EAAE,MAAQA,EAAE,KAAOd,EAAE,KAAKc,EAAE,EAAE,EAAGA,EAAE,MAAQA,EAAE,KAAO3C,EAAE,KAAK2C,EAAE,EAAE,EAC3G,IAAID,EAAI,IACR,GAAId,EAAI,GAAK,CACX,UAAWe,KAAKnB,EAAE,MAChBmB,EAAE,YAAc,OAASA,EAAE,KAAO,KAAK,IAAI,KAAK,IAAIf,GAAKE,EAAE,MAAQW,GAAIE,EAAE,GAAG,EAAGA,EAAE,GAAG,GAAID,GAAKC,EAAE,KACjGD,EAAI,IAAOgC,GAAEhC,EAAGb,EAAG7B,CAAC,CACtB,CACF,EAAGwE,GAAK,CAAC,CAAE,UAAW5C,EAAG,YAAaC,CAAC,EAAK,KAAO,CACjD,IAAI7B,EAAI,IAAM8B,EAAE,MAAOW,EAAI,EAC3B,MAAMC,EAAI,GAAIC,EAAI,CAAA,GACKf,GAAE,WAAc,QAAU,OAAS5B,GAAK,IAAM4B,EAAE,YAAcE,EAAE,MAAQ,IAC/F,UAAWc,KAAKpB,EAAE,MAChBiB,GAAKG,EAAE,KAAMA,EAAE,MAAQA,EAAE,KAAOF,EAAE,KAAKE,EAAE,EAAE,EAAGA,EAAE,MAAQA,EAAE,KAAOD,EAAE,KAAKC,EAAE,EAAE,EAC9E,GAAI,EAAE,KAAK,IAAIH,CAAC,EAAI,IAAM,CACxB,UAAWG,KAAKpB,EAAE,MACMI,GAAE,YAAe,MAA8BA,GAAE,KAAQgB,EAAE,KAAOA,EAAE,KAAO,KAAK,IAAI,KAAK,IAAI5C,EAAG4C,EAAE,GAAG,EAAGA,EAAE,GAAG,GAAIH,GAAKG,EAAE,KAAMA,EAAE,MAAQA,EAAE,KAAOF,EAAE,KAAKE,EAAE,EAAE,EAAGA,EAAE,MAAQA,EAAE,KAAOD,EAAE,KAAKC,EAAE,EAAE,EACrNH,EAAI,IAAOiC,GAAEjC,EAAGC,EAAGC,CAAC,CACtB,CACF,EAAG+B,GAAI,CAAC9C,EAAGC,EAAG7B,IAAM,CAClB,IAAIyC,EACJb,EAAI,EAAIa,EAAIb,GAAKE,EAAE,MAAQD,EAAE,QAAUY,EAAIb,GAAKE,EAAE,MAAQ9B,EAAE,QAASwB,EAAE,MAAM,QAAQ,CAACkB,EAAGC,IAAM,CAC7F,GAAIf,EAAI,GAAK,CAACC,EAAE,SAASa,EAAE,EAAE,EAAG,CAC9B,MAAME,EAAI,KAAK,IAAI,KAAK,IAAIF,EAAE,KAAOD,EAAGC,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGY,EAAIV,EAAIF,EAAE,KAClEd,GAAK0B,EAAGZ,EAAE,KAAOE,CACnB,SAAW,CAAC5C,EAAE,SAAS0C,EAAE,EAAE,EAAG,CAC5B,MAAME,EAAI,KAAK,IAAI,KAAK,IAAIF,EAAE,KAAOD,EAAGC,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGY,EAAIV,EAAIF,EAAE,KAClEd,GAAK0B,EAAGZ,EAAE,KAAOE,CACnB,CACF,CAAC,EAAG,KAAK,IAAIhB,CAAC,EAAI,IAAOwC,GAAE,IAAM,CAC/BpC,EAAE,OAAS,QAAQ,KAAK,wEAAwE,CAClG,CAAC,CACH,EAAGe,EAAI,CAACnB,EAAGC,EAAI,OAAQ7B,EAAI,KAAO,CAChC,MAAMyC,EAA0BZ,GAAE,OAAUI,EAAE,MAAM,gBAAkB,KACtEb,EAAEQ,EAAG,CACH,GAAGC,EACH,GAAGY,IAAM,MAAQ,CAAE,MAAOA,CAAC,EAC3B,GAAGzC,GAAKyC,IAAM,MAAQ,CACpB,SAAUjB,EAAE,MAAMiB,GAAKpB,EAAE,cAAgB,EAAI,EAAE,EAC/C,SAAUG,EAAE,MAAMiB,GAAKpB,EAAE,cAAgB,EAAI,EAAE,CACzD,EACQ,MAAOG,EAAE,MAAM,IAAKkB,IAAO,CAAE,IAAKA,EAAE,IAAK,IAAKA,EAAE,IAAK,KAAMA,EAAE,MAAO,CAC5E,CAAO,CACH,EACAiC,GAAE,IAAMtD,EAAE,cAAe,IAAM4C,GAAC,CAAE,EAAGW,GAAE,IAAM,CAC3Cd,GAAE,EAAIG,GAAC,EAAII,GAAC,EAAItB,EAAE,OAAO,EAAGf,EAAE,MAAQ,EACxC,CAAC,EAAG6C,GAAE,IAAM7C,EAAE,MAAQ,EAAE,EACxB,MAAM8C,GAAK,IAAM,CACf,IAAIlD,EACJ,OAAOmD,GACL,MACA,CAAE,IAAKhD,EAAG,MAAOI,EAAE,KAAK,GACvBP,EAAIN,EAAE,UAAY,KAAO,OAASM,EAAE,KAAKN,CAAC,CACnD,CACI,EACA,OAAO0D,EAAE,QAASxD,CAAC,EAAGwD,EAAE,eAAgBtD,CAAC,EAAGsD,EAAE,aAAcrD,EAAE,IAAMN,EAAE,UAAU,CAAC,EAAG2D,EAAE,gBAAiBd,EAAE,EAAGc,EAAE,YAAab,EAAE,EAAGa,EAAE,eAAgBV,EAAE,EAAGU,EAAE,cAAe9B,EAAC,EAAG,CAACtB,EAAGC,KAAOoD,EAAC,EAAIC,EAAGC,GAAGL,EAAE,CAAC,EACvM,CACF,EAAGM,GAAK,CACN,OAAQ,OACR,MAAO,CACL,KAAM,CAAE,KAAM,CAAC,OAAQ,MAAM,CAAC,EAC9B,QAAS,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EAC7C,QAAS,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,GAAG,CACnD,EACE,MAAMlE,EAAG,CACP,IAAIsB,EACJ,MAAMrB,EAAID,EAAGE,EAAIiE,GAAE,eAAe,EAAGhE,EAAIgE,GAAE,WAAW,EAAG/D,EAAI+D,GAAE,YAAY,EAAG7D,EAAI6D,GAAE,cAAc,EAAG3D,EAAI2D,GAAE,aAAa,EAAGvD,GAAKU,EAAI8C,GAAE,IAAO,KAAO,OAAS9C,EAAE,IAAKT,EAAIsD,GAAE,cAAc,EAAGrD,EAAIL,EAAE,IAAMI,EAAE,MAAMD,CAAC,CAAC,EAAGG,EAAIR,EAAE,IAAI,EAAGS,EAAIP,EAAE,IAAM,CAC3O,MAAMU,EAAI,MAAMlB,EAAE,IAAI,GAAKA,EAAE,OAAS,OAAS,EAAI,WAAWA,EAAE,IAAI,EACpE,OAAO,KAAK,IAAI,KAAK,IAAIkB,EAAGD,EAAE,KAAK,EAAGD,EAAE,KAAK,CAC/C,CAAC,EAAGA,EAAIR,EAAE,IAAM,CACd,MAAMU,EAAI,WAAWlB,EAAE,OAAO,EAC9B,OAAO,MAAMkB,CAAC,EAAI,EAAIA,CACxB,CAAC,EAAGD,EAAIT,EAAE,IAAM,CACd,MAAMU,EAAI,WAAWlB,EAAE,OAAO,EAC9B,OAAO,MAAMkB,CAAC,EAAI,IAAMA,CAC1B,CAAC,EAAGE,EAAIZ,EAAE,IAAM,CACd,IAAIU,EACJ,MAAO,GAAGf,EAAE,MAAQ,SAAW,OAAO,MAAMe,EAAIL,EAAE,QAAU,KAAO,OAASK,EAAE,IAAI,GACpF,CAAC,EACD,OAAOsC,GAAE,IAAMzC,EAAE,MAAQG,GAAMjB,EAAE,CAAE,IAAKU,EAAG,KAAMO,CAAC,CAAE,CAAC,EAAGsC,GAAE,IAAMxC,EAAE,MAAQE,GAAMjB,EAAE,CAAE,IAAKU,EAAG,IAAKO,CAAC,CAAE,CAAC,EAAGsC,GAAE,IAAMvC,EAAE,MAAQC,GAAMjB,EAAE,CAAE,IAAKU,EAAG,IAAKO,EAAG,CAAC,EAAGuC,GAAE,IAAM,CAC9JvD,EAAE,CACA,GAAIS,EACJ,GAAIG,EAAE,MACN,IAAKE,EAAE,MACP,IAAKC,EAAE,MAEP,UAAWjB,EAAE,OAAS,OAAS,KAAOe,EAAE,MACxC,KAAMA,EAAE,KAEhB,CAAO,CACH,CAAC,EAAG2C,GAAE,IAAMrD,EAAEM,CAAC,CAAC,EAAG,CAACO,EAAGC,KAAO2C,IAAKM,EAAG,MAAO,CAC3C,QAAS,SACT,IAAKtD,EACL,MAAO,mBACP,QAASK,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKU,IAAMwC,EAAG9D,CAAC,EAAEsB,GAAGX,EAAE,EAAE,GAAG,GAChD,MAAOoD,GAAGlD,EAAE,KAAK,CACvB,EAAO,CACDmD,EAAGrD,EAAE,OAAQ,SAAS,CAC5B,EAAO,CAAC,EACN,CACF,EC7PA,SAASsD,GAAKC,EAAM,CAClB,IAAIC,EAAY,GACZC,EACJ,MAAO,IAAIC,KACJF,IACHA,EAAY,GACZC,EAASF,EAAK,GAAGG,CAAI,GAEhBD,EAEX,CACA,IAAIE,GAAc,mBAClB,GAAI,CACFA,GAAcC,EAChB,MAAQ,CACNC,GAAO,MAAM,kFAAkF,CACjG,CACA,MAAMC,GAAWH,GACjB,IAAII,GAAiB,GACrB,GAAI,CACFA,GAAiBC,EACnB,MAAQ,CACNH,GAAO,MAAM,qFAAqF,CACpG,CAEA,SAASI,IAAa,CACpB,OAAOC,GAAO,UAAWJ,EAAQ,CACnC,CACA,MAAMK,GAAsBb,GAAK,IAAM,CACrC,MAAMc,EAAOC,GAAU,OAAQ,OAAQ,CAAA,CAAE,EACnCC,EAAeL,GAAU,EAC/B,OAAOG,EAAK,KAAK,CAAC,CAAE,GAAAG,CAAE,IAAOA,IAAOD,CAAY,GAAG,MAAQA,CAC7D,CAAC,ECtBDhJ,GAASkJ,EAAG,EACZ,MAAMC,GAA8B3I,EAAgB,CAClD,OAAQ,4BACR,MAAMC,EAAS,CACb,MAAMK,EAAWC,GAAW,EAC5BqI,GAAMtI,EAAUuI,CAAyB,EACzCC,GAAU,IAAM,CACdD,EAA0BvI,EAAS,KAAK,CAC1C,CAAC,EACDyI,GAAgB,IAAM,CAChBzI,EAAS,OACXuI,EAA0B,EAAK,CAEnC,CAAC,EACD,SAASA,EAA0BG,EAAO,GAAM,CAC9C,MAAMC,EAAsB,SAAS,cAAc,wCAAwC,EACvFA,IACFA,EAAoB,MAAM,QAAUD,EAAO,OAAS,GAChDA,IAAS,IACXjI,GAAK,oBAAqB,CAAE,KAAM,EAAK,CAAE,EAG/C,CACA,MAAO,CAACG,EAAMC,KACLC,EAAS,EAAIK,EAAYF,EAAMS,CAAQ,EAAG,CAC/C,aAAcT,EAAMM,CAAC,EAAE,qBAAqB,EAC5C,MAAOP,EAAe,CAAC,qBAAsB,CAAE,6BAA8BC,EAAMjB,CAAQ,CAAC,CAAE,CAAC,EAC/F,MAAOiB,EAAMM,CAAC,EAAE,qBAAqB,EACrC,QAAS,UACjB,EAAS,CACD,KAAMM,EAAQ,IAAM,CAClBJ,EAAYR,EAAMe,EAAgB,EAAG,CACnC,YAAa,GACb,KAAMf,EAAM2H,EAAa,CACrC,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,CAC9B,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,QAAS,OAAO,CAAC,EAE1C,CACF,CAAC,EACKC,GAA4C1G,EAAYkG,GAAa,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EACvGS,GAAiBC,GAAW,WAAW,EAAE,QAAO,EAAG,MAAK,EACxDC,GAAeC,GAAe,EAAG,SAAS,MAAQ,YAClDxJ,GAAY,CAChB,KAAM,eACN,WAAY,CACV,0BAAAoJ,GACJ,KAAIK,GACJ,WAAIC,EACJ,EACE,MAAO,CAIL,aAAc,CACZ,KAAM,QACN,QAAS,EACf,EAOI,SAAU,CACR,KAAM,OACN,QAAS,EACf,EAKI,aAAc,CACZ,KAAM,OACN,QAAS,EACf,EAKI,aAAc,CACZ,KAAM,OACN,QAAS,EACf,EAKI,cAAe,CACb,KAAM,OACN,QAAS,EACf,EASI,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAQI,OAAQ,CACN,KAAM,OACN,QAAS,iBACT,UAAUxI,EAAO,CACf,MAAO,CAAC,WAAY,iBAAkB,kBAAkB,EAAE,SAASA,CAAK,CAC1E,CACN,EAII,YAAa,CACX,KAAM,OACN,QAAS,IACf,EAQI,UAAW,CACT,KAAM,OACN,QAAS,IACf,CACA,EACE,MAAO,CACL,qBACA,YACJ,EACE,OAAQ,CACN,MAAO,CACL,QAASkH,GAAU,EACnB,iBAAkBE,GAAmB,EACrC,SAAU9H,GAAW,EACrB,MAAAmJ,EACN,CACE,EACA,MAAO,CACL,MAAO,CACL,cAAe,EACf,QAAS,CAAA,EACT,aAAc,KAAK,kBAAiB,CAC1C,CACE,EACA,SAAU,CACR,cAAe,CACb,GAAI,KAAK,gBAAkB,GACzB,MAAO,kBAAkB,KAAK,aAAa,GAE7C,GAAI,CACF,MAAO,kBAAkB,KAAK,OAAO,EACvC,MAAQ,CACN,OAAA3B,GAAO,KAAK,8DAA8D,EACnE,0BACT,CACF,EACA,iBAAkB,CAChB,OAAI,KAAK,aACA,IAAM,KAAK,aAEb,KAAK,aAAa,QAAQ,IACnC,EACA,cAAe,CACb,MAAO,CACL,KAAM,CACJ,KAAM,KAAK,SACX,IAAK,KAAK,aACV,IAAK,KAAK,YACpB,EAGQ,QAAS,CACP,KAAM,IAAM,KAAK,SACjB,IAAK,IAAM,KAAK,aAChB,IAAK,IAAM,KAAK,YAC1B,CACA,CACI,EACA,eAAgB,CACd,MAAM4B,EAA0B,IAAI,IACpC,GAAI,KAAK,UACP,UAAWC,KAAQ,KAAK,UAAU,MAAM,KAAK,EAC3CD,EAAQ,IAAIC,CAAI,UAET,KAAK,YAAa,CAC3B,UAAWA,KAAQ,KAAK,YAAY,MAAM,KAAK,EAC7CD,EAAQ,IAAIC,CAAI,EAEdD,EAAQ,KAAO,GACjBA,EAAQ,IAAI,KAAK,gBAAgB,CAErC,KACE,QAAO,KAET,OAAAA,EAAQ,IAAIL,EAAY,EACjB,CAAC,GAAGK,EAAQ,OAAM,CAAE,EAAE,KAAK,KAAK,CACzC,CACJ,EACE,MAAO,CACL,cAAe,CACb,UAAW,GACX,SAAU,CACJ,KAAK,gBAAkB,OACzB,SAAS,MAAQ,KAAK,cAE1B,CACN,EACI,cAAe,CACb,UAAW,GACX,SAAU,CACR,KAAK,kBAAiB,CACxB,CACN,CACA,EACE,SAAU,CACH,KAAK,eACR,KAAK,QAAUE,GAAS,KAAK,IAAK,CAChC,WAAY,KAAK,WACzB,CAAO,GAEH,KAAK,kBAAiB,CACxB,EACA,QAAS,CAOP,YAAYpG,EAAGqG,EAAW,CAGpB,KAAK,IAAI,KAAK,QAAQ,OAAO,EAAI,KAC/B,KAAK,QAAQ,YAAY,EAAI,IAAY,GAAKA,IAAc,QAC9D/I,GAAK,oBAAqB,CACxB,KAAM,EAClB,CAAW,EACQ,KAAK,QAAQ,YAAY,EAAI,IAAY,KAAO+I,IAAc,QACvE/I,GAAK,oBAAqB,CACxB,KAAM,EAClB,CAAW,EAGP,EACA,iBAAiBgJ,EAAO,CACtB,MAAMC,EAAe,SAASD,EAAM,MAAM,CAAC,EAAE,KAAM,EAAE,EACrDX,GAAe,QAAQ,KAAK,aAAc,KAAK,UAAUY,CAAY,CAAC,EACtE,KAAK,aAAeA,EACpB,KAAK,MAAM,aAAc,CAAE,KAAMA,CAAY,CAAE,EAC/CjC,GAAO,MAAM,6BAA8B,CAAE,aAAAiC,CAAY,CAAE,CAC7D,EAEA,mBAAoB,CAClB,MAAMA,EAAe,SAASZ,GAAe,QAAQ,KAAK,YAAY,EAAG,EAAE,EAC3E,GAAI,CAAC,MAAMY,CAAY,GAAKA,IAAiB,KAAK,aAChD,OAAAjC,GAAO,MAAM,6BAA8B,CAAE,aAAAiC,CAAY,CAAE,EAC3D,KAAK,aAAeA,EACbA,CAEX,EAIA,aAAc,CACZ,KAAK,MAAM,qBAAsB,EAAK,CACxC,CACJ,CACA,EACMpK,GAAa,CACjB,IAAK,EACL,MAAO,iBACT,EACMC,GAAa,CAAE,MAAO,2BAA2B,EACjDC,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACA,SAASmK,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMC,EAAuCC,EAAiB,2BAA2B,EACnFC,EAAkBD,EAAiB,MAAM,EACzCE,EAAwBF,EAAiB,YAAY,EAC3D,OAAOnJ,EAAS,EAAIC,EAAmB,OAAQ,CAC7C,GAAI,kBACJ,MAAOC,EAAe,CAAC,yBAA0B,CAAE,wBAAyB,CAAC,CAACJ,EAAK,OAAO,KAAM,CAAC,CACrG,EAAK,CACDgJ,EAAO,aAAe9I,EAAS,EAAIC,EAAmB,KAAMzB,GAAYgC,EAAgBsI,EAAO,WAAW,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,EAC5IxJ,EAAK,OAAO,MAAQE,EAAS,EAAIC,EAAmBsJ,GAAU,CAAE,IAAK,GAAK,CAC1ER,EAAO,UAAYD,EAAO,SAAW,YAAc9I,EAAS,EAAIC,EAAmB,MAAO,CACxF,IAAK,EACL,MAAOC,EAAe,CAAC,oDAAqD,CAC1E,oCAAqC4I,EAAO,YAC5C,iCAAkC,CAACA,EAAO,YAC1C,8BAA+BC,EAAO,QAChD,CAAS,CAAC,CACV,EAAS,CACDD,EAAO,aAAe9I,IAAaK,EAAY6I,EAAsC,CACnF,IAAK,EACL,QAASrI,EAAcoI,EAAS,YAAa,CAAC,OAAQ,SAAS,CAAC,CAC1E,EAAW,KAAM,EAAG,CAAC,SAAS,CAAC,GAAKK,EAAmB,GAAI,EAAI,EACvD5I,GAAeH,EAAmB,MAAO9B,GAAY,CACnD0C,EAAWrB,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC1D,EAAW,GAAG,EAAG,CACP,CAACmB,GAAO,CAAC6H,EAAO,WAAW,CACrC,CAAS,EACDA,EAAO,YAAc3H,EAAWrB,EAAK,OAAQ,UAAW,CAAE,IAAK,CAAC,EAAI,OAAQ,EAAI,EAAIwJ,EAAmB,GAAI,EAAI,CACvH,EAAS,CAAC,GAAKR,EAAO,SAAW,kBAAoBA,EAAO,SAAW,oBAAsB9I,EAAS,EAAIC,EAAmB,MAAOvB,GAAY,CACxIiC,EAAY0I,EAAuB,CACjC,WAAYP,EAAO,SAAW,mBAC9B,MAAO5I,EAAe,CAAC,gBAAiB,CACtC,yBAA0B4I,EAAO,SAAW,mBAC5C,uBAAwBA,EAAO,SAAW,gBACtD,CAAW,CAAC,EACF,IAAKC,EAAO,MACZ,UAAWE,EAAS,gBAC9B,EAAW,CACD,QAASlI,EAAQ,IAAM,CACrBJ,EAAYyI,EAAiB,CAC3B,MAAO,wBACP,KAAMJ,EAAM,cAAgBC,EAAS,aAAa,KAAK,KACvD,QAASA,EAAS,aAAa,KAAK,IACpC,QAASA,EAAS,aAAa,KAAK,GAClD,EAAe,CACD,QAASlI,EAAQ,IAAM,CACrBI,EAAWrB,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAChE,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,OAAQ,UAAW,SAAS,CAAC,EACpCa,EAAYyI,EAAiB,CAC3B,MAAO,2BACP,KAAMH,EAAS,gBACf,QAASA,EAAS,aAAa,QAAQ,IACvC,QAASA,EAAS,aAAa,QAAQ,GACrD,EAAe,CACD,QAASlI,EAAQ,IAAM,CACrBI,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACnE,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,OAAQ,UAAW,SAAS,CAAC,CAChD,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,aAAc,QAAS,MAAO,WAAW,CAAC,CACzD,CAAO,GAAKwJ,EAAmB,GAAI,EAAI,CACvC,EAAO,EAAE,GAAKA,EAAmB,GAAI,EAAI,EACpCxJ,EAAK,OAAO,KAAsEwJ,EAAmB,GAAI,EAAI,EAA1FnI,EAAWrB,EAAK,OAAQ,UAAW,CAAE,IAAK,CAAC,EAAI,OAAQ,EAAI,CACnF,EAAK,CAAC,CACN,CACA,MAAM0J,GAA+BnI,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECtXjHlK,GAAY,CAChB,KAAM,YACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMH,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,+GAA+G,EACjI+K,GAAa,CAAE,IAAK,CAAC,EAC3B,SAASZ,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOjJ,EAAS,EAAIC,EAAmB,OAAQyJ,GAAW5J,EAAK,OAAQ,CACrE,cAAegJ,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,kCACP,KAAM,MACN,QAAS/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWhB,EAAK,MAAM,QAASgB,CAAM,EAC7E,CAAG,EAAG,EACDd,EAAS,EAAIC,EAAmB,MAAO,CACtC,KAAM6I,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDvI,EAAmB,OAAQ7B,GAAY,CACrCoK,EAAO,OAAS9I,EAAS,EAAIC,EAAmB,QAASwJ,GAAYjJ,EAAgBsI,EAAO,KAAK,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAG7K,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMmL,GAA4BtI,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,CAAC,CAAC,EC1C5ElK,GAAY,CAChB,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMH,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,4DAA4D,EAC9E+K,GAAa,CAAE,IAAK,CAAC,EAC3B,SAASZ,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOjJ,EAAS,EAAIC,EAAmB,OAAQyJ,GAAW5J,EAAK,OAAQ,CACrE,cAAegJ,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,yCACP,KAAM,MACN,QAAS/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWhB,EAAK,MAAM,QAASgB,CAAM,EAC7E,CAAG,EAAG,EACDd,EAAS,EAAIC,EAAmB,MAAO,CACtC,KAAM6I,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDvI,EAAmB,OAAQ7B,GAAY,CACrCoK,EAAO,OAAS9I,EAAS,EAAIC,EAAmB,QAASwJ,GAAYjJ,EAAgBsI,EAAO,KAAK,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAG7K,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMoL,GAA8BvI,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,CAAC,CAAC,ECpC9ErK,GAAa,CAAE,MAAO,2BAA2B,EACjDC,GAAa,CAAC,KAAM,mBAAoB,WAAY,cAAe,OAAQ,OAAO,EAClFC,GAAa,CAAC,KAAK,EACnB+K,GAAa,CAAE,MAAO,8CAA8C,EACpEI,GAAa,CACjB,IAAK,EACL,MAAO,+CACT,EACMC,GAAa,CAAC,IAAI,EAClBnL,GAA4BC,EAAgB,CAE9C,aAAc,GAEhB,OAAQ,eACR,MAAuBmL,GAAY,CACjC,MAAO,CAAE,QAAS,EAAE,EACpB,WAAY,CAAE,QAAS,EAAE,EACzB,GAAI,CAAE,QAAS,IAAMC,IAAiB,EACtC,MAAO,CAAE,QAAS,MAAM,EACxB,aAAc,CAAE,KAAM,OAAO,EAC7B,KAAM,CAAE,QAAS,MAAM,EACvB,YAAa,CAAE,QAAS,MAAM,EAC9B,mBAAoB,CAAE,KAAM,OAAO,EACnC,oBAAqB,CAAE,QAAS,MAAM,EACtC,QAAS,CAAE,KAAM,OAAO,EACxB,MAAO,CAAE,KAAM,OAAO,EACtB,WAAY,CAAE,QAAS,EAAE,EACzB,SAAU,CAAE,KAAM,OAAO,EACzB,KAAM,CAAE,KAAM,OAAO,CACzB,EAAK,CACD,WAAc,CAAE,SAAU,EAAI,EAC9B,eAAkB,CAAA,CACtB,CAAG,EACD,MAAuBD,GAAY,CAAC,qBAAqB,EAAG,CAAC,mBAAmB,CAAC,EACjF,MAAMlL,EAAS,CAAE,OAAQoL,EAAU,KAAMC,GAAU,CACjD,MAAMC,EAAaC,GAASvL,EAAS,YAAY,EAC3CC,EAAQD,EACRc,EAAOuK,EACbD,EAAS,CACP,MAAAI,EACA,OAAAC,CACN,CAAK,EACD,MAAMC,EAAQC,GAAQ,EAChBC,EAAeC,GAAe,OAAO,EACrCC,EAAkB1L,EAAS,IAAMH,EAAM,oBAAsBA,EAAM,OAAO,EAC1E8L,EAAsB3L,EAAS,IAAM,CACzC,GAAIH,EAAM,YACR,OAAOA,EAAM,YAEf,GAAIA,EAAM,MACR,OAAO+L,GAAW/L,EAAM,MAAQ,EAGpC,CAAC,EACKgM,EAAe7L,EAAS,IACNH,EAAM,OAASA,EAAM,YAK5C,EACKiM,EAAkB9L,EAAS,IAAM,CACrC,MAAM+L,EAAmB,CAAA,EACzB,OAAIlM,EAAM,YACRkM,EAAiB,KAAK,GAAGlM,EAAM,EAAE,cAAc,EAE7CyL,EAAM,kBAAkB,GAC1BS,EAAiB,KAAK,OAAOT,EAAM,kBAAkB,CAAC,CAAC,EAElDS,EAAiB,KAAK,GAAG,GAAK,MACvC,CAAC,EACD,SAASX,EAAMY,EAAS,CACtBR,EAAa,MAAM,MAAMQ,CAAO,CAClC,CACA,SAASX,GAAS,CAChBG,EAAa,MAAM,OAAM,CAC3B,CACA,SAASS,EAAYvC,EAAO,CAC1B,MAAMwC,EAASxC,EAAM,OACrBwB,EAAW,MAAQrL,EAAM,OAAS,UAAY,OAAOqL,EAAW,OAAU,SAAW,WAAWgB,EAAO,KAAK,EAAIA,EAAO,KACzH,CACA,MAAO,CAACrL,EAAMC,KACLC,EAAS,EAAIC,EAAmB,MAAO,CAC5C,MAAOC,EAAe,CAAC,cAAe,CAAC,CACrC,wBAAyBJ,EAAK,SAC9B,qBAAsBA,EAAK,MAC3B,6BAA8BA,EAAK,cAAgB,CAACgL,EAAa,MACjE,4BAA6B,CAAC,CAAChL,EAAK,OAAO,KAC3C,6BAA8B6K,EAAgB,MAC9C,oBAAqB7K,EAAK,KAC1B,uBAAwBA,EAAK,QAC7B,sBAAuBK,EAAM0K,EAAQ,CAC/C,EAAW/K,EAAK,OAAO,KAAK,CAAC,CAAC,CAC9B,EAAS,CACDS,EAAmB,MAAO/B,GAAY,CACpC+B,EAAmB,QAASmJ,GAAW5J,EAAK,OAAQ,CAClD,GAAIA,EAAK,GACT,IAAK,QACL,mBAAoBiL,EAAgB,MACpC,YAAa,SACb,MAAO,CAAC,qBAAsBjL,EAAK,UAAU,EAC7C,SAAUA,EAAK,SACf,YAAa8K,EAAoB,MACjC,KAAM9K,EAAK,KACX,MAAOqK,EAAW,MAAM,SAAQ,EAChC,QAASe,CACrB,CAAW,EAAG,KAAM,GAAIzM,EAAU,EACxB,CAACqB,EAAK,cAAgBgL,EAAa,OAAS9K,EAAS,EAAIC,EAAmB,QAAS,CACnF,IAAK,EACL,MAAO,qBACP,IAAKH,EAAK,EACtB,EAAaU,EAAgBV,EAAK,KAAK,EAAG,EAAGpB,EAAU,GAAK4K,EAAmB,GAAI,EAAI,EAC7E5I,GAAeH,EAAmB,MAAOkJ,GAAY,CACnDtI,EAAWrB,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC5D,EAAa,GAAG,EAAG,CACP,CAACmB,GAAO,CAAC,CAACnB,EAAK,OAAO,IAAI,CACtC,CAAW,EACDA,EAAK,oBAAsBE,IAAaK,EAAYO,EAAU,CAC5D,IAAK,EACL,MAAO,+BACP,aAAcd,EAAK,oBACnB,SAAUA,EAAK,SACf,QAAS,yBACT,QAASC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWnB,EAAK,sBAAuBmB,CAAM,EAC7F,EAAa,CACD,KAAMC,EAAQ,IAAM,CAClBI,EAAWrB,EAAK,OAAQ,uBAAwB,CAAA,EAAI,OAAQ,EAAI,CAC9E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,UAAU,CAAC,GAAKA,EAAK,SAAWA,EAAK,OAASE,EAAS,EAAIC,EAAmB,MAAO4J,GAAY,CACpH/J,EAAK,SAAWE,IAAaK,EAAYa,GAAkB,CACzD,IAAK,EACL,KAAMf,EAAMiL,EAAQ,CAClC,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,IAAMpL,EAAS,EAAIK,EAAYa,GAAkB,CACnE,IAAK,EACL,KAAMf,EAAMkL,EAAqB,CAC/C,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,EAChC,CAAW,GAAK/B,EAAmB,GAAI,EAAI,CAC3C,CAAS,EACDxJ,EAAK,YAAcE,IAAaC,EAAmB,IAAK,CACtD,IAAK,EACL,GAAI,GAAGH,EAAK,EAAE,eACd,MAAO,kCACjB,EAAW,CACDA,EAAK,SAAWE,IAAaK,EAAYa,GAAkB,CACzD,IAAK,EACL,MAAO,yCACP,KAAMf,EAAMiL,EAAQ,EACpB,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKtL,EAAK,OAASE,EAAS,EAAIK,EAAYa,GAAkB,CAChF,IAAK,EACL,MAAO,yCACP,KAAMf,EAAMkL,EAAqB,EACjC,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAK/B,EAAmB,GAAI,EAAI,EACpDtI,GAAgB,IAAMR,EAAgBV,EAAK,UAAU,EAAG,CAAC,CACnE,EAAW,EAAGgK,EAAU,GAAKR,EAAmB,GAAI,EAAI,CACxD,EAAS,CAAC,EAER,CACF,CAAC,EACKgC,GAA+BjK,EAAY1C,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,2EC/I9F,MAAMG,EAAQD,EAOR0M,EAAWtM,EAAS,IAAM,CAC/B,MAAMuM,EAAQC,GAAA,EACRC,EAAYD,GAAA,EAAS,SAAS,EAAG,KAAK,EACtCE,EAAQF,GAAO3M,EAAM,WAAW,CAAC,EAAE,QAAQ,EAEjD,OAAI6M,EAAM,OAAOH,EAAO,KAAK,EACrB/K,EAAE,WAAY,OAAO,EAClBkL,EAAM,OAAOD,EAAW,KAAK,EAChCjL,EAAE,WAAY,WAAW,EAE1BkL,EAAM,OAAO,IAAI,CACzB,CAAC,EAKKC,EAAW3M,EAAS,IAAM,CAC/B,MAAM4M,EAAYJ,GAAO3M,EAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,IAAI,EAClE,OAAO+M,IAAcN,EAAS,MAAQM,EAAY,MACnD,CAAC,+BA9CAC,EAEK,KAAA,CAFD,MAAM,0BAA2B,MAAOF,EAAA,KAAA,IACxCL,EAAA,KAAQ,EAAA,EAAA/M,EAAA,EAEZsN,EAMK,KAAA,KAAA,QALJC,EAIwBC,GAAA,KAAAC,GAHJpN,EAAA,WAAZqN,QADR5K,EAIwB6K,GAAA,CAFtB,IAAKD,EAAS,GACd,SAAAA,EACA,aAAc,EAAA,sFCdlBE,GAAe,2YCkITC,GAAgB,2EAjDtB,MAAMvN,EAAQD,EAURyN,EAAiBnF,GAA8BT,GAAS,gBAAgB,EAExE6F,EAAQC,GAAA,EAKRC,EAAUpN,EAAI,EAAK,EAKnBqN,EAAmBrN,EAAI,EAAI,EAK3BsN,EAAgBtN,EAAqB,EAAE,EAMvCuN,EAAqBvN,EAAA,EAKrBwN,EAAmBxN,EAAA,EAMnByN,EAAyBzN,EAAI,EAAK,EAUxC,IAAI0N,EAOAC,EAAoB,IAAI,gBAK5B,MAAMC,EAAaC,GAAA,EAKbzN,EAAYJ,EAAA,EAKlB8N,GAAkB1N,EAAW,SAAY,CACpCiN,EAAiB,OACpB,MAAMU,EAAA,CAER,EAAG,CACF,SAAU,GAAA,CACV,EAKD,MAAMC,EAAoBpO,EAAS,IAAM,CACxC,MAAMqO,EAAS,CAAA,EACf,UAAWpB,KAAYS,EAAc,MAAO,CAC3C,MAAMY,EAAO9B,GAAOS,EAAS,QAAQ,EAAE,OAAO,IAAI,EAC9CoB,EAAOC,CAAI,IAAM,OACpBD,EAAOC,CAAI,EAAI,CAACrB,CAAQ,EAExBoB,EAAOC,CAAI,EAAE,KAAKrB,CAAQ,CAE5B,CACA,OAAOoB,CACR,CAAC,EAEKE,EAAevO,EAAS,IACtBqN,EAAe,KAAMmB,GAAiBA,EAAa,KAAOlB,EAAM,OAAO,MAAM,EAAE,IACtF,EAKD,eAAea,GAAiB,CAE/B,GAAIX,EAAQ,MACX,OAGD,KAAM,CAAE,OAAAiB,GAAWV,EACnB,GAAI,CACH,MAAMW,EAAQf,EAAmB,OAAS,IAC1CH,EAAQ,MAAQ,GAChB,MAAMmB,EAAW,MAAMC,GAAQ,IAAIC,GAAe,iFAAkF,CAAE,OAAQhP,EAAM,OAAQ,MAAA6O,CAAA,CAAO,EAAG,CAAE,OAAAD,EAAQ,EAChL,GAAIA,EAAO,QACV,OAED,MAAMK,EAAgBH,EAAS,KAAK,IAAI,KAAK,IAAKI,GAAsB,IAAIC,GAAcD,CAAG,CAAC,EAC9FrB,EAAc,MAAM,KAAK,GAAGoB,CAAa,EACzCnB,EAAmB,MAAQgB,EAAS,QAAQ,uBAAuB,EACnElB,EAAiB,MAAQ,GAGrBG,EAAiB,QAAU,QAAakB,EAAc,OAAS,IAClElB,EAAiB,MAAQkB,EAAc,CAAC,EAAE,IAG3CnO,GAAS,SAAY,CAChBH,EAAU,OAASA,EAAU,MAAM,eAAiBA,EAAU,MAAM,cAGvE,MAAM2N,EAAA,CAER,CAAC,CACF,OAASc,EAAO,CACf,GAAIC,GAAM,SAASD,CAAK,EACvB,OAGD,GAAIC,GAAM,aAAaD,CAAK,GAAKA,EAAM,UAAU,SAAW,IAAK,CAChExB,EAAiB,MAAQ,GACzB,MACD,CAEA/F,GAAO,MAAMuH,CAAc,EAC3BE,GAAU3N,EAAE,WAAY,2BAA2B,CAAC,CACrD,QAAA,CAGMiN,EAAO,UACXjB,EAAQ,MAAQ,GAElB,CACD,CAMA,eAAe4B,GAAoB,CAClC,KAAM,CAAE,OAAAX,GAAWV,EACnB,GAAI,CACH,MAAMW,EAAQ,OAAOd,EAAiB,OAAS,CAAC,EAC1Ce,EAAW,MAAMC,GAAQ,IAAIC,GAAe,0FAA2F,CAAE,OAAQhP,EAAM,OAAQ,MAAA6O,CAAA,CAAO,EAAG,CAAE,OAAAD,EAAQ,EACzL,GAAI,CAACA,EAAO,SAAWE,EAAS,KAAK,IAAI,KAAK,OAAS,EAAG,CACzD,MAAMG,EAAiCH,EAAS,KAAK,IAAI,KAAK,IAAKI,GAAsB,IAAIC,GAAcD,CAAG,CAAC,EAE/GD,EAAc,KAAK,CAAC5K,EAAkBF,KAAqBA,GAAE,GAAKE,EAAE,EAAE,EACtE0J,EAAiB,MAAQkB,EAAc,CAAC,EAAG,GAC3CpB,EAAc,MAAM,QAAQ,GAAGoB,CAAa,EAI1B,CAACtO,EAAU,OAASA,EAAU,MAAM,UAAY,KAEjEqN,EAAuB,MAAQ,GAEjC,CACD,OAASoB,EAAO,CAEX,CAACC,GAAM,SAASD,CAAK,IAAM,CAACC,GAAM,aAAaD,CAAK,GAAKA,EAAM,UAAU,SAAW,MACvFvH,GAAO,MAAMuH,CAAc,CAE7B,CAGInB,IAAc,SACjBA,EAAY,WAAWsB,EAAmBhC,EAAa,EAEzD,CAKA,SAASiC,IAAc,CACtBxB,EAAuB,MAAQ,GAC/BrN,EAAU,OAAO,SAAS,CAAE,IAAK,EAAG,SAAU,SAAU,CACzD,CAKA,MAAM8O,GAAWC,GAAc,IAAM,CAChC/O,EAAU,OAASA,EAAU,MAAM,UAAY,KAClDqN,EAAuB,MAAQ,GAEjC,EAAG,GAAG,EAKN,SAAS2B,IAAe,CACvBC,GAAA,EAGA3B,EAAY,WAAWsB,EAAmBhC,EAAa,CACxD,CAKA,SAASqC,IAAc,CAClB3B,IAAc,SACjB,aAAaA,CAAS,EACtBA,EAAY,OAEd,CAKA,OAAArF,GAAU,IAAM,CACf0F,EAAA,EACAqB,GAAA,CACD,CAAC,EAEDE,GAAY,IAAM,CACjBD,GAAA,EACA1B,EAAkB,MAAA,CACnB,CAAC,EAEDxF,GAAMyF,EAAapN,GAAU,CACxBA,IAAU,SACb6O,GAAA,EAEAD,GAAA,CAEF,CAAC,EAKDjH,GAAM1I,EAAO,IAAM,CAClBkO,EAAkB,MAAA,EAClBA,EAAoB,IAAI,gBACxBL,EAAc,MAAQ,CAAA,EACtBG,EAAuB,MAAQ,GAC/BF,EAAmB,MAAQ,OAC3BC,EAAiB,MAAQ,OACzBH,EAAiB,MAAQ,GACzBU,EAAA,CACD,CAAC,cArVA9L,EA2CeC,EAAAiI,EAAA,EAAA,CA3CD,MAAM,gBAAc,WACjC,IAEK,CAFLsC,EAEK,KAFLtN,GAEKoQ,EADDpB,EAAA,KAAY,EAAA,CAAA,EAGTd,EAAA,OAAoBC,EAAA,MAAc,SAAM,OAD/CrL,EAQiBC,EAAAsN,EAAA,EAAA,OANhB,MAAM,8BACL,KAAMtN,EAAAd,CAAA,EAAC,WAAA,oBAAA,EACP,YAAac,EAAAd,CAAA,EAAC,WAAA,+DAAA,CAAA,GACJ,OACV,IAA4B,CAA5Be,EAA4BD,EAAAuN,EAAA,EAAA,CAAZ,KAAM,GAAE,CAAA,mCAIdnC,EAAA,MAAc,SAAM,OADhCrL,EAQiBC,EAAAsN,EAAA,EAAA,OANhB,MAAM,8BACL,KAAMtN,EAAAd,CAAA,EAAC,WAAA,iBAAA,EACP,YAAac,EAAAd,CAAA,EAAC,WAAA,+DAAA,CAAA,GACJ,OACV,IAAiD,CAAjDe,EAAiDD,EAAAL,EAAA,EAAA,CAA9B,IAAKK,EAAA6K,EAAA,EAAa,KAAM,EAAA,6DAG7CN,EAoBM,MAAA,SApBG,YAAJ,IAAIrM,EAAY,MAAM,0BAA2B,SAAMM,EAAA,CAAA,IAAAA,EAAA,CAAA,UAAEwB,EAAAgN,EAAA,GAAAhN,EAAAgN,EAAA,EAAA,GAAA/H,CAAA,EAAA,GAEtDsG,EAAA,WADPxL,EAMWC,EAAAX,CAAA,EAAA,OAJV,MAAM,yCACN,KAAK,SACJ,QAAO0N,EAAA,aACR,IAAqC,MAAlC/M,EAAAd,CAAA,EAAC,WAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,oBAELsO,EAAA,EAAA,EAAAhD,EAAoGC,GAAA,KAAAC,GAA1DoB,EAAA,MAAiB,CAArC2B,EAAYzB,SAAlCjM,EAAoG2N,GAAA,CAAtC,IAAK1B,EAAO,WAAAyB,CAAA,iCAGnEtC,EAAA,OAAoBC,EAAA,MAAc,OAAM,OAD/CrL,EAI2CC,EAAAuN,EAAA,EAAA,OAFzC,KAAMvN,EAAAd,CAAA,EAAC,WAAA,yBAAA,EACP,KAAM,GACP,MAAM,iCAAA,qBAEMiM,EAAA,OAAoBC,EAAA,MAAc,OAAM,OADrDZ,EAIM,MAJNtN,GAIMmQ,EADFrN,EAAAd,CAAA,EAAC,WAAA,qBAAA,CAAA,EAAA,CAAA,0EC1CF9B,GAAY,CAChB,KAAM,qBACR,EACMH,GAAa,CAAE,MAAO,qBAAqB,EACjD,SAASqK,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOjJ,EAAS,EAAIC,EAAmB,KAAMzB,GAAY,CACvD2C,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACvD,CAAG,CACH,CACA,MAAMoP,GAAsC7N,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECE9HzK,GAAS+Q,EAAG,EACZ,MAAMC,GAAe,CAAE,MAAO,+BAA+B,EACvD7H,GAA8B3I,EAAgB,CAClD,OAAQ,wBACR,MAAO,CACL,KAAQ,CAAE,KAAM,QAAc,SAAU,EAAM,EAC9C,cAAiB,CAAA,CACrB,EACE,MAAO,CAAC,aAAa,EACrB,MAAMC,EAAS,CACb,MAAMwQ,EAAOjF,GAASvL,EAAS,MAAM,EAC/ByQ,EAAQrQ,EAAS,IAAMoQ,EAAK,MAAQ5O,EAAE,kBAAkB,EAAIA,EAAE,iBAAiB,CAAC,EACtF,MAAO,CAACX,EAAMC,KACLC,EAAS,EAAIC,EAAmB,MAAOmP,GAAc,CAC1DzO,EAAYR,EAAMS,CAAQ,EAAG,CAC3B,MAAO,wBACP,gBAAiB,qBACjB,gBAAiByO,EAAK,MAAQ,OAAS,QACvC,aAAcC,EAAM,MACpB,MAAOA,EAAM,MACb,QAAS,WACT,QAASvP,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWuO,EAAK,MAAQ,CAACA,EAAK,MAC5E,EAAW,CACD,KAAMtO,EAAQ,IAAM,CAClBJ,EAAYO,GAAkB,CAC5B,KAAMmO,EAAK,MAAQlP,EAAMoP,EAAW,EAAIpP,EAAMqP,EAAO,CACnE,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,gBAAiB,aAAc,OAAO,CAAC,CACtD,CAAO,EAEL,CACF,CAAC,EACKC,GAAwCpO,EAAYkG,GAAa,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EACnG/I,GAAa,CAAC,cAAe,aAAc,kBAAmB,OAAO,EACrEC,GAAa,CAAE,MAAO,wBAAwB,EAC9CE,GAA4BC,EAAgB,CAChD,OAAQ,kBACR,MAAO,CACL,UAAW,CAAA,EACX,eAAgB,CAAA,CACpB,EACE,MAAMC,EAAS,CACb,MAAMC,EAAQD,EACd,IAAI6Q,EACJ,MAAMC,EAAsB3I,GAC1B9I,GACA,IAAM0R,GAAkF,EACxF,EACN,EACUC,EAAgCnF,GAAe,wBAAwB,EACvExL,EAAWC,GAAW,EACtBkQ,EAAOhQ,EAAI,CAACH,EAAS,KAAK,EAChC4Q,GAAY,IAAM,CACZ,CAAChR,EAAM,WAAcA,EAAM,cAGjC,CAAC,EACD0I,GAAMtI,EAAU,IAAM,CACpBmQ,EAAK,MAAQ,CAACnQ,EAAS,KACzB,CAAC,EACDsI,GAAM6H,EAAM,IAAM,CAChBU,EAAe,CACjB,CAAC,EACDrI,GAAU,IAAM,CACdiI,EAAoB,EAAI,EACxBK,GAAU,oBAAqBC,CAA0B,EACzDtQ,GAAK,qBAAsB,CACzB,KAAM0P,EAAK,KACnB,CAAO,EACDK,EAAYQ,GAAgBL,EAA8B,MAAO,CAC/D,kBAAmB,GACnB,wBAAyB,KACnB3Q,EAAS,QACXwQ,EAAU,WAAW,CAAE,YAAa,EAAK,CAAE,EAC3CS,EAAiB,EAAK,GAEjB,IAET,cAAeN,EAA8B,MAC7C,UAAWO,GAAY,EACvB,kBAAmB,EAC3B,CAAO,EACDL,EAAe,CACjB,CAAC,EACDpB,GAAY,IAAM,CAChBgB,EAAoB,EAAK,EACzBU,GAAY,oBAAqBJ,CAA0B,EAC3DP,EAAU,WAAU,CACtB,CAAC,EACD,SAASS,EAAiBG,EAAO,CAC/B,GAAIjB,EAAK,QAAUiB,EAAO,CACxB3Q,GAAK,qBAAsB,CACzB,KAAM0P,EAAK,KACrB,CAAS,EACD,MACF,CACAA,EAAK,MAAQiB,IAAU,OAAS,CAACjB,EAAK,MAAQiB,EAC9C,MAAMC,EAAa,iBAAiB,SAAS,IAAI,EAC3CC,EAAkB,SAASD,EAAW,iBAAiB,mBAAmB,CAAC,GAAK,IACtF,WAAW,IAAM,CACf5Q,GAAK,qBAAsB,CACzB,KAAM0P,EAAK,KACrB,CAAS,CACH,EAAG,IAAMmB,CAAe,CAC1B,CACA,SAASP,EAA2B,CAAE,KAAMQ,GAAS,CACnD,OAAON,EAAiBM,CAAK,CAC/B,CACA,SAASV,GAAkB,CACrB7Q,EAAS,OAASmQ,EAAK,MACzBK,EAAU,SAAQ,EAElBA,EAAU,WAAU,CAExB,CACA,SAASgB,GAAY,CACfxR,EAAS,OACXiR,EAAiB,EAAK,CAE1B,CACA,MAAO,CAACrQ,EAAMC,KACLC,EAAS,EAAIC,EAAmB,MAAO,CAC5C,IAAK,yBACL,MAAOC,EAAe,CAAC,iBAAkB,CACvC,yBAA0B,CAACmP,EAAK,MAChC,yBAA0BlP,EAAMC,EAAU,CACpD,CAAS,CAAC,CACV,EAAS,CACDG,EAAmB,MAAO,CACxB,GAAI,qBACJ,cAAe8O,EAAK,MAAQ,QAAU,OACtC,aAAcvP,EAAK,WAAa,OAChC,kBAAmBA,EAAK,gBAAkB,OAC1C,MAAO,0BACP,MAAO,CAACuP,EAAK,OAAS,OACtB,UAAWsB,GAASD,EAAW,CAAC,KAAK,CAAC,CAChD,EAAW,CACDnQ,EAAmB,MAAO9B,GAAY,CACpC0C,EAAWrB,EAAK,OAAQ,SAAU,CAAA,EAAI,OAAQ,EAAI,CAC9D,CAAW,EACDS,EAAmB,MAAO,CACxB,MAAOL,EAAe,CAAC,uBAAwB,CAAE,gCAAiC,CAACJ,EAAK,OAAO,KAAM,CAAC,CAClH,EAAa,CACDqB,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CAC/D,EAAa,CAAC,EACJA,EAAK,OAAO,MAAQE,EAAS,EAAIK,EAAY6O,GAAqB,CAChE,IAAK,EACL,MAAO,sBACnB,EAAa,CACD,QAASnO,EAAQ,IAAM,CACrBI,EAAWrB,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC9D,CAAa,EACD,EAAG,CACf,CAAW,GAAKwJ,EAAmB,GAAI,EAAI,EACjCnI,EAAWrB,EAAK,OAAQ,SAAU,CAAA,EAAI,OAAQ,EAAI,CAC5D,EAAW,GAAItB,EAAU,EACjBmC,EAAY8O,GAAuB,CACjC,KAAMJ,EAAK,MACX,gBAAiBc,CAC3B,EAAW,KAAM,EAAG,CAAC,MAAM,CAAC,CAC5B,EAAS,CAAC,EAER,CACF,CAAC,EACKS,GAAkCvP,EAAY1C,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EClL3FA,GAAY,CAChB,KAAM,gBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMH,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,8DAA8D,EAChF+K,GAAa,CAAE,IAAK,CAAC,EAC3B,SAASZ,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOjJ,EAAS,EAAIC,EAAmB,OAAQyJ,GAAW5J,EAAK,OAAQ,CACrE,cAAegJ,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,uCACP,KAAM,MACN,QAAS/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWhB,EAAK,MAAM,QAASgB,CAAM,EAC7E,CAAG,EAAG,EACDd,EAAS,EAAIC,EAAmB,MAAO,CACtC,KAAM6I,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDvI,EAAmB,OAAQ7B,GAAY,CACrCoK,EAAO,OAAS9I,EAAS,EAAIC,EAAmB,QAASwJ,GAAYjJ,EAAgBsI,EAAO,KAAK,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAG7K,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMqS,GAA4BxP,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,CAAC,CAAC,EC1C5ElK,GAAY,CAChB,KAAM,iBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMH,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,yEAAyE,EAC3F+K,GAAa,CAAE,IAAK,CAAC,EAC3B,SAASZ,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOjJ,EAAS,EAAIC,EAAmB,OAAQyJ,GAAW5J,EAAK,OAAQ,CACrE,cAAegJ,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,wCACP,KAAM,MACN,QAAS/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWhB,EAAK,MAAM,QAASgB,CAAM,EAC7E,CAAG,EAAG,EACDd,EAAS,EAAIC,EAAmB,MAAO,CACtC,KAAM6I,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDvI,EAAmB,OAAQ7B,GAAY,CACrCoK,EAAO,OAAS9I,EAAS,EAAIC,EAAmB,QAASwJ,GAAYjJ,EAAgBsI,EAAO,KAAK,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAG7K,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMsS,GAAiCzP,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,CAAC,CAAC,ECpCvFzK,GAAS2S,EAAG,EACZ,MAAMpS,GAAY,CAChB,KAAM,uBACN,WAAY,CACV,eAAAmS,GACA,UAAAnH,GACA,SAAA/I,CACJ,EACE,OAAQ,CACN,MAAO,CAAE,WAAAR,EAAU,CACrB,EACA,MAAO,CAIL,QAAS,CACP,QAAS,GACT,KAAM,OACZ,EAII,YAAa,CACX,QAAS,GACT,KAAM,MACZ,EAII,WAAY,CACV,QAAS,GACT,KAAM,MACZ,CACA,EACE,MAAO,CACL,SACA,UACA,mBACJ,EACE,MAAO,CACL,MAAO,CACL,aAAcK,EAAE,iBAAiB,EACjC,YAAaA,EAAE,gBAAgB,CACrC,CACE,EACA,SAAU,CACR,WAAY,CACV,KAAM,CACJ,OAAO,KAAK,UACd,EACA,IAAIuQ,EAAU,CACZ,KAAK,MAAM,oBAAqBA,CAAQ,CAC1C,CACN,CACA,EACE,QAAS,CACP,SAAU,CACR,KAAK,MAAM,SAAS,CACtB,EACA,QAAS,CACP,KAAK,MAAM,QAAQ,CACrB,EACA,YAAa,CACX,KAAK,MAAM,MAAM,MAAK,CACxB,CACJ,CACA,EACMxS,GAAa,CAAC,aAAa,EACjC,SAASqK,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMgI,EAA4B9H,EAAiB,gBAAgB,EAC7D+H,EAAsB/H,EAAiB,UAAU,EACjDgI,EAAuBhI,EAAiB,WAAW,EACzD,OAAOnJ,EAAS,EAAIC,EAAmB,MAAO,CAC5C,MAAOC,EAAe,CAAC,+BAAgC,CAAE,uCAAwC6I,EAAO,WAAY,CAAC,CACzH,EAAK,CACDxI,EAAmB,OAAQ,CACzB,SAAUR,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIc,EAAc,IAAI2F,IAASyC,EAAS,SAAWA,EAAS,QAAQ,GAAGzC,CAAI,EAAG,CAAC,SAAS,CAAC,GACzH,UAAWzG,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI4Q,GAAS9P,EAAc,IAAI2F,IAASyC,EAAS,QAAUA,EAAS,OAAO,GAAGzC,CAAI,EAAG,CAAC,QAAS,OAAQ,SAAS,CAAC,EAAG,CAAC,KAAK,CAAC,GAC5J,QAASzG,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIc,EAAc,IAAM,CACvD,EAAG,CAAC,OAAQ,SAAS,CAAC,EAC5B,EAAO,CACDH,GAAeH,EAAmB,QAAS,CACzC,IAAK,QACL,sBAAuBR,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWmI,EAAS,WAAanI,GACnF,KAAM,OACN,MAAO,sCACP,YAAagI,EAAO,WAC5B,EAAS,KAAM,EAAGtK,EAAU,EAAG,CACvB,CAAC4S,GAAYnI,EAAS,UAAU,CACxC,CAAO,EACDtI,EAAYuQ,EAAqB,CAC/B,aAAclI,EAAM,aACpB,KAAM,SACN,QAAS,UACT,QAASnI,EAAcoI,EAAS,QAAS,CAAC,OAAQ,SAAS,CAAC,CACpE,EAAS,CACD,KAAMlI,EAAQ,IAAM,CAClBJ,EAAYsQ,EAA2B,CAAE,KAAM,EAAE,CAAE,CAC7D,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,SAAS,CAAC,EAC/BtQ,EAAYuQ,EAAqB,CAC/B,aAAclI,EAAM,YACpB,KAAM,QACN,QAASF,EAAO,QAAU,UAAY,WACtC,QAASjI,EAAcoI,EAAS,OAAQ,CAAC,OAAQ,SAAS,CAAC,CACnE,EAAS,CACD,KAAMlI,EAAQ,IAAM,CAClBJ,EAAYwQ,EAAsB,CAAE,KAAM,EAAE,CAAE,CACxD,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,UAAW,SAAS,CAAC,CAChD,EAAO,EAAE,CACT,EAAK,CAAC,CACN,CACA,MAAME,GAAuChQ,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC1HzHlK,GAAYC,EAAgB,CAChC,KAAM,WACN,MAAO,CAIL,OAAQ,CACN,KAAM,CAAC,MAAO,MAAM,EACpB,QAAS,IACf,CACA,EAIE,QAAS,CACP,OAAO,KAAK,QAAU,KAAK,QAAQ,UAAU,CAAA,CAAE,CACjD,CACF,CAAC,ECHK0S,GAAc,CAClB,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,qJAAqJ,EACzKC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAc7R,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAOjJ,EAAS,EAAIC,EAAmB,OAAQyJ,GAAW5J,EAAK,OAAQ,CACrE,cAAegJ,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,mCACP,KAAM,MACN,QAAS/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWhB,EAAK,MAAM,QAASgB,CAAM,EAC7E,CAAG,EAAG,EACDd,EAAS,EAAIC,EAAmB,MAAO,CACtC,KAAM6I,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDvI,EAAmB,OAAQkR,GAAc,CACvC3I,EAAO,OAAS9I,EAAS,EAAIC,EAAmB,QAASyR,GAAclR,EAAgBsI,EAAO,KAAK,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGkI,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAAyBvQ,EAAYiQ,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EAC7EE,GAAc,CAClB,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMzC,GAAe,CAAC,cAAe,YAAY,EAC3C0C,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,4JAA4J,EAChLC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAcnS,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAOjJ,EAAS,EAAIC,EAAmB,OAAQyJ,GAAW5J,EAAK,OAAQ,CACrE,cAAegJ,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,iCACP,KAAM,MACN,QAAS/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWhB,EAAK,MAAM,QAASgB,CAAM,EAC7E,CAAG,EAAG,EACDd,EAAS,EAAIC,EAAmB,MAAO,CACtC,KAAM6I,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDvI,EAAmB,OAAQwR,GAAc,CACvCjJ,EAAO,OAAS9I,EAAS,EAAIC,EAAmB,QAAS+R,GAAcxR,EAAgBsI,EAAO,KAAK,EAAG,CAAC,GAAKQ,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGwI,EAAY,EACtB,EAAK,GAAI1C,EAAY,CACrB,CACA,MAAM8C,GAAuB7Q,EAAYwQ,GAAa,CAAC,CAAC,SAAUI,EAAa,CAAC,CAAC,EACjF7T,GAAS+T,EAAG,EACZ,MAAM5K,GAAc,CAClB,KAAM,iCACN,WAAY,CACV,SAAA3G,EACA,YAAAgJ,GACA,UAAAiH,EACJ,EACE,OAAQ,CACN,MAAO,CAAE,WAAAzQ,EAAU,CACrB,EACA,MAAO,CAIL,KAAM,CACJ,KAAM,QACN,SAAU,EAChB,EAII,OAAQ,CACN,KAAM,QACN,SAAU,EAChB,CACA,EACE,MAAO,CAAC,OAAO,EACf,SAAU,CACR,aAAc,CACZ,OAAO,KAAK,KAAOK,EAAE,eAAe,EAAIA,EAAE,WAAW,CACvD,CACJ,EACE,QAAS,CACP,QAAQ4B,EAAG,CACT,KAAK,MAAM,QAASA,CAAC,CACvB,CACJ,CACA,EACA,SAAS+P,GAActS,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CACpE,MAAMoJ,EAAuBlJ,EAAiB,WAAW,EACnDmJ,EAAyBnJ,EAAiB,aAAa,EACvD+H,EAAsB/H,EAAiB,UAAU,EACvD,OAAOnJ,EAAS,EAAIK,EAAY6Q,EAAqB,CACnD,MAAOhR,EAAe,CAAC,gBAAiB,CACtC,wBAAyB4I,EAAO,OAChC,sBAAuBA,EAAO,IACpC,CAAK,CAAC,EACF,aAAcG,EAAS,YACvB,QAASH,EAAO,QAAUC,EAAO,WAAa,sBAAwB,WACtE,QAASE,EAAS,OACtB,EAAK,CACD,KAAMlI,EAAQ,IAAM,CAClB+H,EAAO,MAAQ9I,IAAaK,EAAYgS,EAAsB,CAC5D,IAAK,EACL,KAAM,EACd,CAAO,IAAMrS,EAAS,EAAIK,EAAYiS,EAAwB,CACtD,IAAK,EACL,KAAM,EACd,CAAO,EACP,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,QAAS,aAAc,UAAW,SAAS,CAAC,CACrD,CACA,MAAMC,GAAiDlR,EAAYkG,GAAa,CAAC,CAAC,SAAU6K,EAAa,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EAC7IhU,GAASoU,GAAKC,EAAG,EACjB,MAAM9T,GAAY,CAChB,KAAM,sBACN,WAAY,CACV,UAAA+T,GACA,eAAAC,GACA,+BAAAJ,GACA,qBAAAlB,GACA,cAAAvC,GACA,SAAU8D,GACV,OAAAhB,GACA,KAAAM,EACJ,EACE,MAAO,CAKL,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,SAAU,EAChB,EAII,MAAO,CACL,KAAM,OACN,QAAS,IACf,EAII,GAAI,CACF,KAAM,OACN,QAAS,IAAMlI,GAAe,EAC9B,UAAY3C,GAAOA,EAAG,KAAI,IAAO,EACvC,EAKI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAKI,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAMI,GAAI,CACF,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IACf,EAKI,KAAM,CACJ,KAAM,OACN,QAAS,IACf,EAKI,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAKI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,OACN,QAAS,EACf,EAII,gBAAiB,CACf,KAAM,OACN,QAAS,EACf,EAMI,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,OACN,QAAS,MACf,EAII,cAAe,CACb,KAAM,OACN,QAAS,QACf,EAII,gBAAiB,CACf,KAAM,OACN,QAAS,IACf,EAII,oBAAqB,CACnB,KAAM,QACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,OACN,QAAS,CACf,CACA,EACE,MAAO,CACL,kBACA,cACA,cACA,QACA,MACJ,EACE,OAAQ,CACN,MAAO,CACL,SAAUlI,GAAW,EACrB,WAAAiB,EACN,CACE,EACA,MAAO,CACL,MAAO,CACL,yBAA0B,OAC1B,aAAc,GACd,OAAQ,KAAK,KAEb,cAAe,GAIf,mBAAoB,GACpB,QAAS,EACf,CACE,EACA,SAAU,CACR,cAAe,CACb,OAAO,KAAK,IAAM,CAAC,KAAK,IAC1B,EAGA,iBAAkB,CAChB,OAAI,KAAK,QAAQ,SAAS,gBAAkB,mBAK9C,EACA,qBAAsB,CACpB,OAAO,KAAK,UAAY,KAAK,UAAYK,EAAE,WAAW,CACxD,EACA,qBAAsB,CACpB,OAAOA,EAAE,cAAc,CACzB,CACJ,EACE,MAAO,CACL,KAAKoS,EAAQ,CACX,KAAK,OAASA,CAChB,CACJ,EACE,SAAU,CACR,KAAK,yBAA2B,SAAS,cAAc,cAAc,GAAK,MAC5E,EACA,QAAS,CAEP,aAAavC,EAAO,CAClB,KAAK,MAAM,kBAAmBA,CAAK,EACnC,KAAK,mBAAqBA,CAC5B,EAEA,gBAAiB,CACf,KAAK,OAAS,CAAC,KAAK,OACpB,KAAK,MAAM,cAAe,KAAK,MAAM,CACvC,EAQA,QAAQ3H,EAAOmK,EAAUC,EAAgB,CACvC,KAAK,MAAM,QAASpK,CAAK,EACrB,EAAAA,EAAM,SAAWA,EAAM,QAAUA,EAAM,SAAWA,EAAM,WAGxDoK,IACFD,IAAWnK,CAAK,EAChBA,EAAM,eAAc,EAExB,EAEA,YAAa,CACX,KAAK,aAAe,KAAK,KACzB,KAAK,cAAgB,GACrB,KAAK,aAAa,EAAK,EACvB,KAAK,UAAU,IAAM,CACnB,KAAK,MAAM,aAAa,WAAU,CACpC,CAAC,CACH,EACA,eAAgB,CACd,KAAK,cAAgB,EACvB,EACA,mBAAoB,CAClB,KAAK,MAAM,cAAe,KAAK,YAAY,EAC3C,KAAK,aAAe,GACpB,KAAK,cAAgB,EACvB,EAEA,YAAa,CACX,KAAK,MAAM,MAAM,CACnB,EAIA,aAAc,CACZ,KAAK,QAAU,EACjB,EACA,YAAa,CACX,KAAK,QAAU,EACjB,EAOA,UAAUtG,EAAG,CACN,KAAK,MAAM,UAGZ,KAAK,SACPA,EAAE,eAAc,EAChB,KAAK,MAAM,QAAQ,MAAM,cAAc,IAAI,MAAK,EAChD,KAAK,QAAU,IAEf,KAAK,MAAM,QAAQ,MAAM,cAAc,IAAI,KAAI,EAEnD,EAOA,WAAW2Q,EAAM,CACf,OAAOA,GAAQA,EAAK,MAAM,cAAc,CAC1C,CACJ,CACA,EACMxU,GAAa,CAAC,IAAI,EAClBC,GAAa,CAAC,eAAgB,mBAAoB,gBAAiB,OAAQ,SAAU,QAAS,SAAS,EACvGC,GAAa,CACjB,IAAK,EACL,MAAO,kBACT,EACM+K,GAAa,CACjB,IAAK,EACL,MAAO,+BACT,EACMI,GAAa,CAAE,MAAO,2CAA2C,EACjEC,GAAa,CACjB,IAAK,EACL,MAAO,uCACT,EACMmJ,GAAa,CACjB,IAAK,EACL,MAAO,gCACT,EACA,SAASpK,GAAY/I,EAAMC,EAAQ+I,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMiK,EAA2B/J,EAAiB,eAAe,EAC3DgK,EAAkChK,EAAiB,sBAAsB,EACzEiK,EAAoBjK,EAAiB,QAAQ,EAC7CkK,EAA4BlK,EAAiB,gBAAgB,EAC7DmK,EAAkBnK,EAAiB,MAAM,EACzCoK,EAAuBpK,EAAiB,WAAW,EACnDqK,EAA4CrK,EAAiB,gCAAgC,EACnG,OAAOnJ,EAAS,EAAIC,EAAmB,KAAM,CAC3C,GAAI6I,EAAO,GACX,MAAO5I,EAAe,CAAC,CACrB,+BAAgC8I,EAAM,OACtC,+BAAgCF,EAAO,OACvC,oCAAqCA,EAAO,eAAiB,CAAC,CAAChJ,EAAK,OAAO,OACjF,EAAO,8BAA8B,CAAC,CACtC,EAAK,EACAE,EAAS,EAAIK,EAAYoT,GAAwBxK,EAAS,aAAe,cAAgB,UAAU,EAAGyK,GAAeC,GAAmB,CAAE,GAAG1K,EAAS,cAAgB,CAAE,OAAQ,GAAM,GAAIH,EAAO,GAAI,CAAE,CAAC,EAAG,CAC1M,QAAS/H,EAAQ,CAAC,CAAE,KAAMgS,EAAgB,SAAAD,EAAU,SAAAc,KAAe,CACjErT,EAAmB,MAAO,CACxB,MAAOL,EAAe,CAAC,uBAAwB,CAC7C,gCAAiC8I,EAAM,cACvC,gCAAiCF,EAAO,KACxC,+BAAgCC,EAAO,WACvC,OAAQD,EAAO,IAAM8K,GAAY9K,EAAO,MACpD,CAAW,CAAC,CACZ,EAAW,CACAA,EAAO,KAoCcQ,EAAmB,GAAI,EAAI,GApCjCtJ,EAAS,EAAIC,EAAmB,IAAK,CACnD,IAAK,EACL,MAAO,4BACP,eAAgB6I,EAAO,QAAUA,EAAO,IAAM8K,EAAW,OAAS,OAClE,mBAAoB9K,EAAO,gBAC3B,gBAAmBhJ,EAAK,OAAO,QAAUkJ,EAAM,OAAO,SAAQ,EAAK,OACnE,KAAMF,EAAO,MAAQiK,GAAkB,IACvC,OAAQ9J,EAAS,WAAWH,EAAO,IAAI,EAAI,SAAW,OACtD,MAAOA,EAAO,OAASA,EAAO,KAC9B,OAAQ/I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIyG,IAASyC,EAAS,YAAcA,EAAS,WAAW,GAAGzC,CAAI,GACjG,QAAU1F,GAAWmI,EAAS,QAAQnI,EAAQgS,EAAUC,CAAc,EACtE,QAAShT,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIyG,IAASyC,EAAS,aAAeA,EAAS,YAAY,GAAGzC,CAAI,GACpG,UAAWzG,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI4Q,GAAS9P,EAAc,IAAI2F,IAASyC,EAAS,WAAaA,EAAS,UAAU,GAAGzC,CAAI,EAAG,CAAC,OAAO,CAAC,EAAG,CAAC,KAAK,CAAC,EAC3J,EAAa,CACDjG,EAAmB,MAAO,CACxB,MAAOL,EAAe,CAAC,4BAA6B,CAAE,CAAC4I,EAAO,IAAI,EAAGA,EAAO,KAAM,CAAC,CACjG,EAAe,CACDA,EAAO,SAAW9I,IAAaK,EAAY6S,EAA0B,CAAE,IAAK,CAAC,CAAE,GAAK/R,EAAWrB,EAAK,OAAQ,OAAQ,CAClH,IAAK,EACL,OAAQgJ,EAAO,QAAUA,EAAO,IAAM8K,CACtD,EAAiB,OAAQ,EAAI,CAC7B,EAAe,CAAC,EACJrT,EAAmB,OAAQ,CACzB,MAAOL,EAAe,CAAC,6BAA8B,CAAE,kBAAmB8I,EAAM,cAAe,CAAC,CAC9G,EAAexI,EAAgBsI,EAAO,IAAI,EAAG,CAAC,EAClCE,EAAM,eAAiBhJ,EAAS,EAAIC,EAAmB,MAAOvB,GAAY,CACxEiC,EAAYwS,EAAiC,CAC3C,IAAK,eACL,WAAYnK,EAAM,aAClB,sBAAuBjJ,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWkI,EAAM,aAAelI,GAClF,YAAagI,EAAO,kBAAoB,GAAKA,EAAO,gBAAkBA,EAAO,KAC7E,QAASA,EAAO,IAAM8K,GAAY9K,EAAO,OACzC,SAAUG,EAAS,cACnB,UAAWA,EAAS,iBACpC,EAAiB,KAAM,EAAG,CAAC,aAAc,cAAe,UAAW,WAAY,WAAW,CAAC,CAC3F,CAAa,GAAKK,EAAmB,GAAI,EAAI,CAC7C,EAAa,GAAI7K,EAAU,GACjBqK,EAAO,MAAQ9I,EAAS,EAAIC,EAAmB,MAAOwJ,GAAY,CAChElJ,EAAmB,MAAOsJ,GAAYrJ,EAAgBsI,EAAO,IAAI,EAAG,CAAC,CACjF,CAAW,GAAKQ,EAAmB,GAAI,EAAI,GAC9BxJ,EAAK,OAAO,SAAaA,EAAK,OAAO,SAAWgJ,EAAO,UAAYA,EAAO,OAAS,CAACE,EAAM,eAAiBhJ,EAAS,EAAIC,EAAmB,MAAO,CACnJ,IAAK,EACL,MAAOC,EAAe,CAAC,8BAA+B,CAAE,+CAAgD4I,EAAO,qBAAuBE,EAAM,oBAAsBF,EAAO,QAAQ,CAAE,CAAC,CAChM,EAAa,CACChJ,EAAK,OAAO,SAAWE,EAAS,EAAIC,EAAmB,MAAO6J,GAAY,CAC1E3I,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACjE,CAAa,GAAKwJ,EAAmB,GAAI,EAAI,EAC/BxJ,EAAK,OAAO,SAAWgJ,EAAO,UAAY,CAACE,EAAM,eAAiBF,EAAO,MAAQ9I,EAAS,EAAIK,EAAYkT,EAAsB,CAChI,IAAK,EACL,IAAK,UACL,MAAO,gCACP,UAAW,sBACX,kBAAmBvK,EAAM,yBACzB,OAAQF,EAAO,cACf,UAAWA,EAAO,cAClB,KAAMA,EAAO,SACb,UAAWA,EAAO,UAClB,YAAaA,EAAO,SACpB,QAAS,WACT,gBAAiBG,EAAS,YACxC,EAAe,CACD,KAAMlI,EAAQ,IAAM,CAClBI,EAAWrB,EAAK,OAAQ,YAAa,CAAA,EAAI,OAAQ,EAAI,CACrE,CAAe,EACD,QAASiB,EAAQ,IAAM,CACrB+H,EAAO,UAAY,CAACE,EAAM,eAAiBhJ,EAAS,EAAIK,EAAYgT,EAA2B,CAC7F,IAAK,EACL,aAAcpK,EAAS,oBACvB,QAASA,EAAS,UACpC,EAAmB,CACD,KAAMlI,EAAQ,IAAM,CAClBJ,EAAYyS,EAAmB,CAAE,KAAM,EAAE,CAAE,CAC/D,CAAmB,EACD,QAASrS,EAAQ,IAAM,CACrBC,GAAgB,IAAMR,EAAgBsI,EAAO,SAAS,EAAG,CAAC,CAC9E,CAAmB,EACD,EAAG,CACrB,EAAmB,EAAG,CAAC,aAAc,SAAS,CAAC,GAAKQ,EAAmB,GAAI,EAAI,EAC/DR,EAAO,MAAQ9I,IAAaK,EAAYgT,EAA2B,CACjE,IAAK,EACL,aAAcpK,EAAS,oBACvB,QAASA,EAAS,UACpC,EAAmB,CACD,KAAMlI,EAAQ,IAAM,CAClBJ,EAAY2S,EAAiB,CAAE,KAAM,EAAE,CAAE,CAC7D,CAAmB,EACD,EAAG,CACrB,EAAmB,EAAG,CAAC,aAAc,SAAS,CAAC,GAAKhK,EAAmB,GAAI,EAAI,EAC/DnI,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACnE,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,oBAAqB,SAAU,YAAa,OAAQ,YAAa,cAAe,eAAe,CAAC,GAAKwJ,EAAmB,GAAI,EAAI,CACnJ,EAAa,CAAC,GAAKA,EAAmB,GAAI,EAAI,EACpCR,EAAO,eAAmBhJ,EAAK,OAAO,SAAWE,EAAS,EAAIK,EAAYmT,EAA2C,CACnH,IAAK,EACL,OAAQ1K,EAAO,IAAM8K,GAAY9K,EAAO,OACxC,KAAME,EAAM,OACZ,QAASnI,EAAcoI,EAAS,eAAgB,CAAC,UAAW,MAAM,CAAC,CAC/E,EAAa,KAAM,EAAG,CAAC,SAAU,OAAQ,SAAS,CAAC,GAAKK,EAAmB,GAAI,EAAI,EACzEnI,EAAWrB,EAAK,OAAQ,QAAS,CAAA,EAAI,OAAQ,EAAI,CAC3D,EAAW,CAAC,CACZ,CAAO,EACD,EAAG,CACT,EAAO,EAAE,GACLmJ,EAAS,iBAAqBnJ,EAAK,OAAO,SAAWE,IAAaC,EAAmB,KAAMgT,GAAY,CACrG9R,EAAWrB,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACzD,CAAK,GAAKwJ,EAAmB,GAAI,EAAI,CACrC,EAAK,GAAI9K,EAAU,CACnB,CACA,MAAMqV,GAAsCxS,EAAY1C,GAAW,CAAC,CAAC,SAAUkK,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECxnB9HzK,GAAS0V,EAAG,EACZ,MAAMtV,GAAa,CAAC,IAAI,EAClBG,GAA4BC,EAAgB,CAChD,OAAQ,0BACR,MAAO,CACL,6BAA8B,CAAE,QAAS,IAAM,EAAE,EACjD,KAAM,CAAE,QAAS,IAAM6B,EAAE,UAAU,CAAC,CACxC,EACE,MAAM5B,EAAS,CACb,MAAMkV,EAAY/J,GAAe,EAC3BqF,EAAOhQ,EAAI,EAAK,EAChB2U,EAAatJ,GAAe,gBAAgB,EAC5CuJ,EAAShV,EAAS,IAAM,MAAM,QAAQJ,EAAQ,4BAA4B,EAAIA,EAAQ,6BAA+BA,EAAQ,6BAA6B,MAAM,GAAG,CAAC,EAC1K,OAAAqV,GAAeF,EAAY,IAAM,CAC/B3E,EAAK,MAAQ,EACf,EAAG,CAAE,OAAA4E,EAAQ,EACN,CAACnU,EAAMC,KACLC,EAAS,EAAIC,EAAmB,MAAO,CAC5C,IAAK,iBACL,MAAOC,EAAeJ,EAAK,OAAO,SAAS,CACnD,EAAS,CACDS,EAAmB,MAAO,CACxB,MAAOL,EAAeJ,EAAK,OAAO,MAAM,CAClD,EAAW,CACDa,EAAYC,EAAU,CACpB,gBAAiBT,EAAM4T,CAAS,EAChC,gBAAiB1E,EAAK,MAAQ,OAAS,QACvC,MAAOnP,EAAeJ,EAAK,OAAO,MAAM,EACxC,UAAW,QACX,QAAS,WACT,KAAM,GACN,QAASC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKe,GAAWuO,EAAK,MAAQ,CAACA,EAAK,MAC9E,EAAa,CACD,KAAMtO,EAAQ,IAAM,CAClBJ,EAAYO,GAAkB,CAC5B,KAAMf,EAAM0K,EAAQ,EAAI1K,EAAMgU,EAAM,EAAIhU,EAAMiU,EAAa,CAC3E,EAAiB,KAAM,EAAG,CAAC,MAAM,CAAC,CAClC,CAAa,EACD,QAASrT,EAAQ,IAAM,CACrBC,GAAgB,IAAMR,EAAgBV,EAAK,IAAI,EAAG,CAAC,CACjE,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,gBAAiB,gBAAiB,OAAO,CAAC,CAC3D,EAAW,CAAC,EACJa,EAAY0T,GAAY,CACtB,iBAAkBvU,EAAK,OAAO,gBAC9B,iBAAkBA,EAAK,OAAO,gBAC9B,eAAgBA,EAAK,OAAO,cAC5B,aAAcA,EAAK,OAAO,aACpC,EAAW,CACD,QAASiB,EAAQ,IAAM,CACrBL,GAAeH,EAAmB,MAAO,CACvC,GAAIJ,EAAM4T,CAAS,EACnB,MAAO7T,EAAeJ,EAAK,OAAO,OAAO,CACvD,EAAe,CACDqB,EAAWrB,EAAK,OAAQ,SAAS,CAC/C,EAAe,GAAItB,EAAU,EAAG,CAClB,CAACyC,GAAOoO,EAAK,KAAK,CAChC,CAAa,CACb,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,mBAAoB,mBAAoB,iBAAkB,cAAc,CAAC,CACxF,EAAS,CAAC,EAER,CACF,CAAC,EACK5P,GAAY,mBACZ6U,GAAS,gBACTC,GAAS,gBACTC,GAAU,iBACVC,GAAkB,yBAClBC,GAAgB,uBAChBC,GAAS,CACb,UAAAlV,GACA,OAAA6U,GACA,OAAAC,GACA,QAAAC,GACA,gBAAAC,GACA,cAAAC,EACF,EACME,GAAa,CACjB,OAAUD,EACZ,EACME,GAA0CxT,EAAY1C,GAAW,CAAC,CAAC,eAAgBiW,EAAU,CAAC,CAAC,ECzEhGjW,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYD,GAAA,CAAA,EAAE,4HAA4H,iDAXxIqN,EAeO,OAfP+I,GAAchV,EAAA,OAAM,CACb,cAAagJ,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,yCACN,KAAK,MACJ,QAAK/I,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAe,GAAEhB,EAAA,MAAK,QAAUgB,CAAM,WACjCiL,EAQM,MAAA,CARA,KAAMjD,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXgD,EAEO,OAFPpN,GAEO,CADQoK,EAAA,OAAbiG,EAAA,EAAAhD,EAAuC,aAAhBjD,EAAA,KAAK,EAAA,CAAA,uHCsEpC,KAAM,CACL,QAASiM,EACT,qBAAAC,CAAA,EACG7N,GAA6BT,GAAS,UAAU,EAE9C4F,EAAiBnF,GAA8BT,GAAS,gBAAgB,EAKxEuO,EAAU5V,EAAI0V,CAAc,EAK5BG,EAAajW,EAAS,IAAM,CAAC,CAACgW,EAAQ,KAAK,EAKjD,eAAeE,GAAgB,CAC9B,GAAI,CACH,KAAM,CAAE,KAAAC,GAAS,MAAMjH,GAAM,KAAoCkH,GAAY,8BAA8B,EAAG,CAC7G,OAAQ,CAACH,EAAW,KAAA,CACpB,EACDD,EAAQ,MAAQG,EAAK,KAAK,OAC3B,OAAS/S,EAAG,CACX+L,GAAU3N,EAAE,WAAY,2BAA2B,CAAC,EACpDkG,GAAO,MAAMtE,CAAU,CACxB,CACD,CAKA,eAAeiT,GAAc,CAC5B,GAAI,CACH,OAAO,UAAU,UAAU,UAAUL,EAAQ,KAAK,EAClDM,GAAY9U,EAAE,WAAY,8BAA8B,CAAC,CAC1D,OAAS4B,EAAG,CACXsE,GAAO,MAAMtE,CAAU,EAEvB,OAAO,OAAO5B,EAAE,WAAY,oDAAoD,EAAGwU,EAAQ,KAAK,CACjG,CACD,mBAzHC3T,EA2CkBC,EAAAqP,EAAA,EAAA,CA3CA,aAAYrP,EAAAd,CAAA,EAAC,WAAA,UAAA,CAAA,GACnB,OAET,IAAwC,QADzCsL,EAasBC,GAAA,KAAAC,GAZI1K,EAAA+K,CAAA,EAAlBkJ,QADRlU,EAasBC,EAAAsS,EAAA,EAAA,CAXpB,IAAK2B,EAAe,GACpB,kBAAiBA,EAAe,GAChC,GAAIA,EAAe,GACnB,KAAMA,EAAe,IAAA,YACNA,EAAe,WAAO,YACrC,IAIqB,CAJrB1J,EAIqB,MAAA,CAHpB,IAAI,GACH,IAAK0J,EAAe,KACrB,MAAM,kBACN,KAAK,cAAA,iFAIE,SACV,IAuB0B,CAvB1BhU,EAuB0BD,EAAAsT,EAAA,EAAA,CAvBA,KAAMtT,EAAAd,CAAA,EAAC,WAAA,mBAAA,CAAA,aAChC,IAEwB,CAFxBe,EAEwBD,EAAAkU,EAAA,EAAA,YAFQP,EAAA,4CAAAA,EAAU,MAAApU,GAAoCqU,CAAA,EAAlC,KAAK,QAAA,aAChD,IAAsC,MAAnC5T,EAAAd,CAAA,EAAC,WAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,0BAGEyU,EAAA,WADP5T,EAWeC,EAAA+J,EAAA,EAAA,kBATL2J,EAAA,2CAAAA,EAAO,MAAAnU,GACf,MAAOS,EAAAd,CAAA,EAAC,WAAA,UAAA,EACR,mBAAoB,GACpB,oBAAqBc,EAAAd,CAAA,EAAC,WAAA,oBAAA,EACvB,SAAS,WACR,sBAAqB6U,CAAA,GACX,yBACV,IAA8B,CAA9B9T,EAA8BkU,GAAA,CAAZ,KAAM,GAAE,CAAA,kEAG5BlU,EAMWD,EAAAX,CAAA,EAAA,CALV,MAAM,gBACL,KAAMW,EAAAyT,CAAA,EACN,MAAOzT,EAAAd,CAAA,EAAC,WAAA,gCAAA,EACT,QAAQ,UAAA,aACR,IAAqD,MAAlDc,EAAAd,CAAA,EAAC,WAAA,gCAAA,CAAA,EAAA,CAAA,CAAA,4ECnCIkV,GAAS,CACrB,CACC,KAAM,IACN,KAAM,OACN,SAAU,CAAE,KAAM,MAAA,CAAO,EAE1B,CACC,KAAM,YACN,WAAY,CACX,QAASC,GACT,WAAYC,EAAA,EAEb,MAAO,CACN,QAAS,EAAA,CACV,CAEF,ECfMC,GAASC,GAAa,CAC3B,QAASC,GAAiBX,GAAY,gBAAgB,CAAC,EACvD,gBAAiB,SACjB,OAAAM,EACD,CAAC,EAEKM,GAAMC,GAAUC,EAAW,EACjCF,GAAI,IAAIH,EAAM,EACdG,GAAI,MAAM,UAAU","x_google_ignoreList":[0,1,3,4,5,6,7,8,12,13,14,15,16,17,18,19,20]} \ No newline at end of file +{"version":3,"file":"activity-app.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-Dd15hgck.mjs","../src/views/ActivityApp.vue","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DyNMVZpX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-taTvqnvd.mjs","../node_modules/@nextcloud/vue/dist/chunks/Close-CuhcJnX2.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-C6gc637b.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-C3iof9pY.mjs","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../src/views/ActivityAppFeed.vue","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-Bb54U_qJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ChH8oB7p.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-B1ncAhus.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-BL_BkfXh.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-Dg2d2AwS.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-CJ2z5cYU.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-Ciwvl5xb.mjs.map\n","import '../assets/NcContent-DXc6geEw.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, openBlock, createElementBlock, normalizeClass, unref, createBlock, Teleport, createElementVNode, toDisplayString, withDirectives, createVNode, withModifiers, withCtx, createTextVNode, vShow, renderSlot, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t30);\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 _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", [`app-${_ctx.appName.toLowerCase()}`, { \"content--legacy\": unref(isLegacy34) }]])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-91d07631\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-Dd15hgck.mjs.map\n","\n\n\n\n\n","import { useSlots as ce, ref as k, computed as z, watch as B, onMounted as G, onBeforeUnmount as X, provide as g, createBlock as ve, openBlock as Y, resolveDynamicComponent as me, nextTick as T, h as fe, inject as w, getCurrentInstance as de, createElementBlock as pe, normalizeStyle as ze, unref as he, renderSlot as xe } from \"vue\";\nconst Pe = {\n __name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean, default: !1 },\n pushOtherPanes: { type: Boolean, default: !0 },\n maximizePanes: { type: Boolean, default: !0 },\n // Maximize pane on splitter double click/tap.\n rtl: { type: Boolean, default: !1 },\n // Right to left direction.\n firstSplitter: { type: Boolean, default: !1 }\n },\n emits: [\n \"ready\",\n \"resize\",\n \"resized\",\n \"pane-click\",\n \"pane-maximize\",\n \"pane-add\",\n \"pane-remove\",\n \"splitter-click\",\n \"splitter-dblclick\"\n ],\n setup(D, { emit: h }) {\n const y = h, u = D, E = ce(), l = k([]), M = z(() => l.value.reduce((e, n) => (e[~~n.id] = n) && e, {})), m = z(() => l.value.length), x = k(null), S = k(!1), c = k({\n mouseDown: !1,\n dragging: !1,\n activeSplitter: null,\n cursorOffset: 0\n // Cursor offset within the splitter.\n }), f = k({\n // Used to detect double click on touch devices.\n splitter: null,\n timeoutId: null\n }), _ = z(() => ({\n [`splitpanes splitpanes--${u.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n \"splitpanes--dragging\": c.value.dragging\n })), R = () => {\n document.addEventListener(\"mousemove\", r, { passive: !1 }), document.addEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", r, { passive: !1 }), document.addEventListener(\"touchend\", P));\n }, O = () => {\n document.removeEventListener(\"mousemove\", r, { passive: !1 }), document.removeEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", r, { passive: !1 }), document.removeEventListener(\"touchend\", P));\n }, b = (e, n) => {\n const t = e.target.closest(\".splitpanes__splitter\");\n if (t) {\n const { left: i, top: a } = t.getBoundingClientRect(), { clientX: s, clientY: o } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n c.value.cursorOffset = u.horizontal ? o - a : s - i;\n }\n R(), c.value.mouseDown = !0, c.value.activeSplitter = n;\n }, r = (e) => {\n c.value.mouseDown && (e.preventDefault(), c.value.dragging = !0, requestAnimationFrame(() => {\n K(I(e)), d(\"resize\", { event: e }, !0);\n }));\n }, P = (e) => {\n c.value.dragging && (window.getSelection().removeAllRanges(), d(\"resized\", { event: e }, !0)), c.value.mouseDown = !1, c.value.activeSplitter = null, setTimeout(() => {\n c.value.dragging = !1, O();\n }, 100);\n }, A = (e, n) => {\n \"ontouchstart\" in window && (e.preventDefault(), f.value.splitter === n ? (clearTimeout(f.value.timeoutId), f.value.timeoutId = null, U(e, n), f.value.splitter = null) : (f.value.splitter = n, f.value.timeoutId = setTimeout(() => f.value.splitter = null, 500))), c.value.dragging || d(\"splitter-click\", { event: e, index: n }, !0);\n }, U = (e, n) => {\n if (d(\"splitter-dblclick\", { event: e, index: n }, !0), u.maximizePanes) {\n let t = 0;\n l.value = l.value.map((i, a) => (i.size = a === n ? i.max : i.min, a !== n && (t += i.min), i)), l.value[n].size -= t, d(\"pane-maximize\", { event: e, index: n, pane: l.value[n] }), d(\"resized\", { event: e, index: n }, !0);\n }\n }, W = (e, n) => {\n d(\"pane-click\", {\n event: e,\n index: M.value[n].index,\n pane: M.value[n]\n });\n }, I = (e) => {\n const n = x.value.getBoundingClientRect(), { clientX: t, clientY: i } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n return {\n x: t - (u.horizontal ? 0 : c.value.cursorOffset) - n.left,\n y: i - (u.horizontal ? c.value.cursorOffset : 0) - n.top\n };\n }, J = (e) => {\n e = e[u.horizontal ? \"y\" : \"x\"];\n const n = x.value[u.horizontal ? \"clientHeight\" : \"clientWidth\"];\n return u.rtl && !u.horizontal && (e = n - e), e * 100 / n;\n }, K = (e) => {\n const n = c.value.activeSplitter;\n let t = {\n prevPanesSize: $(n),\n nextPanesSize: N(n),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const i = 0 + (u.pushOtherPanes ? 0 : t.prevPanesSize), a = 100 - (u.pushOtherPanes ? 0 : t.nextPanesSize), s = Math.max(Math.min(J(e), a), i);\n let o = [n, n + 1], v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n const H = v.max < 100 && s >= v.max + t.prevPanesSize, ue = p.max < 100 && s <= 100 - (p.max + N(n + 1));\n if (H || ue) {\n H ? (v.size = v.max, p.size = Math.max(100 - v.max - t.prevPanesSize - t.nextPanesSize, 0)) : (v.size = Math.max(100 - p.max - t.prevPanesSize - N(n + 1), 0), p.size = p.max);\n return;\n }\n if (u.pushOtherPanes) {\n const j = Q(t, s);\n if (!j) return;\n ({ sums: t, panesToResize: o } = j), v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n }\n v !== null && (v.size = Math.min(Math.max(s - t.prevPanesSize - t.prevReachedMinPanes, v.min), v.max)), p !== null && (p.size = Math.min(Math.max(100 - s - t.nextPanesSize - t.nextReachedMinPanes, p.min), p.max));\n }, Q = (e, n) => {\n const t = c.value.activeSplitter, i = [t, t + 1];\n return n < e.prevPanesSize + l.value[i[0]].min && (i[0] = V(t).index, e.prevReachedMinPanes = 0, i[0] < t && l.value.forEach((a, s) => {\n s > i[0] && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), e.prevPanesSize = $(i[0]), i[0] === void 0) ? (e.prevReachedMinPanes = 0, l.value[0].size = l.value[0].min, l.value.forEach((a, s) => {\n s > 0 && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), l.value[i[1]].size = 100 - e.prevReachedMinPanes - l.value[0].min - e.prevPanesSize - e.nextPanesSize, null) : n > 100 - e.nextPanesSize - l.value[i[1]].min && (i[1] = Z(t).index, e.nextReachedMinPanes = 0, i[1] > t + 1 && l.value.forEach((a, s) => {\n s > t && s < i[1] && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), e.nextPanesSize = N(i[1] - 1), i[1] === void 0) ? (e.nextReachedMinPanes = 0, l.value.forEach((a, s) => {\n s < m.value - 1 && s >= t + 1 && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), l.value[i[0]].size = 100 - e.prevPanesSize - N(i[0] - 1), null) : { sums: e, panesToResize: i };\n }, $ = (e) => l.value.reduce((n, t, i) => n + (i < e ? t.size : 0), 0), N = (e) => l.value.reduce((n, t, i) => n + (i > e + 1 ? t.size : 0), 0), V = (e) => [...l.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, Z = (e) => l.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, ee = () => {\n var n;\n const e = Array.from(((n = x.value) == null ? void 0 : n.children) || []);\n for (const t of e) {\n const i = t.classList.contains(\"splitpanes__pane\"), a = t.classList.contains(\"splitpanes__splitter\");\n !i && !a && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n }\n }, F = (e, n, t = !1) => {\n const i = e - 1, a = document.createElement(\"div\");\n a.classList.add(\"splitpanes__splitter\"), t || (a.onmousedown = (s) => b(s, i), typeof window < \"u\" && \"ontouchstart\" in window && (a.ontouchstart = (s) => b(s, i)), a.onclick = (s) => A(s, i + 1)), a.ondblclick = (s) => U(s, i + 1), n.parentNode.insertBefore(a, n);\n }, ne = (e) => {\n e.onmousedown = void 0, e.onclick = void 0, e.ondblclick = void 0, e.remove();\n }, C = () => {\n var t;\n const e = Array.from(((t = x.value) == null ? void 0 : t.children) || []);\n for (const i of e)\n i.className.includes(\"splitpanes__splitter\") && ne(i);\n let n = 0;\n for (const i of e)\n i.className.includes(\"splitpanes__pane\") && (!n && u.firstSplitter ? F(n, i, !0) : n && F(n, i), n++);\n }, ie = ({ uid: e, ...n }) => {\n const t = M.value[e];\n for (const [i, a] of Object.entries(n)) t[i] = a;\n }, te = (e) => {\n var t;\n let n = -1;\n Array.from(((t = x.value) == null ? void 0 : t.children) || []).some((i) => (i.className.includes(\"splitpanes__pane\") && n++, i.isSameNode(e.el))), l.value.splice(n, 0, { ...e, index: n }), l.value.forEach((i, a) => i.index = a), S.value && T(() => {\n C(), L({ addedPane: l.value[n] }), d(\"pane-add\", { pane: l.value[n] });\n });\n }, ae = (e) => {\n const n = l.value.findIndex((i) => i.id === e);\n l.value[n].el = null;\n const t = l.value.splice(n, 1)[0];\n l.value.forEach((i, a) => i.index = a), T(() => {\n C(), d(\"pane-remove\", { pane: t }), L({ removedPane: { ...t } });\n });\n }, L = (e = {}) => {\n !e.addedPane && !e.removedPane ? le() : l.value.some((n) => n.givenSize !== null || n.min || n.max < 100) ? oe(e) : se(), S.value && d(\"resized\");\n }, se = () => {\n const e = 100 / m.value;\n let n = 0;\n const t = [], i = [];\n for (const a of l.value)\n a.size = Math.max(Math.min(e, a.max), a.min), n -= a.size, a.size >= a.max && t.push(a.id), a.size <= a.min && i.push(a.id);\n n > 0.1 && q(n, t, i);\n }, le = () => {\n let e = 100;\n const n = [], t = [];\n let i = 0;\n for (const s of l.value)\n e -= s.size, s.givenSize !== null && i++, s.size >= s.max && n.push(s.id), s.size <= s.min && t.push(s.id);\n let a = 100;\n if (e > 0.1) {\n for (const s of l.value)\n s.givenSize === null && (s.size = Math.max(Math.min(e / (m.value - i), s.max), s.min)), a -= s.size;\n a > 0.1 && q(a, n, t);\n }\n }, oe = ({ addedPane: e, removedPane: n } = {}) => {\n let t = 100 / m.value, i = 0;\n const a = [], s = [];\n ((e == null ? void 0 : e.givenSize) ?? null) !== null && (t = (100 - e.givenSize) / (m.value - 1));\n for (const o of l.value)\n i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n if (!(Math.abs(i) < 0.1)) {\n for (const o of l.value)\n (e == null ? void 0 : e.givenSize) !== null && (e == null ? void 0 : e.id) === o.id || (o.size = Math.max(Math.min(t, o.max), o.min)), i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n i > 0.1 && q(i, a, s);\n }\n }, q = (e, n, t) => {\n let i;\n e > 0 ? i = e / (m.value - n.length) : i = e / (m.value - t.length), l.value.forEach((a, s) => {\n if (e > 0 && !n.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n } else if (!t.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n }\n }), Math.abs(e) > 0.1 && T(() => {\n S.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n });\n }, d = (e, n = void 0, t = !1) => {\n const i = (n == null ? void 0 : n.index) ?? c.value.activeSplitter ?? null;\n y(e, {\n ...n,\n ...i !== null && { index: i },\n ...t && i !== null && {\n prevPane: l.value[i - (u.firstSplitter ? 1 : 0)],\n nextPane: l.value[i + (u.firstSplitter ? 0 : 1)]\n },\n panes: l.value.map((a) => ({ min: a.min, max: a.max, size: a.size }))\n });\n };\n B(() => u.firstSplitter, () => C()), G(() => {\n ee(), C(), L(), d(\"ready\"), S.value = !0;\n }), X(() => S.value = !1);\n const re = () => {\n var e;\n return fe(\n \"div\",\n { ref: x, class: _.value },\n (e = E.default) == null ? void 0 : e.call(E)\n );\n };\n return g(\"panes\", l), g(\"indexedPanes\", M), g(\"horizontal\", z(() => u.horizontal)), g(\"requestUpdate\", ie), g(\"onPaneAdd\", te), g(\"onPaneRemove\", ae), g(\"onPaneClick\", W), (e, n) => (Y(), ve(me(re)));\n }\n}, ge = {\n __name: \"pane\",\n props: {\n size: { type: [Number, String] },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n setup(D) {\n var b;\n const h = D, y = w(\"requestUpdate\"), u = w(\"onPaneAdd\"), E = w(\"horizontal\"), l = w(\"onPaneRemove\"), M = w(\"onPaneClick\"), m = (b = de()) == null ? void 0 : b.uid, x = w(\"indexedPanes\"), S = z(() => x.value[m]), c = k(null), f = z(() => {\n const r = isNaN(h.size) || h.size === void 0 ? 0 : parseFloat(h.size);\n return Math.max(Math.min(r, R.value), _.value);\n }), _ = z(() => {\n const r = parseFloat(h.minSize);\n return isNaN(r) ? 0 : r;\n }), R = z(() => {\n const r = parseFloat(h.maxSize);\n return isNaN(r) ? 100 : r;\n }), O = z(() => {\n var r;\n return `${E.value ? \"height\" : \"width\"}: ${(r = S.value) == null ? void 0 : r.size}%`;\n });\n return B(() => f.value, (r) => y({ uid: m, size: r })), B(() => _.value, (r) => y({ uid: m, min: r })), B(() => R.value, (r) => y({ uid: m, max: r })), G(() => {\n u({\n id: m,\n el: c.value,\n min: _.value,\n max: R.value,\n // The given size (useful to know the user intention).\n givenSize: h.size === void 0 ? null : f.value,\n size: f.value\n // The computed current size at any time.\n });\n }), X(() => l(m)), (r, P) => (Y(), pe(\"div\", {\n ref_key: \"paneEl\",\n ref: c,\n class: \"splitpanes__pane\",\n onClick: P[0] || (P[0] = (A) => he(M)(A, r._.uid)),\n style: ze(O.value)\n }, [\n xe(r.$slots, \"default\")\n ], 4));\n }\n};\nexport {\n ge as Pane,\n Pe as Splitpanes\n};\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { inject } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nfunction useAppName() {\n return inject(\"appName\", APP_NAME);\n}\nconst useLocalizedAppName = once(() => {\n const apps = loadState(\"core\", \"apps\", []);\n const realAppName2 = useAppName();\n return apps.find(({ id }) => id === realAppName2)?.name ?? realAppName2;\n});\nexport {\n APP_VERSION as A,\n useAppName as a,\n useLocalizedAppName as u\n};\n//# sourceMappingURL=appName-DyNMVZpX.mjs.map\n","import '../assets/NcAppContent-BC7DBer3.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, openBlock, createBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, toDisplayString, createCommentVNode, Fragment, withModifiers, withDirectives, createElementVNode, renderSlot, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-CpchYUUV.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, G as t27, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as useLocalizedAppName, a as useAppName } from \"./appName-DyNMVZpX.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t27);\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\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 * or respectively the minimum height 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 * or respectively the maximum height 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 *\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 * 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 * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's ``\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n appName: useAppName(),\n localizedAppName: useLocalizedAppName(),\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${this.appName}`;\n } catch {\n logger.info(\"[NcAppContent]: 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 realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(this.localizedAppName);\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\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.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\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 logger.debug(\"[NcAppContent] 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};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = { class: \"app-content-wrapper__list\" };\nconst _hoisted_3 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n minSize: $options.paneDefaults.list.min,\n maxSize: $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n minSize: $options.paneDefaults.details.min,\n maxSize: $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-ea1e6879\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-taTvqnvd.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"CloseIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconClose as I\n};\n//# sourceMappingURL=Close-CuhcJnX2.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronDownIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown-C6gc637b.mjs.map\n","import '../assets/NcInputField-DpyFJ1xw.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": _ctx.disabled,\n \"input-field--error\": _ctx.error,\n \"input-field--label-outside\": _ctx.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": _ctx.pill,\n \"input-field--success\": _ctx.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: _ctx.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", _ctx.inputClass],\n disabled: _ctx.disabled,\n placeholder: internalPlaceholder.value,\n type: _ctx.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !_ctx.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: _ctx.id\n }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n _ctx.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": _ctx.trailingButtonLabel,\n disabled: _ctx.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : _ctx.success || _ctx.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n _ctx.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${_ctx.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : _ctx.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(_ctx.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8e16cbb5\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-C3iof9pY.mjs.map\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<section class=\"activity-group\">\n\t\t<h2 class=\"activity-group__heading\" :title=\"fullDate\">\n\t\t\t{{ dateText }}\n\t\t</h2>\n\t\t<ul>\n\t\t\t<ActivityComponent\n\t\t\t\tv-for=\"activity in activities\"\n\t\t\t\t:key=\"activity.id\"\n\t\t\t\t:activity=\"activity\"\n\t\t\t\t:showPreviews=\"true\" />\n\t\t</ul>\n\t</section>\n</template>\n\n<script setup lang=\"ts\">\nimport type ActivityModel from '../models/ActivityModel.ts'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { computed } from 'vue'\nimport ActivityComponent from './ActivityComponent.vue'\n\nconst props = defineProps<{\n\tactivities: ActivityModel[]\n}>()\n\n/**\n * Title to show for the date either Today, Yesterday or the full date\n */\nconst dateText = computed(() => {\n\tconst today = moment()\n\tconst yesterday = moment().subtract(1, 'day')\n\tconst first = moment(props.activities[0].datetime)\n\n\tif (first.isSame(today, 'day')) {\n\t\treturn t('activity', 'Today')\n\t} else if (first.isSame(yesterday, 'day')) {\n\t\treturn t('activity', 'Yesterday')\n\t}\n\treturn first.format('LL')\n})\n\n/**\n * If the heading is yesterday or today, show the full date as title, otherwise no title is shown\n */\nconst fullDate = computed(() => {\n\tconst formatted = moment(props.activities[0].datetime).format('LL')\n\treturn formatted !== dateText.value ? formatted : undefined\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-group {\n\t// Separate consecutive groups. Inside the <section> (not a margin between them)\n\t// so the date stays pinned across the gap and the next date docks right as the\n\t// group ends, instead of the push feeling early.\n\tpadding-block-end: 24px;\n\n\t&__heading {\n\t\tposition: sticky;\n\t\ttop: 0;\n\t\tz-index: 1;\n\t\t// Match the line box to the navigation toggle so the date text lines up with\n\t\t// it vertically (centred in a clickable-area-tall row), with no extra\n\t\t// whitespace above. Sticking within the per-group <section> makes each new\n\t\t// date push the previous one up and out of the way.\n\t\tmargin-block: 0;\n\t\t// Bottom padding only gives the fade more room to complete; because the\n\t\t// heading sticks within its <section>, it does not affect when the push starts\n\t\tpadding-block: 8px 20px;\n\t\t// Match the settings-section__name heading size\n\t\tfont-size: 20px;\n\t\tline-height: var(--default-clickable-area);\n\t\t// Solid behind the text, then a long, gentle fade to transparent (onset kept\n\t\t// at ~32px from the top) so entries dissolve out gradually as they scroll under\n\t\tbackground: linear-gradient(to bottom, var(--color-main-background) 44%, transparent);\n\n\t\t// Indent the heading to clear the app navigation toggle, eased in by the content\n\t\t// width. It is the toggle clearance (--app-navigation-padding + clickable-area),\n\t\t// less the space the content already has on its left: the centring gutter\n\t\t// ((100cqi - column width) / 2, where 100cqi is the content-area width and the\n\t\t// column width is --activity-feed-max-width) and its 12px padding. A little\n\t\t// breathing room (+8px) minus that 12px padding nets to one negative grid\n\t\t// baseline (-4px). Clamped to 0, so it never affects alignment with the entries\n\t\t// once the gutter clears the toggle.\n\t\tpadding-inline-start: calc(max(\n\t\t\t0px,\n\t\t\tvar(--app-navigation-padding, 8px) + var(--default-clickable-area)\n\t\t\t\t- var(--default-grid-baseline, 4px)\n\t\t\t\t- max(0px, (100cqi - var(--activity-feed-max-width)) / 2)\n\t\t));\n\t}\n}\n</style>\n","export default \"<svg viewBox=\\\"0 0 32 32\\\" height=\\\"32\\\" width=\\\"32\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xml:space=\\\"preserve\\\" style=\\\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\\\"><path d=\\\"m8 22 1-7H4l9-13h2l-1 8h6L10 22H8Z\\\" style=\\\"fill-rule:nonzero\\\" transform=\\\"matrix(1.5 0 0 1.5 -2 -2)\\\"/></svg>\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcAppContent class=\"activity-app\">\n\t\t<!-- Kept for document semantics / screen readers, but visually hidden -->\n\t\t<h1 class=\"activity-app__heading hidden-visually\">\n\t\t\t{{ headingTitle }}\n\t\t</h1>\n\t\t<NcEmptyContent\n\t\t\tv-if=\"hasMoreActivites && allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'Loading activities')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<NcEmptyContent\n\t\t\tv-else-if=\"allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'No activity yet')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"appIconSVG\" :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<div ref=\"container\" class=\"activity-app__container\" @scroll=\"onScroll\">\n\t\t\t<div class=\"activity-app__content\">\n\t\t\t\t<NcButton\n\t\t\t\t\tv-if=\"newActivitiesAvailable\"\n\t\t\t\t\tclass=\"activity-app__new-activities-indicator\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t@click=\"scrollToTop\">\n\t\t\t\t\t{{ t('activity', 'New activities') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<ActivityGroup v-for=\"activities, date of groupedActivities\" :key=\"date\" :activities=\"activities\" />\n\t\t\t\t<!-- Only show if not showing the inital empty content for loading -->\n\t\t\t\t<NcLoadingIcon\n\t\t\t\t\tv-if=\"hasMoreActivites && allActivities.length > 0\"\n\t\t\t\t\t:name=\"t('activity', 'Loading more activities')\"\n\t\t\t\t\t:size=\"64\"\n\t\t\t\t\tclass=\"activity-app__loading-indicator\" />\n\t\t\t\t<div\n\t\t\t\t\tv-else-if=\"!hasMoreActivites && allActivities.length > 0\"\n\t\t\t\t\tclass=\"activity-app__loading-indicator activity-app__loading-indicator--end\">\n\t\t\t\t\t{{ t('activity', 'No more activities.') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</NcAppContent>\n</template>\n\n<script setup lang=\"ts\">\nimport type { IRawActivity } from '../models/types.ts'\n\nimport ncAxios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { useDebounceFn, useDocumentVisibility, useInfiniteScroll } from '@vueuse/core'\nimport axios from 'axios'\nimport { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport ActivityGroup from '../components/ActivityGroup.vue'\nimport appIconSVG from '../../img/activity-dark.svg?raw'\nimport ActivityModel from '../models/ActivityModel.ts'\nimport logger from '../utils/logger.ts'\n\ninterface INavigationEntry {\n\tid: string\n\ticon?: string\n\tname: string\n\turl: string\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * The currently active activities filter\n\t */\n\tfilter?: string\n}>(), {\n\t// default to 'all'\n\tfilter: 'all',\n})\n\nconst navigationList = loadState<INavigationEntry[]>(appName, 'navigationList')\n\nconst route = useRoute()\n\n/**\n * Whether activities are currently being loaded\n */\nconst loading = ref(false)\n\n/**\n * Whether more activites can be loaded\n */\nconst hasMoreActivites = ref(true)\n\n/**\n * All loaded actvities\n */\nconst allActivities = ref<ActivityModel[]>([])\n\n/**\n * Last loaded activity (oldest) for backward pagination\n * This is set by the backend in the API result as a header value for pagination\n */\nconst lastActivityLoaded = ref<string>()\n\n/**\n * First loaded activity ID (newest) for polling new activities\n */\nconst newestActivityId = ref<number>()\n\n/**\n * Whether new activities have been prepended while the user was scrolled\n * away from the top — used to show the \"New activities\" navigation button\n */\nconst newActivitiesAvailable = ref(false)\n\n/**\n * Polling interval in milliseconds\n */\nconst POLL_INTERVAL = 30000\n\n/**\n * Polling timer reference (setTimeout-based for self-scheduling)\n */\nlet pollTimer: ReturnType<typeof setTimeout> | undefined\n\n/**\n * AbortController for in-flight load and poll requests.\n * Replaced on filter change and aborted on unmount so stale responses\n * are never applied to the wrong filter's state.\n */\nlet requestController = new AbortController()\n\n/**\n * Document visibility for pausing polling when tab is hidden\n */\nconst visibility = useDocumentVisibility()\n\n/**\n * Container element for the activites\n */\nconst container = ref<HTMLDivElement>()\n\n/**\n * Use infinite scroll for the container and load activities when reaching the bottom\n */\nuseInfiniteScroll(container, async () => {\n\tif (hasMoreActivites.value) {\n\t\tawait loadActivities()\n\t}\n}, {\n\tdistance: 100,\n})\n\n/**\n * Activities grouped by date\n */\nconst groupedActivities = computed(() => {\n\tconst groups = {} as Record<string, ActivityModel[]>\n\tfor (const activity of allActivities.value) {\n\t\tconst date = moment(activity.datetime).format('LL')\n\t\tif (groups[date] === undefined) {\n\t\t\tgroups[date] = [activity]\n\t\t} else {\n\t\t\tgroups[date].push(activity)\n\t\t}\n\t}\n\treturn groups\n})\n\nconst headingTitle = computed(() => {\n\treturn navigationList.find((navigationEl) => navigationEl.id === route.params.filter).name\n})\n\n/**\n * Load activities for current filter or load more if already loaded\n */\nasync function loadActivities() {\n\t// Skip if already loading\n\tif (loading.value) {\n\t\treturn\n\t}\n\n\tconst { signal } = requestController\n\ttry {\n\t\tconst since = lastActivityLoaded.value ?? '0'\n\t\tloading.value = true\n\t\tconst response = await ncAxios.get(generateOcsUrl('apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}', { filter: props.filter, since }), { signal })\n\t\tif (signal.aborted) {\n\t\t\treturn\n\t\t}\n\t\tconst newActivities = response.data.ocs.data.map((raw: IRawActivity) => new ActivityModel(raw))\n\t\tallActivities.value.push(...newActivities)\n\t\tlastActivityLoaded.value = response.headers['x-activity-last-given']\n\t\thasMoreActivites.value = true\n\n\t\t// Track the newest activity ID for polling\n\t\tif (newestActivityId.value === undefined && newActivities.length > 0) {\n\t\t\tnewestActivityId.value = newActivities[0].id\n\t\t}\n\n\t\tnextTick(async () => {\n\t\t\tif (container.value && container.value.clientHeight === container.value.scrollHeight) {\n\t\t\t\t// Container is non-scrollable, thus useInfiniteScroll isn't triggered\n\t\t\t\t// Do it manually to ensure there are no activities to fetch anymore\n\t\t\t\tawait loadActivities()\n\t\t\t}\n\t\t})\n\t} catch (error) {\n\t\tif (axios.isCancel(error)) {\n\t\t\treturn\n\t\t}\n\t\t// Skip if no activities are available\n\t\tif (axios.isAxiosError(error) && error.response?.status === 304) {\n\t\t\thasMoreActivites.value = false\n\t\t\treturn\n\t\t}\n\n\t\tlogger.error(error as Error)\n\t\tshowError(t('activity', 'Could not load activities'))\n\t} finally {\n\t\t// Don't clear the loading flag if this request was superseded — the\n\t\t// replacement loadActivities() call has already set it to true.\n\t\tif (!signal.aborted) {\n\t\t\tloading.value = false\n\t\t}\n\t}\n}\n\n/**\n * Poll for new activities and either prepend them directly (when near top)\n * or queue them so the user can load them without disrupting their scroll position\n */\nasync function pollNewActivities() {\n\tconst { signal } = requestController\n\ttry {\n\t\tconst since = String(newestActivityId.value ?? 0)\n\t\tconst response = await ncAxios.get(generateOcsUrl('apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}&sort=asc', { filter: props.filter, since }), { signal })\n\t\tif (!signal.aborted && response.data.ocs.data.length > 0) {\n\t\t\tconst newActivities: ActivityModel[] = response.data.ocs.data.map((raw: IRawActivity) => new ActivityModel(raw))\n\t\t\t// Sort newest first for prepending\n\t\t\tnewActivities.sort((a: ActivityModel, b: ActivityModel) => b.id - a.id)\n\t\t\tnewestActivityId.value = newActivities[0]!.id\n\t\t\tallActivities.value.unshift(...newActivities)\n\n\t\t\t// Show the navigation button only when the user is not already at the top\n\t\t\t// (browser scroll anchoring keeps their reading position stable on prepend)\n\t\t\tconst isNearTop = !container.value || container.value.scrollTop < 50\n\t\t\tif (!isNearTop) {\n\t\t\t\tnewActivitiesAvailable.value = true\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\t// Silently ignore cancellations and polling errors (304 = no new activities)\n\t\tif (!axios.isCancel(error) && (!axios.isAxiosError(error) || error.response?.status !== 304)) {\n\t\t\tlogger.error(error as Error)\n\t\t}\n\t}\n\n\t// Self-schedule only if polling wasn't stopped while the request was in flight\n\tif (pollTimer !== undefined) {\n\t\tpollTimer = setTimeout(pollNewActivities, POLL_INTERVAL)\n\t}\n}\n\n/**\n * Scroll to the top of the container to reveal the newly prepended activities\n */\nfunction scrollToTop() {\n\tnewActivitiesAvailable.value = false\n\tcontainer.value?.scrollTo({ top: 0, behavior: 'smooth' })\n}\n\n/**\n * Hide the \"New activities\" button once the user scrolls back near the top\n */\nconst onScroll = useDebounceFn(() => {\n\tif (container.value && container.value.scrollTop < 50) {\n\t\tnewActivitiesAvailable.value = false\n\t}\n}, 100)\n\n/**\n *\n */\nfunction startPolling() {\n\tstopPolling()\n\t// Use a sentinel value so the self-scheduling logic in pollNewActivities\n\t// knows polling is active even before the first tick fires\n\tpollTimer = setTimeout(pollNewActivities, POLL_INTERVAL)\n}\n\n/**\n *\n */\nfunction stopPolling() {\n\tif (pollTimer !== undefined) {\n\t\tclearTimeout(pollTimer)\n\t\tpollTimer = undefined\n\t}\n}\n\n/**\n * Load activities when mounted and start polling\n */\nonMounted(() => {\n\tloadActivities()\n\tstartPolling()\n})\n\nonUnmounted(() => {\n\tstopPolling()\n\trequestController.abort()\n})\n\nwatch(visibility, (value) => {\n\tif (value === 'hidden') {\n\t\tstopPolling()\n\t} else {\n\t\tstartPolling()\n\t}\n})\n\n/**\n * Reload activities when filter changed\n */\nwatch(props, () => {\n\trequestController.abort()\n\trequestController = new AbortController()\n\tallActivities.value = []\n\tnewActivitiesAvailable.value = false\n\tlastActivityLoaded.value = undefined\n\tnewestActivityId.value = undefined\n\thasMoreActivites.value = true\n\tloadActivities()\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-app {\n\t// Max width of the readable content column. Shared with the date heading indent\n\t// calc in ActivityGroup.vue (inherited), so both stay in sync from one source.\n\t--activity-feed-max-width: 924px;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\t// Query container so the date headings can respond to the actual content-area\n\t// width (which the open app navigation shrinks), rather than the raw viewport\n\tcontainer: activity-feed / inline-size;\n\n\t&__empty-content {\n\t\theight: 100%;\n\t}\n\n\t&__loading-indicator {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tjustify-self: center;\n\t\tmargin-block: 30px 6px;\n\t\ttext-align: center;\n\t}\n\n\t&__loading-indicator--end {\n\t\t// Breathing room below the end-of-feed message, scaled to the viewport\n\t\tmargin-block-end: 30vh;\n\t}\n\n\t&__container {\n\t\t// Full width so the scrollbar sits at the edge of app-content\n\t\theight: 100%;\n\t\toverflow-y: scroll;\n\t}\n\n\t&__content {\n\t\t// Clamp the readable column and centre it within the full-width scroller\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\twidth: min(100%, var(--activity-feed-max-width));\n\t\tmax-width: var(--activity-feed-max-width);\n\t\tmargin: 0 auto;\n\t\tpadding-inline: 12px;\n\t}\n\n\t&__new-activities-indicator {\n\t\tposition: sticky;\n\t\ttop: 8px;\n\t\talign-self: center;\n\t\tz-index: 10;\n\t\tpadding: 6px 16px;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tborder: none;\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-element-text);\n\t\tfont-weight: bold;\n\t\tcursor: pointer;\n\t\tbox-shadow: 0 2px 8px var(--color-box-shadow);\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t}\n}\n</style>\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { openBlock, createElementBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-CGSWabRB.mjs.map\n","import '../assets/NcAppNavigation-ykL7Wz6L.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, renderSlot, createBlock, createCommentVNode } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-CGSWabRB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n clickOutsideDeactivates: () => {\n if (isMobile.value) {\n focusTrap.deactivate({ returnFocus: false });\n toggleNavigation(false);\n }\n return false;\n },\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", {\n \"app-navigation--closed\": !open.value,\n \"app-navigation--legacy\": unref(isLegacy34)\n }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": _ctx.ariaLabel || void 0,\n \"aria-labelledby\": _ctx.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-3b634fbd\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-Bb54U_qJ.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-up-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-ChH8oB7p.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-B1ncAhus.mjs.map\n","import '../assets/NcInputConfirmCancel-BEmwC87z.css';\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, withKeys, withDirectives, vModelText, createVNode, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-input-confirm\", { \"app-navigation-input-confirm--legacy\": $setup.isLegacy34 }])\n }, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_1), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ], 2);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a8724c7f\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-BL_BkfXh.mjs.map\n","import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcAppNavigationItem-DF81QkEz.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { r as register, N as t21, a as t, b as t51, O as t23 } from \"./_l10n-BCg4udFv.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-BL_BkfXh.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BJKJG2zO.mjs\";\nimport { N as NcActions } from \"./NcActions-fCXSb_0o.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-CInLzPtA.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\n name: \"PencilIcon\",\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};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { 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\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"UndoIcon\",\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};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { 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\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active && $setup.isLegacy34 ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-acf5ed2f\"]]);\nregister(t23, t51);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `<router-link />` that points to that route.\n * By leaving this blank, the root element will be a `<li>`.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isLegacy34\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n \"app-navigation-entry--legacy\": $setup.isLegacy34,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n boundariesElement: $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n forceMenu: $props.forceMenu,\n defaultIcon: $props.menuIcon,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"boundariesElement\", \"inline\", \"placement\", \"open\", \"forceMenu\", \"defaultIcon\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e4d562ae\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-Dg2d2AwS.mjs.map\n","import '../assets/NcAppNavigationSettings-HQEDobBQ.css';\nimport { defineComponent, ref, useTemplateRef, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { C as mdiCog, D as mdiCogOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { N as NcButton } from \"./NcButton-CdQzGSB6.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-De-2-ukl.mjs\";\nimport { r as register, B as t47, a as t } from \"./_l10n-BCg4udFv.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t47);\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSettings\",\n props: {\n excludeClickOutsideSelectors: { default: () => [] },\n name: { default: () => t(\"Settings\") }\n },\n setup(__props) {\n const contentId = createElementId();\n const open = ref(false);\n const container2 = useTemplateRef(\"wrapperElement\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(container2, () => {\n open.value = false;\n }, { ignore });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"wrapperElement\",\n class: normalizeClass(_ctx.$style.container)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.header)\n }, [\n createVNode(NcButton, {\n \"aria-controls\": unref(contentId),\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n class: normalizeClass(_ctx.$style.button),\n alignment: \"start\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(isLegacy) ? unref(mdiCog) : unref(mdiCogOutline)\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(_ctx.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-controls\", \"aria-expanded\", \"class\"])\n ], 2),\n createVNode(Transition, {\n enterActiveClass: _ctx.$style.animationActive,\n leaveActiveClass: _ctx.$style.animationActive,\n enterFromClass: _ctx.$style.animationStop,\n leaveToClass: _ctx.$style.animationStop\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n id: unref(contentId),\n class: normalizeClass(_ctx.$style.content)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1), [\n [vShow, open.value]\n ])\n ]),\n _: 3\n }, 8, [\"enterActiveClass\", \"leaveActiveClass\", \"enterFromClass\", \"leaveToClass\"])\n ], 2);\n };\n }\n});\nconst container = \"_container_RFk6U\";\nconst header = \"_header_2CtDS\";\nconst button = \"_button_tAyis\";\nconst content = \"_content_--KYD\";\nconst animationActive = \"_animationActive_DAG1p\";\nconst animationStop = \"_animationStop_fWYQj\";\nconst style0 = {\n container,\n header,\n button,\n content,\n animationActive,\n animationStop\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-CJ2z5cYU.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon content-copy-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { RouteRecordRaw } from 'vue-router'\n\nimport ActivityAppFeed from './views/ActivityAppFeed.vue'\nimport ActivityAppNavigation from './views/ActivityAppNavigation.vue'\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tredirect: { path: '/all' },\n\t},\n\t{\n\t\tpath: '/:filter?',\n\t\tcomponents: {\n\t\t\tdefault: ActivityAppFeed,\n\t\t\tnavigation: ActivityAppNavigation,\n\t\t},\n\t\tprops: {\n\t\t\tdefault: true,\n\t\t},\n\t},\n] as RouteRecordRaw[]\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport ActivityApp from './views/ActivityApp.vue'\nimport { routes } from './routes.ts'\n\nconst router = createRouter({\n\thistory: createWebHistory(generateUrl('/apps/activity')),\n\tlinkActiveClass: 'active',\n\troutes,\n})\n\nconst app = createApp(ActivityApp)\napp.use(router)\napp.mount('#content')\n"],"names":["HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","register","t30","contentSvg","navigationSvg","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","defineComponent","__props","props","provide","setAppNavigation","computed","isMobile","useIsMobile","hasAppNavigation","ref","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","emit","nextTick","value","_ctx","_cache","openBlock","createElementBlock","normalizeClass","unref","isLegacy34","createBlock","Teleport","createElementVNode","toDisplayString","t","withDirectives","createVNode","NcButton","withModifiers","$event","withCtx","createTextVNode","vShow","NcIconSvgWrapper","renderSlot","NcContent","_export_sfc","_createBlock","_unref","_createVNode","_component_router_view","Pe","D","h","y","u","E","ce","l","k","M","z","e","n","m","x","S","c","f","_","R","r","P","O","b","i","a","s","o","K","I","d","A","U","W","J","$","N","v","p","H","ue","j","Q","V","Z","ee","F","ne","C","ie","te","T","L","ae","le","oe","se","q","B","G","X","re","fe","g","Y","ve","me","ge","w","de","pe","he","ze","xe","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","useAppName","inject","useLocalizedAppName","apps","loadState","realAppName2","id","t27","_sfc_main$1","watch","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","mdiArrowRight","NcAppContentDetailsToggle","browserStorage","getBuilder","instanceName","getCapabilities","Pane","Splitpanes","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createCommentVNode","Fragment","NcAppContent","_hoisted_4","mergeProps","IconClose","ChevronDown","_hoisted_5","_hoisted_6","mergeModels","createElementId","__expose","__emit","modelValue","useModel","focus","select","attrs","useAttrs","inputElement","useTemplateRef","hasTrailingIcon","internalPlaceholder","isLegacy","isValidLabel","ariaDescribedby","ariaDescribedby2","options","handleInput","target","mdiCheck","mdiAlertCircleOutline","NcInputField","dateText","today","moment","yesterday","first","fullDate","formatted","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","activity","ActivityComponent","appIconSVG","POLL_INTERVAL","navigationList","route","useRoute","loading","hasMoreActivites","allActivities","lastActivityLoaded","newestActivityId","newActivitiesAvailable","pollTimer","requestController","visibility","useDocumentVisibility","useInfiniteScroll","loadActivities","groupedActivities","groups","date","headingTitle","navigationEl","signal","since","response","ncAxios","generateOcsUrl","newActivities","raw","ActivityModel","error","axios","showError","pollNewActivities","scrollToTop","onScroll","useDebounceFn","startPolling","stopPolling","onUnmounted","_toDisplayString","NcEmptyContent","NcLoadingIcon","activities","ActivityGroup","NcAppNavigationList","t20","_hoisted_1$1","open","title","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","focusTrap","setHasAppNavigation","warn","appNavigationContainerElement","watchEffect","toggleFocusTrap","subscribe","toggleNavigationByEventBus","createFocusTrap","toggleNavigation","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open2","handleEsc","withKeys","NcAppNavigation","ChevronUp","IconArrowRight","t14","newValue","_component_IconArrowRight","_component_NcButton","_component_IconClose","vModelText","NcInputConfirmCancel","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","t21","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcActions","NcActionButton","_sfc_main$4","newVal","navigate","routerLinkHref","href","_hoisted_7","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcActions","_component_NcAppNavigationIconCollapsible","resolveDynamicComponent","normalizeProps","guardReactiveProps","isActive","NcAppNavigationItem","t47","contentId","container2","ignore","onClickOutside","mdiCog","mdiCogOutline","Transition","header","button","content","animationActive","animationStop","style0","cssModules","NcAppNavigationSettings","_mergeProps","initialRSSLink","personalSettingsLink","rssLink","hasRSSLink","toggleRSSLink","data","generateUrl","copyRSSLink","showSuccess","navigationItem","NcCheckboxRadioSwitch","IconContentCopy","routes","ActivityAppFeed","ActivityAppNavigation","router","createRouter","createWebHistory","app","createApp","ActivityApp"],"mappings":"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","x_google_ignoreList":[0,1,3,4,5,6,7,8,12,13,14,15,16,17,18,19,20]} \ No newline at end of file diff --git a/playwright/e2e/stream.spec.ts b/playwright/e2e/stream.spec.ts index cae2ad94d..7ccb5774f 100644 --- a/playwright/e2e/stream.spec.ts +++ b/playwright/e2e/stream.spec.ts @@ -39,13 +39,17 @@ test('Shows activity entries on load', async ({ page }) => { test('Heading reflects the active filter', async ({ page }) => { await page.goto(STREAM_URL) - await expect(page.locator('.activity-app__heading')).toBeVisible({ timeout: 30000 }) - await expect(page.locator('.activity-app__heading')).toContainText('All activities') + // The

is kept for semantics but visually hidden, so assert its content + // rather than its visibility. + await expect(page.locator('.activity-app__heading')) + .toContainText('All activities', { timeout: 30000 }) }) test('Navigation filter loads filtered stream', async ({ page }) => { await page.goto(STREAM_URL) - await expect(page.locator('.activity-app__heading')).toBeVisible({ timeout: 30000 }) + await expect( + page.locator('.activity-entry, .activity-app__empty-content').first(), + ).toBeVisible({ timeout: 30000 }) await expect(page.locator('[data-navigation="all"]')).toBeVisible() @@ -58,7 +62,9 @@ test('Navigation filter loads filtered stream', async ({ page }) => { test('RSS feed toggle shows and hides the feed URL', async ({ page }) => { await page.goto(STREAM_URL) - await expect(page.locator('.activity-app__heading')).toBeVisible({ timeout: 30000 }) + await expect( + page.locator('.activity-entry, .activity-app__empty-content').first(), + ).toBeVisible({ timeout: 30000 }) await expect(page.getByRole('textbox', { name: 'RSS feed' })).not.toBeVisible() diff --git a/src/__tests__/ActivityGroup.test.ts b/src/__tests__/ActivityGroup.test.ts new file mode 100644 index 000000000..fdeb7ea2e --- /dev/null +++ b/src/__tests__/ActivityGroup.test.ts @@ -0,0 +1,48 @@ +/*! + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import type ActivityModel from '../models/ActivityModel.ts' + +import { shallowMount } from '@vue/test-utils' +import { describe, expect, it } from 'vitest' +import moment from '@nextcloud/moment' +import ActivityGroup from '../components/ActivityGroup.vue' + +/** + * Build a minimal activities prop. The heading only reads the datetime of the + * first entry to derive its date label, so the rest can be left out. + */ +function mountGroup(datetime: string) { + return shallowMount(ActivityGroup, { + props: { activities: [{ id: 1, datetime } as unknown as ActivityModel] }, + }) +} + +describe('ActivityGroup heading date label', () => { + it('labels today as "Today" and exposes the full date as the title', () => { + const wrapper = mountGroup(moment().toISOString()) + const heading = wrapper.get('.activity-group__heading') + + expect(heading.text()).toBe('Today') + expect(heading.attributes('title')).toBe(moment().format('LL')) + }) + + it('labels the previous day as "Yesterday"', () => { + const wrapper = mountGroup(moment().subtract(1, 'day').toISOString()) + const heading = wrapper.get('.activity-group__heading') + + expect(heading.text()).toBe('Yesterday') + expect(heading.attributes('title')).toBe(moment().subtract(1, 'day').format('LL')) + }) + + it('labels older days with the formatted date and no redundant title', () => { + const date = moment('2020-01-15T12:00:00') + const wrapper = mountGroup(date.toISOString()) + const heading = wrapper.get('.activity-group__heading') + + expect(heading.text()).toBe(date.format('LL')) + expect(heading.attributes('title')).toBeUndefined() + }) +}) diff --git a/src/components/ActivityGroup.vue b/src/components/ActivityGroup.vue index 86a472b98..d578ddf6f 100644 --- a/src/components/ActivityGroup.vue +++ b/src/components/ActivityGroup.vue @@ -4,16 +4,18 @@ -->