From ce1beeafd14180a902914cdf81c169b69884887b Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Mon, 10 Aug 2026 15:16:51 +0200 Subject: [PATCH] feat(hr): let HR correct and cancel recorded absences MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HR could record an absence but never revisit one. The permission layer already allowed it — canModify returns true for HR on any request, and RequestService's cancel has an HR override that skips the withdrawal step — and the sidebar already renders Edit and Cancel behind canModify. What was missing was any screen on which an individual record is reachable: My leave shows only your own, Approvals only what is pending, and Who's off was a read-only calendar. So this adds the reaching, not new permissions. Absences (#/hr/absences) is the counterpart to Record absence and sits next to it in the navigation, because recording and correcting are the same job at different times. It lists every record with filters for employee, leave type, status and year, and opens the standard sidebar — so Edit and Cancel come from the code that already implements them, rather than a second path to the same API with its own bugs. Cancel, not delete. A wrong entry is cancelled, leaving the row and its history intact for the audit trail (§17); nothing in the UI hard-deletes leave. Since HR's cancel is immediate and notifies the employee, and is now reached from a browse list where a misclick is easy, it is confirmed first. The button also stops claiming "Request withdrawal" to an HR user, which was never what the backend did for them. Two smaller reach improvements, since a list you have to think to visit is not where a wrong sick day gets noticed: * Pills in HR's Who's off timeline open their request. Only there — the calendar already carries requestId, but a manager's team timeline can include leave whose detail the API would refuse, so the behaviour is opt-in per view rather than on by default. * The Sick leave overview drills down into one employee's individual records for that year, filtered to the sick type when the report aggregated only one. Also fixed, both surfaced by the above: * HR editing an HR-recorded absence got a type picker that did not contain the record's own type, so sick leave could not be chosen again once changed. * findFiltered ordered by start_date alone, which is not unique. That was harmless until this view introduced limit/offset paging, where a non-total order can repeat or skip rows; an id tiebreaker makes it deterministic. No new endpoint, no permission change: scope=hr already accepted every filter this view needs. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 8 +- SPECIFICATION.md | 17 +- js/absence-main.mjs | 26 +-- js/absence-main.mjs.map | 2 +- lib/Db/LeaveRequestMapper.php | 5 +- src/App.vue | 12 +- src/components/RequestDialog.vue | 7 +- src/components/RequestSidebar.vue | 55 ++++- src/components/TeamTimeline.vue | 57 ++++- src/router.js | 2 + src/views/hr/HrAbsences.vue | 373 ++++++++++++++++++++++++++++++ src/views/hr/HrSickLeave.vue | 67 +++++- src/views/hr/HrWhosOff.vue | 22 +- 13 files changed, 625 insertions(+), 28 deletions(-) create mode 100644 src/views/hr/HrAbsences.vue diff --git a/README.md b/README.md index 9c540be..4665e04 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ Built to the specification in [SPECIFICATION.md](./SPECIFICATION.md). with a configurable year-rollover policy. *My leave* shows each balance as an animated ring with a breakdown ledger (base + carry-over ± adjustment → available) and monthly charts of leave taken and sick days for the current year. -- **HR area**: per-employee balances, company-wide statistics, a who's-off calendar, +- **HR area**: a filterable list of all recorded absences (correct or cancel any of + them), per-employee balances, company-wide statistics, a who's-off calendar, and CSV export. - **Calendar sync**: approved leave is written to a personal and a shared team calendar via CalDAV. @@ -59,6 +60,11 @@ Built to the specification in [SPECIFICATION.md](./SPECIFICATION.md). ![Record absence dialog](screenshots/6.png) +**Absences** — every recorded absence, filterable by employee, type, status and year. +Selecting one opens its details, where HR can correct the dates, type or working days, +or cancel it. Cancelling keeps the record and its history for the audit trail, so +there is no delete. The sick-leave overview and the who's-off timeline both link here. + **Balances** — per-employee entitlement, used, pending, remaining and available: ![HR balances table](screenshots/7.png) diff --git a/SPECIFICATION.md b/SPECIFICATION.md index a597874..cccaa5b 100644 --- a/SPECIFICATION.md +++ b/SPECIFICATION.md @@ -354,6 +354,11 @@ employees — sick leave is the canonical example (`employee_requestable = false - **Only HR can edit or cancel it.** For an HR-recorded type, `PermissionService::canModify` returns false for the employee (owner) — so the employee sees no Edit/Cancel controls and the API rejects such attempts; only HR may change it (§17). +- **Correcting a record.** HR reaches individual records through the **Absences** + view (§15.2) — or by selecting one in *Who's off* / the *Sick leave* drilldown — and + edits or cancels it from the standard detail sidebar. There is **no delete**: a wrong + entry is cancelled (`CANCELLED`), so the row and its history stay intact for the audit + trail (§17). HR's cancel skips the withdrawal step and applies immediately (§5.5). - **No "Approved" label shown.** Since approval isn't a concept for HR-recorded leave, the UI hides the status chip and the approval **progress stepper** when such a request is `APPROVED` (a cancelled one still shows its status). The leave-type chip (e.g. @@ -724,7 +729,17 @@ NcContent(app-name="absence") - **Team / Who's off** — a **Gantt-style month timeline** (`TeamTimeline`, §15.7): a sticky avatar rail with continuous rounded leave **pills** (colored by type, hatched while pending), weekend shading, a "today" line, month navigation + a "Today" jump, - and a legend. `scope="team"` for managers, `scope="company"` for HR. + and a legend. `scope="team"` for managers, `scope="company"` for HR. With + `selectable` the pills become buttons that open the request in the sidebar; only + *Who's off* sets it, because HR may read every request the org-wide calendar shows + while a team timeline can include leave the viewer is not allowed to open. +- **Absences** (`#/hr/absences`, HR only) — the counterpart to *Record absence*: the + full list of recorded absences with filters for employee (user autocomplete), leave + type, status and year, paged with a "Load more" button. Rows are the same + `RequestListItem` as elsewhere and open the detail sidebar, whose **Edit** and + **Cancel** controls are what let HR correct a wrong vacation or sick day (§5.6). + Accepts `?employee=&employeeName=&type=&status=&year=` so other views can deep-link + into it — the *Sick leave* overview does, from each employee row. - **HR** (HR group only): *Balances* (searchable/sortable data table → entitlement/used/pending/remaining/carry-over, inline entitlement editor, skeleton on load), *Statistics* (stat tiles + a **`LineChart`** area for monthly trend and a diff --git a/js/absence-main.mjs b/js/absence-main.mjs index 3feead8..12a130f 100644 --- a/js/absence-main.mjs +++ b/js/absence-main.mjs @@ -1,8 +1,8 @@ (function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(`@charset "UTF-8";.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-51427d61]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-51427d61]{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-51427d61]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-51427d61]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-51427d61] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-51427d61] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-51427d61] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-51427d61] .app-content-details{display:block}[data-v-51427d61] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width<1024px){[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width<1024px){[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-51427d61] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-51427d61] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-51427d61] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-51427d61] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-51427d61] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-51427d61] .app-content-list{max-width:none}.app-content-wrapper__list[data-v-51427d61]{height:100%}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane{-webkit-user-select:none;user-select:none;pointer-events:none}:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--ready .splitpanes__pane{will-change:width,height;transition:width .2s ease-out,height .2s ease-out}.splitpanes--ready.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes__splitter:focus{outline:none}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{box-sizing:border-box;background-color:#fff;flex-shrink:0;position:relative}.default-theme.splitpanes .splitpanes__splitter:focus-visible{outline-offset:-2px;outline:2px solid #3b82f6}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";background-color:#00000026;transition:background-color .3s;position:absolute;top:50%;left:50%}.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{border-left:1px solid #eee;width:7px;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{width:1px;height:30px;transform:translateY(-50%)}.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{border-top:1px solid #eee;height:7px;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{width:30px;height:1px;transform:translate(-50%)}.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}.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)}.app-navigation,.app-content{--app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2)}.material-design-icon[data-v-1344f70d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-1344f70d]{--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-1344f70d]{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-1344f70d]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-1344f70d]{width:100%}.app-navigation__body[data-v-1344f70d]{overflow-y:scroll}.app-navigation__content>ul[data-v-1344f70d]{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-1344f70d]{height:100%}.app-navigation__body--no-list[data-v-1344f70d]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-1344f70d]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-1344f70d]{border-inline-end:1px solid var(--color-border)}@media only screen and (width<1024px){.app-navigation[data-v-1344f70d]{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-1344f70d]{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-f0e411c2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-f0e411c2]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-f0e411c2]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-f0e411c2]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-f0e411c2]{font-weight:var(--font-weight-heading, bold);color:var(--color-main-text);font-size:var(--default-font-size);line-height:var(--default-clickable-area);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none!important;flex-shrink:0;padding-block:0;padding-inline:calc(var(--default-grid-baseline, 4px) * 2) 0;margin-top:0;margin-bottom:var(--default-grid-baseline)}.app-navigation-caption__actions[data-v-f0e411c2]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-f0e411c2]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-cfbd3794]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-cfbd3794]{position:relative;inset-inline-end:0}.icon-collapse[data-v-cfbd3794]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-cfbd3794]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-fcab058b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-fcab058b]{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-fcab058b]{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-fcab058b]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-fcab058b]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-fcab058b]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-fcab058b]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-fcab058b]: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-fcab058b var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-fcab058b]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-fcab058b]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-fcab058b]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-fcab058b]:focus-within,.app-navigation-entry[data-v-fcab058b]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-fcab058b]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-fcab058b]: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-fcab058b],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-fcab058b],.app-navigation-entry:hover .app-navigation-entry__children[data-v-fcab058b]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-fcab058b]: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-fcab058b]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-fcab058b]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-fcab058b]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-fcab058b]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry .app-navigation-entry-button[data-v-fcab058b]{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-fcab058b],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-fcab058b]{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-fcab058b],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-fcab058b]{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-fcab058b],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-fcab058b]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-fcab058b]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-fcab058b]: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-fcab058b]{--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-fcab058b]{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-fcab058b]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-fcab058b]{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-fcab058b]{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-fcab058b]{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-fcab058b]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-fcab058b]{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-fcab058b]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-fcab058b]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-fcab058b]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-fcab058b]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-fcab058b]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-fcab058b]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-fcab058b{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-6926a0b8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-6926a0b8]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-6926a0b8]{display:flex}.app-navigation-input-confirm__input[data-v-6926a0b8]{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-6926a0b8]:active,.app-navigation-input-confirm__input[data-v-6926a0b8]:focus,.app-navigation-input-confirm__input[data-v-6926a0b8]: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-6926a0b8]{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-6926a0b8]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-6926a0b8]:not(.app-navigation-input-confirm--legacy) .button-vue{width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px}.material-design-icon[data-v-6c2daf4e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-6c2daf4e]:hover,li.action.active[data-v-6c2daf4e]{border-radius:6px;padding:0}li.action[data-v-6c2daf4e]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-6c2daf4e]{pointer-events:none;opacity:.5}.action--disabled[data-v-6c2daf4e]:hover,.action--disabled[data-v-6c2daf4e]:focus{cursor:default;opacity:.5}.action--disabled[data-v-6c2daf4e] *{opacity:1!important}.action-button[data-v-6c2daf4e]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-button>span[data-v-6c2daf4e]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-6c2daf4e]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-6c2daf4e] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-button[data-v-6c2daf4e] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button__longtext-wrapper[data-v-6c2daf4e],.action-button__longtext[data-v-6c2daf4e]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-6c2daf4e]{cursor:pointer;white-space:pre-wrap!important}.action-button__name[data-v-6c2daf4e]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-button__description[data-v-6c2daf4e]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-button__menu-icon[data-v-6c2daf4e],.action-button__pressed-icon[data-v-6c2daf4e]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action-button[data-v-6c2daf4e] *{cursor:pointer}.material-design-icon[data-v-0ba6c9df]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-0ba6c9df]{display:block;padding:calc(var(--default-grid-baseline, 4px) * 2)}.app-navigation-new button[data-v-0ba6c9df]{width:100%}#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-d13dcb98]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d13dcb98]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-d13dcb98]{font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d13dcb98]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-d13dcb98]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d13dcb98]{margin-top:12px}.vue-skip-actions__image[data-v-d13dcb98]:dir(rtl){transform:rotateY(180deg)}.content[data-v-d13dcb98]{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-d13dcb98]:not(.content--legacy){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)}.content[data-v-d13dcb98]:not(.with-sidebar--full){position:fixed}.content[data-v-d13dcb98],.content[data-v-d13dcb98] *{box-sizing:border-box}.material-design-icon[data-v-36ffc13f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.counter-bubble__counter[data-v-36ffc13f]{--counter-bubble-height: 22px;font-size:var(--font-size-small, 13px);overflow:hidden;width:fit-content;min-width:var(--counter-bubble-height);text-align:center;line-height:var(--counter-bubble-height);padding:0 calc(1.5 * var(--default-grid-baseline));border-radius:.5lh;background-color:var(--color-primary-element-light);font-weight:700;color:var(--color-primary-element-light-text)}.counter-bubble__counter .active[data-v-36ffc13f]{color:var(--color-main-background);background-color:var(--color-primary-element-light)}.counter-bubble__counter--highlighted[data-v-36ffc13f]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.counter-bubble__counter--highlighted.active[data-v-36ffc13f]{color:var(--color-primary-element);background-color:var(--color-main-background)}.counter-bubble__counter--outlined[data-v-36ffc13f]{color:var(--color-primary-element);background:transparent;box-shadow:inset 0 0 0 2px}.counter-bubble__counter--outlined.active[data-v-36ffc13f]{color:var(--color-main-background);box-shadow:inset 0 0 0 2px}.material-design-icon[data-v-b97e1f7a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.native-datetime-picker[data-v-b97e1f7a]{display:flex;flex-direction:column}.native-datetime-picker .native-datetime-picker__label[data-v-b97e1f7a]{margin-block-end:2px}.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]{--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));width:100%;flex:0 0 auto;margin:0;padding-inline-start:calc(var(--border-radius-element) + var(--input-border-width-offset));padding-inline-end:calc(var(--default-grid-baseline) + var(--input-border-width-offset));border:var(--border-width-input, 2px) solid var(--color-border-maxcontrast)}.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:active:not([disabled]),.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:hover:not([disabled]),.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:focus:not([disabled]),.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:focus-within:not([disabled]){border-color:var(--color-main-text);border-width:var(--border-width-input-focused, 2px);box-shadow:0 0 0 2px var(--color-main-background)!important;--input-border-width-offset: 0px}[data-theme-light] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=light] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:light}[data-theme-dark] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=dark] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:dark}@media(prefers-color-scheme:light){[data-theme-default] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=default] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:light}}@media(prefers-color-scheme:dark){[data-theme-default] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=default] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:dark}}.material-design-icon[data-v-d327fb49]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.textarea[data-v-d327fb49]{--input-border-color: var(--color-border-maxcontrast);--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));position:relative;width:100%;border-radius:var(--border-radius-element);margin-block-start:6px;resize:vertical}.textarea--disabled[data-v-d327fb49]{opacity:.7;filter:saturate(.7)}.textarea__main-wrapper[data-v-d327fb49]{padding:var(--border-width-input-focused, 2px);position:relative}.textarea__input[data-v-d327fb49]{margin:0;padding-block:var(--border-radius-element);padding-inline:10px;width:100%;font-size:var(--default-font-size);text-overflow:ellipsis;cursor:pointer;min-height:calc(var(--default-clickable-area) * 2);min-width:calc(var(--default-clickable-area) * 2);max-width:100%;background-color:var(--color-main-background);color:var(--color-main-text);--input-border-box-shadow-light: 0 -1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.textarea__input[data-v-d327fb49]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media(prefers-color-scheme:dark){.textarea__input .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.textarea--legacy .textarea__input[data-v-d327fb49]{box-shadow:0 0 0 1px var(--input-border-color)}.textarea--legacy .textarea__input[data-v-d327fb49]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.textarea__input[data-v-d327fb49]:focus-within:not([disabled]),.textarea__input[data-v-d327fb49]:active:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color),0 0 0 4px var(--color-main-background)!important}.textarea__input[data-v-d327fb49]:active:not([disabled]),.textarea__input[data-v-d327fb49]:focus:not([disabled]){--input-border-width-offset: 0px;--input-border-color: var(--color-main-text)}.textarea__input[data-v-d327fb49]:not(:focus,.textarea__input--label-outside)::placeholder{opacity:0}.textarea__input[data-v-d327fb49]:focus{cursor:text}.textarea__input[data-v-d327fb49]:disabled{cursor:default}.textarea__input[data-v-d327fb49]:focus-visible{box-shadow:unset!important}.textarea__input--success[data-v-d327fb49]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.textarea__input--success[data-v-d327fb49]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.textarea__input--error[data-v-d327fb49]{--input-border-color: var(--color-border-error, var(--color-error)) !important}.textarea__input--error[data-v-d327fb49]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.textarea__label[data-v-d327fb49]{position:absolute;margin-inline:12px 0;max-width:fit-content;inset-block-start:11px;inset-inline:0;color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.textarea__input:focus+.textarea__label[data-v-d327fb49],.textarea__input:not(:placeholder-shown)+.textarea__label[data-v-d327fb49]{inset-block-start:-10px;line-height:1.5;font-size:13px;font-weight:var(--font-weight-element, 500);color:var(--color-main-text);background-color:var(--color-main-background);padding-inline:4px;margin-inline-start:8px;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.textarea__helper-text-message[data-v-d327fb49]{padding-block:4px;display:flex;align-items:center}.textarea__helper-text-message__icon[data-v-d327fb49]{margin-inline-end:8px}.textarea__helper-text-message--error[data-v-d327fb49]{color:var(--color-error-text)}.textarea__helper-text-message--success[data-v-d327fb49]{color:var(--color-success-text)}.material-design-icon[data-v-8e16cbb5]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later - */.input-field[data-v-8e16cbb5]{--input-border-color: var(--color-border-maxcontrast);--input-border-radius: var(--border-radius-element);--input-padding-start: var(--border-radius-element);--input-padding-end: var(--border-radius-element);position:relative;width:100%;margin-block-start:6px}.input-field--disabled[data-v-8e16cbb5]{opacity:.4;filter:saturate(.4)}.input-field--label-outside[data-v-8e16cbb5]{margin-block-start:0}.input-field--leading-icon[data-v-8e16cbb5]{--input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--trailing-icon[data-v-8e16cbb5]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--pill[data-v-8e16cbb5]{--input-border-radius: var(--border-radius-pill)}.input-field__main-wrapper[data-v-8e16cbb5]{height:var(--default-clickable-area);padding:var(--border-width-input-focused, 2px);position:relative}.input-field__input[data-v-8e16cbb5]{--input-border-box-shadow-light: 0 -1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.input-field__input[data-v-8e16cbb5]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media(prefers-color-scheme:dark){.input-field__input .input-field__input[data-v-8e16cbb5]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .input-field__input[data-v-8e16cbb5]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .input-field__input[data-v-8e16cbb5]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.input-field--legacy .input-field__input[data-v-8e16cbb5]{box-shadow:0 0 0 1px var(--input-border-color)}.input-field--legacy .input-field__input[data-v-8e16cbb5]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.input-field__input[data-v-8e16cbb5]:focus-within:not([disabled]),.input-field__input[data-v-8e16cbb5]:active:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color),0 0 0 4px var(--color-main-background)!important}.input-field__input[data-v-8e16cbb5]{background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--input-border-radius);cursor:pointer;-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;font-size:var(--default-font-size);text-overflow:ellipsis;padding-block:0;padding-inline:var(--input-padding-start) var(--input-padding-end);height:100%!important;min-height:unset;width:100%}.input-field__input[data-v-8e16cbb5]::placeholder{color:var(--color-text-maxcontrast)}.input-field__input[data-v-8e16cbb5]::-webkit-search-cancel-button{display:none}.input-field__input[data-v-8e16cbb5]::-webkit-search-decoration,.input-field__input[data-v-8e16cbb5]::-webkit-search-results-button,.input-field__input[data-v-8e16cbb5]::-webkit-search-results-decoration,.input-field__input[data-v-8e16cbb5]::-ms-clear{display:none}.input-field__input[data-v-8e16cbb5]:active:not([disabled]),.input-field__input[data-v-8e16cbb5]:focus:not([disabled]){--input-border-color: var(--color-main-text)}.input-field__input:focus+.input-field__label[data-v-8e16cbb5],.input-field__input:hover:not(:placeholder-shown)+.input-field__label[data-v-8e16cbb5]{color:var(--color-main-text)}.input-field__input[data-v-8e16cbb5]:focus{cursor:text}.input-field__input[data-v-8e16cbb5]:disabled{cursor:default}.input-field__input[data-v-8e16cbb5]:focus-visible{box-shadow:unset!important}.input-field:not(.input-field--label-outside) .input-field__input[data-v-8e16cbb5]:not(:focus)::placeholder{opacity:0}.input-field__label[data-v-8e16cbb5]{--input-label-font-size: var(--default-font-size);font-size:var(--input-label-font-size);position:absolute;margin-inline:var(--input-padding-start) var(--input-padding-end);max-width:fit-content;inset-block-start:calc((var(--default-clickable-area) - 1lh) / 2);inset-inline:var(--border-width-input-focused, 2px);color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.input-field__input:focus+.input-field__label[data-v-8e16cbb5],.input-field__input:not(:placeholder-shown)+.input-field__label[data-v-8e16cbb5]{--input-label-font-size: 13px;line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:var(--font-weight-element, 500);border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.input-field__icon[data-v-8e16cbb5]{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;opacity:.7;inset-block-end:0}.input-field__icon--leading[data-v-8e16cbb5]{inset-inline-start:0px}.input-field__icon--trailing[data-v-8e16cbb5]{inset-inline-end:0px}.input-field__trailing-button[data-v-8e16cbb5]{--button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;--button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px))}.input-field__trailing-button.button-vue[data-v-8e16cbb5]{position:absolute;top:var(--border-width-input-focused, 2px);inset-inline-end:var(--border-width-input-focused, 2px)}.input-field__trailing-button.button-vue[data-v-8e16cbb5]:focus-visible{box-shadow:none!important}.input-field__helper-text-message[data-v-8e16cbb5]{padding-block:4px;padding-inline:var(--border-radius-element);display:flex;align-items:center;color:var(--color-text-maxcontrast);overflow-wrap:anywhere}.input-field__helper-text-message__icon[data-v-8e16cbb5]{margin-inline-end:8px}.input-field--error .input-field__helper-text-message[data-v-8e16cbb5],.input-field--error .input-field__icon--trailing[data-v-8e16cbb5]{color:var(--color-text-error, var(--color-error))}.input-field--error .input-field__input[data-v-8e16cbb5],.input-field__input[data-v-8e16cbb5]:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important}.input-field--error .input-field__input[data-v-8e16cbb5]:focus-visible,.input-field__input[data-v-8e16cbb5]:user-invalid:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__input[data-v-8e16cbb5]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.input-field--success .input-field__input[data-v-8e16cbb5]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__helper-text-message__icon[data-v-8e16cbb5]{color:var(--color-border-success, var(--color-success))}.dialog[data-v-1cc8782f]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3);padding:calc(var(--default-grid-baseline, 4px) * 5)}.dialog__title[data-v-1cc8782f]{margin:0 0 4px;font-size:1.3rem}.dialog__row[data-v-1cc8782f]{display:flex;gap:calc(var(--default-grid-baseline, 4px) * 3);flex-wrap:wrap}.dialog__row .dialog__field[data-v-1cc8782f]{flex:1 1 140px}.dialog__field[data-v-1cc8782f]{display:flex;flex-direction:column;gap:4px}.dialog__label[data-v-1cc8782f]{font-weight:600;font-size:.9rem}.dialog__req[data-v-1cc8782f]{color:var(--color-error)}.dialog__optional[data-v-1cc8782f]{font-weight:400;font-size:.8rem;color:var(--color-text-maxcontrast)}.dialog__hint[data-v-1cc8782f]{margin:4px 0 0;font-size:.8rem;color:var(--color-text-maxcontrast)}.dialog__link[data-v-1cc8782f]{text-decoration:underline}.dialog__actions[data-v-1cc8782f]{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.preview[data-v-1cc8782f]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(var(--default-grid-baseline, 4px) * 3);border-radius:var(--border-radius-large, 12px);background:color-mix(in srgb,var(--type-color) 12%,var(--color-main-background));border:2px solid color-mix(in srgb,var(--type-color) 40%,transparent)}.preview__days[data-v-1cc8782f]{display:flex;flex-direction:column;line-height:1.1}.preview__count[data-v-1cc8782f]{font-size:1.8rem;font-weight:700;color:var(--type-color)}.preview__caption[data-v-1cc8782f]{font-size:.8rem;color:var(--color-text-maxcontrast)}.preview__balance[data-v-1cc8782f]{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.85rem;color:var(--color-text-maxcontrast)}.preview__bar[data-v-1cc8782f]{display:block;width:120px;height:6px;border-radius:3px;background:var(--color-background-dark);overflow:hidden}.preview__bar-fill[data-v-1cc8782f]{display:block;height:100%;border-radius:3px;background:var(--type-color);transition:width .3s ease}.opt[data-v-1cc8782f]{display:inline-flex;align-items:center;gap:8px}.opt__icon[data-v-1cc8782f]{font-size:1.1em}._material-design-icon_v9SPG{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._sidebarTabsButton_OCROY{border:none;color:var(--color-main-text);font-size:var(--default-font-size);cursor:pointer;display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-width:var(--default-clickable-area)}._sidebarTabsButton_OCROY *{cursor:pointer}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9){position:relative;border-radius:var(--border-radius-element);background-color:var(--color-main-background);padding:var(--default-grid-baseline);padding-block-end:calc(var(--default-grid-baseline) * 2);transition:background-color var(--animation-quick)}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9):after{content:"";position:absolute;bottom:0;left:50%;width:0;height:4px;border-radius:999px;background-color:var(--color-primary-element);opacity:0;transform:translate(-50%);transition:width var(--animation-quick),opacity var(--animation-quick)}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9):hover{background-color:var(--color-background-hover)}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9):focus-visible{outline:2px solid var(--color-main-text);outline-offset:2px}._sidebarTabsButton_legacy_e9-y9{border-bottom:var(--default-grid-baseline) solid transparent!important;border-radius:var(--border-radius-small);background-color:var(--color-main-background);padding:var(--border-radius-small);transition:background-color var(--animation-quick),border-bottom-color var(--animation-quick)}._sidebarTabsButton_legacy_e9-y9:hover{background-color:var(--color-background-hover)!important}._sidebarTabsButton_legacy_e9-y9:active,._sidebarTabsButton_legacy_e9-y9:focus{background-color:var(--color-main-background)!important}._sidebarTabsButton_selected_S48M1,._sidebarTabsButton_selected_S48M1 *{cursor:default}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9)._sidebarTabsButton_selected_S48M1{background-color:var(--color-background-hover)}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9)._sidebarTabsButton_selected_S48M1:after{width:80%;opacity:1}._sidebarTabsButton_OCROY:not(._sidebarTabsButton_legacy_e9-y9)._sidebarTabsButton_selected_S48M1:hover{background-color:var(--color-background-dark)}._sidebarTabsButton_legacy_e9-y9._sidebarTabsButton_selected_S48M1{border-bottom-color:var(--color-primary-element)!important;border-bottom-left-radius:0;border-bottom-right-radius:0}._sidebarTabsButton_legacy_e9-y9._sidebarTabsButton_selected_S48M1:hover{background-color:var(--color-primary-element-light-hover)!important;color:var(--color-primary-element-light-text)!important}._sidebarTabsButton__name_GZRY8{font-weight:var(--font-weight-element, normal);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}._sidebarTabsButton_legacy_e9-y9._sidebarTabsButton_selected_S48M1 ._sidebarTabsButton__name_GZRY8{font-weight:var(--font-weight-element, bold)}._sidebarTabsButton__icon_ZDmkU{display:inline-flex;align-items:center;justify-content:center}._sidebarTabsButton__legacyIcon_y6cLW{background-size:20px;display:flex;align-items:center;justify-content:center}.material-design-icon[data-v-e74d1502]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-e74d1502]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-e74d1502]{display:flex;justify-content:stretch;margin:10px 8px 0;border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__nav[data-v-e74d1502]:not(.app-sidebar-tabs__nav--legacy){gap:var(--default-grid-baseline);padding-block-end:var(--default-grid-baseline)}.app-sidebar-tabs__tab[data-v-e74d1502]{flex:1 1 1px}.app-sidebar-tabs__content[data-v-e74d1502]{position:relative;min-height:256px;height:100%}.app-sidebar-tabs__content--multiple[data-v-e74d1502]>:not(section){display:none}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}@property --app-sidebar-offset{syntax: ""; initial-value: 0; inherits: true;}body{--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);--app-sidebar-offset: 0;transition:--app-sidebar-offset 0ms!important}body:has(.app-sidebar.slide-right-enter-active),body:has(.app-sidebar.slide-right-leave-active){transition:--app-sidebar-offset var(--animation-quick)}body:has(.app-sidebar__toggle){--app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area))}.material-design-icon[data-v-e8979b7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-e8979b7f]{--app-sidebar-width: clamp(300px, 27vw, 500px);--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);width:var(--app-sidebar-width);z-index:1500;top:0;inset-inline-end:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;height:100%;border-inline-start:1px solid var(--color-border);background:var(--color-main-background);position:relative}.app-sidebar__toggle[data-v-e8979b7f]{position:absolute!important;inset-block-start:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);z-index:1001}.app-sidebar .app-sidebar-header[data-v-e8979b7f]{--app-sidebar-close-button-offset: calc(var(--default-clickable-area) + var(--app-sidebar-padding))}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-e8979b7f]{position:absolute;z-index:100;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);width:var(--default-clickable-area);height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-e8979b7f]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-e8979b7f]{--figure-size: calc(52px + var(--app-sidebar-padding));z-index:2;width:var(--figure-size);height:var(--figure-size);margin:calc(var(--app-sidebar-padding) / 2);border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-e8979b7f]{padding-inline-start:0;flex:1 1 auto;min-width:0;padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset));padding-top:var(--app-sidebar-padding)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{z-index:3;position:absolute;top:calc(var(--app-sidebar-padding) / 2);inset-inline-start:calc(-1 * var(--default-clickable-area));gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-e8979b7f]{top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-e8979b7f]{position:absolute;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-e8979b7f]{padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset))}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-e8979b7f]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-e8979b7f]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-e8979b7f]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-e8979b7f]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding-inline:var(--app-sidebar-padding);padding-block:var(--app-sidebar-padding) calc(var(--app-sidebar-padding) / 2);gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-e8979b7f]{padding-inline-start:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-e8979b7f]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-e8979b7f]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{display:flex;height:var(--default-clickable-area);width:var(--default-clickable-area);justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]:not([aria-pressed=true]):hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-e8979b7f]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-e8979b7f]{display:flex;align-items:center;min-height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-e8979b7f]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-e8979b7f] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-e8979b7f]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-e8979b7f]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-e8979b7f]{margin-inline-start:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);padding:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f] *{vertical-align:text-bottom}.app-sidebar .app-sidebar-header .app-sidebar-header__mainname--hidden[data-v-e8979b7f]{position:absolute;top:0;inset-inline-start:0;margin:0;width:1px;height:1px;overflow:hidden}.app-sidebar .app-sidebar-header__description[data-v-e8979b7f]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width:512px){.app-sidebar[data-v-e8979b7f]{position:absolute;--app-sidebar-width: 100vw}}.slide-right-leave-active[data-v-e8979b7f],.slide-right-enter-active[data-v-e8979b7f]{transition-duration:var(--animation-quick);transition-property:margin-inline-end}.slide-right-enter-to[data-v-e8979b7f],.slide-right-leave[data-v-e8979b7f]{margin-inline-end:0}.slide-right-enter-from[data-v-e8979b7f],.slide-right-leave-to[data-v-e8979b7f]{margin-inline-end:calc(-1 * var(--app-sidebar-width))}.material-design-icon[data-v-8609a4c1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-8609a4c1]{display:flex;align-items:center;flex-direction:column;justify-content:center;flex-grow:1;padding:var(--default-grid-baseline)}.modal-wrapper .empty-content[data-v-8609a4c1]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-8609a4c1]{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 15px;opacity:.4;background-repeat:no-repeat;background-position:center;background-size:64px}.empty-content__icon[data-v-8609a4c1] svg{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important}.empty-content__name[data-v-8609a4c1]{margin-bottom:10px;text-align:center;font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px}.empty-content__description[data-v-8609a4c1]{color:var(--color-text-maxcontrast);text-align:center;text-wrap-style:balance}.empty-content__action[data-v-8609a4c1]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-8609a4c1]{margin-top:20px;display:flex}.material-design-icon[data-v-dba10798]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-dba10798]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-dba10798]:focus{border-color:var(--color-primary-element);box-shadow:0 0 .2em var(--color-primary-element);outline:0}.app-sidebar__tab--active[data-v-dba10798]{display:block}.material-design-icon[data-v-e0ae1174]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-e0ae1174]{position:relative;display:inline-block;width:var(--avatar-size);height:var(--avatar-size)}.avatardiv--unknown[data-v-e0ae1174]{position:relative;background-color:var(--color-main-background);white-space:normal}.avatardiv[data-v-e0ae1174]:not(.avatardiv--unknown){background-color:var(--color-main-background)!important;box-shadow:0 0 5px #0000000d inset}.avatardiv--with-menu[data-v-e0ae1174]{cursor:pointer}.avatardiv--with-menu .action-item[data-v-e0ae1174]{position:absolute;top:0;inset-inline-start:0}.avatardiv--with-menu[data-v-e0ae1174] .action-item__menutoggle{cursor:pointer;opacity:0}.avatardiv--with-menu[data-v-e0ae1174]:focus-within .action-item__menutoggle,.avatardiv--with-menu[data-v-e0ae1174]:hover .action-item__menutoggle,.avatardiv--with-menu.avatardiv--with-menu-loading[data-v-e0ae1174] .action-item__menutoggle{opacity:1}.avatardiv--with-menu:focus-within img[data-v-e0ae1174],.avatardiv--with-menu:hover img[data-v-e0ae1174],.avatardiv--with-menu.avatardiv--with-menu-loading img[data-v-e0ae1174]{opacity:.3}.avatardiv--with-menu[data-v-e0ae1174] .action-item__menutoggle,.avatardiv--with-menu img[data-v-e0ae1174]{transition:opacity var(--animation-quick)}.avatardiv--with-menu[data-v-e0ae1174] .button-vue,.avatardiv--with-menu[data-v-e0ae1174] .button-vue__icon{height:var(--avatar-size);min-height:var(--avatar-size);width:var(--avatar-size)!important;min-width:var(--avatar-size)}.avatardiv--with-menu[data-v-e0ae1174]>.button-vue,.avatardiv--with-menu[data-v-e0ae1174]>.action-item .button-vue{--button-radius: calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper[data-v-e0ae1174]{display:block;height:var(--avatar-size);width:var(--avatar-size);background-color:var(--color-main-background);border-radius:calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-e0ae1174]{position:absolute;top:0;inset-inline-start:0;display:block;width:100%;text-align:center;font-weight:var(--font-weight-default, normal)}.avatardiv img[data-v-e0ae1174]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-e0ae1174]{width:var(--avatar-size);height:var(--avatar-size)}.avatardiv .avatardiv__user-status[data-v-e0ae1174]{--avatar-status-size-orbital: calc(var(--avatar-size) * (1 - 1 / sqrt(2)));--avatar-status-size-min: var(--font-size-small);--avatar-status-size: max(var(--avatar-status-size-orbital), var(--avatar-status-size-min));box-sizing:border-box;position:absolute;inset-inline-end:0;inset-block-end:0;height:var(--avatar-status-size);width:var(--avatar-status-size);line-height:1;font-size:calc(var(--avatar-status-size) / 1.2);background-color:var(--color-main-background);background-repeat:no-repeat;background-size:var(--avatar-status-size);background-position:center;border-radius:50%;display:flex;align-items:center;justify-content:center}.acli:hover .avatardiv .avatardiv__user-status[data-v-e0ae1174]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-e0ae1174]{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}.avatardiv .avatardiv__user-status--icon[data-v-e0ae1174]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-e0ae1174]{position:relative;display:inline-block}.avatar-class-icon[data-v-e0ae1174]{display:block;border-radius:calc(var(--avatar-size) / 2);background-color:var(--color-background-darker);height:100%}._material-design-icon_ZJnaR{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._externalLink_d-mCx{text-decoration:underline}._externalLink_decorated_W3wuz:after{content:" ↗"}.material-design-icon[data-v-3c4a673d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-3c4a673d]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-3c4a673d]{position:relative;max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-3c4a673d]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-inline:2px 6px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-3c4a673d]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-3c4a673d]{color:inherit;background-size:cover}.mention-bubble__title[data-v-3c4a673d]{overflow:hidden;margin-inline-start:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-3c4a673d]:before{content:attr(title)}.mention-bubble__select[data-v-3c4a673d]{position:absolute;z-index:-1;inset-inline-start:-100vw;width:1px;height:1px;overflow:hidden}.material-design-icon[data-v-881a79fb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-status-icon[data-v-881a79fb]{--user-status-color-online: #2D7B41;--user-status-color-busy: #DB0606;--user-status-color-away: #C88800;--user-status-color-offline: #6B6B6B;display:flex;justify-content:center;align-items:center}.user-status-icon--invisible[data-v-881a79fb]{filter:var(--background-invert-if-dark)}.user-status-icon[data-v-881a79fb] svg{width:100%;height:100%}.material-design-icon[data-v-32f01b7a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-32f01b7a]:hover,li.action.active[data-v-32f01b7a]{border-radius:6px;padding:0}li.action[data-v-32f01b7a]:hover{background-color:var(--color-background-hover)}.action-link[data-v-32f01b7a]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-link>span[data-v-32f01b7a]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-32f01b7a]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-32f01b7a] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-link[data-v-32f01b7a] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link__longtext-wrapper[data-v-32f01b7a],.action-link__longtext[data-v-32f01b7a]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-32f01b7a]{cursor:pointer;white-space:pre-wrap!important}.action-link__name[data-v-32f01b7a]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-link__description[data-v-32f01b7a]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-link__menu-icon[data-v-32f01b7a]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.material-design-icon[data-v-87267750]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-87267750]:hover,li.action.active[data-v-87267750]{border-radius:6px;padding:0}li.action[data-v-87267750]:hover{background-color:var(--color-background-hover)}.action-router[data-v-87267750]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-router>span[data-v-87267750]{cursor:pointer;white-space:nowrap}.action-router__icon[data-v-87267750]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-router[data-v-87267750] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-router[data-v-87267750] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-router__longtext-wrapper[data-v-87267750],.action-router__longtext[data-v-87267750]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-router__longtext[data-v-87267750]{cursor:pointer;white-space:pre-wrap!important}.action-router__name[data-v-87267750]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-router__description[data-v-87267750]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-router__menu-icon[data-v-87267750]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action--disabled[data-v-87267750]{pointer-events:none;opacity:.5}.action--disabled[data-v-87267750]:hover,.action--disabled[data-v-87267750]:focus{cursor:default;opacity:.5}.action--disabled[data-v-87267750] *{opacity:1!important}.material-design-icon[data-v-fa684b48]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-fa684b48]:hover,li.action.active[data-v-fa684b48]{border-radius:6px;padding:0}li.action[data-v-fa684b48]:hover{background-color:var(--color-background-hover)}.action-text[data-v-fa684b48]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-text>span[data-v-fa684b48]{cursor:pointer;white-space:nowrap}.action-text__icon[data-v-fa684b48]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-text[data-v-fa684b48] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text[data-v-fa684b48] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text__longtext-wrapper[data-v-fa684b48],.action-text__longtext[data-v-fa684b48]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-text__longtext[data-v-fa684b48]{cursor:pointer;white-space:pre-wrap!important}.action-text__name[data-v-fa684b48]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-text__description[data-v-fa684b48]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-text__menu-icon[data-v-fa684b48]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action--disabled[data-v-fa684b48]{pointer-events:none;opacity:.5}.action--disabled[data-v-fa684b48]:hover,.action--disabled[data-v-fa684b48]:focus{cursor:default;opacity:.5}.action--disabled[data-v-fa684b48] *{opacity:1!important}.action-text[data-v-fa684b48],.action-text span[data-v-fa684b48]{cursor:default}.status-chip[data-v-b664cccb]{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--border-radius-pill, 16px);font-size:.8rem;font-weight:600;color:var(--chip-text);background:color-mix(in srgb,var(--chip-tint) 18%,var(--color-main-background));border:1px solid color-mix(in srgb,var(--chip-tint) 35%,transparent);white-space:nowrap}.status-chip__dot[data-v-b664cccb]{font-size:.85em;line-height:1}.section[data-v-48df71be]{padding:calc(var(--default-grid-baseline, 4px) * 3);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.section__title[data-v-48df71be]{margin:0;font-size:.95rem}.overlap[data-v-48df71be]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.overlap__item[data-v-48df71be]{display:flex;align-items:center;gap:10px}.overlap__name[data-v-48df71be]{flex:1}.type-chip[data-v-debceb16]{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--border-radius-pill, 16px);font-size:.8rem;font-weight:600;color:color-mix(in srgb,var(--type-color) 50%,var(--color-main-text));background:color-mix(in srgb,var(--type-color) 16%,var(--color-main-background));border:1px solid color-mix(in srgb,var(--type-color) 35%,transparent);white-space:nowrap}.type-chip__icon[data-v-debceb16]{font-size:.95em;line-height:1}.stepper[data-v-2577feb9]{display:flex;list-style:none;margin:0;padding:0}.stepper__step[data-v-2577feb9]{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;--tone: var(--color-primary-element)}.stepper__step--success[data-v-2577feb9]{--tone: var(--color-success)}.stepper__step--error[data-v-2577feb9]{--tone: var(--color-error)}.stepper__step--muted[data-v-2577feb9]{--tone: var(--color-text-maxcontrast)}.stepper__dot[data-v-2577feb9]{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;background:var(--color-background-dark);border:2px solid var(--color-border);z-index:1;transition:transform .2s ease}.stepper__label[data-v-2577feb9]{font-size:.75rem;text-align:center;color:var(--color-text-maxcontrast)}.stepper__bar[data-v-2577feb9]{position:absolute;top:15px;inset-inline-start:50%;width:100%;height:2px;background:var(--color-border);z-index:0}.stepper__step--done .stepper__dot[data-v-2577feb9],.stepper__step--current .stepper__dot[data-v-2577feb9]{background:color-mix(in srgb,var(--tone) 18%,var(--color-main-background));border-color:var(--tone)}.stepper__step--done .stepper__label[data-v-2577feb9],.stepper__step--current .stepper__label[data-v-2577feb9]{color:var(--color-main-text);font-weight:600}.stepper__step--current .stepper__dot[data-v-2577feb9]{transform:scale(1.08);box-shadow:0 0 0 4px color-mix(in srgb,var(--tone) 20%,transparent)}.stepper__step--done .stepper__bar[data-v-2577feb9]{background:var(--tone)}@media(prefers-reduced-motion:reduce){.stepper__dot[data-v-2577feb9]{transition:none}}.section[data-v-094834fe]{padding:calc(var(--default-grid-baseline, 4px) * 3);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.facts[data-v-094834fe]{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.facts dt[data-v-094834fe]{color:var(--color-text-maxcontrast);font-size:.85rem}.facts dd[data-v-094834fe]{margin:0;font-weight:500}.facts__decided[data-v-094834fe]{display:flex;align-items:center;gap:6px}.facts__muted[data-v-094834fe]{color:var(--color-text-maxcontrast);font-weight:400}.actions[data-v-094834fe]{display:flex;flex-wrap:wrap;gap:8px}.reject[data-v-094834fe]{display:flex;flex-direction:column;gap:8px}.reject__actions[data-v-094834fe]{display:flex;justify-content:flex-end;gap:8px}.comments[data-v-094834fe]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.comments__item[data-v-094834fe]{background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:10px 12px}.comments__item p[data-v-094834fe]{margin:6px 0 0}.comments__head[data-v-094834fe]{display:flex;align-items:center;gap:8px;font-size:.85rem}.comment-add[data-v-094834fe]{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.timeline[data-v-094834fe]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.timeline__item[data-v-094834fe]{display:flex;gap:12px;padding-bottom:16px;position:relative}.timeline__item[data-v-094834fe]:not(:last-child):before{content:"";position:absolute;inset-inline-start:13px;top:26px;bottom:0;width:2px;background:var(--color-border)}.timeline__marker[data-v-094834fe]{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;background:var(--color-background-hover);z-index:1}.timeline__body[data-v-094834fe]{flex:1;min-width:0}.timeline__head[data-v-094834fe]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.timeline__time[data-v-094834fe]{font-size:.78rem;color:var(--color-text-maxcontrast);white-space:nowrap}.timeline__who[data-v-094834fe]{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-text-maxcontrast);margin-top:2px}.timeline__detail[data-v-094834fe]{margin:6px 0 0;padding:6px 10px;background:var(--color-background-hover);border-radius:var(--border-radius, 8px);font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}.app-absence .page{max-width:1100px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 5)}.app-absence .page--narrow{max-width:900px}.app-absence .page--roomy{gap:calc(var(--default-grid-baseline, 4px) * 6)}.app-absence .page--flat{display:block;gap:0}.app-absence .page--flat .page__title{margin-block-end:24px}.app-absence .page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.app-absence .page__header--center{align-items:center;gap:12px}.app-absence .page__title{margin:0;font-size:1.6rem}.app-absence .page__tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.app-absence .page__search{width:240px}.app-absence .table-wrap{overflow-x:auto}.app-absence .tbl{width:100%;border-collapse:collapse}.app-absence .tbl th,.app-absence .tbl td{padding:10px 12px;text-align:start;border-bottom:1px solid var(--color-border)}.app-absence .tbl th{font-size:.8rem;color:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.04em}.app-absence .tbl .num{text-align:end;font-variant-numeric:tabular-nums}.app-absence .tbl .neg{color:var(--color-error);font-weight:600}.app-absence .page__header{padding-inline-start:calc(var(--default-clickable-area, 44px) + var(--app-navigation-padding, 4px) * 2)}.material-design-icon[data-v-0e705f5a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-0e705f5a]{display:flex;position:relative;width:100%;padding:2px 4px}.list-item__wrapper[data-v-0e705f5a]:first-of-type{padding-block-start:4px}.list-item__wrapper[data-v-0e705f5a]:last-of-type{padding-block-end:4px}.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-0e705f5a]:hover,.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-0e705f5a]:focus-within,.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-0e705f5a]:has(:active),.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-0e705f5a]:has(:focus-visible){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]{background-color:var(--color-primary-element-light);color:var(--color-main-text)!important}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:hover,.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:focus-within,.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:has(:focus-visible),.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:has(:active),.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:hover,.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:focus-within,.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:has(:focus-visible),.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:has(:active){background-color:var(--color-primary-element-light-hover)}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]:before,.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-0e705f5a]: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-0e705f5a var(--animation-quick, .2s) ease-out}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-content__name[data-v-0e705f5a],.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-content__subname[data-v-0e705f5a],.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-content__details[data-v-0e705f5a],.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-details__details[data-v-0e705f5a],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-content__name[data-v-0e705f5a],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-content__subname[data-v-0e705f5a],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-content__details[data-v-0e705f5a],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-details__details[data-v-0e705f5a]{color:var(--color-main-text)!important}.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-0e705f5a],.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)!important}.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:hover,.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:focus-within,.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:has(:focus-visible),.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:has(:active),.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:hover,.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:focus-within,.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:has(:focus-visible),.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-0e705f5a]:has(:active){background-color:var(--color-primary-element-hover)}.list-item__wrapper--active.list-item__wrapper--legacy .list-item-content__name[data-v-0e705f5a],.list-item__wrapper--active.list-item__wrapper--legacy .list-item-content__subname[data-v-0e705f5a],.list-item__wrapper--active.list-item__wrapper--legacy .list-item-content__details[data-v-0e705f5a],.list-item__wrapper--active.list-item__wrapper--legacy .list-item-details__details[data-v-0e705f5a],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-content__name[data-v-0e705f5a],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-content__subname[data-v-0e705f5a],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-content__details[data-v-0e705f5a],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-details__details[data-v-0e705f5a]{color:var(--color-primary-element-text)!important}@keyframes nc-nav-stripe-in-0e705f5a{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.list-item__wrapper .list-item-content__name[data-v-0e705f5a],.list-item__wrapper .list-item-content__subname[data-v-0e705f5a],.list-item__wrapper .list-item-content__details[data-v-0e705f5a],.list-item__wrapper .list-item-details__details[data-v-0e705f5a]{white-space:nowrap;margin-block:0;margin-inline:0 auto;overflow:hidden;text-overflow:ellipsis}.list-item-content__name[data-v-0e705f5a]{min-width:100px;flex:1 1 10%;font-weight:var(--font-weight-element, 500)}.list-item-content__subname[data-v-0e705f5a]{flex:1 0;min-width:0;color:var(--color-text-maxcontrast)}.list-item-content__subname--bold[data-v-0e705f5a]{font-weight:var(--font-weight-element, 500)}.list-item[data-v-0e705f5a]{--list-item-padding: var(--default-grid-baseline);--list-item-height: 2lh;--list-item-border-radius: var(--border-radius-element, 32px);box-sizing:border-box;display:flex;position:relative;flex:0 0 auto;justify-content:flex-start;padding:var(--list-item-padding);width:100%;border-radius:var(--border-radius-element, 32px);cursor:pointer;transition:background-color var(--animation-quick) ease-in-out;list-style:none}.list-item[data-v-0e705f5a]:hover,.list-item[data-v-0e705f5a]:focus-within,.list-item[data-v-0e705f5a]:has(:active),.list-item[data-v-0e705f5a]:has(:focus-visible){background-color:var(--color-background-hover)}.list-item[data-v-0e705f5a]:has(.list-item__anchor:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.list-item--compact[data-v-0e705f5a]{--list-item-padding: calc(.5 * var(--default-grid-baseline)) var(--default-grid-baseline)}.list-item--compact[data-v-0e705f5a]:not(:has(.list-item-content__subname)){--list-item-height: var(--default-clickable-area)}.list-item--one-line[data-v-0e705f5a]{--list-item-height: var(--default-clickable-area);--list-item-border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));--list-item-padding: var(--default-grid-baseline)}.list-item--one-line .list-item-content__main[data-v-0e705f5a]{display:flex;justify-content:start;gap:12px;min-width:0}.list-item--one-line .list-item-content__details[data-v-0e705f5a]{flex-direction:row;align-items:center;justify-content:end}.list-item--one-line .list-item-content__name[data-v-0e705f5a]{align-self:center;max-width:300px}.list-item__anchor[data-v-0e705f5a]{color:inherit;display:flex;flex:1 0 auto;align-items:center;height:var(--list-item-height);min-width:0}.list-item__anchor[data-v-0e705f5a]:focus-visible{outline:none}.list-item-content[data-v-0e705f5a]{display:flex;flex:1 0;justify-content:space-between;padding-inline-start:calc(2 * var(--default-grid-baseline));min-width:0}.list-item-content__main[data-v-0e705f5a]{flex:1 0;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-0e705f5a]{display:flex}.list-item-content__details[data-v-0e705f5a]{display:flex;flex-direction:column;justify-content:end;align-items:end}.list-item-content__actions[data-v-0e705f5a],.list-item-content__extra-actions[data-v-0e705f5a]{flex:0 0 auto;align-self:center;justify-content:center;margin-inline-start:var(--default-grid-baseline)}.list-item-content__extra-actions[data-v-0e705f5a]{display:flex;align-items:center;gap:var(--default-grid-baseline)}.list-item-details__details[data-v-0e705f5a]{color:var(--color-text-maxcontrast);margin:0 9px!important;font-weight:var(--font-weight-default, normal)}.list-item-details__extra[data-v-0e705f5a]{margin:2px 4px 0;display:flex;align-items:center}.list-item-details__indicator[data-v-0e705f5a]{margin:0 5px}.list-item__extra[data-v-0e705f5a]{margin-top:var(--default-grid-baseline)}.rli[data-v-4165016d]{position:relative;border-radius:var(--border-radius-large, 12px);transition:transform .15s ease,background-color .15s ease}.rli[data-v-4165016d]:before{content:"";position:absolute;inset-inline-start:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--type-color);z-index:1}.rli[data-v-4165016d]:hover{background:var(--color-background-hover);transform:translateY(-1px)}.rli--active[data-v-4165016d]{background:var(--color-background-hover)}.rli[data-v-4165016d] .list-item,.rli[data-v-4165016d] .list-item__wrapper{border-radius:var(--border-radius-large, 12px)}.rli__icon[data-v-4165016d]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;font-size:1.2rem}@media(prefers-reduced-motion:reduce){.rli[data-v-4165016d]{transition:none}.rli[data-v-4165016d]:hover{transform:none}}.skeleton[data-v-024c423c]{display:flex;flex-direction:column;gap:6px}.skeleton__row[data-v-024c423c]{display:flex;align-items:center;gap:12px;padding:10px 8px}.skeleton__avatar[data-v-024c423c]{width:40px;height:40px;border-radius:50%;flex:0 0 auto}.skeleton__lines[data-v-024c423c]{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton__line[data-v-024c423c]{height:12px;border-radius:6px}.skeleton__line--title[data-v-024c423c]{width:45%}.skeleton__line--sub[data-v-024c423c]{width:65%;height:10px}.skeleton__pill[data-v-024c423c]{width:72px;height:22px;border-radius:var(--border-radius-pill, 16px);flex:0 0 auto}.skeleton__avatar[data-v-024c423c],.skeleton__line[data-v-024c423c],.skeleton__pill[data-v-024c423c]{background:linear-gradient(90deg,var(--color-background-hover) 25%,var(--color-background-dark) 37%,var(--color-background-hover) 63%);background-size:400% 100%;animation:skeleton-shimmer-024c423c 1.4s ease infinite}@keyframes skeleton-shimmer-024c423c{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.skeleton__avatar[data-v-024c423c],.skeleton__line[data-v-024c423c],.skeleton__pill[data-v-024c423c]{animation:none}}.group__title[data-v-8142b834]{margin:0 0 12px;font-size:1.1rem}.list[data-v-8142b834]{display:flex;flex-direction:column;gap:2px;padding:0;margin:0;list-style:none}.rli-enter-active[data-v-8142b834],.rli-leave-active[data-v-8142b834]{transition:opacity .25s ease,transform .25s ease}.rli-enter-from[data-v-8142b834]{opacity:0;transform:translateY(8px)}.rli-leave-to[data-v-8142b834]{opacity:0;transform:translate(-12px)}.rli-move[data-v-8142b834]{transition:transform .25s ease}@media(prefers-reduced-motion:reduce){.rli-enter-active[data-v-8142b834],.rli-leave-active[data-v-8142b834],.rli-move[data-v-8142b834]{transition:none}}.emp[data-v-524b60ef],.type[data-v-524b60ef]{display:inline-flex;align-items:center;gap:8px}.edit[data-v-524b60ef]{display:flex;flex-direction:column;gap:10px;padding:calc(var(--default-grid-baseline, 4px) * 5)}.edit label[data-v-524b60ef]{font-weight:600;font-size:.85rem}.edit__actions[data-v-524b60ef]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.cards[data-v-6d9165ed]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.card[data-v-6d9165ed]{background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 4);display:flex;flex-direction:column;gap:12px}.card h3[data-v-6d9165ed]{margin:0}.card p[data-v-6d9165ed]{margin:0;color:var(--color-text-maxcontrast)}.card__row[data-v-6d9165ed]{display:flex;gap:12px;flex-wrap:wrap}.dl[data-v-6d9165ed]{text-decoration:none}.report[data-v-a5aa42b8]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 2)}.summary[data-v-a5aa42b8]{margin:0;color:var(--color-main-text)}.summary__muted[data-v-a5aa42b8]{color:var(--color-text-maxcontrast)}.rank[data-v-a5aa42b8]{width:3em;color:var(--color-text-maxcontrast)}.strong[data-v-a5aa42b8]{font-weight:700}.emp[data-v-a5aa42b8]{display:inline-flex;align-items:center;gap:8px}.bar-col[data-v-a5aa42b8]{width:22%;min-width:80px}.bar[data-v-a5aa42b8]{height:8px;border-radius:var(--border-radius);min-width:0}.donut[data-v-a6ff040b]{margin:0}.donut__title[data-v-a6ff040b]{font-weight:600;margin-bottom:8px}.donut__body[data-v-a6ff040b]{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.donut__svg[data-v-a6ff040b]{width:160px;height:160px;flex:0 0 auto}.donut__track[data-v-a6ff040b]{fill:none;stroke:var(--color-background-dark);stroke-width:18}.donut__seg[data-v-a6ff040b]{fill:none;stroke-width:18;stroke-linecap:butt;transition:stroke-dasharray .8s cubic-bezier(.4,0,.2,1)}.donut__total[data-v-a6ff040b]{font-size:26px;font-weight:700;text-anchor:middle;fill:var(--color-main-text)}.donut__unit[data-v-a6ff040b]{font-size:11px;text-anchor:middle;fill:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.06em}.donut__legend[data-v-a6ff040b]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:160px}.donut__legend li[data-v-a6ff040b]{display:flex;align-items:center;gap:8px;font-size:.88rem}.donut__swatch[data-v-a6ff040b]{width:12px;height:12px;border-radius:3px;flex:0 0 auto}.donut__label[data-v-a6ff040b]{flex:1}.donut__value[data-v-a6ff040b]{color:var(--color-text-maxcontrast)}@media(prefers-reduced-motion:reduce){.donut__seg[data-v-a6ff040b]{transition:none}}.line[data-v-f4b72e98]{margin:0}.line__title[data-v-f4b72e98]{font-weight:600;margin-bottom:8px}.line__svg[data-v-f4b72e98]{width:100%;height:auto}.line__grid[data-v-f4b72e98]{stroke:var(--color-border);stroke-width:1}.line__area[data-v-f4b72e98]{fill:color-mix(in srgb,var(--color-primary-element) 18%,transparent)}.line__stroke[data-v-f4b72e98]{fill:none;stroke:var(--color-primary-element);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.line__dot[data-v-f4b72e98]{fill:var(--color-main-background);stroke:var(--color-primary-element);stroke-width:2}.line__xlabel[data-v-f4b72e98]{font-size:10px;fill:var(--color-text-maxcontrast)}.range[data-v-857116af]{display:flex;gap:12px}.cards[data-v-857116af]{display:flex;gap:16px;flex-wrap:wrap}.card[data-v-857116af]{flex:1 1 160px;display:flex;flex-direction:column;background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 4)}.card__icon[data-v-857116af]{font-size:1.4rem;margin-bottom:4px}.card__value[data-v-857116af]{font-size:2rem;font-weight:700;color:var(--color-primary-element)}.card__label[data-v-857116af]{color:var(--color-text-maxcontrast);font-size:.85rem}.panel[data-v-857116af]{background:var(--color-main-background);border:1px solid var(--color-border);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 4)}.gantt[data-v-d9d12d41]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.gantt__toolbar[data-v-d9d12d41]{display:flex;align-items:center;gap:8px}.gantt__month[data-v-d9d12d41]{font-size:1.1rem;min-width:150px;text-align:center}.gantt__scroll[data-v-d9d12d41]{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--border-radius-large, 12px)}.gantt__grid[data-v-d9d12d41]{min-width:max-content}.gantt__row[data-v-d9d12d41]{display:flex;align-items:stretch;border-bottom:1px solid var(--color-border-dark, var(--color-border))}.gantt__row[data-v-d9d12d41]:last-child{border-bottom:none}.gantt__row--head[data-v-d9d12d41]{position:sticky;top:0;z-index:3;background:var(--color-main-background)}.gantt__name[data-v-d9d12d41]{position:sticky;inset-inline-start:0;z-index:2;flex:0 0 180px;width:180px;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-main-background);border-inline-end:1px solid var(--color-border)}.gantt__name--head[data-v-d9d12d41]{font-size:.8rem;color:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.04em}.gantt__name-text[data-v-d9d12d41]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__track[data-v-d9d12d41]{position:relative;height:42px;width:calc(var(--days) * var(--day-w));flex:0 0 auto}.gantt__daynum[data-v-d9d12d41]{position:absolute;top:50%;transform:translateY(-50%);width:var(--day-w);text-align:center;font-size:.72rem;color:var(--color-text-maxcontrast)}.gantt__daynum--weekend[data-v-d9d12d41]{color:var(--color-primary-element)}.gantt__daynum--today[data-v-d9d12d41]{color:var(--color-primary-element-text, #fff);background:var(--color-primary-element);border-radius:8px;padding:1px 0}.gantt__col[data-v-d9d12d41]{position:absolute;top:0;bottom:0;width:var(--day-w)}.gantt__col--weekend[data-v-d9d12d41]{background:var(--color-background-dark)}.gantt__today[data-v-d9d12d41]{position:absolute;top:0;bottom:0;width:2px;background:var(--color-primary-element);opacity:.7;z-index:1}.gantt__pill[data-v-d9d12d41]{position:absolute;top:8px;height:26px;display:flex;align-items:center;padding:0 8px;border-radius:var(--border-radius-pill, 14px);background:var(--pill);color:#fff;font-size:.85rem;box-shadow:0 1px 3px #0000002e;overflow:hidden;z-index:1;animation:pill-in-d9d12d41 .3s ease both}.gantt__pill--pending[data-v-d9d12d41]{background:repeating-linear-gradient(45deg,var(--pill),var(--pill) 6px,color-mix(in srgb,var(--pill) 55%,transparent) 6px,color-mix(in srgb,var(--pill) 55%,transparent) 12px);opacity:.9}@keyframes pill-in-d9d12d41{0%{opacity:0;transform:scaleX(.9);transform-origin:left}to{opacity:1;transform:scaleX(1)}}.legend[data-v-d9d12d41]{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--color-text-maxcontrast)}.legend__item[data-v-d9d12d41]{display:inline-flex;align-items:center;gap:6px}.legend__swatch[data-v-d9d12d41]{width:14px;height:14px;border-radius:4px}.legend__swatch--pending[data-v-d9d12d41]{background:repeating-linear-gradient(45deg,var(--color-text-maxcontrast),var(--color-text-maxcontrast) 3px,transparent 3px,transparent 6px)}@media(prefers-reduced-motion:reduce){.gantt__pill[data-v-d9d12d41]{animation:none}}.ring[data-v-430f0399]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:calc(var(--default-grid-baseline, 4px) * 3)}.ring__svg[data-v-430f0399]{width:120px;height:120px}.ring__track[data-v-430f0399]{fill:none;stroke:var(--color-background-darker, var(--color-border));stroke-width:10}.ring__used[data-v-430f0399]{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.4,0,.2,1)}.ring__value[data-v-430f0399]{font-size:26px;font-weight:700;text-anchor:middle;fill:var(--color-main-text)}.ring__unit[data-v-430f0399]{font-size:11px;text-anchor:middle;fill:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.06em}.ring__label[data-v-430f0399]{display:flex;align-items:center;gap:6px;font-weight:600}.ring__meta[data-v-430f0399]{font-size:.82rem;color:var(--color-text-maxcontrast)}.ring__pending[data-v-430f0399]{color:var(--color-warning-text, var(--color-warning))}.card[data-v-291dbad2]{display:flex;align-items:center;gap:calc(var(--default-grid-baseline, 4px) * 4);flex-wrap:wrap;background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 2) calc(var(--default-grid-baseline, 4px) * 3)}.card[data-v-291dbad2] .ring{padding:calc(var(--default-grid-baseline, 4px));gap:2px}.card[data-v-291dbad2] .ring__svg{width:92px;height:92px}.card[data-v-291dbad2] .ring__value{font-size:30px}.card[data-v-291dbad2] .ring__unit{font-size:12px}.ledger[data-v-291dbad2]{flex:1;min-width:220px;max-width:340px;margin:0;margin-inline-start:auto;padding:0;font-size:.85rem}.ledger__row[data-v-291dbad2]{display:flex;justify-content:space-between;gap:12px;padding:1px 0;color:var(--color-text-maxcontrast)}.ledger__row dt[data-v-291dbad2],.ledger__row dd[data-v-291dbad2]{padding:0;margin:0;width:auto}.ledger__row dt[data-v-291dbad2]{font-weight:400;text-align:start}.ledger__row dd[data-v-291dbad2]{font-variant-numeric:tabular-nums}.ledger__row--total[data-v-291dbad2]{border-top:1px solid var(--color-border);color:var(--color-main-text);font-weight:600}.ledger__row--pending[data-v-291dbad2]{color:var(--color-warning-text, var(--color-warning))}.ledger__row--available[data-v-291dbad2]{border-top:1px solid var(--color-border);color:var(--color-main-text);font-weight:700}.ledger__row--available dd[data-v-291dbad2]{color:var(--type-color, var(--color-main-text))}.chart[data-v-fc9e92b9]{margin:0}.chart__title[data-v-fc9e92b9]{font-weight:600;margin-bottom:8px}.chart__svg[data-v-fc9e92b9]{width:100%;height:auto}.chart__bar[data-v-fc9e92b9]{transition:height .8s cubic-bezier(.4,0,.2,1),y .8s cubic-bezier(.4,0,.2,1)}.chart__label[data-v-fc9e92b9]{font-size:11px;fill:var(--color-text-maxcontrast)}.chart__value[data-v-fc9e92b9]{font-size:11px;font-weight:600;fill:var(--color-main-text)}.palm[data-v-85fdc3d1]{max-width:160px;height:auto}.palm__sun[data-v-85fdc3d1]{fill:var(--color-warning);opacity:.85;animation:palm-bob-85fdc3d1 4s ease-in-out infinite;transform-origin:center}.palm__sea[data-v-85fdc3d1]{fill:color-mix(in srgb,var(--color-primary-element) 30%,transparent)}.palm__island[data-v-85fdc3d1]{fill:color-mix(in srgb,var(--color-success) 35%,var(--color-main-background))}.palm__trunk[data-v-85fdc3d1]{fill:color-mix(in srgb,#8a5a2b 70%,var(--color-main-text))}.palm__coco[data-v-85fdc3d1]{fill:#6b3f1d}.palm__frond[data-v-85fdc3d1]{fill:var(--color-success)}.palm__fronds[data-v-85fdc3d1]{transform-origin:75px 70px;animation:palm-sway-85fdc3d1 5s ease-in-out infinite}@keyframes palm-sway-85fdc3d1{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes palm-bob-85fdc3d1{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.palm__fronds[data-v-85fdc3d1],.palm__sun[data-v-85fdc3d1]{animation:none}}.hero[data-v-7fdf2132]{display:flex;align-items:center;gap:16px;padding:calc(var(--default-grid-baseline, 4px) * 4);border-radius:var(--border-radius-large, 12px);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,var(--color-main-background)),color-mix(in srgb,var(--accent) 8%,var(--color-main-background)));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.hero__emoji[data-v-7fdf2132]{font-size:2.4rem;line-height:1}.hero__text[data-v-7fdf2132]{display:flex;flex-direction:column;gap:2px}.hero__eyebrow[data-v-7fdf2132]{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-maxcontrast)}.hero__headline[data-v-7fdf2132]{font-size:1.25rem}.hero__sub[data-v-7fdf2132]{font-size:.9rem;color:var(--color-text-maxcontrast)}.overview[data-v-7fdf2132]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.charts[data-v-7fdf2132]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:calc(var(--default-grid-baseline, 4px) * 3)}.charts__card[data-v-7fdf2132]{background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 3)}.requests__title[data-v-7fdf2132]{margin:0 0 12px;font-size:1.1rem}.requests__list[data-v-7fdf2132]{display:flex;flex-direction:column;gap:2px;padding:0;margin:0;list-style:none}.rli-enter-active[data-v-7fdf2132],.rli-leave-active[data-v-7fdf2132]{transition:opacity .25s ease,transform .25s ease}.rli-enter-from[data-v-7fdf2132]{opacity:0;transform:translateY(8px)}.rli-leave-to[data-v-7fdf2132]{opacity:0;transform:translate(-12px)}.rli-move[data-v-7fdf2132]{transition:transform .25s ease}@media(prefers-reduced-motion:reduce){.rli-enter-active[data-v-7fdf2132],.rli-leave-active[data-v-7fdf2132],.rli-move[data-v-7fdf2132]{transition:none}}`)),document.head.appendChild(a)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e as q,n as le,f as Y,g as Ee,i as we,h as X,j as fs,k as Nt,m as o,p as di,q as fe,s as Oe,t as gs,v as ys,x as gt,y as za,z as Bi,A as pi,B as hn,C as bs,D as Wa,E as ie,F as vs,G as Dt,H as ye,I as mn,J as qe,K as Ii,L as _s,M as Ie,N as Le,O as fn,_ as ee,P as u,Q as C,R as K,S as U,T as he,U as xe,V as et,W as r,X as _,Y as x,Z as ot,$ as ws,a0 as Cs,a1 as Pt,a2 as w,a3 as Se,a4 as gn,a5 as j,a6 as ge,a7 as ks,a8 as xs,a9 as Ss,aa as Gt,ab as yn,ac as bn,ad as As,ae as Zt,af as Ce,ag as at,ah as Ls,ai as La,aj as ut,ak as Ns,al as Ds,am as rt,an as V,ao as hi,ap as mi,aq as J,ar as Ts,as as vn,at as Es,au as Bs,av as Na,aw as Is,ax as Yt,ay as Ms,az as _n,aA as zs,aB as Da,aC as bt,aD as $s,aE as Rs,aF as Os,aG as wn,aH as Cn,aI as F,aJ as Vs,aK as Ga,aL as Ps,aM as qs,aN as Hs,aO as Fs,aP as Us,aQ as ct,aR as Tt,aS as Za,aT as js,aU as tt,aV as Ws,aW as Gs,aX as ce,aY as At,aZ as M,a_ as Re,a$ as kn,b0 as Ta,b1 as xn,b2 as Me,b3 as Zs,b4 as Ks,b5 as Ys,b6 as fi,b7 as Mi,b8 as Sn,b9 as Xs,ba as Qs,bb as Js,bc as el,bd as ue,be as Ka,bf as zi,bg as tl,bh as al,bi as il,bj as nl,bk as gi,bl as An,bm as sl,bn as ll,bo as Ya,bp as Ea,bq as Rt,br as Ln,bs as Xa,bt as ol,bu as rl,bv as cl}from"./NcCheckboxRadioSwitch-DVdt5Hkq-Dfqo0Dmj.chunk.mjs";const ps="absence",hs="1.0.6";function yi(){try{return Sa("core","capabilities")}catch{return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}}var ul=Object.assign({inheritAttrs:!1},{__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},keyboardStep:{type:Number,default:5}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick","direction-changed"],setup(e,{emit:a}){let t=a,s=e,n=ci(),i=ms(),l=Ee([]),d=X(()=>l.value.reduce((v,S)=>(v[~~S.id]=S)&&v,{})),h=X(()=>l.value.length),f=Ee(null),m=Ee(!1),p=Ee({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),g=Ee({splitter:null,timeoutId:null}),y=X(()=>({[`splitpanes splitpanes--${s.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":p.value.dragging,"splitpanes--ready":m.value})),k=()=>{document.addEventListener("mousemove",R,{passive:!1}),document.addEventListener("mouseup",P),"ontouchstart"in window&&(document.addEventListener("touchmove",R,{passive:!1}),document.addEventListener("touchend",P))},b=()=>{document.removeEventListener("mousemove",R,{passive:!1}),document.removeEventListener("mouseup",P),"ontouchstart"in window&&(document.removeEventListener("touchmove",R,{passive:!1}),document.removeEventListener("touchend",P))},A=(v,S)=>{let L=v.target.closest(".splitpanes__splitter");if(L){let{left:D,top:T}=L.getBoundingClientRect(),{clientX:O,clientY:Z}="ontouchstart"in window&&v.touches?v.touches[0]:v;p.value.cursorOffset=s.horizontal?Z-T:O-D}k(),p.value.mouseDown=!0,p.value.activeSplitter=S,document.documentElement.style.cursor=s.horizontal?"row-resize":"col-resize"},R=v=>{p.value.mouseDown&&(v.preventDefault(),p.value.dragging||(window.getSelection()?.removeAllRanges(),p.value.dragging=!0),requestAnimationFrame(()=>{re(oe(v)),I("resize",{event:v},!0)}))},P=v=>{p.value.dragging&&(window.getSelection()?.removeAllRanges(),I("resized",{event:v},!0)),p.value.mouseDown=!1,p.value.activeSplitter=null,setTimeout(()=>{p.value.dragging=!1,b(),document.documentElement.style.cursor=""},100)},z=(v,S)=>{"ontouchstart"in window&&(v.preventDefault(),g.value.splitter===S?(clearTimeout(g.value.timeoutId),g.value.timeoutId=null,G(v,S),g.value.splitter=null):(g.value.splitter=S,g.value.timeoutId=setTimeout(()=>g.value.splitter=null,500))),p.value.dragging||I("splitter-click",{event:v,index:S},!0)},G=(v,S)=>{if(I("splitter-dblclick",{event:v,index:S},!0),s.maximizePanes){let L=0;l.value=l.value.map((D,T)=>(D.size=T===S?D.max:D.min,T!==S&&(L+=D.min),D)),l.value[S].size-=L,I("pane-maximize",{event:v,index:S,pane:l.value[S]}),I("resized",{event:v,index:S},!0)}},ae=(v,S)=>{if(!s.keyboardStep)return;let L=s.horizontal?v.key==="ArrowDown":v.key==="ArrowRight",D=s.horizontal?v.key==="ArrowUp":v.key==="ArrowLeft";if(!L&&!D)return;v.preventDefault(),p.value.activeSplitter=S;let T=(L?1:-1)*(s.rtl&&!s.horizontal?-1:1),O=Pe(S)+l.value[S].size;Ve(Math.min(Math.max(O+T*s.keyboardStep,0),100)),I("resize",{event:v},!0),I("resized",{event:v},!0),p.value.activeSplitter=null},se=(v,S)=>{let L=d.value[S];L&&I("pane-click",{event:v,index:L.index,pane:L})},oe=v=>{let S=f.value.getBoundingClientRect(),{clientX:L,clientY:D}="ontouchstart"in window&&v.touches?v.touches[0]:v;return{x:L-(s.horizontal?0:p.value.cursorOffset)-S.left,y:D-(s.horizontal?p.value.cursorOffset:0)-S.top}},te=v=>{v=v[s.horizontal?"y":"x"];let S=f.value[s.horizontal?"clientHeight":"clientWidth"];return s.rtl&&!s.horizontal&&(v=S-v),v*100/S},re=v=>{Ve(te(v))},Ve=v=>{let S=p.value.activeSplitter;if(S===null||S>=l.value.length-1)return;let L={prevPanesSize:Pe(S),nextPanesSize:be(S),prevReachedMinPanes:0,nextReachedMinPanes:0},D=0+(s.pushOtherPanes?0:L.prevPanesSize),T=100-(s.pushOtherPanes?0:L.nextPanesSize);v=Math.max(Math.min(v,T),D);let O=[S,S+1],Z=l.value[O[0]]||null,de=l.value[O[1]]||null,ne=Z!==null&&Z.max<100&&v>=Z.max+L.prevPanesSize,Ht=de!==null&&de.max<100&&v<=100-(de.max+be(S+1));if(ne||Ht){ne?(Z.size=Z.max,de.size=Math.min(Math.max(100-Z.max-L.prevPanesSize-L.nextPanesSize,de.min),de.max)):(Z.size=Math.min(Math.max(100-de.max-L.prevPanesSize-be(S+1),Z.min),Z.max),de.size=de.max);return}if(s.pushOtherPanes){let Ei=We(L,v);if(!Ei)return;({sums:L,panesToResize:O}=Ei),Z=l.value[O[0]]||null,de=l.value[O[1]]||null}Z!==null&&(Z.size=Math.min(Math.max(v-L.prevPanesSize-L.prevReachedMinPanes,Z.min),Z.max)),de!==null&&(de.size=Math.min(Math.max(100-v-L.nextPanesSize-L.nextReachedMinPanes,de.min),de.max))},We=(v,S)=>{let L=p.value.activeSplitter,D=[L,L+1];if(S{O>D[0]&&O<=L&&(T.size=T.min,v.prevReachedMinPanes+=T.min)}),D[0]===void 0)return v.prevReachedMinPanes=0,l.value[0].size=l.value[0].min,l.value.forEach((T,O)=>{O>0&&O<=L&&(T.size=T.min,v.prevReachedMinPanes+=T.min)}),l.value[D[1]].size=100-v.prevReachedMinPanes-l.value[0].min-v.prevPanesSize-v.nextPanesSize,null;v.prevPanesSize=Pe(D[0])}return S>100-v.nextPanesSize-l.value[D[1]].min&&(D[1]=Ne(L).index,v.nextReachedMinPanes=0,D[1]>L+1&&l.value.forEach((T,O)=>{O>L&&O{O>=L+1&&(T.size=T.min,v.nextReachedMinPanes+=T.min)}),D[0]!==void 0&&(l.value[D[0]].size=100-v.prevPanesSize-be(D[0]-1)),null):{sums:v,panesToResize:D}},Pe=v=>l.value.reduce((S,L,D)=>S+(Dl.value.reduce((S,L,D)=>S+(D>v+1?L.size:0),0),Ge=v=>[...l.value].reverse().find(S=>S.indexS.min)||{},Ne=v=>l.value.find(S=>S.index>v+1&&S.size>S.min)||{},Be=()=>{let v=Array.from(f.value?.children||[]);for(let S of v){let L=S.classList.contains("splitpanes__pane"),D=S.classList.contains("splitpanes__splitter");!L&&!D&&(S.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},it=(v,S,L=!1)=>{let D=v-1,T=document.createElement("div");T.classList.add("splitpanes__splitter"),L||(T.onmousedown=O=>A(O,D),typeof window<"u"&&"ontouchstart"in window&&(T.ontouchstart=O=>A(O,D)),T.onclick=O=>z(O,D+1),s.keyboardStep&&(T.setAttribute("tabindex","0"),T.setAttribute("role","separator"),T.setAttribute("aria-orientation",s.horizontal?"horizontal":"vertical"),T.onkeydown=O=>ae(O,D))),T.ondblclick=O=>G(O,D+1),S.parentNode.insertBefore(T,S)},_t=v=>{v.onmousedown=null,v.onclick=null,v.ondblclick=null,v.onkeydown=null,v.remove()},dt=()=>{let v=Array.from(f.value?.children||[]);for(let L of v)L.className.includes("splitpanes__splitter")&&_t(L);let S=0;for(let L of v)L.className.includes("splitpanes__pane")&&(!S&&s.firstSplitter?it(S,L,!0):S&&it(S,L),S++)},wt=({uid:v,...S})=>{let L=d.value[v];for(let[D,T]of Object.entries(S))L[D]=T},pt=!1,Ct=v=>{let S=-1;Array.from(f.value?.children||[]).some(L=>(L.className.includes("splitpanes__pane")&&S++,L.isSameNode(v.el))),l.value.splice(S,0,{...v,index:S}),l.value.forEach((L,D)=>L.index=D),m.value&&!pt&&(pt=!0,Nt(()=>{dt(),Ze({addedPane:l.value[S]}),I("pane-add",{pane:l.value[S]}),pt=!1}))},kt=v=>{let S=l.value.findIndex(D=>D.id===v);l.value[S].el=null;let L=l.value.splice(S,1)[0];l.value.forEach((D,T)=>D.index=T),Nt(()=>{dt(),I("pane-remove",{pane:L}),Ze({removedPane:{...L}})})},Ze=(v={})=>{!v.addedPane&&!v.removedPane?Ke():l.value.some(S=>S.givenSize!==null||S.min||S.max<100)?N(v):nt(),m.value&&I("resized")},nt=()=>{let v=100/h.value,S=100,L=[],D=[];for(let T of l.value)T.size=Math.max(Math.min(v,T.max),T.min),S-=T.size,T.size>=T.max&&L.push(T.id),T.size<=T.min&&D.push(T.id);Math.abs(S)>.1&&$(S,L,D)},Ke=()=>{let v=100,S=[],L=[],D=0;for(let O of l.value)v-=O.size,O.givenSize!==null&&D++,O.size>=O.max&&S.push(O.id),O.size<=O.min&&L.push(O.id);let T=100;if(v>.1){for(let O of l.value)O.givenSize===null&&(O.size=Math.max(Math.min(v/(h.value-D),O.max),O.min)),T-=O.size;T>.1&&$(T,S,L)}},N=({addedPane:v,removedPane:S}={})=>{let L=l.value.reduce((ne,Ht)=>ne+(Ht.givenSize===null?0:Ht.givenSize),0),D=l.value.filter(ne=>ne.givenSize===null).length,T=D>0?(100-L)/D:0,O=0,Z=[],de=[];for(let ne of l.value)O-=ne.size,ne.size>=ne.max&&Z.push(ne.id),ne.size<=ne.min&&de.push(ne.id);if(!(Math.abs(O)<.1)){O=100;for(let ne of l.value)ne.givenSize===null&&(ne.size=Math.max(Math.min(T,ne.max),ne.min)),O-=ne.size,ne.size>=ne.max&&Z.push(ne.id),ne.size<=ne.min&&de.push(ne.id);Math.abs(O)>.1&&$(O,Z,de)}},$=(v,S,L)=>{let D;D=v>0?v/(h.value-S.length):v/(h.value-L.length),l.value.forEach((T,O)=>{if(v>0&&!S.includes(T.id)){let Z=Math.max(Math.min(T.size+D,T.max),T.min),de=Z-T.size;v-=de,T.size=Z}else if(!L.includes(T.id)){let Z=Math.max(Math.min(T.size+D,T.max),T.min),de=Z-T.size;v-=de,T.size=Z}}),Math.abs(v)>.1&&m.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")},I=(v,S=void 0,L=!1)=>{let D=S?.index??p.value.activeSplitter??null;t(v,{...S,...D!==null&&{index:D},...L&&D!==null&&{prevPane:l.value[D-+!!s.firstSplitter],nextPane:l.value[D+ +!s.firstSplitter]},panes:l.value.map(T=>({min:T.min,max:T.max,size:T.size}))})};Ae(()=>s.firstSplitter,()=>dt()),Ae(()=>s.horizontal,v=>Nt(()=>{t("direction-changed",{horizontal:v,panes:l.value.map(S=>({min:S.min,max:S.max,size:S.size}))})})),Aa(()=>{Be(),dt(),Ze(),I("ready"),m.value=!0}),ui(()=>m.value=!1);let H=()=>{let{class:v,...S}=n;return di("div",{ref:f,class:[y.value,v],...S},i.default?.())};return fe("panes",l),fe("indexedPanes",d),fe("horizontal",X(()=>s.horizontal)),fe("requestUpdate",wt),fe("onPaneAdd",Ct),fe("onPaneRemove",kt),fe("onPaneClick",se),(v,S)=>(o(),B(ft(H)))}}),dl={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){let a=e,t=we("requestUpdate"),s=we("onPaneAdd"),n=we("horizontal"),i=we("onPaneRemove"),l=we("onPaneClick"),d=fs()?.uid,h=we("indexedPanes"),f=X(()=>h.value[d]),m=Ee(null),p=X(()=>{let b=isNaN(a.size)||a.size===void 0?0:parseFloat(a.size);return Math.max(Math.min(b,y.value),g.value)}),g=X(()=>{let b=parseFloat(a.minSize);return isNaN(b)?0:b}),y=X(()=>{let b=parseFloat(a.maxSize);return isNaN(b)?100:b}),k=X(()=>{let b=f.value?.size??(a.size===void 0?void 0:p.value);return b===void 0?"":`${n.value?"height":"width"}: ${b}%`});return Ae(()=>p.value,b=>t({uid:d,size:b})),Ae(()=>g.value,b=>t({uid:d,min:b})),Ae(()=>y.value,b=>t({uid:d,max:b})),Aa(()=>{s({id:d,el:m.value,min:g.value,max:y.value,givenSize:a.size===void 0?null:p.value,size:p.value})}),ui(()=>i(d)),(b,A)=>(o(),c("div",{ref_key:"paneEl",ref:m,class:"splitpanes__pane",onClick:A[0]||=R=>Y(l)(R,b._.uid),style:le(k.value)},[q(b.$slots,"default")],4))}};const ht=typeof document<"u",Nn=/#/g,pl=/&/g,hl=/\//g,ml=/=/g,fl=/\?/g,Dn=/\+/g,gl=/%5B/g,yl=/%5D/g,Tn=/%5E/g,bl=/%60/g,En=/%7B/g,vl=/%7C/g,Bn=/%7D/g,_l=/%20/g;function bi(e){return e==null?"":encodeURI(""+e).replace(vl,"|").replace(gl,"[").replace(yl,"]")}function wl(e){return bi(e).replace(En,"{").replace(Bn,"}").replace(Tn,"^")}function Qa(e){return bi(e).replace(Dn,"%2B").replace(_l,"+").replace(Nn,"%23").replace(pl,"%26").replace(bl,"`").replace(En,"{").replace(Bn,"}").replace(Tn,"^")}function Cl(e){return Qa(e).replace(ml,"%3D")}function kl(e){return bi(e).replace(Nn,"%23").replace(fl,"%3F")}function xl(e){return kl(e).replace(hl,"%2F")}function Xt(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Sl=/\/$/,Al=e=>e.replace(Sl,"");function $a(e,a,t="/"){let s,n={},i="",l="";const d=a.indexOf("#");let h=a.indexOf("?");return h=d>=0&&h>d?-1:h,h>=0&&(s=a.slice(0,h),i=a.slice(h,d>0?d:a.length),n=e(i.slice(1))),d>=0&&(s=s||a.slice(0,d),l=a.slice(d,a.length)),s=Tl(s??a,t),{fullPath:s+i+l,path:s,query:n,hash:Xt(l)}}function Ll(e,a){const t=a.query?e(a.query):"";return a.path+(t&&"?")+t+(a.hash||"")}function $i(e,a){return!a||!e.toLowerCase().startsWith(a.toLowerCase())?e:e.slice(a.length)||"/"}function Nl(e,a,t){const s=a.matched.length-1,n=t.matched.length-1;return s>-1&&s===n&&yt(a.matched[s],t.matched[n])&&In(a.params,t.params)&&e(a.query)===e(t.query)&&a.hash===t.hash}function yt(e,a){return(e.aliasOf||e)===(a.aliasOf||a)}function In(e,a){if(Object.keys(e).length!==Object.keys(a).length)return!1;for(var t in e)if(!Dl(e[t],a[t]))return!1;return!0}function Dl(e,a){return Oe(e)?Ri(e,a):Oe(a)?Ri(a,e):(e&&e.valueOf())===(a&&a.valueOf())}function Ri(e,a){return Oe(a)?e.length===a.length&&e.every((t,s)=>t===a[s]):e.length===1&&e[0]===a}function Tl(e,a){if(e.startsWith("/"))return e;if(!e)return a;const t=a.split("/"),s=e.split("/"),n=s[s.length-1];(n===".."||n===".")&&s.push("");let i=t.length-1,l,d;for(l=0;l1&&i--;else break;return t.slice(0,i).join("/")+"/"+s.slice(l).join("/")}const Ye={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};function El(e){if(!e)if(ht){const a=document.querySelector("base");e=a&&a.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Al(e)}const Bl=/^[^#]+#/;function Il(e,a){return e.replace(Bl,"#")+a}function Ml(e,a){const t=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:a.behavior,left:s.left-t.left-(a.left||0),top:s.top-t.top-(a.top||0)}}const Ba=()=>({left:window.scrollX,top:window.scrollY});function zl(e){let a;if("el"in e){const t=e.el,s=typeof t=="string"&&t.startsWith("#"),n=typeof t=="string"?s?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!n)return;a=Ml(n,e)}else a=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(a):window.scrollTo(a.left!=null?a.left:window.scrollX,a.top!=null?a.top:window.scrollY)}function Oi(e,a){return(history.state?history.state.position-a:-1)+e}const Ja=new Map;function $l(e,a){Ja.set(e,a)}function Rl(e){const a=Ja.get(e);return Ja.delete(e),a}function Ol(e){return typeof e=="string"||e&&typeof e=="object"}function Mn(e){return typeof e=="string"||typeof e=="symbol"}function Vl(e){const a={};if(e===""||e==="?")return a;const t=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sn&&Qa(n)):[s&&Qa(s)]).forEach(n=>{n!==void 0&&(a+=(a.length?"&":"")+t,n!=null&&(a+="="+n))})}return a}function Pl(e){const a={};for(const t in e){const s=e[t];s!==void 0&&(a[t]=Oe(s)?s.map(n=>n==null?null:""+n):s==null?s:""+s)}return a}function xt(){let e=[];function a(s){return e.push(s),()=>{const n=e.indexOf(s);n>-1&&e.splice(n,1)}}function t(){e=[]}return{add:a,list:()=>e.slice(),reset:t}}function Qe(e,a,t,s,n,i=l=>l()){const l=s&&(s.enterCallbacks[n]=s.enterCallbacks[n]||[]);return()=>new Promise((d,h)=>{const f=g=>{g===!1?h(gt(4,{from:t,to:a})):g instanceof Error?h(g):Ol(g)?h(gt(2,{from:a,to:g})):(l&&s.enterCallbacks[n]===l&&typeof g=="function"&&l.push(g),d())},m=i(()=>e.call(s&&s.instances[n],a,t,f));let p=Promise.resolve(m);e.length<3&&(p=p.then(f)),p.catch(g=>h(g))})}function Ra(e,a,t,s,n=i=>i()){const i=[];for(const l of e)for(const d in l.components){let h=l.components[d];if(!(a!=="beforeRouteEnter"&&!l.instances[d]))if(gs(h)){const f=(h.__vccOpts||h)[a];f&&i.push(Qe(f,t,s,l,d,n))}else{let f=h();i.push(()=>f.then(m=>{if(!m)throw new Error(`Couldn't resolve component "${d}" at "${l.path}"`);const p=ys(m)?m.default:m;l.mods[d]=m,l.components[d]=p;const g=(p.__vccOpts||p)[a];return g&&Qe(g,t,s,l,d,n)()}))}}return i}function ql(e,a){const t=[],s=[],n=[],i=Math.max(a.matched.length,e.matched.length);for(let l=0;lyt(f,d))?s.push(d):t.push(d));const h=e.matched[l];h&&(a.matched.find(f=>yt(f,h))||n.push(h))}return[t,s,n]}let Hl=()=>location.protocol+"//"+location.host;function zn(e,a){const{pathname:t,search:s,hash:n}=a,i=e.indexOf("#");if(i>-1){let l=n.includes(e.slice(i))?e.slice(i).length:1,d=n.slice(l);return d[0]!=="/"&&(d="/"+d),$i(d,"")}return $i(t,e)+s+n}function Fl(e,a,t,s){let n=[],i=[],l=null;const d=({state:g})=>{const y=zn(e,location),k=t.value,b=a.value;let A=0;if(g){if(t.value=y,a.value=g,l&&l===k){l=null;return}A=b?g.position-b.position:0}else s(y);n.forEach(R=>{R(t.value,k,{delta:A,type:"pop",direction:A?A>0?"forward":"back":""})})};function h(){l=t.value}function f(g){n.push(g);const y=()=>{const k=n.indexOf(g);k>-1&&n.splice(k,1)};return i.push(y),y}function m(){if(document.visibilityState==="hidden"){const{history:g}=window;if(!g.state)return;g.replaceState(ie({},g.state,{scroll:Ba()}),"")}}function p(){for(const g of i)g();i=[],window.removeEventListener("popstate",d),window.removeEventListener("pagehide",m),document.removeEventListener("visibilitychange",m)}return window.addEventListener("popstate",d),window.addEventListener("pagehide",m),document.addEventListener("visibilitychange",m),{pauseListeners:h,listen:f,destroy:p}}function Pi(e,a,t,s=!1,n=!1){return{back:e,current:a,forward:t,replaced:s,position:window.history.length,scroll:n?Ba():null}}function Ul(e){const{history:a,location:t}=window,s={value:zn(e,t)},n={value:a.state};n.value||i(s.value,{back:null,current:s.value,forward:null,position:a.length-1,replaced:!0,scroll:null},!0);function i(h,f,m){const p=e.indexOf("#"),g=p>-1?(t.host&&document.querySelector("base")?e:e.slice(p))+h:Hl()+e+h;try{a[m?"replaceState":"pushState"](f,"",g),n.value=f}catch(y){console.error(y),t[m?"replace":"assign"](g)}}function l(h,f){i(h,ie({},a.state,Pi(n.value.back,h,n.value.forward,!0),f,{position:n.value.position}),!0),s.value=h}function d(h,f){const m=ie({},n.value,a.state,{forward:h,scroll:Ba()});i(m.current,m,!0),i(h,ie({},Pi(s.value,h,null),{position:m.position+1},f),!1),s.value=h}return{location:s,state:n,push:d,replace:l}}function jl(e){e=El(e);const a=Ul(e),t=Fl(e,a.state,a.location,a.replace);function s(i,l=!0){l||t.pauseListeners(),history.go(i)}const n=ie({location:"",base:e,go:s,createHref:Il.bind(null,e)},a,t);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>a.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>a.state.value}),n}function Wl(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),jl(e)}const Gl={type:0,value:""},Zl=/[a-zA-Z0-9_]/;function Kl(e){if(!e)return[[]];if(e==="/")return[[Gl]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function a(y){throw new Error(`ERR (${t})/"${f}": ${y}`)}let t=0,s=t;const n=[];let i;function l(){i&&n.push(i),i=[]}let d=0,h,f="",m="";function p(){f&&(t===0?i.push({type:0,value:f}):t===1||t===2||t===3?(i.length>1&&(h==="*"||h==="+")&&a(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:f,regexp:m,repeatable:h==="*"||h==="+",optional:h==="*"||h==="?"})):a("Invalid state to consume buffer"),f="")}function g(){f+=h}for(;da.length?a.length===1&&a[0]===80?1:-1:0}function $n(e,a){let t=0;const s=e.score,n=a.score;for(;t0&&a[a.length-1]<0}const eo={strict:!1,end:!0,sensitive:!1};function to(e,a,t){const s=Ql(Kl(e.path),t),n=ie(s,{record:e,parent:a,children:[],alias:[]});return a&&!n.record.aliasOf==!a.record.aliasOf&&a.children.push(n),n}function ao(e,a){const t=[],s=new Map;a=Bi(eo,a);function n(p){return s.get(p)}function i(p,g,y){const k=!y,b=Ui(p);b.aliasOf=y&&y.record;const A=Bi(a,p),R=[b];if("alias"in p){const G=typeof p.alias=="string"?[p.alias]:p.alias;for(const ae of G)R.push(Ui(ie({},b,{components:y?y.record.components:b.components,path:ae,aliasOf:y?y.record:b})))}let P,z;for(const G of R){const{path:ae}=G;if(g&&ae[0]!=="/"){const se=g.record.path,oe=se[se.length-1]==="/"?"":"/";G.path=g.record.path+(ae&&oe+ae)}if(P=to(G,g,A),y?y.alias.push(P):(z=z||P,z!==P&&z.alias.push(P),k&&p.name&&!ji(P)&&l(p.name)),Rn(P)&&h(P),b.children){const se=b.children;for(let oe=0;oe{l(z)}:Dt}function l(p){if(Mn(p)){const g=s.get(p);g&&(s.delete(p),t.splice(t.indexOf(g),1),g.children.forEach(l),g.alias.forEach(l))}else{const g=t.indexOf(p);g>-1&&(t.splice(g,1),p.record.name&&s.delete(p.record.name),p.children.forEach(l),p.alias.forEach(l))}}function d(){return t}function h(p){const g=so(p,t);t.splice(g,0,p),p.record.name&&!ji(p)&&s.set(p.record.name,p)}function f(p,g){let y,k={},b,A;if("name"in p&&p.name){if(y=s.get(p.name),!y)throw gt(1,{location:p});A=y.record.name,k=ie(Fi(g.params,y.keys.filter(z=>!z.optional).concat(y.parent?y.parent.keys.filter(z=>z.optional):[]).map(z=>z.name)),p.params&&Fi(p.params,y.keys.map(z=>z.name))),b=y.stringify(k)}else if(p.path!=null)b=p.path,y=t.find(z=>z.re.test(b)),y&&(k=y.parse(b),A=y.record.name,y.keys.forEach(z=>{z.optional&&!k[z.name]&&delete k[z.name]}));else{if(y=g.name?s.get(g.name):t.find(z=>z.re.test(g.path)),!y)throw gt(1,{location:p,currentLocation:g});A=y.record.name,k=ie({},g.params,p.params),b=y.stringify(k)}const R=[];let P=y;for(;P;)R.unshift(P.record),P=P.parent;return{name:A,path:b,params:k,matched:R,meta:no(R)}}e.forEach(p=>i(p));function m(){t.length=0,s.clear()}return{addRoute:i,resolve:f,removeRoute:l,clearRoutes:m,getRoutes:d,getRecordMatcher:n}}function Fi(e,a){const t={};for(const s of a)s in e&&(t[s]=e[s]);return t}function Ui(e){const a={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:io(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(a,"mods",{value:{}}),a}function io(e){const a={},t=e.props||!1;if("component"in e)a.default=t;else for(const s in e.components)a[s]=typeof t=="object"?t[s]:t;return a}function ji(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function no(e){return e.reduce((a,t)=>ie(a,t.meta),{})}function so(e,a){let t=0,s=a.length;for(;t!==s;){const i=t+s>>1;$n(e,a[i])<0?s=i:t=i+1}const n=lo(e);return n&&(s=a.lastIndexOf(n,s-1)),s}function lo(e){let a=e;for(;a=a.parent;)if(Rn(a)&&$n(e,a)===0)return a}function Rn({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Wi(e){const a=we(pi),t=we(hn),s=X(()=>{const h=Y(e.to);return a.resolve(h)}),n=X(()=>{const{matched:h}=s.value,{length:f}=h,m=h[f-1],p=t.matched;if(!m||!p.length)return-1;const g=p.findIndex(yt.bind(null,m));if(g>-1)return g;const y=Gi(h[f-2]);return f>1&&Gi(m)===y&&p[p.length-1].path!==y?p.findIndex(yt.bind(null,h[f-2])):g}),i=X(()=>n.value>-1&&uo(t.params,s.value.params)),l=X(()=>n.value>-1&&n.value===t.matched.length-1&&In(t.params,s.value.params));function d(h={}){if(co(h)){const f=a[Y(e.replace)?"replace":"push"](Y(e.to)).catch(Dt);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:s,href:X(()=>s.value.href),isActive:i,isExactActive:l,navigate:d}}function oo(e){return e.length===1?e[0]:e}const ro=ye({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Wi,setup(e,{slots:a}){const t=mn(Wi(e)),{options:s}=we(pi),n=X(()=>({[Zi(e.activeClass,s.linkActiveClass,"router-link-active")]:t.isActive,[Zi(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const i=a.default&&oo(a.default(t));return e.custom?i:di("a",{"aria-current":t.isExactActive?e.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:n.value},i)}}});function co(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const a=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(a))return}return e.preventDefault&&e.preventDefault(),!0}}function uo(e,a){for(const t in a){const s=a[t],n=e[t];if(typeof s=="string"){if(s!==n)return!1}else if(!Oe(n)||n.length!==s.length||s.some((i,l)=>i.valueOf()!==n[l].valueOf()))return!1}return!0}function Gi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Zi=(e,a,t)=>e??a??t,po=ye({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:a,slots:t}){const s=we(Wa),n=X(()=>e.route||s.value),i=we(Ii,0),l=X(()=>{let f=Y(i);const{matched:m}=n.value;let p;for(;(p=m[f])&&!p.components;)f++;return f}),d=X(()=>n.value.matched[l.value]);fe(Ii,X(()=>l.value+1)),fe(_s,d),fe(Wa,n);const h=Ee();return Ae(()=>[h.value,d.value,e.name],([f,m,p],[g,y,k])=>{m&&(m.instances[p]=f,y&&y!==m&&f&&f===g&&(m.leaveGuards.size||(m.leaveGuards=y.leaveGuards),m.updateGuards.size||(m.updateGuards=y.updateGuards))),f&&m&&(!y||!yt(m,y)||!g)&&(m.enterCallbacks[p]||[]).forEach(b=>b(f))},{flush:"post"}),()=>{const f=n.value,m=e.name,p=d.value,g=p&&p.components[m];if(!g)return Ki(t.default,{Component:g,route:f});const y=p.props[m],k=y?y===!0?f.params:typeof y=="function"?y(f):y:null,b=di(g,ie({},k,a,{onVnodeUnmounted:A=>{A.component.isUnmounted&&(p.instances[m]=null)},ref:h}));return Ki(t.default,{Component:b,route:f})||b}}});function Ki(e,a){if(!e)return null;const t=e(a);return t.length===1?t[0]:t}const ho=po;function mo(e){const a=ao(e.routes,e),t=e.parseQuery||Vl,s=e.stringifyQuery||Vi,n=e.history,i=xt(),l=xt(),d=xt(),h=vs(Ye);let f=Ye;ht&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const m=za.bind(null,N=>""+N),p=za.bind(null,xl),g=za.bind(null,Xt);function y(N,$){let I,H;return Mn(N)?(I=a.getRecordMatcher(N),H=$):H=N,a.addRoute(H,I)}function k(N){const $=a.getRecordMatcher(N);$&&a.removeRoute($)}function b(){return a.getRoutes().map(N=>N.record)}function A(N){return!!a.getRecordMatcher(N)}function R(N,$){if($=ie({},$||h.value),typeof N=="string"){const D=$a(t,N,$.path),T=a.resolve({path:D.path},$),O=n.createHref(D.fullPath);return ie(D,T,{params:g(T.params),redirectedFrom:void 0,href:O})}let I;if(N.path!=null)I=ie({},N,{path:$a(t,N.path,$.path).path});else{const D=ie({},N.params);for(const T in D)D[T]==null&&delete D[T];I=ie({},N,{params:p(D)}),$.params=p($.params)}const H=a.resolve(I,$),v=N.hash||"";H.params=m(g(H.params));const S=Ll(s,ie({},N,{hash:wl(v),path:H.path})),L=n.createHref(S);return ie({fullPath:S,hash:v,query:s===Vi?Pl(N.query):N.query||{}},H,{redirectedFrom:void 0,href:L})}function P(N){return typeof N=="string"?$a(t,N,h.value.path):ie({},N)}function z(N,$){if(f!==N)return gt(8,{from:$,to:N})}function G(N){return oe(N)}function ae(N){return G(ie(P(N),{replace:!0}))}function se(N,$){const I=N.matched[N.matched.length-1];if(I&&I.redirect){const{redirect:H}=I;let v=typeof H=="function"?H(N,$):H;return typeof v=="string"&&(v=v.includes("?")||v.includes("#")?v=P(v):{path:v},v.params={}),ie({query:N.query,hash:N.hash,params:v.path!=null?{}:N.params},v)}}function oe(N,$){const I=f=R(N),H=h.value,v=N.state,S=N.force,L=N.replace===!0,D=se(I,H);if(D)return oe(ie(P(D),{state:typeof D=="object"?ie({},v,D.state):v,force:S,replace:L}),$||I);const T=I;T.redirectedFrom=$;let O;return!S&&Nl(s,H,I)&&(O=gt(16,{to:T,from:H}),pt(H,H,!0,!1)),(O?Promise.resolve(O):Ve(T,H)).catch(Z=>qe(Z)?qe(Z,2)?Z:wt(Z):_t(Z,T,H)).then(Z=>{if(Z){if(qe(Z,2))return oe(ie({replace:L},P(Z.to),{state:typeof Z.to=="object"?ie({},v,Z.to.state):v,force:S}),$||T)}else Z=Pe(T,H,!0,L,v);return We(T,H,Z),Z})}function te(N,$){const I=z(N,$);return I?Promise.reject(I):Promise.resolve()}function re(N){const $=Ze.values().next().value;return $&&typeof $.runWithContext=="function"?$.runWithContext(N):N()}function Ve(N,$){let I;const[H,v,S]=ql(N,$);I=Ra(H.reverse(),"beforeRouteLeave",N,$);for(const D of H)D.leaveGuards.forEach(T=>{I.push(Qe(T,N,$))});const L=te.bind(null,N,$);return I.push(L),Ke(I).then(()=>{I=[];for(const D of i.list())I.push(Qe(D,N,$));return I.push(L),Ke(I)}).then(()=>{I=Ra(v,"beforeRouteUpdate",N,$);for(const D of v)D.updateGuards.forEach(T=>{I.push(Qe(T,N,$))});return I.push(L),Ke(I)}).then(()=>{I=[];for(const D of S)if(D.beforeEnter)if(Oe(D.beforeEnter))for(const T of D.beforeEnter)I.push(Qe(T,N,$));else I.push(Qe(D.beforeEnter,N,$));return I.push(L),Ke(I)}).then(()=>(N.matched.forEach(D=>D.enterCallbacks={}),I=Ra(S,"beforeRouteEnter",N,$,re),I.push(L),Ke(I))).then(()=>{I=[];for(const D of l.list())I.push(Qe(D,N,$));return I.push(L),Ke(I)}).catch(D=>qe(D,8)?D:Promise.reject(D))}function We(N,$,I){d.list().forEach(H=>re(()=>H(N,$,I)))}function Pe(N,$,I,H,v){const S=z(N,$);if(S)return S;const L=$===Ye,D=ht?history.state:{};I&&(H||L?n.replace(N.fullPath,ie({scroll:L&&D&&D.scroll},v)):n.push(N.fullPath,v)),h.value=N,pt(N,$,I,L),wt()}let be;function Ge(){be||(be=n.listen((N,$,I)=>{if(!nt.listening)return;const H=R(N),v=se(H,nt.currentRoute.value);if(v){oe(ie(v,{replace:!0,force:!0}),H).catch(Dt);return}f=H;const S=h.value;ht&&$l(Oi(S.fullPath,I.delta),Ba()),Ve(H,S).catch(L=>qe(L,12)?L:qe(L,2)?(oe(ie(P(L.to),{force:!0}),H).then(D=>{qe(D,20)&&!I.delta&&I.type==="pop"&&n.go(-1,!1)}).catch(Dt),Promise.reject()):(I.delta&&n.go(-I.delta,!1),_t(L,H,S))).then(L=>{L=L||Pe(H,S,!1),L&&(I.delta&&!qe(L,8)?n.go(-I.delta,!1):I.type==="pop"&&qe(L,20)&&n.go(-1,!1)),We(H,S,L)}).catch(Dt)}))}let Ne=xt(),Be=xt(),it;function _t(N,$,I){wt(N);const H=Be.list();return H.length?H.forEach(v=>v(N,$,I)):console.error(N),Promise.reject(N)}function dt(){return it&&h.value!==Ye?Promise.resolve():new Promise((N,$)=>{Ne.add([N,$])})}function wt(N){return it||(it=!N,Ge(),Ne.list().forEach(([$,I])=>N?I(N):$()),Ne.reset()),N}function pt(N,$,I,H){const{scrollBehavior:v}=e;if(!ht||!v)return Promise.resolve();const S=!I&&Rl(Oi(N.fullPath,0))||(H||!I)&&history.state&&history.state.scroll||null;return Nt().then(()=>v(N,$,S)).then(L=>N===h.value&&L&&zl(L)).catch(L=>N===h.value&&_t(L,N,$))}const Ct=N=>n.go(N);let kt;const Ze=new Set,nt={currentRoute:h,listening:!0,addRoute:y,removeRoute:k,clearRoutes:a.clearRoutes,hasRoute:A,getRoutes:b,resolve:R,options:e,push:G,replace:ae,go:Ct,back:()=>Ct(-1),forward:()=>Ct(1),beforeEach:i.add,beforeResolve:l.add,afterEach:d.add,onError:Be.add,isReady:dt,install(N){N.component("RouterLink",ro),N.component("RouterView",ho),N.config.globalProperties.$router=nt,Object.defineProperty(N.config.globalProperties,"$route",{enumerable:!0,get:()=>Y(h)}),ht&&!kt&&h.value===Ye&&(kt=!0,G(n.location).catch(H=>{}));const $={};for(const H in Ye)Object.defineProperty($,H,{get:()=>h.value[H],enumerable:!0});N.provide(pi,nt),N.provide(hn,bs($)),N.provide(Wa,h);const I=N.unmount;Ze.add(N),N.unmount=function(){Ze.delete(N),Ze.size<1&&(f=Ye,be&&be(),be=null,h.value=Ye,kt=!1,it=!1),I()}}};function Ke(N){return N.reduce(($,I)=>$.then(()=>re(I)),Promise.resolve())}return nt}function fo(e){let a=!1,t;return(...s)=>(a||(a=!0,t=e(...s)),t)}let On="missing-app-name";try{On=ps}catch{Ie.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const go=On;let yo="";try{yo=hs}catch{Ie.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}function Vn(){return we("appName",go)}const bo=fo(()=>{const e=Sa("core","apps",[]),a=Vn();return e.find(({id:t})=>t===a)?.name??a});Le(ks);const vo=ye({__name:"NcAppContentDetailsToggle",setup(e){const a=Pt();Ae(a,t),Aa(()=>{t(a.value)}),ui(()=>{a.value&&t(!1)});function t(s=!0){const n=document.querySelector(".app-navigation .app-navigation-toggle");n&&(n.style.display=s?"none":"",s===!0&&ot("toggle-navigation",{open:!1}))}return(s,n)=>(o(),B(Y(ge),{"aria-label":Y(j)("Go back to the list"),class:U(["app-details-toggle",{"app-details-toggle--mobile":Y(a)}]),title:Y(j)("Go back to the list"),variant:"tertiary"},{icon:x(()=>[_(Y(Se),{directional:"",path:Y(gn)},null,8,["path"])]),_:1},8,["aria-label","class","title"]))}}),_o=ee(vo,[["__scopeId","data-v-a28923a1"]]),Yi=fn("nextcloud").persist().build(),wo=yi().theming?.name??"Nextcloud",Co={name:"NcAppContent",components:{NcAppContentDetailsToggle:_o,Pane:dl,Splitpanes:ul},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(e){return["no-split","vertical-split","horizontal-split"].includes(e)}},pageHeading:{type:String,default:null},pageTitle:{type:String,default:null}},emits:["update:showDetails","resizeList"],setup(){return{appName:Vn(),localizedAppName:bo(),isMobile:Pt(),isRtl:Cs}},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 Ie.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 e=new Set;if(this.pageTitle)for(const a of this.pageTitle.split(" - "))e.add(a);else if(this.pageHeading){for(const a of this.pageHeading.split(" - "))e.add(a);e.size>0&&e.add(this.localizedAppName)}else return null;return e.add(wo),[...e.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=ws(this.$el,{onSwipeEnd:this.handleSwipe})),this.restorePaneConfig()},methods:{handleSwipe(e,a){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&a==="right"?ot("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&a==="left"&&ot("toggle-navigation",{open:!1}))},handlePaneResize(e){const a=parseInt(e.panes[0].size,10);Yi.setItem(this.paneConfigID,JSON.stringify(a)),this.listPaneSize=a,this.$emit("resizeList",{size:a}),Ie.debug("[NcAppContent] pane config",{listPaneSize:a})},restorePaneConfig(){const e=parseInt(Yi.getItem(this.paneConfigID),10);if(!isNaN(e)&&e!==this.listPaneSize)return Ie.debug("[NcAppContent] pane config",{listPaneSize:e}),this.listPaneSize=e,e},hideDetails(){this.$emit("update:showDetails",!1)}}},ko={key:0,class:"hidden-visually"},xo={class:"app-content-wrapper__list"},So={key:1,class:"app-content-wrapper"};function Ao(e,a,t,s,n,i){const l=w("NcAppContentDetailsToggle"),d=w("Pane"),h=w("Splitpanes");return o(),c("main",{id:"app-content-vue",class:U(["app-content no-snapper",{"app-content--has-list":!!e.$slots.list}])},[t.pageHeading?(o(),c("h1",ko,u(t.pageHeading),1)):C("",!0),e.$slots.list?(o(),c(K,{key:1},[s.isMobile||t.layout==="no-split"?(o(),c("div",{key:0,class:U(["app-content-wrapper app-content-wrapper--no-split",{"app-content-wrapper--show-details":t.showDetails,"app-content-wrapper--show-list":!t.showDetails,"app-content-wrapper--mobile":s.isMobile}])},[t.showDetails?(o(),B(l,{key:0,onClick:he(i.hideDetails,["stop","prevent"])},null,8,["onClick"])):C("",!0),xe(r("div",xo,[q(e.$slots,"list",{},void 0,!0)],512),[[et,!t.showDetails]]),t.showDetails?q(e.$slots,"default",{key:1},void 0,!0):C("",!0)],2)):t.layout==="vertical-split"||t.layout==="horizontal-split"?(o(),c("div",So,[_(h,{horizontal:t.layout==="horizontal-split",class:U(["default-theme",{"splitpanes--horizontal":t.layout==="horizontal-split","splitpanes--vertical":t.layout==="vertical-split"}]),rtl:s.isRtl,onResized:i.handlePaneResize},{default:x(()=>[_(d,{class:"splitpanes__pane-list",size:n.listPaneSize||i.paneDefaults.list.size,minSize:i.paneDefaults.list.min,maxSize:i.paneDefaults.list.max},{default:x(()=>[q(e.$slots,"list",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"]),_(d,{class:"splitpanes__pane-details",size:i.detailsPaneSize,minSize:i.paneDefaults.details.min,maxSize:i.paneDefaults.details.max},{default:x(()=>[q(e.$slots,"default",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"])]),_:3},8,["horizontal","class","rtl","onResized"])])):C("",!0)],64)):C("",!0),e.$slots.list?C("",!0):q(e.$slots,"default",{key:2},void 0,!0)],2)}const Lo=ee(Co,[["render",Ao],["__scopeId","data-v-51427d61"]]),No={name:"NcAppNavigationList"},Do={class:"app-navigation-list"};function To(e,a,t,s,n,i){return o(),c("ul",Do,[q(e.$slots,"default",{},void 0,!0)])}const Eo=ee(No,[["render",To],["__scopeId","data-v-d72957ed"]]),Pn=Symbol.for("NcContent:setHasAppNavigation"),qn=Symbol.for("NcContent:selector");Le(xs);const Bo={class:"app-navigation-toggle-wrapper"},Io=ye({__name:"NcAppNavigationToggle",props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:["update:open"],setup(e){const a=ut(e,"open"),t=X(()=>a.value?j("Close navigation"):j("Open navigation"));return(s,n)=>(o(),c("div",Bo,[_(Y(ge),{class:"app-navigation-toggle","aria-controls":"app-navigation-vue","aria-expanded":a.value?"true":"false","aria-label":t.value,title:t.value,variant:"tertiary",onClick:n[0]||(n[0]=i=>a.value=!a.value)},{icon:x(()=>[_(Se,{path:a.value?Y(Ns):Y(Ds)},null,8,["path"])]),_:1},8,["aria-expanded","aria-label","title"])]))}}),Mo=ee(Io,[["__scopeId","data-v-5a15295d"]]),zo=["aria-hidden","aria-label","aria-labelledby","inert"],$o={class:"app-navigation__search"},Ro=ye({__name:"NcAppNavigation",props:{ariaLabel:{},ariaLabelledby:{}},setup(e){const a=e;let t;const s=we(Pn,()=>Ls(),!1),n=La("appNavigationContainer"),i=Pt(),l=Ee(!i.value),d=X(()=>i.value&&l.value);Ss(()=>{!a.ariaLabel&&a.ariaLabelledby}),Ae(i,()=>{l.value=!i.value}),Ae(d,()=>{m()}),Aa(()=>{s(!0),Gt("toggle-navigation",f),ot("navigation-toggled",{open:l.value}),t=yn(n.value,{allowOutsideClick:!0,clickOutsideDeactivates:()=>(i.value&&(t.deactivate({returnFocus:!1}),h(!1)),!1),fallbackFocus:n.value,trapStack:bn(),escapeDeactivates:!1}),m()}),As(()=>{s(!1),Zt("toggle-navigation",f),t.deactivate()});function h(g){if(l.value===g){ot("navigation-toggled",{open:l.value});return}l.value=g===void 0?!l.value:g;const y=getComputedStyle(document.body),k=parseInt(y.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{ot("navigation-toggled",{open:l.value})},1.5*k)}function f({open:g}){return h(g)}function m(){d.value?t.activate():t.deactivate()}function p(){i.value&&h(!1)}return(g,y)=>(o(),c("div",{ref:"appNavigationContainer",class:U(["app-navigation",{"app-navigation--closed":!l.value,"app-navigation--legacy":Y(at)}])},[r("nav",{id:"app-navigation-vue","aria-hidden":l.value?"false":"true","aria-label":e.ariaLabel||void 0,"aria-labelledby":e.ariaLabelledby||void 0,class:"app-navigation__content",inert:!l.value||void 0,onKeydown:Ce(p,["esc"])},[r("div",$o,[q(g.$slots,"search",{},void 0,!0)]),r("div",{class:U(["app-navigation__body",{"app-navigation__body--no-list":!g.$slots.list}])},[q(g.$slots,"default",{},void 0,!0)],2),g.$slots.list?(o(),B(Eo,{key:0,class:"app-navigation__list"},{default:x(()=>[q(g.$slots,"list",{},void 0,!0)]),_:3})):C("",!0),q(g.$slots,"footer",{},void 0,!0)],40,zo),_(Mo,{open:l.value,"onUpdate:open":h},null,8,["open"])],2))}}),Oo=ee(Ro,[["__scopeId","data-v-1344f70d"]]),Vo={name:"NcAppNavigationCaption",components:{NcActions:rt},props:{name:{type:String,required:!0},headingId:{type:String,default:null},isHeading:{type:Boolean,default:!1},headingLevel:{type:Number,default:2},...rt.props},computed:{actionsProps(){const e=Object.keys(rt.props),a=Object.entries(this.$props).filter(([t,s])=>e.includes(t));return Object.fromEntries(a)},wrapperTag(){return this.isHeading?"div":"li"},captionTag(){const e=Math.max(2,this.headingLevel);return this.isHeading?`h${e}`:"span"}}},Po={key:0,class:"app-navigation-caption__actions"};function qo(e,a,t,s,n,i){const l=w("NcActions");return o(),B(ft(i.wrapperTag),{class:U(["app-navigation-caption",{"app-navigation-caption--heading":t.isHeading}])},{default:x(()=>[(o(),B(ft(i.captionTag),{id:t.headingId,class:"app-navigation-caption__name"},{default:x(()=>[V(u(t.name),1)]),_:1},8,["id"])),e.$slots.actions?(o(),c("div",Po,[_(l,hi(mi(i.actionsProps)),{icon:x(()=>[q(e.$slots,"actionsTriggerIcon",{},void 0,!0)]),default:x(()=>[q(e.$slots,"actions",{},void 0,!0)]),_:3},16)])):C("",!0)]),_:3},8,["class"])}const Ho=ee(Vo,[["render",qo],["__scopeId","data-v-f0e411c2"]]),Fo={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Uo=["aria-hidden","aria-label"],jo=["fill","width","height"],Wo={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},Go={key:0};function Zo(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Wo,[t.title?(o(),c("title",Go,u(t.title),1)):C("",!0)])],8,jo))],16,Uo)}const Ko=ee(Fo,[["render",Zo]]),Yo={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xo=["aria-hidden","aria-label"],Qo=["fill","width","height"],Jo={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},er={key:0};function tr(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Jo,[t.title?(o(),c("title",er,u(t.title),1)):C("",!0)])],8,Qo))],16,Xo)}const Hn=ee(Yo,[["render",tr]]);Le(Ts);const ar={name:"NcInputConfirmCancel",components:{IconArrowRight:Hn,IconClose:vn,NcButton:ge},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},modelValue:{default:"",type:String}},emits:["cancel","confirm","update:modelValue"],setup(){return{isLegacy34:at}},data(){return{labelConfirm:j("Confirm changes"),labelCancel:j("Cancel changes")}},computed:{valueModel:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}},ir=["placeholder"];function nr(e,a,t,s,n,i){const l=w("IconArrowRight"),d=w("NcButton"),h=w("IconClose");return o(),c("div",{class:U(["app-navigation-input-confirm",{"app-navigation-input-confirm--legacy":s.isLegacy34}])},[r("form",{onSubmit:a[1]||(a[1]=he((...f)=>i.confirm&&i.confirm(...f),["prevent"])),onKeydown:a[2]||(a[2]=Ce(he((...f)=>i.cancel&&i.cancel(...f),["exact","stop","prevent"]),["esc"])),onClick:a[3]||(a[3]=he(()=>{},["stop","prevent"]))},[xe(r("input",{ref:"input","onUpdate:modelValue":a[0]||(a[0]=f=>i.valueModel=f),type:"text",class:"app-navigation-input-confirm__input",placeholder:t.placeholder},null,8,ir),[[Es,i.valueModel]]),_(d,{"aria-label":n.labelConfirm,type:"submit",variant:"primary",onClick:he(i.confirm,["stop","prevent"])},{icon:x(()=>[_(l,{size:20})]),_:1},8,["aria-label","onClick"]),_(d,{"aria-label":n.labelCancel,type:"reset",variant:t.primary?"primary":"tertiary",onClick:he(i.cancel,["stop","prevent"])},{icon:x(()=>[_(h,{size:20})]),_:1},8,["aria-label","variant","onClick"])],32)],2)}const sr=ee(ar,[["render",nr],["__scopeId","data-v-6926a0b8"]]),lr={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?.()[0].children?.trim?.()||""}}},Ia={mixins:[lr],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null}},inject:{closeMenu:{from:Bs}},emits:["click"],created(){"ariaHidden"in this.$attrs},computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(e){this.$emit("click",e),this.closeAfterClick&&this.closeMenu(!1)}}},or={name:"NcActionButton",components:{NcIconSvgWrapper:Se},mixins:[Ia],inject:{isInSemanticMenu:{from:Na,default:!1}},props:{disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:e=>["button","checkbox","radio","reset","submit"].includes(e)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},emits:["update:modelValue"],setup(){return{mdiCheck:Yt,mdiChevronRight:Is}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const e={};return this.isInSemanticMenu?(e.role="menuitem",this.type==="radio"?(e.role="menuitemradio",e["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(e.role="menuitemcheckbox",e["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(e["aria-pressed"]=this.modelValue?"true":"false"),e}},methods:{handleClick(e){this.onClick(e),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}},rr=["role"],cr=["aria-label","disabled","title","type"],ur={class:"action-button__longtext-wrapper"},dr={key:0,class:"action-button__name"},pr=["textContent"],hr={key:2,class:"action-button__text"},mr=["textContent"],fr={key:2,class:"action-button__pressed-icon material-design-icon"};function gr(e,a,t,s,n,i){const l=w("NcIconSvgWrapper");return o(),c("li",{class:U(["action",{"action--disabled":t.disabled}]),role:i.isInSemanticMenu&&"presentation"},[r("button",J({"aria-label":e.ariaLabel,class:["action-button button-vue",{"action-button--active":i.isChecked,focusable:i.isFocusable}],disabled:t.disabled,title:e.title,type:i.nativeType},i.buttonAttributes,{onClick:a[0]||(a[0]=(...d)=>i.handleClick&&i.handleClick(...d))}),[q(e.$slots,"icon",{},()=>[r("span",{class:U([[e.isIconUrl?"action-button__icon--url":e.icon],"action-button__icon"]),style:le({backgroundImage:e.isIconUrl?`url(${e.icon})`:null}),"aria-hidden":"true"},null,6)],!0),r("span",ur,[e.name?(o(),c("strong",dr,u(e.name),1)):C("",!0),e.isLongText?(o(),c("span",{key:1,class:"action-button__longtext",textContent:u(e.text)},null,8,pr)):(o(),c("span",hr,u(e.text),1)),t.description?(o(),c("span",{key:3,class:"action-button__description",textContent:u(t.description)},null,8,mr)):C("",!0)]),t.isMenu?(o(),B(l,{key:0,class:"action-button__menu-icon",directional:"",path:s.mdiChevronRight},null,8,["path"])):i.isChecked?(o(),B(l,{key:1,path:s.mdiCheck,class:"action-button__pressed-icon"},null,8,["path"])):i.isChecked===!1?(o(),c("span",fr)):C("",!0),C("",!0)],16,cr)],10,rr)}const Fn=ee(or,[["render",gr],["__scopeId","data-v-6c2daf4e"]]),vi=ye({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}}),yr={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},br=["aria-hidden","aria-label"],vr=["fill","width","height"],_r={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"},wr={key:0};function Cr(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",_r,[t.title?(o(),c("title",wr,u(t.title),1)):C("",!0)])],8,vr))],16,br)}const kr=ee(yr,[["render",Cr]]),xr={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sr=["aria-hidden","aria-label"],Ar=["fill","width","height"],Lr={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"},Nr={key:0};function Dr(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon undo-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Lr,[t.title?(o(),c("title",Nr,u(t.title),1)):C("",!0)])],8,Ar))],16,Sr)}const Tr=ee(xr,[["render",Dr]]);Le(Ms);const Er={name:"NcAppNavigationIconCollapsible",components:{NcButton:ge,ChevronDown:$s,ChevronUp:Ko},props:{open:{type:Boolean,required:!0},active:{type:Boolean,required:!0}},emits:["click"],setup(){return{isLegacy34:at}},computed:{labelButton(){return this.open?j("Collapse menu"):j("Open menu")}},methods:{onClick(e){this.$emit("click",e)}}};function Br(e,a,t,s,n,i){const l=w("ChevronUp"),d=w("ChevronDown"),h=w("NcButton");return o(),B(h,{class:U(["icon-collapse",{"icon-collapse--active":t.active,"icon-collapse--open":t.open}]),"aria-label":i.labelButton,variant:t.active&&s.isLegacy34?"tertiary-on-primary":"tertiary",onClick:i.onClick},{icon:x(()=>[t.open?(o(),B(l,{key:0,size:20})):(o(),B(d,{key:1,size:20}))]),_:1},8,["class","aria-label","variant","onClick"])}const Ir=ee(Er,[["render",Br],["__scopeId","data-v-cfbd3794"]]);Le(zs,_n);const Mr={name:"NcAppNavigationItem",components:{NcActions:rt,NcActionButton:Fn,NcAppNavigationIconCollapsible:Ir,NcInputConfirmCancel:sr,NcLoadingIcon:Da,NcVNodes:vi,Pencil:kr,Undo:Tr},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>bt(),validator:e=>e.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:Pt(),isLegacy34:at}},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:j("Edit item")},undoButtonAriaLabel(){return j("Undo changes")}},watch:{open(e){this.opened=e}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},methods:{onMenuToggle(e){this.$emit("update:menuOpen",e),this.menuOpenLocalValue=e},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.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(e){this.$refs.actions&&(this.focused?(e.preventDefault(),this.$refs.actions.$refs.triggerButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.triggerButton.$el.blur())},isExternal(e){return e&&e.match(/[a-z]+:\/\//i)}}},zr=["id"],$r=["aria-current","aria-description","aria-expanded","href","target","title","onClick"],Rr={key:0,class:"editingContainer"},Or={key:1,class:"app-navigation-entry__deleted"},Vr={class:"app-navigation-entry__deleted-description"},Pr={key:0,class:"app-navigation-entry__counter-wrapper"},qr={key:0,class:"app-navigation-entry__children"};function Hr(e,a,t,s,n,i){const l=w("NcLoadingIcon"),d=w("NcInputConfirmCancel"),h=w("Pencil"),f=w("NcActionButton"),m=w("Undo"),p=w("NcActions"),g=w("NcAppNavigationIconCollapsible");return o(),c("li",{id:t.id,class:U([{"app-navigation-entry--opened":n.opened,"app-navigation-entry--pinned":t.pinned,"app-navigation-entry--collapsible":t.allowCollapse&&!!e.$slots.default},"app-navigation-entry-wrapper"])},[(o(),B(ft(i.isRouterLink?"router-link":"NcVNodes"),hi(mi({...i.isRouterLink&&{custom:!0,to:t.to}})),{default:x(({href:y,navigate:k,isActive:b})=>[r("div",{class:U(["app-navigation-entry",{"app-navigation-entry--editing":n.editingActive,"app-navigation-entry--deleted":t.undo,"app-navigation-entry--legacy":s.isLegacy34,active:t.to&&b||t.active}])},[t.undo?C("",!0):(o(),c("a",{key:0,class:"app-navigation-entry-link","aria-current":t.active||t.to&&b?"page":void 0,"aria-description":t.ariaDescription,"aria-expanded":e.$slots.default?n.opened.toString():void 0,href:t.href||y||"#",target:i.isExternal(t.href)?"_blank":void 0,title:t.title||t.name,onBlur:a[1]||(a[1]=(...A)=>i.handleBlur&&i.handleBlur(...A)),onClick:A=>i.onClick(A,k,y),onFocus:a[2]||(a[2]=(...A)=>i.handleFocus&&i.handleFocus(...A)),onKeydown:a[3]||(a[3]=Ce(he((...A)=>i.handleTab&&i.handleTab(...A),["exact"]),["tab"]))},[r("div",{class:U(["app-navigation-entry-icon",{[t.icon]:t.icon}])},[t.loading?(o(),B(l,{key:0})):q(e.$slots,"icon",{key:1,active:t.active||t.to&&b},void 0,!0)],2),r("span",{class:U(["app-navigation-entry__name",{"hidden-visually":n.editingActive}])},u(t.name),3),n.editingActive?(o(),c("div",Rr,[_(d,{ref:"editingInput",modelValue:n.editingValue,"onUpdate:modelValue":a[0]||(a[0]=A=>n.editingValue=A),placeholder:t.editPlaceholder!==""?t.editPlaceholder:t.name,primary:t.to&&b||t.active,onCancel:i.cancelEditing,onConfirm:i.handleEditingDone},null,8,["modelValue","placeholder","primary","onCancel","onConfirm"])])):C("",!0)],40,$r)),t.undo?(o(),c("div",Or,[r("div",Vr,u(t.name),1)])):C("",!0),(e.$slots.actions||e.$slots.counter||t.editable||t.undo)&&!n.editingActive?(o(),c("div",{key:2,class:U(["app-navigation-entry__utils",{"app-navigation-entry__utils--display-actions":t.forceDisplayActions||n.menuOpenLocalValue||t.menuOpen}])},[e.$slots.counter?(o(),c("div",Pr,[q(e.$slots,"counter",{},void 0,!0)])):C("",!0),e.$slots.actions||t.editable&&!n.editingActive||t.undo?(o(),B(p,{key:1,ref:"actions",class:"app-navigation-entry__actions",container:"#app-navigation-vue",boundariesElement:n.actionsBoundariesElement,inline:t.inlineActions,placement:t.menuPlacement,open:t.menuOpen,forceMenu:t.forceMenu,defaultIcon:t.menuIcon,variant:"tertiary","onUpdate:open":i.onMenuToggle},{icon:x(()=>[q(e.$slots,"menu-icon",{},void 0,!0)]),default:x(()=>[t.editable&&!n.editingActive?(o(),B(f,{key:0,"aria-label":i.editButtonAriaLabel,onClick:i.handleEdit},{icon:x(()=>[_(h,{size:20})]),default:x(()=>[V(" "+u(t.editLabel),1)]),_:1},8,["aria-label","onClick"])):C("",!0),t.undo?(o(),B(f,{key:1,"aria-label":i.undoButtonAriaLabel,onClick:i.handleUndo},{icon:x(()=>[_(m,{size:20})]),_:1},8,["aria-label","onClick"])):C("",!0),q(e.$slots,"actions",{},void 0,!0)]),_:3},8,["boundariesElement","inline","placement","open","forceMenu","defaultIcon","onUpdate:open"])):C("",!0)],2)):C("",!0),t.allowCollapse&&e.$slots.default?(o(),B(g,{key:3,active:t.to&&b||t.active,open:n.opened,onClick:he(i.toggleCollapse,["prevent","stop"])},null,8,["active","open","onClick"])):C("",!0),q(e.$slots,"extra",{},void 0,!0)],2)]),_:3},16)),i.canHaveChildren&&e.$slots.default?(o(),c("ul",qr,[q(e.$slots,"default",{},void 0,!0)])):C("",!0)],10,zr)}const Fr=ee(Mr,[["render",Hr],["__scopeId","data-v-fcab058b"]]),Ur={components:{NcButton:ge},props:{buttonId:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1},text:{type:String,required:!0},variant:{type:String,default:"primary",validator(e){return["primary","secondary","tertiary"].indexOf(e)!==-1}}},emits:["click"]},jr={class:"app-navigation-new"};function Wr(e,a,t,s,n,i){const l=w("NcButton");return o(),c("div",jr,[_(l,{id:t.buttonId,disabled:t.disabled,variant:t.variant,onClick:a[0]||(a[0]=d=>e.$emit("click"))},{icon:x(()=>[q(e.$slots,"icon",{},void 0,!0)]),default:x(()=>[V(" "+u(t.text),1)]),_:3},8,["id","disabled","variant"])])}const Gr=ee(Ur,[["render",Wr],["__scopeId","data-v-0ba6c9df"]]);Le(Rs);const Zr=` @@ -28,7 +28,7 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a -`,Kr=` @@ -54,10 +54,10 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a -`,Yr={class:"vue-skip-actions__container"},Xr={class:"vue-skip-actions__headline"},Qr={class:"vue-skip-actions__buttons"},Jr=ye({__name:"NcContent",props:{appName:{}},setup(e){const a=e;fe(Pn,d),fe(qn,"#content-vue"),fe("appName",X(()=>a.appName));const t=Pt(),s=Ee(!1),n=Ee(),i=X(()=>n.value==="navigation"?Kr:Zr);Os(()=>{const h=document.getElementById("skip-actions");h&&(h.innerHTML="",h.classList.add("vue-skip-actions"))});function l(){ot("toggle-navigation",{open:!0}),Nt(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function d(h){s.value=h,n.value||(n.value="navigation")}return(h,f)=>(o(),c("div",{id:"content-vue",class:U(["content",[`app-${e.appName.toLowerCase()}`,{"content--legacy":Y(at)}]])},[(o(),B(wn,{to:"#skip-actions"},[r("div",Yr,[r("div",Xr,u(Y(j)("Keyboard navigation help")),1),r("div",Qr,[xe(_(ge,{href:"#app-navigation-vue",variant:"tertiary",onClick:he(l,["prevent"]),onFocusin:f[0]||(f[0]=m=>n.value="navigation"),onMouseover:f[1]||(f[1]=m=>n.value="navigation")},{default:x(()=>[V(u(Y(j)("Skip to app navigation")),1)]),_:1},512),[[et,s.value]]),_(ge,{href:"#app-content-vue",variant:"tertiary",onFocusin:f[2]||(f[2]=m=>n.value="content"),onMouseover:f[3]||(f[3]=m=>n.value="content")},{default:x(()=>[V(u(Y(j)("Skip to main content")),1)]),_:1})]),xe(_(Se,{class:"vue-skip-actions__image",svg:i.value,size:"auto"},null,8,["svg"]),[[et,!Y(t)]])])])),q(h.$slots,"default",{},void 0,!0)],2))}}),ec=ee(Jr,[["__scopeId","data-v-d13dcb98"]]),tc=["title"],ac=ye({__name:"NcCounterBubble",props:{count:{},active:{type:Boolean},type:{default:""},raw:{type:Boolean}},setup(e){const a=e,t=X(()=>a.raw?a.count.toString():new Intl.NumberFormat(Cn(),{notation:"compact",compactDisplay:"short"}).format(a.count)),s=X(()=>{if(a.raw)return;const n=a.count.toString();if(n!==t.value)return n});return(n,i)=>(o(),c("div",{class:U(["counter-bubble__counter",{active:e.active,"counter-bubble__counter--highlighted":e.type==="highlighted","counter-bubble__counter--outlined":e.type==="outlined"}]),title:s.value},u(t.value),11,tc))}}),Un=ee(ac,[["__scopeId","data-v-36ffc13f"]]),ic={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},nc=["aria-hidden","aria-label"],sc=["fill","width","height"],lc={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},oc={key:0};function rc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-group-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",lc,[t.title?(o(),c("title",oc,u(t.title),1)):C("",!0)])],8,sc))],16,nc)}const _i=F(ic,[["render",rc]]),cc={name:"CalendarAccountOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},uc=["aria-hidden","aria-label"],dc=["fill","width","height"],pc={d:"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19M12 10C14 10 15 12.42 13.59 13.84C12.17 15.26 9.75 14.25 9.75 12.25C9.75 11 10.75 10 12 10M16.5 17.88V18H7.5V17.88C7.5 16.63 9.5 15.63 12 15.63S16.5 16.63 16.5 17.88Z"},hc={key:0};function mc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-account-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",pc,[t.title?(o(),c("title",hc,u(t.title),1)):C("",!0)])],8,dc))],16,uc)}const fc=F(cc,[["render",mc]]),gc={name:"CalendarMonthIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},yc=["aria-hidden","aria-label"],bc=["fill","width","height"],vc={d:"M9,10V12H7V10H9M13,10V12H11V10H13M17,10V12H15V10H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H6V1H8V3H16V1H18V3H19M19,19V8H5V19H19M9,14V16H7V14H9M13,14V16H11V14H13M17,14V16H15V14H17Z"},_c={key:0};function wc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-month-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",vc,[t.title?(o(),c("title",_c,u(t.title),1)):C("",!0)])],8,bc))],16,yc)}const Cc=F(gc,[["render",wc]]),kc={name:"ChartBarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xc=["aria-hidden","aria-label"],Sc=["fill","width","height"],Ac={d:"M22,21H2V3H4V19H6V10H10V19H12V6H16V19H18V14H22V21Z"},Lc={key:0};function Nc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-bar-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Ac,[t.title?(o(),c("title",Lc,u(t.title),1)):C("",!0)])],8,Sc))],16,xc)}const Dc=F(kc,[["render",Nc]]),Tc={name:"ClipboardCheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ec=["aria-hidden","aria-label"],Bc=["fill","width","height"],Ic={d:"M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z"},Mc={key:0};function zc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon clipboard-check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Ic,[t.title?(o(),c("title",Mc,u(t.title),1)):C("",!0)])],8,Bc))],16,Ec)}const $c=F(Tc,[["render",zc]]),Rc={name:"ClipboardPlusOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Oc=["aria-hidden","aria-label"],Vc=["fill","width","height"],Pc={d:"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M7 7H17V5H19V19H5V5H7V7M13 12H16V14H13V17H11V14H8V12H11V9H13V12Z"},qc={key:0};function Hc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon clipboard-plus-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Pc,[t.title?(o(),c("title",qc,u(t.title),1)):C("",!0)])],8,Vc))],16,Oc)}const Fc=F(Rc,[["render",Hc]]),Uc={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jc=["aria-hidden","aria-label"],Wc=["fill","width","height"],Gc={d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"},Zc={key:0};function Kc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon download-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Gc,[t.title?(o(),c("title",Zc,u(t.title),1)):C("",!0)])],8,Wc))],16,jc)}const jn=F(Uc,[["render",Kc]]),Yc={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xc=["aria-hidden","aria-label"],Qc=["fill","width","height"],Jc={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},eu={key:0};function tu(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon plus-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Jc,[t.title?(o(),c("title",eu,u(t.title),1)):C("",!0)])],8,Qc))],16,Xc)}const Wn=F(Yc,[["render",tu]]),au={name:"ScaleBalanceIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},iu=["aria-hidden","aria-label"],nu=["fill","width","height"],su={d:"M12,3C10.73,3 9.6,3.8 9.18,5H3V7H4.95L2,14C1.53,16 3,17 5.5,17C8,17 9.56,16 9,14L6.05,7H9.17C9.5,7.85 10.15,8.5 11,8.83V20H2V22H22V20H13V8.82C13.85,8.5 14.5,7.85 14.82,7H17.95L15,14C14.53,16 16,17 18.5,17C21,17 22.56,16 22,14L19.05,7H21V5H14.83C14.4,3.8 13.27,3 12,3M12,5A1,1 0 0,1 13,6A1,1 0 0,1 12,7A1,1 0 0,1 11,6A1,1 0 0,1 12,5M5.5,10.25L7,14H4L5.5,10.25M18.5,10.25L20,14H17L18.5,10.25Z"},lu={key:0};function ou(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon scale-balance-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",su,[t.title?(o(),c("title",lu,u(t.title),1)):C("",!0)])],8,nu))],16,iu)}const Gn=F(au,[["render",ou]]),ru={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},cu=["aria-hidden","aria-label"],uu=["fill","width","height"],du={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},pu={key:0};function hu(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon thermometer-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",du,[t.title?(o(),c("title",pu,u(t.title),1)):C("",!0)])],8,uu))],16,cu)}const Zn=F(ru,[["render",hu]]),mu=Symbol.for("nc:theme:enforced");function fu(e){const a=X(()=>Hs(e)??document.body),t=Ee(Ga(a.value)),s=Fs();function n(){t.value=Ga(a.value)}return Ps(a,n,{attributes:!0}),Ae(a,n),Ae(s,n,{immediate:!0}),qs(t)}const gu=Vs(()=>fu());function yu(){const e=gu(),a=we(mu,void 0);return X(()=>a?.value?a.value==="dark":e.value)}Le(Us);const bu=["for"],vu=["id","type","value","min","max"],_u=ye({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:ct({class:{default:void 0},id:{default:()=>bt()},inputClass:{default:""},type:{default:"date"},label:{default:()=>j("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=ut(e,"modelValue"),t=e,s=X(()=>a.value?d(a.value):""),n=X(()=>t.max?d(t.max):void 0),i=X(()=>t.min?d(t.min):void 0);function l(f){const m=f.getFullYear().toString().padStart(4,"0"),p=(f.getMonth()+1).toString().padStart(2,"0"),g=f.getDate().toString().padStart(2,"0"),y=f.getHours().toString().padStart(2,"0"),k=f.getMinutes().toString().padStart(2,"0");return{yyyy:m,MM:p,dd:g,hh:y,mm:k}}function d(f){const{yyyy:m,MM:p,dd:g,hh:y,mm:k}=l(f);if(t.type==="datetime-local")return`${m}-${p}-${g}T${y}:${k}`;if(t.type==="date")return`${m}-${p}-${g}`;if(t.type==="month")return`${m}-${p}`;if(t.type==="time")return`${y}:${k}`;if(t.type==="week"){const b=new Date(Number.parseInt(m),0,1),A=Math.floor((f.getTime()-b.getTime())/(1440*60*1e3)),R=Math.ceil(A/7);return`${m}-W${R}`}return""}function h(f){const m=f.target;if(!m||isNaN(m.valueAsNumber))a.value=null;else if(t.type==="time"){const p=m.value,{yyyy:g,MM:y,dd:k}=l(a.value||new Date);a.value=new Date(`${g}-${y}-${k}T${p}`)}else if(t.type==="month"){const p=(new Date(m.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:g,dd:y,hh:k,mm:b}=l(a.value||new Date);a.value=new Date(`${g}-${p}-${y}T${k}:${b}`)}else{const p=new Date(m.valueAsNumber).getTimezoneOffset()*1e3*60,g=m.valueAsNumber+p;a.value=new Date(g)}}return(f,m)=>(o(),c("div",{class:U(["native-datetime-picker",f.$props.class])},[r("label",{class:U(["native-datetime-picker__label",{"hidden-visually":e.hideLabel}]),for:e.id},u(e.label),11,bu),r("input",J({id:e.id,class:["native-datetime-picker__input",e.inputClass],type:e.type,value:s.value,min:i.value,max:n.value},f.$attrs,{onInput:h}),null,16,vu)],2))}}),wi=ee(_u,[["__scopeId","data-v-b97e1f7a"]]),wu={class:"textarea__main-wrapper"},Cu=["id","aria-describedby","disabled","placeholder","value"],ku=["for"],xu=["id"],Su=ye({inheritAttrs:!1,__name:"NcTextArea",props:ct({disabled:{type:Boolean},error:{type:Boolean},helperText:{default:void 0},id:{default:()=>bt()},inputClass:{default:""},label:{default:void 0},labelOutside:{type:Boolean},placeholder:{default:void 0},resize:{default:"both"},success:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=ut(e,"modelValue"),s=e;a({focus:f,select:m});const n=ci(),i=La("input"),l=X(()=>s.placeholder||(Tt?s.label:void 0));Ae(()=>s.labelOutside,()=>{!s.labelOutside&&!s.label&&Ie.warn("[NcTextArea] 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.")});const d=X(()=>{const p=[];return s.helperText&&p.push(`${s.id}-helper-text`),typeof n["aria-describedby"]=="string"&&p.push(n["aria-describedby"]),p.join(" ")||void 0});function h(p){const{value:g}=p.target;t.value=g}function f(p){i.value.focus(p)}function m(){i.value.select()}return(p,g)=>(o(),c("div",{class:U(["textarea",[p.$attrs.class,{"textarea--disabled":e.disabled,"textarea--legacy":Y(Tt)}]])},[r("div",wu,[r("textarea",J({...p.$attrs,class:void 0},{id:e.id,ref:"input","aria-describedby":d.value,"aria-live":"polite",class:["textarea__input",[e.inputClass,{"textarea__input--label-outside":e.labelOutside,"textarea__input--legacy":Y(Tt),"textarea__input--success":e.success,"textarea__input--error":e.error}]],disabled:e.disabled,placeholder:l.value,style:{resize:e.resize},value:t.value,onInput:h}),null,16,Cu),e.labelOutside?C("",!0):(o(),c("label",{key:0,class:"textarea__label",for:e.id},u(e.label),9,ku))]),e.helperText?(o(),c("p",{key:0,id:`${e.id}-helper-text`,class:U(["textarea__helper-text-message",{"textarea__helper-text-message--error":e.error,"textarea__helper-text-message--success":e.success}])},[e.success?(o(),B(Se,{key:0,class:"textarea__helper-text-message__icon",path:Y(Yt),inline:""},null,8,["path"])):e.error?(o(),B(Se,{key:1,class:"textarea__helper-text-message__icon",path:Y(Za),inline:""},null,8,["path"])):C("",!0),V(" "+u(e.helperText),1)],10,xu)):C("",!0)],2))}}),Kn=ee(Su,[["__scopeId","data-v-d327fb49"]]),Au={class:"input-field__main-wrapper"},Lu=["id","aria-describedby","disabled","placeholder","type","value"],Nu=["for"],Du={class:"input-field__icon input-field__icon--leading"},Tu={key:2,class:"input-field__icon input-field__icon--trailing"},Eu=["id"],Bu=ye({inheritAttrs:!1,__name:"NcInputField",props:ct({class:{default:""},inputClass:{default:""},id:{default:()=>bt()},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:ct(["trailingButtonClick"],["update:modelValue"]),setup(e,{expose:a,emit:t}){const s=ut(e,"modelValue"),n=e,i=t;a({focus:g,select:y});const l=ci(),d=La("input"),h=X(()=>n.showTrailingButton||n.success),f=X(()=>{if(n.placeholder)return n.placeholder;if(n.label)return Tt?n.label:""}),m=X(()=>n.label||n.labelOutside),p=X(()=>{const b=[];return n.helperText&&b.push(`${n.id}-helper-text`),l["aria-describedby"]&&b.push(String(l["aria-describedby"])),b.join(" ")||void 0});function g(b){d.value.focus(b)}function y(){d.value.select()}function k(b){const A=b.target;s.value=n.type==="number"&&typeof s.value=="number"?parseFloat(A.value):A.value}return(b,A)=>(o(),c("div",{class:U(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!m.value,"input-field--leading-icon":!!b.$slots.icon,"input-field--trailing-icon":h.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":Y(Tt)},b.$props.class]])},[r("div",Au,[r("input",J(b.$attrs,{id:e.id,ref:"input","aria-describedby":p.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:f.value,type:e.type,value:s.value.toString(),onInput:k}),null,16,Lu),!e.labelOutside&&m.value?(o(),c("label",{key:0,class:"input-field__label",for:e.id},u(e.label),9,Nu)):C("",!0),xe(r("div",Du,[q(b.$slots,"icon",{},void 0,!0)],512),[[et,!!b.$slots.icon]]),e.showTrailingButton?(o(),B(ge,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:A[0]||(A[0]=R=>i("trailingButtonClick",R))},{icon:x(()=>[q(b.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(o(),c("div",Tu,[e.success?(o(),B(Se,{key:0,path:Y(Yt)},null,8,["path"])):(o(),B(Se,{key:1,path:Y(Za)},null,8,["path"]))])):C("",!0)]),e.helperText?(o(),c("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(o(),B(Se,{key:0,class:"input-field__helper-text-message__icon",path:Y(Yt),inline:""},null,8,["path"])):e.error?(o(),B(Se,{key:1,class:"input-field__helper-text-message__icon",path:Y(Za),inline:""},null,8,["path"])):C("",!0),V(" "+u(e.helperText),1)],8,Eu)):C("",!0)],2))}}),Xi=ee(Bu,[["__scopeId","data-v-8e16cbb5"]]);Le(js,_n);const Ci=ye({__name:"NcTextField",props:ct({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},type:{},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=ut(e,"modelValue"),s=e;a({focus:h,select:f});const n=La("inputField"),i={arrowEnd:j("Save changes"),close:j("Clear text"),undo:j("Undo changes")},l=new Set(Object.keys(Xi.props)),d=X(()=>{const m=Object.fromEntries(Object.entries(s).filter(([p])=>l.has(p)));return m.trailingButtonLabel??=i[s.trailingButtonIcon],m});function h(m){n.value.focus(m)}function f(){n.value.select()}return(m,p)=>(o(),B(Y(Xi),J(d.value,{ref:"inputField",modelValue:t.value,"onUpdate:modelValue":p[0]||(p[0]=g=>t.value=g)}),tt({_:2},[m.$slots.icon?{name:"icon",fn:x(()=>[q(m.$slots,"icon")]),key:"0"}:void 0,e.type!=="search"?{name:"trailing-button-icon",fn:x(()=>[e.trailingButtonIcon==="arrowEnd"?(o(),B(Y(Se),{key:0,directional:"",path:Y(gn)},null,8,["path"])):(o(),B(Y(Se),{key:1,path:e.trailingButtonIcon==="undo"?Y(Ws):Y(Gs)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}}),Iu={name:"SendIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mu=["aria-hidden","aria-label"],zu=["fill","width","height"],$u={d:"M2,21L23,12L2,3V10L17,12L2,14V21Z"},Ru={key:0};function Ou(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon send-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",$u,[t.title?(o(),c("title",Ru,u(t.title),1)):C("",!0)])],8,zu))],16,Mu)}const Vu=F(Iu,[["render",Ou]]);function Pu(){try{return Sa("absence","session")}catch{return{uid:null}}}function qu(){try{return Sa("absence","leaveTypes")||[]}catch{return[]}}const W=mn({session:Pu(),leaveTypes:qu(),requests:[],balance:{balances:[]},loading:!1,selectedId:null,leaveType(e){return e==null?{label:M("absence","Absent"),color:"#888",icon:"🌴"}:this.leaveTypes.find(a=>a.id===e)||{label:M("absence","Unknown"),color:"#888",icon:"❔"}},isHrRecorded(e){const a=this.leaveType(e.typeId);return a&&a.employeeRequestable===!1},statusVisible(e){return!(this.isHrRecorded(e)&&e.status==="APPROVED")},get enabledLeaveTypes(){return this.leaveTypes.filter(e=>e.enabled)},get requestableLeaveTypes(){return this.leaveTypes.filter(e=>e.enabled&&e.employeeRequestable)},async refreshSession(){try{this.session=await ce.getSession()}catch(e){console.error("Absence: failed to refresh session",e)}},async loadLeaveTypes(){this.leaveTypes=await ce.listLeaveTypes(!1)},async loadRequests(e){this.loading=!0;try{this.requests=await ce.listRequests(e)}catch{Re(M("absence","Could not load requests"))}finally{this.loading=!1}},async loadMyBalance(e){this.balance=await ce.getMyBalance(e)},async createRequest(e){const a=await ce.createRequest(e);return At(M("absence","On its way ✈️")),await this.refreshSession(),a},async updateRequest(e,a){const t=await ce.updateRequest(e,a);return At(M("absence","Request updated")),t},async cancelRequest(e){const a=await ce.cancelRequest(e);return At(M("absence","Request cancelled")),await this.refreshSession(),a},async approveRequest(e,a){const t=await ce.approveRequest(e,a);return await this.refreshSession(),t},async rejectRequest(e,a){const t=await ce.rejectRequest(e,a);return At(M("absence","Request declined")),await this.refreshSession(),t},select(e){this.selectedId=e}});function Hu(e){switch(e){case"PENDING":return{label:M("absence","Pending"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"⏳"};case"ESCALATED":return{label:M("absence","With HR"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"⏫"};case"APPROVED":return{label:M("absence","Approved"),text:"var(--color-success-text)",tint:"var(--color-success)",icon:"✅"};case"REJECTED":return{label:M("absence","Declined"),text:"var(--color-error-text)",tint:"var(--color-error)",icon:"✋"};case"CANCELLED":return{label:M("absence","Cancelled"),text:"var(--color-text-maxcontrast)",tint:"var(--color-text-maxcontrast)",icon:"🚫"};case"WITHDRAWAL_PENDING":return{label:M("absence","Withdrawal pending"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"↩️"};default:return{label:e,text:"var(--color-main-text)",tint:"var(--color-text-maxcontrast)",icon:"•"}}}const Fu={name:"RequestDialog",components:{NcModal:xn,NcSelect:Ta,NcDateTimePickerNative:wi,NcTextArea:Kn,NcTextField:Ci,NcNoteCard:kn,NcButton:ge,NcLoadingIcon:Da,Send:Vu},props:{request:{type:Object,default:null},hrMode:{type:Boolean,default:!1}},emits:["close","saved"],data(){return{selectedType:null,startIso:null,endIso:null,workingDays:"",workingDaysTouched:!1,holidayChecker:null,reason:"",submitting:!1,selectedEmployee:null,employeeOptions:[],employeeLoading:!1,selectedReplacement:null,replacementOptions:[],replacementLoading:!1}},computed:{isEdit(){return this.request!==null},dialogTitle(){return this.hrMode?M("absence","Record absence"):this.isEdit?M("absence","Edit request"):M("absence","Request time off")},submitLabel(){return this.isEdit?M("absence","Save changes"):this.hrMode?M("absence","Record"):M("absence","Submit request")},typeOptions(){return this.hrMode?W.enabledLeaveTypes:W.requestableLeaveTypes},typeColor(){return this.selectedType?this.selectedType.color:"var(--color-primary-element)"},requiresNote(){return this.selectedType?this.selectedType.requiresNote:!1},needsReplacement(){return this.selectedType?this.selectedType.requiresReplacement:!1},startDate:{get(){return this.startIso?new Date(this.startIso+"T00:00:00"):null},set(e){this.startIso=e?Me(e):null,this.startIso&&this.endIso&&this.endIsoa.typeId===this.selectedType.id&&a.year===e&&a.entitlement!==null)||null},projectedAvailable(){return this.balanceRow?Math.round((this.balanceRow.available-this.workingDaysNum)*10)/10:null},wouldGoNegative(){return this.balanceRow&&this.selectedType&&this.selectedType.countsAgainstBalance&&this.projectedAvailable<0},availablePct(){return!this.balanceRow||!this.balanceRow.entitlement?0:Math.max(0,Math.min(100,this.projectedAvailable/this.balanceRow.entitlement*100))},canSubmit(){return!(!this.selectedType||!this.startIso||!this.endIso||this.workingDaysNum<=0||this.hrMode&&!this.selectedEmployee||this.needsReplacement&&!this.selectedReplacement||this.requiresNote&&this.reason.trim()==="")}},watch:{startIso(){this.recomputePrefill()},endIso(){this.recomputePrefill()}},async mounted(){await this.initFromProps(),!this.hrMode&&!W.balance.balances.length&&await W.loadMyBalance();try{this.holidayChecker=await Ys(W.session.holidayCountry,W.session.holidayRegion),this.recomputePrefill()}catch{}},methods:{t:M,onWorkingDaysInput(e){this.workingDays=e,this.workingDaysTouched=!0},recomputePrefill(){if(this.isEdit||this.workingDaysTouched||!this.startIso||!this.endIso)return;const e=Zs(W.session.workWeekdays||"1,2,3,4,5");this.workingDays=String(Ks(this.startIso,this.endIso,e,this.holidayChecker))},formatDays(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async initFromProps(){const e=this.typeOptions;if(this.request)this.selectedType=W.enabledLeaveTypes.find(a=>a.id===this.request.typeId)||e[0],this.startIso=this.request.startDate,this.endIso=this.request.endDate,this.workingDays=String(this.request.workingDays),this.reason=this.request.reason||"",this.request.replacementUid&&(this.selectedReplacement={uid:this.request.replacementUid,displayName:this.request.replacementName||this.request.replacementUid});else{this.selectedType=e[0]||null;const a=Me(new Date);this.startIso=a,this.endIso=a,this.hrMode||(this.selectedReplacement=this.pastReplacements()[0]||null)}this.hrMode||(this.replacementOptions=this.pastReplacements(),this.selectedReplacement&&!this.replacementOptions.some(a=>a.uid===this.selectedReplacement.uid)&&(this.replacementOptions=[this.selectedReplacement,...this.replacementOptions]))},pastReplacements(){const e=new Set,a=[],t=W.requests.filter(s=>s.employeeUid===W.session.uid&&s.replacementUid).sort((s,n)=>n.id-s.id);for(const s of t)e.has(s.replacementUid)||(e.add(s.replacementUid),a.push({uid:s.replacementUid,displayName:s.replacementName||s.replacementUid}));return a},async onEmployeeSearch(e){if(!(!e||e.length<2)){this.employeeLoading=!0;try{this.employeeOptions=await ce.searchUsers(e)}catch{this.employeeOptions=[]}finally{this.employeeLoading=!1}}},async onReplacementSearch(e){if(!(!e||e.length<2)){this.replacementLoading=!0;try{const a=await ce.searchUsers(e);this.replacementOptions=a.filter(t=>t.uid!==this.subjectUid)}catch{this.replacementOptions=[]}finally{this.replacementLoading=!1}}},async submit(){if(!this.canSubmit)return;this.submitting=!0;const e={typeId:this.selectedType.id,startDate:this.startIso,endDate:this.endIso,workingDays:this.workingDaysNum,reason:this.reason};this.hrMode&&this.selectedEmployee&&(e.employeeUid=this.selectedEmployee.uid),this.needsReplacement&&this.selectedReplacement&&(e.replacementUid=this.selectedReplacement.uid);try{this.isEdit?await W.updateRequest(this.request.id,e):await W.createRequest(e),this.$emit("saved")}catch(a){Re(a.response?.data?.message||M("absence","Could not save the request"))}finally{this.submitting=!1}}}},Uu={class:"dialog"},ju={class:"dialog__title"},Wu={key:1,class:"dialog__field"},Gu={class:"dialog__label"},Zu={class:"dialog__field"},Ku={class:"dialog__label"},Yu={class:"opt"},Xu={class:"opt__icon"},Qu={class:"opt"},Ju={class:"opt__icon"},ed={key:2,class:"dialog__field"},td={class:"dialog__label"},ad={class:"dialog__hint"},id={class:"dialog__row"},nd={class:"dialog__field"},sd={class:"dialog__label"},ld={class:"dialog__field"},od={class:"dialog__label"},rd={class:"dialog__field"},cd={class:"dialog__label"},ud={class:"dialog__hint"},dd=["href"],pd={class:"preview__balance"},hd={class:"preview__bar",role:"presentation"},md={class:"dialog__field"},fd={class:"dialog__label"},gd={key:0,class:"dialog__req"},yd={key:1,class:"dialog__optional"},bd={class:"dialog__actions"};function vd(e,a,t,s,n,i){const l=w("NcNoteCard"),d=w("NcSelect"),h=w("NcDateTimePickerNative"),f=w("NcTextField"),m=w("NcTextArea"),p=w("NcButton"),g=w("NcLoadingIcon"),y=w("Send"),k=w("NcModal");return o(),B(k,{name:i.dialogTitle,size:"normal",onClose:a[7]||(a[7]=b=>e.$emit("close"))},{default:x(()=>[r("div",Uu,[r("h2",ju,u(i.dialogTitle),1),t.hrMode?(o(),B(l,{key:0,type:"info"},{default:x(()=>[V(u(i.t("absence","Record an absence on behalf of an employee (e.g. sick leave). It is booked directly, without an approval step.")),1)]),_:1})):C("",!0),t.hrMode?(o(),c("div",Wu,[r("label",Gu,u(i.t("absence","Employee")),1),_(d,{modelValue:n.selectedEmployee,"onUpdate:modelValue":a[0]||(a[0]=b=>n.selectedEmployee=b),options:n.employeeOptions,loading:n.employeeLoading,userSelect:!0,label:"displayName",filterable:!1,placeholder:i.t("absence","Search for an employee…"),"aria-label-combobox":i.t("absence","Employee"),onSearch:i.onEmployeeSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"])])):C("",!0),r("div",Zu,[r("label",Ku,u(i.t("absence","Leave type")),1),_(d,{modelValue:n.selectedType,"onUpdate:modelValue":a[1]||(a[1]=b=>n.selectedType=b),options:i.typeOptions,label:"label",clearable:!1,"aria-label-combobox":i.t("absence","Leave type")},{option:x(({icon:b,label:A})=>[r("span",Yu,[r("span",Xu,u(b),1),V(u(A),1)])]),"selected-option":x(({icon:b,label:A})=>[r("span",Qu,[r("span",Ju,u(b),1),V(u(A),1)])]),_:1},8,["modelValue","options","aria-label-combobox"])]),i.needsReplacement?(o(),c("div",ed,[r("label",td,[V(u(i.t("absence","Replacement")),1),a[8]||(a[8]=r("span",{class:"dialog__req"},"*",-1))]),_(d,{modelValue:n.selectedReplacement,"onUpdate:modelValue":a[2]||(a[2]=b=>n.selectedReplacement=b),options:n.replacementOptions,loading:n.replacementLoading,userSelect:!0,label:"displayName",filterable:!1,placeholder:i.t("absence","Who covers for you?"),"aria-label-combobox":i.t("absence","Replacement"),onSearch:i.onReplacementSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"]),r("p",ad,u(i.t("absence","A colleague who covers your duties while you are away. They are notified once your leave is approved.")),1)])):C("",!0),r("div",id,[r("div",nd,[r("label",sd,u(i.t("absence","From")),1),_(h,{modelValue:i.startDate,"onUpdate:modelValue":a[3]||(a[3]=b=>i.startDate=b),type:"date"},null,8,["modelValue"])]),r("div",ld,[r("label",od,u(i.t("absence","To")),1),_(h,{modelValue:i.endDate,"onUpdate:modelValue":a[4]||(a[4]=b=>i.endDate=b),type:"date"},null,8,["modelValue"])])]),r("div",rd,[r("label",cd,[V(u(i.t("absence","Working days")),1),a[9]||(a[9]=r("span",{class:"dialog__req"},"*",-1))]),_(f,{modelValue:n.workingDays,type:"number",min:"0",step:"0.5",label:i.t("absence","Working days"),labelVisible:!1,"onUpdate:modelValue":i.onWorkingDaysInput},null,8,["modelValue","label","onUpdate:modelValue"]),r("p",ud,[i.prefillActive?(o(),c(K,{key:0},[V(u(i.t("absence","Prefilled from your"))+" ",1),r("a",{href:i.settingsUrl,target:"_blank",rel:"noreferrer noopener",class:"dialog__link"},u(i.t("absence","working days and public holidays")),9,dd),V(" "+u(i.t("absence","— adjust it if needed. Your manager will verify it.")),1)],64)):(o(),c(K,{key:1},[V(u(i.t("absence","Number of working days this absence covers (excluding weekends and public holidays). Your manager will verify it.")),1)],64))])]),i.balanceRow&&!t.hrMode&&i.workingDaysNum>0?(o(),c("div",{key:3,class:"preview",style:le({"--type-color":i.typeColor})},[r("div",pd,[r("span",null,u(i.t("absence","Available")),1),r("strong",null,u(i.formatDays(i.balanceRow.available))+" → "+u(i.formatDays(i.projectedAvailable)),1),r("span",hd,[r("span",{class:"preview__bar-fill",style:le({width:i.availablePct+"%"})},null,4)])])],4)):C("",!0),i.wouldGoNegative?(o(),B(l,{key:4,type:"warning"},{default:x(()=>[V(u(i.t("absence","Heads up: this goes beyond your available balance. You can still submit — HR may approve it.")),1)]),_:1})):C("",!0),r("div",md,[r("label",fd,[V(u(i.t("absence","Reason"))+" ",1),i.requiresNote?(o(),c("span",gd,"*")):(o(),c("span",yd,u(i.t("absence","(optional)")),1))]),_(m,{modelValue:n.reason,"onUpdate:modelValue":a[5]||(a[5]=b=>n.reason=b),placeholder:i.t("absence","Optional note for your manager"),resize:"vertical",rows:"2"},null,8,["modelValue","placeholder"])]),r("div",bd,[_(p,{variant:"tertiary",onClick:a[6]||(a[6]=b=>e.$emit("close"))},{default:x(()=>[V(u(i.t("absence","Cancel")),1)]),_:1}),_(p,{variant:"primary",disabled:!i.canSubmit||n.submitting,onClick:i.submit},{icon:x(()=>[n.submitting?(o(),B(g,{key:0,size:20})):(o(),B(y,{key:1,size:20}))]),default:x(()=>[V(" "+u(i.submitLabel),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])}const _d=F(Fu,[["render",vd],["__scopeId","data-v-1cc8782f"]]),Oa=new WeakMap,Yn={mounted(e,a){const t=!a.modifiers.bubble;let s;if(typeof a.value=="function")s=Mi(e,a.value,{capture:t});else{const[n,i]=a.value;s=Mi(e,n,Object.assign({capture:t},i))}Oa.set(e,s)},unmounted(e){const a=Oa.get(e);a&&typeof a=="function"?a():a?.stop(),Oa.delete(e)}},wd={mounted(e){e.focus()}},Cd="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",kd="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",ei="numeric",ti="ascii",ai="alpha",Et="asciinumeric",Lt="alphanumeric",ii="domain",Xn="emoji",xd="scheme",Sd="slashscheme",Va="whitespace";function Ad(e,a){return e in a||(a[e]=[]),a[e]}function st(e,a,t){a[ei]&&(a[Et]=!0,a[Lt]=!0),a[ti]&&(a[Et]=!0,a[ai]=!0),a[Et]&&(a[Lt]=!0),a[ai]&&(a[Lt]=!0),a[Lt]&&(a[ii]=!0),a[Xn]&&(a[ii]=!0);for(const s in a){const n=Ad(s,t);n.indexOf(e)<0&&n.push(e)}}function Ld(e,a){const t={};for(const s in a)a[s].indexOf(e)>=0&&(t[s]=!0);return t}function ke(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}ke.groups={},ke.prototype={accepts(){return!!this.t},go(e){const a=this,t=a.j[e];if(t)return t;for(let s=0;se.ta(a,t,s,n),pe=(e,a,t,s,n)=>e.tr(a,t,s,n),Qi=(e,a,t,s,n)=>e.ts(a,t,s,n),E=(e,a,t,s,n)=>e.tt(a,t,s,n),Ue="WORD",ni="UWORD",Qn="ASCIINUMERICAL",Jn="ALPHANUMERICAL",Ot="LOCALHOST",si="TLD",li="UTLD",Kt="SCHEME",mt="SLASH_SCHEME",ki="NUM",oi="WS",xi="NL",Bt="OPENBRACE",It="CLOSEBRACE",Qt="OPENBRACKET",Jt="CLOSEBRACKET",ea="OPENPAREN",ta="CLOSEPAREN",aa="OPENANGLEBRACKET",ia="CLOSEANGLEBRACKET",na="FULLWIDTHLEFTPAREN",sa="FULLWIDTHRIGHTPAREN",la="LEFTCORNERBRACKET",oa="RIGHTCORNERBRACKET",ra="LEFTWHITECORNERBRACKET",ca="RIGHTWHITECORNERBRACKET",ua="FULLWIDTHLESSTHAN",da="FULLWIDTHGREATERTHAN",pa="AMPERSAND",ha="APOSTROPHE",ma="ASTERISK",Je="AT",fa="BACKSLASH",ga="BACKTICK",ya="CARET",lt="COLON",Si="COMMA",ba="DOLLAR",ze="DOT",va="EQUALS",Ai="EXCLAMATION",Te="HYPHEN",Mt="PERCENT",_a="PIPE",wa="PLUS",Ca="POUND",zt="QUERY",Li="QUOTE",es="FULLWIDTHMIDDLEDOT",Ni="SEMI",$e="SLASH",$t="TILDE",ka="UNDERSCORE",ts="EMOJI",xa="SYM";var as=Object.freeze({__proto__:null,ALPHANUMERICAL:Jn,AMPERSAND:pa,APOSTROPHE:ha,ASCIINUMERICAL:Qn,ASTERISK:ma,AT:Je,BACKSLASH:fa,BACKTICK:ga,CARET:ya,CLOSEANGLEBRACKET:ia,CLOSEBRACE:It,CLOSEBRACKET:Jt,CLOSEPAREN:ta,COLON:lt,COMMA:Si,DOLLAR:ba,DOT:ze,EMOJI:ts,EQUALS:va,EXCLAMATION:Ai,FULLWIDTHGREATERTHAN:da,FULLWIDTHLEFTPAREN:na,FULLWIDTHLESSTHAN:ua,FULLWIDTHMIDDLEDOT:es,FULLWIDTHRIGHTPAREN:sa,HYPHEN:Te,LEFTCORNERBRACKET:la,LEFTWHITECORNERBRACKET:ra,LOCALHOST:Ot,NL:xi,NUM:ki,OPENANGLEBRACKET:aa,OPENBRACE:Bt,OPENBRACKET:Qt,OPENPAREN:ea,PERCENT:Mt,PIPE:_a,PLUS:wa,POUND:Ca,QUERY:zt,QUOTE:Li,RIGHTCORNERBRACKET:oa,RIGHTWHITECORNERBRACKET:ca,SCHEME:Kt,SEMI:Ni,SLASH:$e,SLASH_SCHEME:mt,SYM:xa,TILDE:$t,TLD:si,UNDERSCORE:ka,UTLD:li,UWORD:ni,WORD:Ue,WS:oi});const He=/[a-z]/,St=new RegExp("\\p{L}","u"),Pa=new RegExp("\\p{Emoji}","u"),Fe=/\d/,qa=/\s/,Ji="\r",Ha=` -`,Nd="️",Dd="‍",Fa="";let Ft=null,Ut=null;function Td(e=[]){const a={};ke.groups=a;const t=new ke;Ft==null&&(Ft=en(Cd)),Ut==null&&(Ut=en(kd)),E(t,"'",ha),E(t,"{",Bt),E(t,"}",It),E(t,"[",Qt),E(t,"]",Jt),E(t,"(",ea),E(t,")",ta),E(t,"<",aa),E(t,">",ia),E(t,"(",na),E(t,")",sa),E(t,"「",la),E(t,"」",oa),E(t,"『",ra),E(t,"』",ca),E(t,"<",ua),E(t,">",da),E(t,"&",pa),E(t,"*",ma),E(t,"@",Je),E(t,"`",ga),E(t,"^",ya),E(t,":",lt),E(t,",",Si),E(t,"$",ba),E(t,".",ze),E(t,"=",va),E(t,"!",Ai),E(t,"-",Te),E(t,"%",Mt),E(t,"|",_a),E(t,"+",wa),E(t,"#",Ca),E(t,"?",zt),E(t,'"',Li),E(t,"/",$e),E(t,";",Ni),E(t,"~",$t),E(t,"_",ka),E(t,"\\",fa),E(t,"・",es);const s=pe(t,Fe,ki,{[ei]:!0});pe(s,Fe,s);const n=pe(s,He,Qn,{[Et]:!0}),i=pe(s,St,Jn,{[Lt]:!0}),l=pe(t,He,Ue,{[ti]:!0});pe(l,Fe,n),pe(l,He,l),pe(n,Fe,n),pe(n,He,n);const d=pe(t,St,ni,{[ai]:!0});pe(d,He),pe(d,Fe,i),pe(d,St,d),pe(i,Fe,i),pe(i,He),pe(i,St,i);const h=E(t,Ha,xi,{[Va]:!0}),f=E(t,Ji,oi,{[Va]:!0}),m=pe(t,qa,oi,{[Va]:!0});E(t,Fa,m),E(f,Ha,h),E(f,Fa,m),pe(f,qa,m),E(m,Ji),E(m,Ha),pe(m,qa,m),E(m,Fa,m);const p=pe(t,Pa,ts,{[Xn]:!0});E(p,"#"),pe(p,Pa,p),E(p,Nd,p);const g=E(p,Dd);E(g,"#"),pe(g,Pa,p);const y=[[He,l],[Fe,n]],k=[[He,null],[St,d],[Fe,i]];for(let b=0;bb[0]>A[0]?1:-1);for(let b=0;b=0?R[ii]=!0:He.test(A)?Fe.test(A)?R[Et]=!0:R[ti]=!0:R[ei]=!0,Qi(t,A,A,R)}return Qi(t,"localhost",Ot,{ascii:!0}),t.jd=new ke(xa),{start:t,tokens:Object.assign({groups:a},as)}}function is(e,a){const t=Ed(a.replace(/[A-Z]/g,d=>d.toLowerCase())),s=t.length,n=[];let i=0,l=0;for(;l=0&&(p+=t[l].length,g++),f+=t[l].length,i+=t[l].length,l++;i-=p,l-=g,f-=p,n.push({t:m.t,v:a.slice(i-f,i),s:i-f,e:i})}return n}function Ed(e){const a=[],t=e.length;let s=0;for(;s56319||s+1===t||(i=e.charCodeAt(s+1))<56320||i>57343?e[s]:e.slice(s,s+2);a.push(l),s+=l.length}return a}function Xe(e,a,t,s,n){let i;const l=a.length;for(let d=0;d=0;)i++;if(i>0){a.push(t.join(""));for(let l=parseInt(e.substring(s,s+i),10);l>0;l--)t.pop();s+=i}else t.push(e[s]),s++}return a}const Vt={defaultProtocol:"http",events:null,format:tn,formatHref:tn,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Di(e,a=null){let t=Object.assign({},Vt);e&&(t=Object.assign(t,e instanceof Di?e.o:e));const s=t.ignoreTags,n=[];for(let i=0;it?s.substring(0,t)+"…":s},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=Vt.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const a=this,t=this.toHref(e.get("defaultProtocol")),s=e.get("formatHref",t,this),n=e.get("tagName",t,a),i=this.toFormattedString(e),l={},d=e.get("className",t,a),h=e.get("target",t,a),f=e.get("rel",t,a),m=e.getObj("attributes",t,a),p=e.getObj("events",t,a);return l.href=s,d&&(l.class=d),h&&(l.target=h),f&&(l.rel=f),m&&Object.assign(l,m),{tagName:n,attributes:l,content:i,eventListeners:p}}};function Ma(e,a){class t extends ns{constructor(n,i){super(n,i),this.t=e}}for(const s in a)t.prototype[s]=a[s];return t.t=e,t}const Bd=Ma("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),an=Ma("text"),Id=Ma("nl"),jt=Ma("url",{isLink:!0,toHref(e=Vt.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==Ot&&e[1].t===lt}}),De=e=>new ke(e);function Md({groups:e}){const a=e.domain.concat([pa,ma,Je,fa,ga,ya,ba,va,Te,ki,Mt,_a,wa,Ca,$e,xa,$t,ka]),t=[ha,lt,Si,ze,Ai,Mt,zt,Li,Ni,aa,ia,Bt,It,Jt,Qt,ea,ta,na,sa,la,oa,ra,ca,ua,da],s=[pa,ha,ma,fa,ga,ya,ba,va,Te,Bt,It,Mt,_a,wa,Ca,zt,$e,xa,$t,ka],n=De(),i=E(n,$t);Q(i,s,i),Q(i,e.domain,i);const l=De(),d=De(),h=De();Q(n,e.domain,l),Q(n,e.scheme,d),Q(n,e.slashscheme,h),Q(l,s,i),Q(l,e.domain,l);const f=E(l,Je);E(i,Je,f),E(d,Je,f),E(h,Je,f);const m=E(i,ze);Q(m,s,i),Q(m,e.domain,i);const p=De();Q(f,e.domain,p),Q(p,e.domain,p);const g=E(p,ze);Q(g,e.domain,p);const y=De(Bd);Q(g,e.tld,y),Q(g,e.utld,y),E(f,Ot,y);const k=E(p,Te);E(k,Te,k),Q(k,e.domain,p),Q(y,e.domain,p),E(y,ze,g),E(y,Te,k);const b=E(l,Te),A=E(l,ze);E(b,Te,b),Q(b,e.domain,l),Q(A,s,i),Q(A,e.domain,l);const R=De(jt);Q(A,e.tld,R),Q(A,e.utld,R),Q(R,e.domain,l),Q(R,s,i),E(R,ze,A),E(R,Te,b),E(R,Je,f);const P=E(R,lt),z=De(jt);Q(P,e.numeric,z);const G=De(jt),ae=De();Q(G,a,G),Q(G,t,ae),Q(ae,a,G),Q(ae,t,ae),E(R,$e,G),E(z,$e,G);const se=E(d,lt),oe=E(h,lt),te=E(oe,$e),re=E(te,$e);Q(d,e.domain,l),E(d,ze,A),E(d,Te,b),Q(h,e.domain,l),E(h,ze,A),E(h,Te,b),Q(se,e.domain,G),E(se,$e,G),E(se,zt,G),Q(re,e.domain,G),Q(re,a,G),E(re,$e,G);const Ve=[[Bt,It],[Qt,Jt],[ea,ta],[aa,ia],[na,sa],[la,oa],[ra,ca],[ua,da]];for(let We=0;We=0&&g++,n++,m++;if(g<0)n-=m,n0&&(i.push(Ua(an,a,l)),l=[]),n-=g,m-=g;const y=p.t,k=t.slice(n-m,n);i.push(Ua(y,a,k))}}return l.length>0&&i.push(Ua(an,a,l)),i}function Ua(e,a,t){const s=t[0].s,n=t[t.length-1].e,i=a.slice(s,n);return new e(i,t)}const me={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function $d(){me.scanner=Td(me.customSchemes);for(let e=0;e -`):!n.isLink||!a.check(n)?s.push(Sn(n.toString())):s.push(a.render(n));return s.join("")}function Od(e){return e.replace(/"/g,""")}function Vd(e){const a=[];for(const t in e){const s=e[t]+"";a.push(`${t}="${Od(s)}"`)}return a.join(" ")}function Pd({tagName:e,attributes:a,content:t}){return`<${e} ${Vd(a)}>${Sn(t)}`}const qd=function(e,{value:a}){a?.linkify===!0&&(e.innerHTML=Rd(a.text))},Hd=["title"],Fd=ye({__name:"NcAppSidebarHeader",props:{name:{},title:{},linkify:{type:Boolean}},setup(e){const a=we("NcAppSidebar:header:ref");return(t,s)=>xe((o(),c("h2",{ref_key:"headerRef",ref:a,tabindex:"-1",title:e.title},[V(u(e.name),1)],8,Hd)),[[Y(qd),{text:e.name,linkify:e.linkify}]])}}),Ud=["aria-labelledby"],jd={key:0,class:"empty-content__icon","aria-hidden":"true"},Wd=["id"],Gd={key:2,class:"empty-content__description"},Zd={key:3,class:"empty-content__action"},Kd=ye({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(e){const a=bt();return(t,s)=>(o(),c("div",{"aria-labelledby":Y(a),class:"empty-content",role:"note"},[t.$slots.icon?(o(),c("div",jd,[q(t.$slots,"icon",{},void 0,!0)])):C("",!0),e.name!==""||t.$slots.name?(o(),c("div",{key:1,id:Y(a),class:"empty-content__name"},[q(t.$slots,"name",{},()=>[V(u(e.name),1)],!0)],8,Wd)):C("",!0),e.description!==""||t.$slots.description?(o(),c("p",Gd,[q(t.$slots,"description",{},()=>[V(u(e.description),1)],!0)])):C("",!0),t.$slots.action?(o(),c("div",Zd,[q(t.$slots,"action",{},void 0,!0)])):C("",!0)],8,Ud))}}),je=ee(Kd,[["__scopeId","data-v-8609a4c1"]]),Yd={name:"DockRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xd=["aria-hidden","aria-label"],Qd=["fill","width","height"],Jd={d:"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z"},ep={key:0};function tp(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon dock-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Jd,[t.title?(o(),c("title",ep,u(t.title),1)):C("",!0)])],8,Qd))],16,Xd)}const ap=ee(Yd,[["render",tp]]),ip={name:"StarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},np=["aria-hidden","aria-label"],sp=["fill","width","height"],lp={d:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"},op={key:0};function rp(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",lp,[t.title?(o(),c("title",op,u(t.title),1)):C("",!0)])],8,sp))],16,np)}const cp=ee(ip,[["render",rp]]),up={name:"StarOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dp=["aria-hidden","aria-label"],pp=["fill","width","height"],hp={d:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z"},mp={key:0};function fp(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",hp,[t.title?(o(),c("title",mp,u(t.title),1)):C("",!0)])],8,pp))],16,dp)}const gp=ee(up,[["render",fp]]),yp=["aria-selected","tabindex"],bp=ye({__name:"NcAppSidebarTabsButton",props:ct({tab:{}},{selected:{type:Boolean,required:!0},selectedModifiers:{}}),emits:["update:selected"],setup(e){const a=ut(e,"selected");return(t,s)=>(o(),c("button",{class:U(["button-vue",[t.$style.sidebarTabsButton,{[t.$style.sidebarTabsButton_selected]:a.value,[t.$style.sidebarTabsButton_legacy]:Y(at)}]]),role:"tab","aria-selected":a.value,tabindex:a.value?0:-1,onClick:s[0]||(s[0]=n=>a.value=!0)},[r("span",{class:U(t.$style.sidebarTabsButton__icon)},[_(vi,{vnodes:e.tab.renderIcon()},{default:x(()=>[r("span",{class:U([t.$style.sidebarTabsButton__legacyIcon,e.tab.icon])},null,2)]),_:1},8,["vnodes"])],2),r("span",{class:U(t.$style.sidebarTabsButton__name)},u(e.tab.name),3)],10,yp))}}),vp="_sidebarTabsButton_OCROY",_p="_sidebarTabsButton_legacy_e9-y9",wp="_sidebarTabsButton_selected_S48M1",Cp="_sidebarTabsButton__name_GZRY8",kp="_sidebarTabsButton__icon_ZDmkU",xp="_sidebarTabsButton__legacyIcon_y6cLW",Sp={"material-design-icon":"_material-design-icon_v9SPG",sidebarTabsButton:vp,sidebarTabsButton_legacy:_p,sidebarTabsButton_selected:wp,sidebarTabsButton__name:Cp,sidebarTabsButton__icon:kp,sidebarTabsButton__legacyIcon:xp},Ap={$style:Sp},Lp=ee(bp,[["__cssModules",Ap]]),Np={name:"NcAppSidebarTabs",components:{NcAppSidebarTabsButton:Lp},provide(){return{registerTab:this.registerTab,unregisterTab:this.unregisterTab,getActiveTab:()=>this.activeTab,isTablistShown:()=>this.hasMultipleTabs}},props:{active:{type:String,default:""},forceTabs:{type:Boolean,default:!1}},emits:["update:active"],data(e){return{tabs:[],activeTab:e.active,isLegacy34:at}},computed:{hasMultipleTabs(){return this.tabs.length>1},showForSingleTab(){return this.forceTabs&&this.tabs.length===1},currentTabIndex(){return this.tabs.findIndex(e=>e.id===this.activeTab)}},watch:{tabs(){this.active&&this.updateActive()},active(e){e!==this.activeTab&&this.updateActive()}},methods:{setActive(e){this.activeTab=e,this.$emit("update:active",this.activeTab)},focusPreviousTab(){this.currentTabIndex>0&&this.setActive(this.tabs[this.currentTabIndex-1].id),this.focusActiveTab()},focusNextTab(){this.currentTabIndexe===this.active)?this.active:this.tabs[0]?.id??""},registerTab(e){this.tabs.push(e),this.tabs.sort((a,t)=>a.order===t.order?a.name.localeCompare(t.name,[Cn()]):a.order-t.order),this.updateActive()},unregisterTab(e){const a=this.tabs.findIndex(t=>t.id===e);a!==-1&&this.tabs.splice(a,1),this.activeTab===e&&this.updateActive()}}},Dp={class:"app-sidebar-tabs"};function Tp(e,a,t,s,n,i){const l=w("NcAppSidebarTabsButton");return o(),c("div",Dp,[i.hasMultipleTabs||i.showForSingleTab?(o(),c("div",{key:0,role:"tablist",class:U(["app-sidebar-tabs__nav",{"app-sidebar-tabs__nav--legacy":n.isLegacy34}]),onKeydown:[a[0]||(a[0]=Ce(he((...d)=>i.focusPreviousTab&&i.focusPreviousTab(...d),["exact","prevent","stop"]),["left"])),a[1]||(a[1]=Ce(he((...d)=>i.focusNextTab&&i.focusNextTab(...d),["exact","prevent","stop"]),["right"])),a[2]||(a[2]=Ce(he((...d)=>i.focusActiveTabContent&&i.focusActiveTabContent(...d),["exact","prevent","stop"]),["tab"])),a[3]||(a[3]=Ce(he((...d)=>i.focusFirstTab&&i.focusFirstTab(...d),["exact","prevent","stop"]),["home"])),a[4]||(a[4]=Ce(he((...d)=>i.focusLastTab&&i.focusLastTab(...d),["exact","prevent","stop"]),["end"])),a[5]||(a[5]=Ce(he((...d)=>i.focusFirstTab&&i.focusFirstTab(...d),["exact","prevent","stop"]),["page-up"])),a[6]||(a[6]=Ce(he((...d)=>i.focusLastTab&&i.focusLastTab(...d),["exact","prevent","stop"]),["page-down"]))]},[(o(!0),c(K,null,ue(n.tabs,d=>(o(),B(l,{id:`tab-button-${d.id}`,key:d.id,class:"app-sidebar-tabs__tab","aria-controls":`tab-${d.id}`,selected:n.activeTab===d.id,tab:d,"onUpdate:selected":h=>i.setActive(d.id)},null,8,["id","aria-controls","selected","tab","onUpdate:selected"]))),128))],34)):C("",!0),r("div",{class:U(["app-sidebar-tabs__content",{"app-sidebar-tabs__content--multiple":i.hasMultipleTabs}])},[q(e.$slots,"default",{},void 0,!0)],2)])}const Ep=ee(Np,[["render",Tp],["__scopeId","data-v-e74d1502"]]);Le(Xs);const Bp={name:"NcAppSidebar",components:{NcActions:rt,NcAppSidebarHeader:Fd,NcAppSidebarTabs:Ep,NcButton:ge,NcLoadingIcon:Da,NcEmptyContent:je,IconArrowRight:Hn,IconClose:vn,IconDockRight:ap,IconStar:cp,IconStarOutline:gp},directives:{Focus:wd,ClickOutside:Yn},inject:{ncContentSelector:{from:qn,default:void 0}},props:{active:{type:String,default:""},name:{type:String,required:!0},nameEditable:{type:Boolean,default:!1},namePlaceholder:{type:String,default:""},subname:{type:String,default:""},subtitle:{type:String,default:""},background:{type:String,default:""},starred:{type:Boolean,default:null},starLoading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceTabs:{type:Boolean,default:!1},linkifyName:{type:Boolean,default:!1},title:{type:String,default:""},open:{type:Boolean,default:!0},toggleClasses:{type:[String,Array,Object],default:""},toggleAttrs:{type:Object,default:void 0},noToggle:{type:Boolean,default:!1}},emits:["close","closed","opened","update:active","update:name","update:nameEditable","update:open","update:starred","submitName","dismissEditing"],setup(){const e=Ee(null);return fe("NcAppSidebar:header:ref",e),{uid:bt(),isMobile:el(),headerRef:e}},data(){return{changeNameTranslated:j("Change name"),closeTranslated:j("Close sidebar"),favoriteTranslated:j("Favorite"),isStarred:this.starred,focusTrap:null,elementToReturnFocus:null}},computed:{canStar(){return this.isStarred!==null},hasFigureClickListener(){return!!this.$attrs.onFigureClick}},watch:{starred(){this.isStarred=this.starred},isMobile(){this.toggleFocusTrap()},open(){this.checkToggleButtonContainerAvailability()}},created(){this.preserveElementToReturnFocus(),this.checkToggleButtonContainerAvailability()},beforeUnmount(){this.$emit("closed"),this.focusTrap?.deactivate()},methods:{isSlotPopulated:Qs,t:j,preserveElementToReturnFocus(){if(document.activeElement&&document.activeElement!==document.body&&(this.elementToReturnFocus=document.activeElement,this.elementToReturnFocus.getAttribute("role")==="menuitem")){const e=this.elementToReturnFocus.closest('[role="menu"]');if(e){const a=document.querySelector(`[aria-controls="${e.id}"]`);this.elementToReturnFocus=a}}},initFocusTrap(){this.focusTrap||(this.focusTrap=yn([this.$refs.sidebar,document.querySelector("#header")],{allowOutsideClick:!0,fallbackFocus:this.$refs.closeButton.$el,trapStack:bn(),escapeDeactivates:!1}))},toggleFocusTrap(){this.open&&this.isMobile?(this.initFocusTrap(),this.focusTrap.activate()):this.focusTrap?.deactivate()},onKeydownEsc(e){this.isMobile&&(e.stopPropagation(),this.closeSidebar())},onAfterEnter(e){this.elementToReturnFocus&&this.focus(),this.toggleFocusTrap(),this.$emit("opened",e)},onAfterLeave(e){this.$emit("closed",e),this.toggleFocusTrap(),this.elementToReturnFocus?.focus({focusVisible:!0}),this.elementToReturnFocus=null},closeSidebar(e){this.$emit("close",e),this.$emit("update:open",!1)},onFigureClick(e){this.$emit("figureClick",e)},toggleStarred(){this.isStarred=!this.isStarred,this.$emit("update:starred",this.isStarred)},async editName(){this.$emit("update:nameEditable",!0),this.nameEditable&&(await this.$nextTick(),this.$refs.nameInput.focus())},focus(){if(!this.open&&!this.noToggle){this.$refs.toggle.$el.focus();return}try{this.headerRef.focus()}catch{}},focusActiveTabContent(){this.preserveElementToReturnFocus(),this.$refs.tabs.focusActiveTabContent()},checkToggleButtonContainerAvailability(){this.open===!1&&!this.noToggle&&!this.ncContentSelector&&Ie.warn("[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.")},onNameInput(e){this.$emit("update:name",e.target.value)},onSubmitName(e){this.$emit("update:nameEditable",!1),this.$emit("submitName",e)},onDismissEditing(){this.$emit("update:nameEditable",!1),this.$emit("dismissEditing")},onUpdateActive(e){this.$emit("update:active",e)}}},Ip=["aria-labelledby"],Mp={class:"app-sidebar-header__info"},zp={key:0,class:"app-sidebar-header__tertiary-actions"},$p={class:"app-sidebar-header__name-container"},Rp={class:"app-sidebar-header__mainname-container"},Op=["placeholder","value"],Vp=["title"],Pp={key:2,class:"app-sidebar-header__description"};function qp(e,a,t,s,n,i){const l=w("IconDockRight"),d=w("NcButton"),h=w("NcLoadingIcon"),f=w("IconStar"),m=w("IconStarOutline"),p=w("NcAppSidebarHeader"),g=w("IconArrowRight"),y=w("NcActions"),k=w("IconClose"),b=w("NcAppSidebarTabs"),A=w("NcEmptyContent"),R=Ka("focus"),P=Ka("click-outside");return o(),B(Js,{appear:"",name:"slide-right",onAfterEnter:i.onAfterEnter,onAfterLeave:i.onAfterLeave},{default:x(()=>[xe(r("aside",{id:"app-sidebar-vue",ref:"sidebar",class:"app-sidebar","aria-labelledby":`app-sidebar-vue-${s.uid}__header`,onKeydown:a[6]||(a[6]=Ce((...z)=>i.onKeydownEsc&&i.onKeydownEsc(...z),["esc"]))},[i.ncContentSelector&&!t.open&&!t.noToggle?(o(),B(wn,{key:0,to:i.ncContentSelector},[_(d,J({ref:"toggle","aria-label":i.t("Open sidebar"),class:["app-sidebar__toggle",t.toggleClasses],variant:"tertiary"},t.toggleAttrs,{onClick:a[0]||(a[0]=z=>e.$emit("update:open",!0))}),{icon:x(()=>[q(e.$slots,"toggle-icon",{},()=>[_(l,{size:20})],!0)]),_:3},16,["aria-label","class"])],8,["to"])):C("",!0),r("header",{class:U(["app-sidebar-header",{"app-sidebar-header--with-figure":i.isSlotPopulated(e.$slots.header?.())||t.background,"app-sidebar-header--compact":t.compact}])},[t.empty?(o(),B(p,{key:1,class:"app-sidebar-header__mainname--hidden",name:t.name,tabindex:"-1"},null,8,["name"])):q(e.$slots,"info",{key:0},()=>[r("div",Mp,[i.isSlotPopulated(e.$slots.header?.())||t.background?(o(),c("div",{key:0,class:U(["app-sidebar-header__figure",{"app-sidebar-header__figure--with-action":i.hasFigureClickListener}]),style:le({backgroundImage:`url(${t.background})`}),tabindex:"0",onClick:a[1]||(a[1]=(...z)=>i.onFigureClick&&i.onFigureClick(...z)),onKeydown:a[2]||(a[2]=Ce((...z)=>i.onFigureClick&&i.onFigureClick(...z),["enter"]))},[q(e.$slots,"header",{class:"app-sidebar-header__background"},void 0,!0)],38)):C("",!0),r("div",{class:U(["app-sidebar-header__desc",{"app-sidebar-header__desc--with-tertiary-action":i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.()),"app-sidebar-header__desc--editable":t.nameEditable&&!t.subname,"app-sidebar-header__desc--with-subname--editable":t.nameEditable&&t.subname,"app-sidebar-header__desc--without-actions":!i.isSlotPopulated(e.$slots["secondary-actions"]?.())}])},[i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.())?(o(),c("div",zp,[q(e.$slots,"tertiary-actions",{},()=>[i.canStar?(o(),B(d,{key:0,"aria-label":n.favoriteTranslated,pressed:n.isStarred,class:"app-sidebar-header__star",variant:"secondary",onClick:he(i.toggleStarred,["prevent"])},{icon:x(()=>[t.starLoading?(o(),B(h,{key:0})):n.isStarred?(o(),B(f,{key:1,size:20})):(o(),B(m,{key:2,size:20}))]),_:1},8,["aria-label","pressed","onClick"])):C("",!0)],!0)])):C("",!0),r("div",$p,[r("div",Rp,[xe(_(p,{class:"app-sidebar-header__mainname",name:t.name,linkify:t.linkifyName,title:t.title,tabindex:t.nameEditable?0:-1,onClick:he(i.editName,["self"])},null,8,["name","linkify","title","tabindex","onClick"]),[[et,!t.nameEditable]]),t.nameEditable?xe((o(),c("form",{key:0,class:"app-sidebar-header__mainname-form",onSubmit:a[5]||(a[5]=he((...z)=>i.onSubmitName&&i.onSubmitName(...z),["prevent"]))},[xe(r("input",{ref:"nameInput",class:"app-sidebar-header__mainname-input",type:"text",placeholder:t.namePlaceholder,value:t.name,onKeydown:a[3]||(a[3]=Ce(he((...z)=>i.onDismissEditing&&i.onDismissEditing(...z),["stop"]),["esc"])),onInput:a[4]||(a[4]=(...z)=>i.onNameInput&&i.onNameInput(...z))},null,40,Op),[[R]]),_(d,{"aria-label":n.changeNameTranslated,type:"submit",variant:"tertiary-no-background"},{icon:x(()=>[_(g,{size:20})]),_:1},8,["aria-label"])],32)),[[P,()=>i.onSubmitName()]]):C("",!0),i.isSlotPopulated(e.$slots["secondary-actions"]?.())?(o(),B(y,{key:1,class:"app-sidebar-header__menu",forceMenu:t.forceMenu},{default:x(()=>[q(e.$slots,"secondary-actions",{},void 0,!0)]),_:3},8,["forceMenu"])):C("",!0)]),t.subname.trim()!==""||e.$slots.subname?(o(),c("p",{key:0,title:t.subtitle||void 0,class:"app-sidebar-header__subname"},[q(e.$slots,"subname",{},()=>[V(u(t.subname),1)],!0)],8,Vp)):C("",!0)])],2)])],!0),_(d,{ref:"closeButton","aria-label":n.closeTranslated,title:n.closeTranslated,class:"app-sidebar__close",variant:"tertiary",onClick:he(i.closeSidebar,["prevent"])},{icon:x(()=>[_(k,{size:20})]),_:1},8,["aria-label","title","onClick"]),i.isSlotPopulated(e.$slots.description?.())&&!t.empty?(o(),c("div",Pp,[q(e.$slots,"description",{},void 0,!0)])):C("",!0)],2),xe(_(b,{ref:"tabs",active:t.active,forceTabs:t.forceTabs,"onUpdate:active":i.onUpdateActive},{default:x(()=>[q(e.$slots,"default",{},void 0,!0)]),_:3},8,["active","forceTabs","onUpdate:active"]),[[et,!t.loading]]),t.loading?(o(),B(A,{key:1},{icon:x(()=>[_(h,{size:64})]),_:1})):C("",!0)],40,Ip),[[et,t.open]])]),_:3},8,["onAfterEnter","onAfterLeave"])}const Hp=ee(Bp,[["render",qp],["__scopeId","data-v-e8979b7f"]]),Fp={name:"NcAppSidebarTab",inject:["registerTab","unregisterTab","getActiveTab","isTablistShown"],props:{id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,default:""},order:{type:Number,default:0}},emits:["bottomReached","scroll"],expose:["id","name","icon","order","renderIcon"],computed:{isActive(){return this.getActiveTab()===this.id}},created(){this.registerTab(this)},beforeUnmount(){this.unregisterTab(this.id)},methods:{onScroll(e){this.$el.scrollHeight-this.$el.scrollTop===this.$el.clientHeight&&this.$emit("bottomReached",e),this.$emit("scroll",e)},renderIcon(){return this.$slots.icon?.()}}},Up=["id","aria-hidden","aria-label","aria-labelledby","role","tabindex"],jp={class:"hidden-visually"};function Wp(e,a,t,s,n,i){return o(),c("section",{id:`tab-${t.id}`,"aria-hidden":!i.isActive,"aria-label":i.isTablistShown()?void 0:t.name,"aria-labelledby":i.isTablistShown()?`tab-button-${t.id}`:void 0,class:U(["app-sidebar__tab",{"app-sidebar__tab--active":i.isActive}]),role:i.isTablistShown()?"tabpanel":void 0,tabindex:i.isTablistShown()?0:-1,onScroll:a[0]||(a[0]=(...l)=>i.onScroll&&i.onScroll(...l))},[r("h3",jp,u(t.name),1),q(e.$slots,"default",{},void 0,!0)],42,Up)}const Gp=ee(Fp,[["render",Wp],["__scopeId","data-v-dba10798"]]);function Zp(e,a){const t=(m,p)=>m.startsWith(p)?m.slice(p.length):m,s=(m,...p)=>p.reduce((g,y)=>t(g,y),m);if(!e)return null;const n=/^https?:\/\//.test(a),i=/^[a-z][a-z0-9+.-]*:.+/.test(a);if(!n&&i||n&&!a.startsWith(zi())||!n&&!a.startsWith("/"))return null;const l=n?s(a,zi(),"/index.php"):a,d=s(e.options.history.base,tl(),"/index.php"),h=s(l,d)||"/",f=e.resolve(h);return f.matched.length?f.fullPath:null}function Kp(e){return window._nc_contacts_menu_hooks?Object.values(window._nc_contacts_menu_hooks).filter(a=>a.enabled(e)):[]}const Yp=new Int32Array(4);class ve{static hashStr(a,t=!1){return this.onePassHasher.start().appendStr(a).end(t)}static hashAsciiStr(a,t=!1){return this.onePassHasher.start().appendAsciiStr(a).end(t)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars="0123456789abcdef";static hexOut=[];static onePassHasher=new ve;static _hex(a){const t=ve.hexChars,s=ve.hexOut;let n,i,l,d;for(d=0;d<4;d+=1)for(i=d*8,n=a[d],l=0;l<8;l+=2)s[i+1+l]=t.charAt(n&15),n>>>=4,s[i+0+l]=t.charAt(n&15),n>>>=4;return s.join("")}static _md5cycle(a,t){let s=a[0],n=a[1],i=a[2],l=a[3];s+=(n&i|~n&l)+t[0]-680876936|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[1]-389564586|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[2]+606105819|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[3]-1044525330|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[4]-176418897|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[5]+1200080426|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[6]-1473231341|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[7]-45705983|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[8]+1770035416|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[9]-1958414417|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[10]-42063|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[11]-1990404162|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[12]+1804603682|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[13]-40341101|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[14]-1502002290|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[15]+1236535329|0,n=(n<<22|n>>>10)+i|0,s+=(n&l|i&~l)+t[1]-165796510|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[6]-1069501632|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[11]+643717713|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[0]-373897302|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[5]-701558691|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[10]+38016083|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[15]-660478335|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[4]-405537848|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[9]+568446438|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[14]-1019803690|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[3]-187363961|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[8]+1163531501|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[13]-1444681467|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[2]-51403784|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[7]+1735328473|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[12]-1926607734|0,n=(n<<20|n>>>12)+i|0,s+=(n^i^l)+t[5]-378558|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[8]-2022574463|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[11]+1839030562|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[14]-35309556|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[1]-1530992060|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[4]+1272893353|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[7]-155497632|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[10]-1094730640|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[13]+681279174|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[0]-358537222|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[3]-722521979|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[6]+76029189|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[9]-640364487|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[12]-421815835|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[15]+530742520|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[2]-995338651|0,n=(n<<23|n>>>9)+i|0,s+=(i^(n|~l))+t[0]-198630844|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[7]+1126891415|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[14]-1416354905|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[5]-57434055|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[12]+1700485571|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[3]-1894986606|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[10]-1051523|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[1]-2054922799|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[8]+1873313359|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[15]-30611744|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[6]-1560198380|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[13]+1309151649|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[4]-145523070|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[11]-1120210379|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[2]+718787259|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[9]-343485551|0,n=(n<<21|n>>>11)+i|0,a[0]=s+a[0]|0,a[1]=n+a[1]|0,a[2]=i+a[2]|0,a[3]=l+a[3]|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(ve.stateIdentity),this}appendStr(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l;for(l=0;l>>6)+192,t[n++]=i&63|128;else if(i<55296||i>56319)t[n++]=(i>>>12)+224,t[n++]=i>>>6&63|128,t[n++]=i&63|128;else{if(i=(i-55296)*1024+(a.charCodeAt(++l)-56320)+65536,i>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");t[n++]=(i>>>18)+240,t[n++]=i>>>12&63|128,t[n++]=i>>>6&63|128,t[n++]=i&63|128}n>=64&&(this._dataLength+=64,ve._md5cycle(this._state,s),n-=64,s[0]=s[16])}return this._bufferLength=n,this}appendAsciiStr(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l=0;for(;;){for(i=Math.min(a.length-l,64-n);i--;)t[n++]=a.charCodeAt(l++);if(n<64)break;this._dataLength+=64,ve._md5cycle(this._state,s),n=0}return this._bufferLength=n,this}appendByteArray(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l=0;for(;;){for(i=Math.min(a.length-l,64-n);i--;)t[n++]=a[l++];if(n<64)break;this._dataLength+=64,ve._md5cycle(this._state,s),n=0}return this._bufferLength=n,this}getState(){const a=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[a[0],a[1],a[2],a[3]]}}setState(a){const t=a.buffer,s=a.state,n=this._state;let i;for(this._dataLength=a.length,this._bufferLength=a.buflen,n[0]=s[0],n[1]=s[1],n[2]=s[2],n[3]=s[3],i=0;i>2)+1;this._dataLength+=t;const l=this._dataLength*8;if(s[t]=128,s[t+1]=s[t+2]=s[t+3]=0,n.set(ve.buffer32Identity.subarray(i),i),t>55&&(ve._md5cycle(this._state,n),n.set(ve.buffer32Identity)),l<=4294967295)n[14]=l;else{const d=l.toString(16).match(/(.*?)(.{0,8})$/);if(d===null)return a?Yp:"";const h=parseInt(d[2],16),f=parseInt(d[1],16)||0;n[14]=h,n[15]=f}return ve._md5cycle(this._state,n),a?this._state:ve._hex(this._state)}}if(ve.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");Le(al);class _e{constructor(a,t,s,n){this.r=a,this.g=t,this.b=s,this.name=n,this.r=Math.min(a,255),this.g=Math.min(t,255),this.b=Math.min(s,255),this.name=n}r;g;b;name;get color(){const a=t=>`00${t.toString(16)}`.slice(-2);return`#${a(this.r)}${a(this.g)}${a(this.b)}`}}function Xp(e,a,t){return{r:(t.r-a.r)/e,g:(t.g-a.g)/e,b:(t.b-a.b)/e}}function ja(e,a,t){const s=[];s.push(a);const n=Xp(e,a,t);for(let i=1;i/g,d=/<\/?([^\s\/>]+)/;function h(k,b,A){k=k||"",b=b||[],A=A||"";let R=m(b,A);return p(k,R)}function f(k,b){k=k||[],b=b||"";let A=m(k,b);return function(R){return p(R||"",A)}}h.init_streaming_mode=f;function m(k,b){return k=g(k),{allowable_tags:k,tag_replacement:b,state:s,tag_buffer:"",depth:0,in_quote_char:""}}function p(k,b){if(typeof k!="string")throw new TypeError("'html' parameter must be a string");let A=b.allowable_tags,R=b.tag_replacement,P=b.state,z=b.tag_buffer,G=b.depth,ae=b.in_quote_char,se="";for(let oe=0,te=k.length;oe":if(ae)break;if(G){G--;break}ae="",P=s,z+=">",A.has(y(z))?se+=z:se+=R,z="";break;case'"':case"'":re===ae?ae="":ae=ae||re,z+=re;break;case"-":z===""?(z.slice(-2)=="--"&&(P=s),z=""):z+=re)}return b.state=P,b.tag_buffer=z,b.depth=G,b.in_quote_char=ae,se}function g(k){let b=new Set;if(typeof k=="string"){let A;for(;A=l.exec(k);)b.add(A[1])}else!t.nonNative&&typeof k[t.iterator]=="function"?b=new Set(k):typeof k.forEach=="function"&&k.forEach(b.add,b);return b}function y(k){let b=d.exec(k);return b?b[1].toLowerCase():null}e.exports?e.exports=h:a.striptags=h})(eh)})(ri)),ri.exports}th();function ah(e,a){const t=(a?.size||64)<=64?64:512,s=a?.isGuest?"/guest":"",n=a?.isDarkTheme??Ga(document.body)?"/dark":"";return fi(`/avatar${s}/{user}/{size}${n}?guestFallback=true`,{user:e,size:t})}const ih=` @@ -66,7 +66,7 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a fill="var(--user-status-color-away, var(--color-warning, #C88800))" d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/> -`,nh=` @@ -75,7 +75,7 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a fill="var(--user-status-color-busy, var(--color-error, #DB0606))" d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/> -`,sh=` @@ -84,7 +84,7 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a fill="var(--user-status-color-busy, var(--color-error, #DB0606))" d="M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/> -`,cn=` @@ -93,7 +93,7 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a fill="var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))" d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"/> -`,lh=` @@ -102,7 +102,7 @@ import{l as Sa,u as ci,a as ms,w as Ae,o as Aa,b as ui,c as B,r as ft,d as c,e a fill="var(--user-status-color-online, var(--color-success, #2D7B41))" d="m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/> -`;Le(il),Le(nl);function ls(e){switch(e){case"away":return j("away");case"busy":return j("busy");case"dnd":return j("do not disturb");case"online":return j("online");case"invisible":return j("invisible");case"offline":return j("offline");default:return e}}const oh=["aria-hidden","aria-label","innerHTML"],rh=ye({__name:"NcUserStatusIcon",props:ct({user:{default:void 0},ariaHidden:{type:[Boolean,String],default:!1}},{status:{},statusModifiers:{}}),emits:["update:status"],setup(e){const a=ut(e,"status"),t=e,s=X(()=>a.value&&["invisible","offline"].includes(a.value)),n=X(()=>a.value&&(!t.ariaHidden||t.ariaHidden==="false")?j("User status: {status}",{status:ls(a.value)}):void 0);Ae(()=>t.user,async d=>{if(!a.value&&d&&yi()?.user_status?.enabled)try{const{data:h}=await gi.get(An("/apps/user_status/api/v1/statuses/{user}",{user:d}));a.value=h.ocs?.data?.status}catch(h){Ie.debug("Error while fetching user status",{error:h})}},{immediate:!0});const i={online:lh,away:ih,busy:nh,dnd:sh,invisible:cn,offline:cn},l=X(()=>a.value&&i[a.value]);return(d,h)=>a.value?(o(),c("span",{key:0,class:U(["user-status-icon",{"user-status-icon--invisible":s.value}]),"aria-hidden":!n.value||void 0,"aria-label":n.value,role:"img",innerHTML:l.value},null,10,oh)):C("",!0)}}),ch=ee(rh,[["__scopeId","data-v-881a79fb"]]),uh={name:"NcActionLink",mixins:[Ia],inject:{isInSemanticMenu:{from:Na,default:!1}},props:{href:{type:String,required:!0,validator:e=>{try{return new URL(e)}catch{return e.startsWith("#")||e.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:e=>e&&(!e.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(e)>-1)},title:{type:String,default:null}}},dh=["role"],ph=["download","href","aria-label","target","title","role"],hh={key:0,class:"action-link__longtext-wrapper"},mh={class:"action-link__name"},fh=["textContent"],gh=["textContent"],yh={key:2,class:"action-link__text"};function bh(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("a",{download:t.download,href:t.href,"aria-label":e.ariaLabel,target:t.target,title:t.title,class:"action-link focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[q(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:U(["action-link__icon",[e.isIconUrl?"action-link__icon--url":e.icon]]),style:le({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",hh,[r("strong",mh,u(e.name),1),a[1]||(a[1]=r("br",null,null,-1)),r("span",{class:"action-link__longtext",textContent:u(e.text)},null,8,fh)])):e.isLongText?(o(),c("span",{key:1,class:"action-link__longtext",textContent:u(e.text)},null,8,gh)):(o(),c("span",yh,u(e.text),1)),C("",!0)],8,ph)],8,dh)}const vh=ee(uh,[["render",bh],["__scopeId","data-v-32f01b7a"]]),_h={name:"NcActionRouter",mixins:[Ia],inject:{isInSemanticMenu:{from:Na,default:!1}},props:{to:{type:[String,Object],required:!0}}},wh=["role"],Ch={key:0,class:"action-router__longtext-wrapper"},kh={class:"action-router__name"},xh=["textContent"],Sh=["textContent"],Ah={key:2,class:"action-router__text"};function Lh(e,a,t,s,n,i){const l=w("RouterLink");return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[_(l,{"aria-label":e.ariaLabel,class:"action-router focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",title:e.title,to:t.to,onClick:e.onClick},{default:x(()=>[q(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:U(["action-router__icon",[e.isIconUrl?"action-router__icon--url":e.icon]]),style:le({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",Ch,[r("strong",kh,u(e.name),1),a[0]||(a[0]=r("br",null,null,-1)),r("span",{class:"action-router__longtext",textContent:u(e.text)},null,8,xh)])):e.isLongText?(o(),c("span",{key:1,class:"action-router__longtext",textContent:u(e.text)},null,8,Sh)):(o(),c("span",Ah,u(e.text),1)),C("",!0)]),_:3},8,["aria-label","role","title","to","onClick"])],8,wh)}const Nh=ee(_h,[["render",Lh],["__scopeId","data-v-87267750"]]),Dh={name:"NcActionText",mixins:[Ia],inject:{isInSemanticMenu:{from:Na,default:!1}}},Th=["role"],Eh={key:0,class:"action-text__longtext-wrapper"},Bh={class:"action-text__name"},Ih=["textContent"],Mh=["textContent"],zh={key:2,class:"action-text__text"};function $h(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("span",{class:"action-text",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[q(e.$slots,"icon",{},()=>[e.icon!==""?(o(),c("span",{key:0,"aria-hidden":"true",class:U(["action-text__icon",[e.isIconUrl?"action-text__icon--url":e.icon]]),style:le({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)):C("",!0)],!0),e.name?(o(),c("span",Eh,[r("strong",Bh,u(e.name),1),r("span",{class:"action-text__longtext",textContent:u(e.text)},null,8,Ih)])):e.isLongText?(o(),c("span",{key:1,class:"action-text__longtext",textContent:u(e.text)},null,8,Mh)):(o(),c("span",zh,u(e.text),1)),C("",!0)])],8,Th)}const Rh=ee(Dh,[["render",$h],["__scopeId","data-v-fa684b48"]]);Le(sl);const Oh={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(e){if(!e)return;const a=yi();if(!(!Object.hasOwn(a,"user_status")||!a.user_status.enabled)&&Ya())try{const{data:t}=await gi.get(An("apps/user_status/api/v1/statuses/{userId}",{userId:e}));this.setUserStatus(t.ocs.data)}catch(t){if(t.response.status===404&&t.response.data.ocs?.data?.length===0)return;Ie.error("Failed to fetch user status",{error:t})}},setUserStatus({status:e,message:a,icon:t}){this.userStatus.status=e||"",this.userStatus.message=a||"",this.userStatus.icon=t||"",this.hasStatus=!!e}}},os=fn("nextcloud").persist().build();function Vh(e){const a=os.getItem("user-has-avatar."+e);return typeof a=="string"?!!a:null}function un(e,a){e&&os.setItem("user-has-avatar."+e,a)}const Ph={name:"NcAvatar",directives:{ClickOutside:Yn},components:{IconDotsHorizontal:ll,NcActions:rt,NcButton:ge,NcIconSvgWrapper:Se,NcLoadingIcon:Da,NcUserStatusIcon:ch},mixins:[Oh],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},verboseStatus:{type:Boolean,default:!1},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:yu()}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?j("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:ls(this.userStatus.status)}):j("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&!this.verboseStatus&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isMenuLoaded?this.menu.length>0:!(this.user===Ya()?.uid||this.userDoesNotExist||this.url)},showInitials(){return!this.noPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$slots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r:e,g:a,b:t}=on(this.userIdentifier);return{backgroundColor:`rgba(${e}, ${a}, ${t}, 0.1)`}},initialsStyle(){const{r:e,g:a,b:t}=on(this.userIdentifier);return{color:`rgb(${e}, ${a}, ${t})`}},tooltip(){return this.disableTooltip?null:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let e="?";if(this.showInitials){const a=this.userIdentifier.trim();if(a==="")return e;const t=a.match(/[\p{L}\p{N}\s]/gu);if(!t)return e;const s=t.join(""),n=s.lastIndexOf(" ");e=String.fromCodePoint(s.codePointAt(0)),n!==-1&&(e=e.concat(String.fromCodePoint(s.codePointAt(n+1))))}return e.toLocaleUpperCase()},menu(){const e=this.contactsMenuActions.map(t=>{const s=Zp(this.$router,t.hyperlink);return{ncActionComponent:s?Nh:vh,ncActionComponentProps:s?{to:s,icon:t.icon}:{href:t.hyperlink,icon:t.icon},text:t.title}});for(const t of Kp(this.contactsMenuData))try{e.push({ncActionComponent:Fn,ncActionComponentProps:{onClick:()=>t.callback(this.contactsMenuData)},text:t.displayName(this.contactsMenuData),iconSvg:t.iconSvg(this.contactsMenuData)})}catch(s){Ie.error(`Failed to render ContactsMenu action ${t.id}`,{error:s,action:t})}function a(t){const s=document.createTextNode(t),n=document.createElement("p");return n.appendChild(s),n.innerHTML}if(!this.hideStatus&&(this.userStatus.icon||this.userStatus.message)){const t=` +`;Ae(rl),Ae(cl);function ps(e){switch(e){case"away":return G("away");case"busy":return G("busy");case"dnd":return G("do not disturb");case"online":return G("online");case"invisible":return G("invisible");case"offline":return G("offline");default:return e}}const gh=["aria-hidden","aria-label","innerHTML"],yh=ge({__name:"NcUserStatusIcon",props:ut({user:{default:void 0},ariaHidden:{type:[Boolean,String],default:!1}},{status:{},statusModifiers:{}}),emits:["update:status"],setup(e){const a=dt(e,"status"),t=e,s=Q(()=>a.value&&["invisible","offline"].includes(a.value)),n=Q(()=>a.value&&(!t.ariaHidden||t.ariaHidden==="false")?G("User status: {status}",{status:ps(a.value)}):void 0);Se(()=>t.user,async d=>{if(!a.value&&d&&_i()?.user_status?.enabled)try{const{data:h}=await vi.get(Dn("/apps/user_status/api/v1/statuses/{user}",{user:d}));a.value=h.ocs?.data?.status}catch(h){Be.debug("Error while fetching user status",{error:h})}},{immediate:!0});const i={online:fh,away:ph,busy:hh,dnd:mh,invisible:hn,offline:hn},l=Q(()=>a.value&&i[a.value]);return(d,h)=>a.value?(o(),c("span",{key:0,class:j(["user-status-icon",{"user-status-icon--invisible":s.value}]),"aria-hidden":!n.value||void 0,"aria-label":n.value,role:"img",innerHTML:l.value},null,10,gh)):C("",!0)}}),bh=te(yh,[["__scopeId","data-v-881a79fb"]]),vh={name:"NcActionLink",mixins:[Ba],inject:{isInSemanticMenu:{from:Ia,default:!1}},props:{href:{type:String,required:!0,validator:e=>{try{return new URL(e)}catch{return e.startsWith("#")||e.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:e=>e&&(!e.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(e)>-1)},title:{type:String,default:null}}},_h=["role"],wh=["download","href","aria-label","target","title","role"],kh={key:0,class:"action-link__longtext-wrapper"},Ch={class:"action-link__name"},xh=["textContent"],Sh=["textContent"],Ah={key:2,class:"action-link__text"};function Lh(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("a",{download:t.download,href:t.href,"aria-label":e.ariaLabel,target:t.target,title:t.title,class:"action-link focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[O(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:j(["action-link__icon",[e.isIconUrl?"action-link__icon--url":e.icon]]),style:re({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",kh,[r("strong",Ch,u(e.name),1),a[1]||(a[1]=r("br",null,null,-1)),r("span",{class:"action-link__longtext",textContent:u(e.text)},null,8,xh)])):e.isLongText?(o(),c("span",{key:1,class:"action-link__longtext",textContent:u(e.text)},null,8,Sh)):(o(),c("span",Ah,u(e.text),1)),C("",!0)],8,wh)],8,_h)}const Eh=te(vh,[["render",Lh],["__scopeId","data-v-32f01b7a"]]),Nh={name:"NcActionRouter",mixins:[Ba],inject:{isInSemanticMenu:{from:Ia,default:!1}},props:{to:{type:[String,Object],required:!0}}},Dh=["role"],Ih={key:0,class:"action-router__longtext-wrapper"},Th={class:"action-router__name"},Mh=["textContent"],Bh=["textContent"],zh={key:2,class:"action-router__text"};function $h(e,a,t,s,n,i){const l=k("RouterLink");return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[v(l,{"aria-label":e.ariaLabel,class:"action-router focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",title:e.title,to:t.to,onClick:e.onClick},{default:x(()=>[O(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:j(["action-router__icon",[e.isIconUrl?"action-router__icon--url":e.icon]]),style:re({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",Ih,[r("strong",Th,u(e.name),1),a[0]||(a[0]=r("br",null,null,-1)),r("span",{class:"action-router__longtext",textContent:u(e.text)},null,8,Mh)])):e.isLongText?(o(),c("span",{key:1,class:"action-router__longtext",textContent:u(e.text)},null,8,Bh)):(o(),c("span",zh,u(e.text),1)),C("",!0)]),_:3},8,["aria-label","role","title","to","onClick"])],8,Dh)}const Rh=te(Nh,[["render",$h],["__scopeId","data-v-87267750"]]),Vh={name:"NcActionText",mixins:[Ba],inject:{isInSemanticMenu:{from:Ia,default:!1}}},Ph=["role"],qh={key:0,class:"action-text__longtext-wrapper"},Hh={class:"action-text__name"},Oh=["textContent"],Fh=["textContent"],Uh={key:2,class:"action-text__text"};function jh(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("span",{class:"action-text",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[O(e.$slots,"icon",{},()=>[e.icon!==""?(o(),c("span",{key:0,"aria-hidden":"true",class:j(["action-text__icon",[e.isIconUrl?"action-text__icon--url":e.icon]]),style:re({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)):C("",!0)],!0),e.name?(o(),c("span",qh,[r("strong",Hh,u(e.name),1),r("span",{class:"action-text__longtext",textContent:u(e.text)},null,8,Oh)])):e.isLongText?(o(),c("span",{key:1,class:"action-text__longtext",textContent:u(e.text)},null,8,Fh)):(o(),c("span",Uh,u(e.text),1)),C("",!0)])],8,Ph)}const Wh=te(Vh,[["render",jh],["__scopeId","data-v-fa684b48"]]);Ae(ul);const Gh={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(e){if(!e)return;const a=_i();if(!(!Object.hasOwn(a,"user_status")||!a.user_status.enabled)&&Qa())try{const{data:t}=await vi.get(Dn("apps/user_status/api/v1/statuses/{userId}",{userId:e}));this.setUserStatus(t.ocs.data)}catch(t){if(t.response.status===404&&t.response.data.ocs?.data?.length===0)return;Be.error("Failed to fetch user status",{error:t})}},setUserStatus({status:e,message:a,icon:t}){this.userStatus.status=e||"",this.userStatus.message=a||"",this.userStatus.icon=t||"",this.hasStatus=!!e}}},hs=_n("nextcloud").persist().build();function Zh(e){const a=hs.getItem("user-has-avatar."+e);return typeof a=="string"?!!a:null}function mn(e,a){e&&hs.setItem("user-has-avatar."+e,a)}const Kh={name:"NcAvatar",directives:{ClickOutside:as},components:{IconDotsHorizontal:dl,NcActions:rt,NcButton:me,NcIconSvgWrapper:xe,NcLoadingIcon:Ht,NcUserStatusIcon:bh},mixins:[Gh],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},verboseStatus:{type:Boolean,default:!1},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:Lu()}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?G("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:ps(this.userStatus.status)}):G("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&!this.verboseStatus&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isMenuLoaded?this.menu.length>0:!(this.user===Qa()?.uid||this.userDoesNotExist||this.url)},showInitials(){return!this.noPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$slots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r:e,g:a,b:t}=dn(this.userIdentifier);return{backgroundColor:`rgba(${e}, ${a}, ${t}, 0.1)`}},initialsStyle(){const{r:e,g:a,b:t}=dn(this.userIdentifier);return{color:`rgb(${e}, ${a}, ${t})`}},tooltip(){return this.disableTooltip?null:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let e="?";if(this.showInitials){const a=this.userIdentifier.trim();if(a==="")return e;const t=a.match(/[\p{L}\p{N}\s]/gu);if(!t)return e;const s=t.join(""),n=s.lastIndexOf(" ");e=String.fromCodePoint(s.codePointAt(0)),n!==-1&&(e=e.concat(String.fromCodePoint(s.codePointAt(n+1))))}return e.toLocaleUpperCase()},menu(){const e=this.contactsMenuActions.map(t=>{const s=ih(this.$router,t.hyperlink);return{ncActionComponent:s?Rh:Eh,ncActionComponentProps:s?{to:s,icon:t.icon}:{href:t.hyperlink,icon:t.icon},text:t.title}});for(const t of nh(this.contactsMenuData))try{e.push({ncActionComponent:Gn,ncActionComponentProps:{onClick:()=>t.callback(this.contactsMenuData)},text:t.displayName(this.contactsMenuData),iconSvg:t.iconSvg(this.contactsMenuData)})}catch(s){Be.error(`Failed to render ContactsMenu action ${t.id}`,{error:s,action:t})}function a(t){const s=document.createTextNode(t),n=document.createElement("p");return n.appendChild(s),n.innerHTML}if(!this.hideStatus&&(this.userStatus.icon||this.userStatus.message)){const t=` ${a(this.userStatus.icon)} - `;return[{ncActionComponent:Rh,ncActionComponentProps:{},iconSvg:this.userStatus.icon?t:void 0,text:`${this.userStatus.message}`}].concat(e)}return e}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),Gt("settings:avatar:updated",this.loadAvatarUrl),Gt("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),Gt("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeUnmount(){Zt("settings:avatar:updated",this.loadAvatarUrl),Zt("settings:display-name:updated",this.loadAvatarUrl),Zt("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:j,handleUserStatusUpdated(e){this.user===e.userId&&(this.userStatus={status:e.status,icon:e.icon,message:e.message},this.hasStatus=e.status!==null)},async toggleMenu(e){e.type==="keydown"&&e.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const e=encodeURIComponent(this.user),{data:a}=await gi.post(fi("contactsmenu/findOne"),`shareType=0&shareWith=${e}`);this.contactsMenuData=a,this.contactsMenuActions=a.topAction?[a.topAction].concat(a.actions):a.actions}catch{this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$slots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const e=this.avatarUrlGenerator(this.user,64),a=[e+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(e,a)}else{const e=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(e)}},avatarUrlGenerator(e,a){let t=ah(e,{size:a,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return e===Ya()?.uid&&typeof oc_userconfig<"u"&&(t+="?v="+window.oc_userconfig.avatar.version),t},updateImageIfValid(e,a=null){const t=Vh(this.user);if(this.isUserDefined&&typeof t=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),t===!1&&(this.userDoesNotExist=!0);return}const s=new Image;s.onload=()=>{this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),this.isAvatarLoaded=!0,un(this.user,!0)},s.onerror=n=>{Ie.debug("[NcAvatar] Invalid avatar url",{error:n,url:e}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,un(this.user,!1)},a&&(s.srcset=a),s.src=e}}},qh=["title"],Hh=["src","srcset"],Fh={key:2,class:"avatardiv__user-status avatardiv__user-status--icon"};function Uh(e,a,t,s,n,i){const l=w("NcLoadingIcon"),d=w("IconDotsHorizontal"),h=w("NcButton"),f=w("NcIconSvgWrapper"),m=w("NcActions"),p=w("NcUserStatusIcon"),g=Ka("click-outside");return xe((o(),c("span",{class:U(["avatardiv popovermenu-wrapper",{"avatardiv--unknown":n.userDoesNotExist,"avatardiv--with-menu":i.hasMenu,"avatardiv--with-menu-loading":n.contactsMenuLoading}]),style:le(i.avatarStyle),title:i.tooltip},[q(e.$slots,"icon",{},()=>[t.iconClass?(o(),c("span",{key:0,class:U([t.iconClass,"avatar-class-icon"])},null,2)):n.isAvatarLoaded&&!n.userDoesNotExist?(o(),c("img",{key:1,src:n.avatarUrlLoaded,srcset:n.avatarSrcSetLoaded,alt:""},null,8,Hh)):C("",!0)],!0),i.hasMenu&&i.menu.length===0?(o(),B(h,{key:0,"aria-label":i.avatarAriaLabel,class:"action-item action-item__menutoggle",variant:"tertiary-no-background",onClick:i.toggleMenu},{icon:x(()=>[n.contactsMenuLoading?(o(),B(l,{key:0})):(o(),B(d,{key:1,size:20}))]),_:1},8,["aria-label","onClick"])):i.hasMenu?(o(),B(m,{key:1,open:n.contactsMenuOpenState,"onUpdate:open":a[0]||(a[0]=y=>n.contactsMenuOpenState=y),"aria-label":i.avatarAriaLabel,container:t.menuContainer,forceMenu:"",manualOpen:"",variant:"tertiary-no-background",onClick:i.toggleMenu},tt({default:x(()=>[(o(!0),c(K,null,ue(i.menu,(y,k)=>(o(),B(ft(y.ncActionComponent),J({key:k},{ref_for:!0},y.ncActionComponentProps),tt({default:x(()=>[V(" "+u(y.text),1)]),_:2},[y.iconSvg?{name:"icon",fn:x(()=>[_(f,{svg:y.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1040))),128))]),_:2},[n.contactsMenuLoading?{name:"icon",fn:x(()=>[_(l)]),key:"0"}:void 0]),1032,["open","aria-label","container","onClick"])):C("",!0),i.showUserStatusIconOnAvatar?(o(),c("span",Fh,u(e.userStatus.icon),1)):i.canDisplayUserStatus?(o(),B(p,{key:3,class:"avatardiv__user-status",status:e.userStatus.status,"aria-hidden":String(i.hasMenu)},null,8,["status","aria-hidden"])):C("",!0),i.showInitials?(o(),c("span",{key:4,style:le(i.initialsWrapperStyle),class:"avatardiv__initials-wrapper"},[r("span",{style:le(i.initialsStyle),class:"avatardiv__initials"},u(i.initials),5)],4)):C("",!0)],14,qh)),[[g,i.closeMenu]])}const qt=ee(Ph,[["render",Uh],["__scopeId","data-v-e0ae1174"]]),jh={name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Wh=["aria-hidden","aria-label"],Gh=["fill","width","height"],Zh={d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"},Kh={key:0};function Yh(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon cancel-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Zh,[t.title?(o(),c("title",Kh,u(t.title),1)):C("",!0)])],8,Gh))],16,Wh)}const Xh=F(jh,[["render",Yh]]),Qh={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Jh=["aria-hidden","aria-label"],e0=["fill","width","height"],t0={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},a0={key:0};function i0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",t0,[t.title?(o(),c("title",a0,u(t.title),1)):C("",!0)])],8,e0))],16,Jh)}const n0=F(Qh,[["render",i0]]),s0={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},l0=["aria-hidden","aria-label"],o0=["fill","width","height"],r0={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"},c0={key:0};function u0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon close-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",r0,[t.title?(o(),c("title",c0,u(t.title),1)):C("",!0)])],8,o0))],16,l0)}const d0=F(s0,[["render",u0]]),p0={name:"CommentOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},h0=["aria-hidden","aria-label"],m0=["fill","width","height"],f0={d:"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z"},g0={key:0};function y0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon comment-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",f0,[t.title?(o(),c("title",g0,u(t.title),1)):C("",!0)])],8,m0))],16,h0)}const b0=F(p0,[["render",y0]]),v0={name:"HistoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_0=["aria-hidden","aria-label"],w0=["fill","width","height"],C0={d:"M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3"},k0={key:0};function x0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon history-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",C0,[t.title?(o(),c("title",k0,u(t.title),1)):C("",!0)])],8,w0))],16,_0)}const S0=F(v0,[["render",x0]]),A0={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},L0=["aria-hidden","aria-label"],N0=["fill","width","height"],D0={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},T0={key:0};function E0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon information-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",D0,[t.title?(o(),c("title",T0,u(t.title),1)):C("",!0)])],8,N0))],16,L0)}const B0=F(A0,[["render",E0]]),I0={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},M0=["aria-hidden","aria-label"],z0=["fill","width","height"],$0={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"},R0={key:0};function O0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",$0,[t.title?(o(),c("title",R0,u(t.title),1)):C("",!0)])],8,z0))],16,M0)}const rs=F(I0,[["render",O0]]),V0={name:"StatusChip",props:{status:{type:String,required:!0}},computed:{meta(){return Hu(this.status)}}},P0={class:"status-chip__dot","aria-hidden":"true"};function q0(e,a,t,s,n,i){return o(),c("span",{class:"status-chip",style:le({"--chip-text":i.meta.text,"--chip-tint":i.meta.tint})},[r("span",P0,u(i.meta.icon),1),V(" "+u(i.meta.label),1)],4)}const Ti=F(V0,[["render",q0],["__scopeId","data-v-b664cccb"]]),H0={name:"CoveragePanel",components:{NcAvatar:qt,NcEmptyContent:je,NcNoteCard:kn,AccountGroup:_i,StatusChip:Ti},props:{coverage:{type:Object,required:!0}},methods:{t:M}},F0={class:"section"},U0={class:"section__title"},j0={key:2,class:"overlap"},W0={class:"overlap__name"};function G0(e,a,t,s,n,i){const l=w("NcNoteCard"),d=w("NcAvatar"),h=w("StatusChip"),f=w("AccountGroup"),m=w("NcEmptyContent");return o(),c("div",F0,[t.coverage.conflict?(o(),B(l,{key:0,type:"warning"},{default:x(()=>[V(u(i.t("absence","Approving this would put {peak} team members off at once (limit {threshold}).",{peak:t.coverage.projectedPeak,threshold:t.coverage.threshold})),1)]),_:1})):(o(),B(l,{key:1,type:"success"},{default:x(()=>[V(u(i.t("absence","Coverage looks fine — at most {peak} away at once.",{peak:t.coverage.projectedPeak??t.coverage.maxConcurrent})),1)]),_:1})),r("h4",U0,u(i.t("absence","Team members off during these dates")),1),t.coverage.events.length?(o(),c("ul",j0,[(o(!0),c(K,null,ue(t.coverage.events,p=>(o(),c("li",{key:p.requestId,class:"overlap__item"},[_(d,{user:p.employeeUid,displayName:p.displayName,size:28,hideStatus:""},null,8,["user","displayName"]),r("span",W0,u(p.displayName),1),_(h,{status:p.status},null,8,["status"])]))),128))])):(o(),B(m,{key:3,name:i.t("absence","Nobody else is off 🎉")},{icon:x(()=>[_(f,{size:20})]),_:1},8,["name"]))])}const Z0=F(H0,[["render",G0],["__scopeId","data-v-48df71be"]]),K0={name:"LeaveTypeChip",props:{typeId:{type:Number,required:!0}},computed:{type(){return W.leaveType(this.typeId)}}},Y0={class:"type-chip__icon","aria-hidden":"true"};function X0(e,a,t,s,n,i){return o(),c("span",{class:"type-chip",style:le({"--type-color":i.type.color})},[r("span",Y0,u(i.type.icon),1),V(" "+u(i.type.label),1)],4)}const Q0=F(K0,[["render",X0],["__scopeId","data-v-debceb16"]]),J0={name:"RequestStepper",props:{status:{type:String,required:!0}},computed:{steps(){const e=this.status,a={label:M("absence","Requested"),state:"done",tone:"default",icon:"📝"};let t;["PENDING","ESCALATED","WITHDRAWAL_PENDING"].includes(e)?t={label:e==="ESCALATED"?M("absence","With HR"):M("absence","In review"),state:"current",tone:"default",icon:"⏳"}:t={label:M("absence","Reviewed"),state:"done",tone:"default",icon:"👀"};let s;switch(e){case"APPROVED":s={label:M("absence","Approved"),state:"done",tone:"success",icon:"✅"};break;case"REJECTED":s={label:M("absence","Declined"),state:"done",tone:"error",icon:"✋"};break;case"CANCELLED":s={label:M("absence","Cancelled"),state:"done",tone:"muted",icon:"🚫"};break;case"WITHDRAWAL_PENDING":s={label:M("absence","Withdrawing"),state:"current",tone:"default",icon:"↩️"};break;default:s={label:M("absence","Decision"),state:"future",tone:"default",icon:"•"}}return[a,t,s]}},methods:{t:M}},e1=["aria-label"],t1={class:"stepper__dot","aria-hidden":"true"},a1={class:"stepper__label"},i1={key:0,class:"stepper__bar","aria-hidden":"true"};function n1(e,a,t,s,n,i){return o(),c("ol",{class:"stepper","aria-label":i.t("absence","Request progress")},[(o(!0),c(K,null,ue(i.steps,(l,d)=>(o(),c("li",{key:d,class:U(["stepper__step",[`stepper__step--${l.state}`,`stepper__step--${l.tone}`]])},[r("span",t1,u(l.icon),1),r("span",a1,u(l.label),1),de.$emit("close"))},tt({default:x(()=>[_(R,{id:"details",name:i.t("absence","Details"),order:1},{icon:x(()=>[_(d,{size:20})]),default:x(()=>[r("div",o1,[i.showStatus?(o(),B(h,{key:0,status:n.detail.status,class:"section__stepper"},null,8,["status"])):C("",!0),r("dl",r1,[r("dt",null,u(i.t("absence","Employee")),1),r("dd",null,u(n.detail.employeeUid),1),r("dt",null,u(i.t("absence","Type")),1),r("dd",null,[_(f,{typeId:n.detail.typeId},null,8,["typeId"])]),r("dt",null,u(i.t("absence","Dates")),1),r("dd",null,u(i.rangeLabel),1),r("dt",null,u(i.t("absence","Working days")),1),r("dd",null,u(n.detail.workingDays),1),n.detail.replacementUid?(o(),c(K,{key:0},[r("dt",null,u(i.t("absence","Replacement")),1),r("dd",c1,[_(m,{user:n.detail.replacementUid,size:20,hideStatus:""},null,8,["user"]),V(" "+u(n.detail.replacementName||n.detail.replacementUid),1)])],64)):C("",!0),n.detail.reason?(o(),c(K,{key:1},[r("dt",null,u(i.t("absence","Reason")),1),r("dd",null,u(n.detail.reason),1)],64)):C("",!0),n.detail.decidedBy?(o(),c(K,{key:2},[r("dt",null,u(i.t("absence","Decided by")),1),r("dd",u1,[_(m,{user:n.detail.decidedBy,size:20,hideStatus:""},null,8,["user"]),V(" "+u(n.detail.decidedBy),1),i.decidedAtLabel?(o(),c("span",d1," · "+u(i.decidedAtLabel),1)):C("",!0)])],64)):C("",!0),n.detail.decisionComment?(o(),c(K,{key:3},[r("dt",null,u(i.t("absence","Decision note")),1),r("dd",null,u(n.detail.decisionComment),1)],64)):C("",!0)]),r("div",p1,[n.detail.canDecide&&i.isDecidable?(o(),c(K,{key:0},[_(g,{variant:"success",disabled:n.busy,onClick:i.approve},{icon:x(()=>[_(p,{size:20})]),default:x(()=>[V(" "+u(i.decideLabelApprove),1)]),_:1},8,["disabled","onClick"]),_(g,{variant:"error",disabled:n.busy,onClick:i.startReject},{icon:x(()=>[_(y,{size:20})]),default:x(()=>[V(" "+u(i.decideLabelReject),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0),n.detail.canModify&&i.isModifiable?(o(),c(K,{key:1},[i.canEdit?(o(),B(g,{key:0,variant:"secondary",disabled:n.busy,onClick:a[0]||(a[0]=te=>e.$emit("edit",n.detail))},{icon:x(()=>[_(k,{size:20})]),default:x(()=>[V(" "+u(i.t("absence","Edit")),1)]),_:1},8,["disabled"])):C("",!0),_(g,{variant:"tertiary",disabled:n.busy,onClick:i.cancel},{icon:x(()=>[_(b,{size:20})]),default:x(()=>[V(" "+u(i.cancelLabel),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0)]),n.rejecting?(o(),c("div",h1,[_(A,{modelValue:n.rejectComment,"onUpdate:modelValue":a[1]||(a[1]=te=>n.rejectComment=te),label:i.t("absence","Reason for declining"),rows:"2"},null,8,["modelValue","label"]),r("div",m1,[_(g,{variant:"tertiary",onClick:a[2]||(a[2]=te=>n.rejecting=!1)},{default:x(()=>[V(u(i.t("absence","Back")),1)]),_:1}),_(g,{variant:"error",disabled:n.rejectComment.trim()===""||n.busy,onClick:i.reject},{default:x(()=>[V(u(i.t("absence","Confirm decline")),1)]),_:1},8,["disabled","onClick"])])])):C("",!0)])]),_:1},8,["name"]),n.detail.coverage?(o(),B(R,{key:0,id:"coverage",name:i.t("absence","Coverage"),order:2},{icon:x(()=>[_(P,{size:20})]),default:x(()=>[_(z,{coverage:n.detail.coverage},null,8,["coverage"])]),_:1},8,["name"])):C("",!0),_(R,{id:"comments",name:i.t("absence","Comments"),order:3},{icon:x(()=>[_(G,{size:20})]),default:x(()=>[r("div",f1,[n.detail.comments.length?(o(),c("ul",g1,[(o(!0),c(K,null,ue(n.detail.comments,te=>(o(),c("li",{key:te.id,class:"comments__item"},[r("div",y1,[_(m,{user:te.authorUid,size:24,hideStatus:""},null,8,["user"]),r("strong",null,u(te.authorUid),1)]),r("p",null,u(te.body),1)]))),128))])):(o(),B(ae,{key:1,name:i.t("absence","No comments yet"),description:i.t("absence","Start the conversation below.")},{icon:x(()=>[_(G,{size:20})]),_:1},8,["name","description"])),r("div",b1,[_(A,{modelValue:n.newComment,"onUpdate:modelValue":a[3]||(a[3]=te=>n.newComment=te),placeholder:i.t("absence","Add a comment…"),rows:"2"},null,8,["modelValue","placeholder"]),_(g,{variant:"secondary",disabled:n.newComment.trim()===""||n.busy,onClick:i.postComment},{default:x(()=>[V(u(i.t("absence","Send")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"]),_(R,{id:"history",name:i.t("absence","History"),order:4},{icon:x(()=>[_(se,{size:20})]),default:x(()=>[r("div",v1,[n.detail.history&&n.detail.history.length?(o(),c("ol",_1,[(o(!0),c(K,null,ue(n.detail.history,te=>(o(),c("li",{key:te.id,class:"timeline__item"},[r("span",w1,u(i.eventMeta(te.eventType).icon),1),r("div",C1,[r("div",k1,[r("strong",null,u(i.eventMeta(te.eventType).label),1),r("span",x1,u(i.formatDateTime(te.createdAt)),1)]),r("div",S1,[te.actorUid==="system"?(o(),c(K,{key:0},[V(u(i.t("absence","Automatically")),1)],64)):(o(),c(K,{key:1},[_(m,{user:te.actorUid,size:20,hideStatus:""},null,8,["user"]),V(" "+u(te.actorUid),1)],64))]),te.detail?(o(),c("p",A1,u(te.detail),1)):C("",!0)])]))),128))])):(o(),B(ae,{key:1,name:i.t("absence","No history yet")},{icon:x(()=>[_(se,{size:20})]),_:1},8,["name"]))])]),_:1},8,["name"])]),_:2},[i.showStatus?{name:"description",fn:x(()=>[_(l,{status:n.detail.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","subname"])):C("",!0)}const N1=F(l1,[["render",L1],["__scopeId","data-v-094834fe"]]),D1={name:"App",components:{NcContent:ec,NcAppContent:Lo,NcAppNavigation:Oo,NcAppNavigationNew:Gr,NcAppNavigationItem:Fr,NcAppNavigationCaption:Ho,NcCounterBubble:Un,RequestDialog:_d,RequestSidebar:N1,Plus:Wn,CalendarAccountOutline:fc,ClipboardCheck:$c,AccountGroup:_i,ScaleBalance:Gn,ChartBar:Dc,CalendarMonth:Cc,Download:jn,ClipboardPlusOutline:Fc,Thermometer:Zn},setup(){return fe("absence:openNew",()=>window.dispatchEvent(new CustomEvent("absence:open-new"))),fe("absence:openEdit",e=>window.dispatchEvent(new CustomEvent("absence:open-edit",{detail:e}))),{store:W}},data(){return{showDialog:!1,editRequest:null,recordMode:!1}},computed:{session(){return W.session},pendingCount(){return W.session.pendingApprovals||0}},mounted(){window.addEventListener("absence:open-new",this.openNewRequest),window.addEventListener("absence:open-edit",this.onOpenEditEvent),this.$route.params.id&&W.select(Number(this.$route.params.id))},beforeUnmount(){window.removeEventListener("absence:open-new",this.openNewRequest),window.removeEventListener("absence:open-edit",this.onOpenEditEvent)},methods:{openNewRequest(){this.editRequest=null,this.recordMode=!1,this.showDialog=!0},openRecord(){this.editRequest=null,this.recordMode=!0,this.showDialog=!0},onOpenEditEvent(e){this.openEditRequest(e.detail)},openEditRequest(e){this.editRequest=e,this.recordMode=!1,this.showDialog=!0,W.select(null)},closeDialog(){this.showDialog=!1,this.editRequest=null,this.recordMode=!1},onChanged(){this.closeDialog(),W.select(null),window.dispatchEvent(new CustomEvent("absence:refresh"))}}};function T1(e,a,t,s,n,i){const l=w("Plus"),d=w("NcAppNavigationNew"),h=w("CalendarAccountOutline"),f=w("NcAppNavigationItem"),m=w("ClipboardCheck"),p=w("NcCounterBubble"),g=w("AccountGroup"),y=w("NcAppNavigationCaption"),k=w("ClipboardPlusOutline"),b=w("ScaleBalance"),A=w("ChartBar"),R=w("Thermometer"),P=w("CalendarMonth"),z=w("Download"),G=w("NcAppNavigation"),ae=w("router-view"),se=w("NcAppContent"),oe=w("RequestSidebar"),te=w("RequestDialog"),re=w("NcContent");return o(),B(re,{appName:"absence"},{default:x(()=>[_(G,null,{list:x(()=>[_(d,{text:e.t("absence","New request"),onClick:i.openNewRequest},{icon:x(()=>[_(l,{size:20})]),_:1},8,["text","onClick"]),_(f,{name:e.t("absence","My leave"),to:{name:"my"}},{icon:x(()=>[_(h,{size:20})]),_:1},8,["name"]),i.session.isManager||i.session.isHr?(o(),B(f,{key:0,name:e.t("absence","Approvals"),to:{name:"approvals"}},tt({icon:x(()=>[_(m,{size:20})]),_:2},[i.pendingCount>0?{name:"counter",fn:x(()=>[_(p,{count:i.pendingCount,type:"highlighted"},null,8,["count"])]),key:"0"}:void 0]),1032,["name"])):C("",!0),_(f,{name:e.t("absence","Team"),to:{name:"team"}},{icon:x(()=>[_(g,{size:20})]),_:1},8,["name"]),i.session.isHr?(o(),c(K,{key:1},[_(y,{name:e.t("absence","HR")},null,8,["name"]),_(f,{name:e.t("absence","Record absence"),onClick:i.openRecord},{icon:x(()=>[_(k,{size:20})]),_:1},8,["name","onClick"]),_(f,{name:e.t("absence","Balances"),to:{name:"hr-balances"}},{icon:x(()=>[_(b,{size:20})]),_:1},8,["name"]),_(f,{name:e.t("absence","Statistics"),to:{name:"hr-statistics"}},{icon:x(()=>[_(A,{size:20})]),_:1},8,["name"]),_(f,{name:e.t("absence","Sick leave"),to:{name:"hr-sick-leave"}},{icon:x(()=>[_(R,{size:20})]),_:1},8,["name"]),_(f,{name:e.t("absence","Who's off"),to:{name:"hr-whos-off"}},tt({icon:x(()=>[_(P,{size:20})]),_:2},[i.session.escalatedCount>0?{name:"counter",fn:x(()=>[_(p,{count:i.session.escalatedCount},null,8,["count"])]),key:"0"}:void 0]),1032,["name"]),_(f,{name:e.t("absence","Exports"),to:{name:"hr-exports"}},{icon:x(()=>[_(z,{size:20})]),_:1},8,["name"])],64)):C("",!0)]),_:1}),_(se,null,{default:x(()=>[_(ae)]),_:1}),s.store.selectedId?(o(),B(oe,{key:s.store.selectedId,onClose:a[0]||(a[0]=Ve=>s.store.select(null)),onEdit:i.openEditRequest,onChanged:i.onChanged},null,8,["onEdit","onChanged"])):C("",!0),n.showDialog?(o(),B(te,{key:1,request:n.editRequest,hrMode:n.recordMode,onClose:i.closeDialog,onSaved:i.onChanged},null,8,["request","hrMode","onClose","onSaved"])):C("",!0)]),_:1})}const E1=F(D1,[["render",T1],["__scopeId","data-v-87bb51fd"]]),B1={name:"CheckAllIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},I1=["aria-hidden","aria-label"],M1=["fill","width","height"],z1={d:"M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z"},$1={key:0};function R1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-all-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",z1,[t.title?(o(),c("title",$1,u(t.title),1)):C("",!0)])],8,M1))],16,I1)}const O1=F(B1,[["render",R1]]),V1={name:"NcListItem",components:{NcActions:rt,NcCounterBubble:Un,NcVNodes:vi},inheritAttrs:!1,props:{details:{type:String,default:""},name:{type:String,default:void 0},to:{type:[String,Object],default:null},href:{type:String,default:"#"},target:{type:String,default:""},anchorId:{type:String,default:""},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:void 0},linkAriaLabel:{type:String,default:""},actionsAriaLabel:{type:String,default:void 0},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:"",validator(e){return["highlighted","outlined",""].indexOf(e)!==-1}},forceDisplayActions:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},oneLine:{type:Boolean,default:!1}},emits:["click","dragstart","update:menuOpen"],setup(){return{isLegacy34:at}},data(){return{hovered:!1,hasActions:!1,hasSubname:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1,hasDetails:!1}},computed:{showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return(this.details!==""||this.hasDetails)&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)}},watch:{menuOpen(e){!e&&!this.hovered&&(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleBlur(e){this.menuOpen||this.$refs["list-item"]?.contains(e.relatedTarget)||this.hideActions()},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleMouseover(){this.showActions(),this.hovered=!0},handleActionsUpdateOpen(e){this.menuOpen=e,this.$emit("update:menuOpen",e)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubname!==!!this.$slots.subname&&(this.hasSubname=!!this.$slots.subname),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator),this.hasDetails!==!!this.$slots.details&&(this.hasDetails=!!this.$slots.details)}}},P1=["id","aria-label","href","target","rel","onClick"],q1={class:"list-item-content"},H1={class:"list-item-content__main"},F1={class:"list-item-content__name"},U1={class:"list-item-content__details"},j1={key:0,class:"list-item-details__details"},W1={key:1,class:"list-item-details__extra"},G1={key:1,class:"list-item-details__indicator"},Z1={key:0,class:"list-item-content__extra-actions"},K1={key:2,class:"list-item__extra"};function Y1(e,a,t,s,n,i){const l=w("NcCounterBubble"),d=w("NcActions");return o(),B(ft(t.to?"router-link":"NcVNodes"),hi(mi({...t.to&&{custom:!0,to:t.to}})),{default:x(({href:h,navigate:f,isActive:m})=>[r("li",J({class:["list-item__wrapper",{"list-item__wrapper--active":t.active??m,"list-item__wrapper--legacy":s.isLegacy34}]},e.$attrs),[r("div",{ref:"list-item",class:U(["list-item",{"list-item--compact":t.compact,"list-item--one-line":t.oneLine}]),onMouseover:a[5]||(a[5]=(...p)=>i.handleMouseover&&i.handleMouseover(...p)),onMouseleave:a[6]||(a[6]=(...p)=>i.handleMouseleave&&i.handleMouseleave(...p))},[r("a",{id:t.anchorId||void 0,"aria-label":t.linkAriaLabel,class:"list-item__anchor",href:h||t.href,target:t.target||(t.href==="#"?void 0:"_blank"),rel:t.href==="#"?void 0:"noopener noreferrer",onFocus:a[0]||(a[0]=(...p)=>i.showActions&&i.showActions(...p)),onFocusout:a[1]||(a[1]=(...p)=>i.handleBlur&&i.handleBlur(...p)),onClick:p=>i.onClick(p,f,h),onDragstart:a[2]||(a[2]=p=>e.$emit("dragstart",p)),onKeydown:a[3]||(a[3]=Ce((...p)=>i.hideActions&&i.hideActions(...p),["esc"]))},[q(e.$slots,"icon",{},void 0,!0),r("div",q1,[r("div",H1,[r("div",F1,[q(e.$slots,"name",{},()=>[V(u(t.name),1)],!0)]),n.hasSubname?(o(),c("div",{key:0,class:U(["list-item-content__subname",{"list-item-content__subname--bold":t.bold}])},[q(e.$slots,"subname",{},void 0,!0)],2)):C("",!0)]),r("div",U1,[i.showDetails?(o(),c("div",j1,[q(e.$slots,"details",{},()=>[V(u(t.details),1)],!0)])):C("",!0),t.counterNumber!==0||n.hasIndicator?xe((o(),c("div",W1,[t.counterNumber!==0?(o(),B(l,{key:0,count:t.counterNumber,active:s.isLegacy34?t.active??m:!1,class:"list-item-details__counter",type:t.counterType},null,8,["count","active","type"])):C("",!0),n.hasIndicator?(o(),c("span",G1,[q(e.$slots,"indicator",{},void 0,!0)])):C("",!0)],512)),[[et,i.showAdditionalElements]]):C("",!0)])])],40,P1),e.$slots["extra-actions"]?(o(),c("div",Z1,[q(e.$slots,"extra-actions",{},void 0,!0)])):C("",!0),t.forceDisplayActions||n.displayActionsOnHoverFocus?(o(),c("div",{key:1,class:"list-item-content__actions",onFocusout:a[4]||(a[4]=(...p)=>i.handleBlur&&i.handleBlur(...p))},[_(d,{ref:"actions",primary:s.isLegacy34?t.active??m:!1,forceMenu:t.forceMenu,"aria-label":t.actionsAriaLabel,"onUpdate:open":i.handleActionsUpdateOpen},tt({default:x(()=>[q(e.$slots,"actions",{},void 0,!0)]),_:2},[e.$slots["actions-icon"]?{name:"icon",fn:x(()=>[q(e.$slots,"actions-icon",{},void 0,!0)]),key:"0"}:void 0]),1032,["primary","forceMenu","aria-label","onUpdate:open"])],32)):C("",!0),e.$slots.extra?(o(),c("div",K1,[q(e.$slots,"extra",{},void 0,!0)])):C("",!0)],34)],16)]),_:3},16)}const X1=ee(V1,[["render",Y1],["__scopeId","data-v-0e705f5a"]]),Q1={name:"RequestListItem",components:{NcListItem:X1,StatusChip:Ti},props:{request:{type:Object,required:!0},active:{type:Boolean,default:!1},showEmployee:{type:Boolean,default:!1}},emits:["select"],computed:{type(){return W.leaveType(this.request.typeId)},showStatus(){return W.statusVisible(this.request)},colorSoft(){return`color-mix(in srgb, ${this.type.color} 18%, transparent)`},title(){return this.showEmployee?`${this.request.employeeUid} · ${this.type.label}`:this.type.label},subtitle(){const e=Ea(this.request.startDate,this.request.endDate),a=Rt("absence","%n day","%n days",this.request.workingDays);return`${e} · ${a}`}},methods:{t:M,n:Rt}};function J1(e,a,t,s,n,i){const l=w("StatusChip"),d=w("NcListItem");return o(),c("div",{class:U(["rli",{"rli--active":t.active}]),style:le({"--type-color":i.type.color})},[_(d,{name:i.title,active:t.active,forceDisplayActions:!0,onClick:a[0]||(a[0]=h=>e.$emit("select",t.request.id))},tt({icon:x(()=>[r("span",{class:"rli__icon",style:le({background:i.colorSoft}),"aria-hidden":"true"},u(i.type.icon),5)]),subname:x(()=>[V(u(i.subtitle),1)]),_:2},[i.showStatus?{name:"indicator",fn:x(()=>[_(l,{status:t.request.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","active"])],6)}const cs=F(Q1,[["render",J1],["__scopeId","data-v-4165016d"]]),em={name:"SkeletonList",props:{rows:{type:Number,default:4}},methods:{t:M}},tm=["aria-label"];function am(e,a,t,s,n,i){return o(),c("div",{class:"skeleton","aria-label":i.t("absence","Loading…"),role:"status"},[(o(!0),c(K,null,ue(t.rows,l=>(o(),c("div",{key:l,class:"skeleton__row"},[...a[0]||(a[0]=[Ln('',3)])]))),128))],8,tm)}const vt=F(em,[["render",am],["__scopeId","data-v-024c423c"]]),im=["PENDING","ESCALATED","WITHDRAWAL_PENDING"],nm={name:"Approvals",components:{NcEmptyContent:je,CheckAll:O1,RequestListItem:cs,SkeletonList:vt},setup(){return{store:W}},data(){return{loading:!0,teamQueue:[],escalated:[]}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload)},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,async reload(){this.loading=!0;try{const e=await ce.listRequests({scope:"reports"});this.teamQueue=e.filter(a=>im.includes(a.status)),W.session.isHr&&(this.escalated=await ce.listRequests({scope:"hr",status:"ESCALATED"}))}finally{this.loading=!1}}}},sm={class:"page page--narrow page--roomy"},lm={class:"page__header"},om={class:"page__title"},rm={key:0,class:"group"},cm={class:"group__title"},um={key:1,class:"group"},dm={class:"group__title"};function pm(e,a,t,s,n,i){const l=w("SkeletonList"),d=w("RequestListItem"),h=w("CheckAll"),f=w("NcEmptyContent");return o(),c("div",sm,[r("header",lm,[r("h2",om,u(i.t("absence","Approvals")),1)]),n.loading?(o(),B(l,{key:0,rows:3})):(o(),c(K,{key:1},[n.teamQueue.length?(o(),c("section",rm,[r("h3",cm,u(i.t("absence","Awaiting your decision")),1),_(Xa,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(K,null,ue(n.teamQueue,m=>(o(),B(d,{key:m.id,request:m,showEmployee:!0,active:s.store.selectedId===m.id,onSelect:a[0]||(a[0]=p=>s.store.select(p))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),n.escalated.length?(o(),c("section",um,[r("h3",dm,u(i.t("absence","Escalated to HR"))+" ⏫ ",1),_(Xa,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(K,null,ue(n.escalated,m=>(o(),B(d,{key:m.id,request:m,showEmployee:!0,active:s.store.selectedId===m.id,onSelect:a[1]||(a[1]=p=>s.store.select(p))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),!n.teamQueue.length&&!n.escalated.length?(o(),B(f,{key:2,name:i.t("absence","All caught up!"),description:i.t("absence","No requests waiting for a decision. ✨")},{icon:x(()=>[_(h,{size:20})]),_:1},8,["name","description"])):C("",!0)],64))])}const hm=F(nm,[["render",pm],["__scopeId","data-v-8142b834"]]),mm={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fm=["aria-hidden","aria-label"],gm=["fill","width","height"],ym={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},bm={key:0};function vm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon magnify-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",ym,[t.title?(o(),c("title",bm,u(t.title),1)):C("",!0)])],8,gm))],16,fm)}const us=F(mm,[["render",vm]]),_m={name:"HrBalances",components:{NcAvatar:qt,NcButton:ge,NcEmptyContent:je,NcModal:xn,NcSelect:Ta,NcTextField:Ci,Magnify:us,Pencil:rs,ScaleBalance:Gn,SkeletonList:vt},data(){const e=new Date().getFullYear();return{loading:!0,rows:[],search:"",year:e,years:[e-1,e,e+1],editing:null,saving:!1,form:{baseDays:0,manualAdjustment:0,adjustmentNote:""}}},computed:{filtered(){const e=this.search.trim().toLowerCase();return e?this.rows.filter(a=>a.displayName.toLowerCase().includes(e)||a.employeeUid.toLowerCase().includes(e)):this.rows}},watch:{year(){this.reload()}},mounted(){this.reload()},methods:{t:M,fmt(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.rows=await ce.reportBalances(this.year)}catch{Re(M("absence","Could not load balances"))}finally{this.loading=!1}},async edit(e){this.editing=e;try{const a=(await ce.listEntitlements(e.employeeUid,this.year)).find(t=>t.typeId===e.typeId);this.form={baseDays:a?a.baseDays:e.baseDays,manualAdjustment:a?a.manualAdjustment:0,adjustmentNote:"",entitlementId:a?a.id:e.entitlementId}}catch{this.form={baseDays:e.baseDays,manualAdjustment:0,adjustmentNote:"",entitlementId:e.entitlementId}}},async save(){this.saving=!0;try{const e={baseDays:Number(this.form.baseDays),manualAdjustment:Number(this.form.manualAdjustment),adjustmentNote:this.form.adjustmentNote};this.form.entitlementId?await ce.updateEntitlement(this.form.entitlementId,e):await ce.createEntitlement({employeeUid:this.editing.employeeUid,year:this.year,typeId:this.editing.typeId,...e}),At(M("absence","Entitlement updated")),this.editing=null,await this.reload()}catch(e){Re(e.response?.data?.message||M("absence","Could not update entitlement"))}finally{this.saving=!1}}}},wm={class:"page"},Cm={class:"page__header"},km={class:"page__title"},xm={class:"page__tools"},Sm={key:1,class:"table-wrap"},Am={class:"tbl"},Lm={class:"num"},Nm={class:"num"},Dm={class:"num"},Tm={class:"num"},Em={class:"num"},Bm={class:"emp"},Im={class:"type"},Mm={"aria-hidden":"true"},zm={class:"num"},$m={class:"num"},Rm={class:"num"},Om={class:"num"},Vm={class:"edit"},Pm={class:"edit__actions"};function qm(e,a,t,s,n,i){const l=w("Magnify"),d=w("NcTextField"),h=w("NcSelect"),f=w("SkeletonList"),m=w("NcAvatar"),p=w("Pencil"),g=w("NcButton"),y=w("ScaleBalance"),k=w("NcEmptyContent"),b=w("NcModal");return o(),c("div",wm,[r("header",Cm,[r("h2",km,u(i.t("absence","Balances")),1),r("div",xm,[_(d,{modelValue:n.search,"onUpdate:modelValue":a[0]||(a[0]=A=>n.search=A),label:i.t("absence","Search employee"),class:"page__search"},{icon:x(()=>[_(l,{size:18})]),_:1},8,["modelValue","label"]),_(h,{modelValue:n.year,"onUpdate:modelValue":a[1]||(a[1]=A=>n.year=A),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])])]),n.loading?(o(),B(f,{key:0,rows:6})):(o(),c("div",Sm,[r("table",Am,[r("thead",null,[r("tr",null,[r("th",null,u(i.t("absence","Employee")),1),r("th",null,u(i.t("absence","Type")),1),r("th",Lm,u(i.t("absence","Entitlement")),1),r("th",Nm,u(i.t("absence","Used")),1),r("th",Dm,u(i.t("absence","Pending")),1),r("th",Tm,u(i.t("absence","Remaining")),1),r("th",Em,u(i.t("absence","Available")),1),a[7]||(a[7]=r("th",null,null,-1))])]),r("tbody",null,[(o(!0),c(K,null,ue(i.filtered,A=>(o(),c("tr",{key:A.employeeUid+"-"+A.typeId},[r("td",null,[r("div",Bm,[_(m,{user:A.employeeUid,displayName:A.displayName,size:24,hideStatus:""},null,8,["user","displayName"]),V(" "+u(A.displayName),1)])]),r("td",null,[r("span",Im,[r("span",Mm,u(A.typeIcon),1),V(" "+u(A.typeLabel),1)])]),r("td",zm,u(i.fmt(A.entitlement)),1),r("td",$m,u(i.fmt(A.used)),1),r("td",Rm,u(i.fmt(A.pending)),1),r("td",Om,u(i.fmt(A.remaining)),1),r("td",{class:U(["num",{neg:(A.available??0)<0}])},u(i.fmt(A.available)),3),r("td",null,[A.countsAgainstBalance?(o(),B(g,{key:0,variant:"tertiary","aria-label":i.t("absence","Edit entitlement"),onClick:R=>i.edit(A)},{icon:x(()=>[_(p,{size:18})]),_:1},8,["aria-label","onClick"])):C("",!0)])]))),128))])]),i.filtered.length?C("",!0):(o(),B(k,{key:0,name:n.search?i.t("absence","No matches"):i.t("absence","No balances yet"),description:n.search?i.t("absence","No employee matches “{query}”.",{query:n.search}):i.t("absence","Balances appear here once employees have entitlements for {year}.",{year:n.year})},{icon:x(()=>[_(y,{size:20})]),_:1},8,["name","description"]))])),n.editing?(o(),B(b,{key:2,name:i.t("absence","Edit entitlement"),onClose:a[6]||(a[6]=A=>n.editing=null)},{default:x(()=>[r("div",Vm,[r("h3",null,u(n.editing.displayName)+" · "+u(n.editing.typeLabel)+" · "+u(n.year),1),r("label",null,u(i.t("absence","Base days")),1),_(d,{modelValue:n.form.baseDays,"onUpdate:modelValue":a[2]||(a[2]=A=>n.form.baseDays=A),type:"number"},null,8,["modelValue"]),r("label",null,u(i.t("absence","Manual adjustment (+/−)")),1),_(d,{modelValue:n.form.manualAdjustment,"onUpdate:modelValue":a[3]||(a[3]=A=>n.form.manualAdjustment=A),type:"number"},null,8,["modelValue"]),r("label",null,u(i.t("absence","Adjustment note")),1),_(d,{modelValue:n.form.adjustmentNote,"onUpdate:modelValue":a[4]||(a[4]=A=>n.form.adjustmentNote=A),placeholder:i.t("absence","Why is this being adjusted?")},null,8,["modelValue","placeholder"]),r("div",Pm,[_(g,{variant:"tertiary",onClick:a[5]||(a[5]=A=>n.editing=null)},{default:x(()=>[V(u(i.t("absence","Cancel")),1)]),_:1}),_(g,{variant:"primary",disabled:n.saving,onClick:i.save},{default:x(()=>[V(u(i.t("absence","Save")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])):C("",!0)])}const Hm=F(_m,[["render",qm],["__scopeId","data-v-524b60ef"]]),Fm={name:"HrExports",components:{NcButton:ge,NcDateTimePickerNative:wi,NcSelect:Ta,Download:jn},data(){const e=new Date;return{from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),year:e.getFullYear(),years:[e.getFullYear()-1,e.getFullYear(),e.getFullYear()+1]}},computed:{requestsUrl(){return ce.exportRequestsUrl(Me(this.from),Me(this.to))},balancesUrl(){return ce.exportBalancesUrl(this.year)}},methods:{t:M}},Um={class:"page page--narrow page--flat"},jm={class:"page__header"},Wm={class:"page__title"},Gm={class:"cards"},Zm={class:"card"},Km={class:"card__row"},Ym=["href"],Xm={class:"card"},Qm={class:"card__row"},Jm=["href"];function ef(e,a,t,s,n,i){const l=w("NcDateTimePickerNative"),d=w("Download"),h=w("NcButton"),f=w("NcSelect");return o(),c("div",Um,[r("header",jm,[r("h2",Wm,u(i.t("absence","Exports")),1)]),r("div",Gm,[r("div",Zm,[r("h3",null,u(i.t("absence","Requests")),1),r("p",null,u(i.t("absence","All leave requests overlapping the selected date range, as CSV.")),1),r("div",Km,[_(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=m=>n.from=m),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),_(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=m=>n.to=m),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])]),r("a",{href:i.requestsUrl,class:"dl"},[_(h,{variant:"primary"},{icon:x(()=>[_(d,{size:20})]),default:x(()=>[V(" "+u(i.t("absence","Download requests CSV")),1)]),_:1})],8,Ym)]),r("div",Xm,[r("h3",null,u(i.t("absence","Balances")),1),r("p",null,u(i.t("absence","Per-employee entitlement, used, remaining and carry-over for a year.")),1),r("div",Qm,[_(f,{modelValue:n.year,"onUpdate:modelValue":a[2]||(a[2]=m=>n.year=m),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])]),r("a",{href:i.balancesUrl,class:"dl"},[_(h,{variant:"primary"},{icon:x(()=>[_(d,{size:20})]),default:x(()=>[V(" "+u(i.t("absence","Download balances CSV")),1)]),_:1})],8,Jm)])])])}const tf=F(Fm,[["render",ef],["__scopeId","data-v-6d9165ed"]]),af={name:"HrSickLeave",components:{NcAvatar:qt,NcCheckboxRadioSwitch:ol,NcEmptyContent:je,NcSelect:Ta,NcTextField:Ci,Magnify:us,Thermometer:Zn,SkeletonList:vt},data(){const e=new Date().getFullYear();return{loading:!0,rows:[],types:[],totals:{employees:0,affected:0,days:0,episodes:0},search:"",onlyAffected:!0,year:e,years:[e-2,e-1,e,e+1]}},computed:{filtered(){const e=this.search.trim().toLowerCase();return this.rows.filter(a=>this.onlyAffected&&!a.days?!1:e?a.displayName.toLowerCase().includes(e)||a.employeeUid.toLowerCase().includes(e):!0)},maxDays(){return this.rows.reduce((e,a)=>Math.max(e,a.days||0),0)},barColor(){return this.types[0]?.color||"var(--color-primary-element)"}},watch:{year(){this.reload()}},mounted(){this.reload()},methods:{t:M,n:Rt,fmt(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},formatDate(e){return new Date(e+"T00:00:00").toLocaleDateString(void 0,{dateStyle:"medium"})},barWidth(e){return!e||this.maxDays<=0?"0":Math.max(2,Math.round(e/this.maxDays*100))+"%"},async reload(){this.loading=!0;try{const e=await ce.reportSickLeave(this.year);this.rows=e.rows??[],this.types=e.types??[],this.totals=e.totals??{employees:0,affected:0,days:0,episodes:0}}catch{Re(M("absence","Could not load the sick leave overview"))}finally{this.loading=!1}}}},nf={class:"page"},sf={class:"page__header"},lf={class:"page__title"},of={class:"page__tools"},rf={key:2,class:"report"},cf={class:"summary"},uf={class:"summary__muted"},df={key:0,class:"table-wrap"},pf={class:"tbl"},hf={class:"num"},mf={class:"num"},ff={class:"num"},gf={class:"num"},yf={class:"num rank"},bf={class:"emp"},vf={class:"num strong"},_f={class:"num"},wf={class:"num"},Cf={class:"num"},kf={class:"bar-col"},xf=["title"];function Sf(e,a,t,s,n,i){const l=w("Magnify"),d=w("NcTextField"),h=w("NcCheckboxRadioSwitch"),f=w("NcSelect"),m=w("SkeletonList"),p=w("Thermometer"),g=w("NcEmptyContent"),y=w("NcAvatar");return o(),c("div",nf,[r("header",sf,[r("h2",lf,u(i.t("absence","Sick leave")),1),r("div",of,[_(d,{modelValue:n.search,"onUpdate:modelValue":a[0]||(a[0]=k=>n.search=k),label:i.t("absence","Search employee"),class:"page__search"},{icon:x(()=>[_(l,{size:18})]),_:1},8,["modelValue","label"]),_(h,{modelValue:n.onlyAffected,"onUpdate:modelValue":a[1]||(a[1]=k=>n.onlyAffected=k),type:"switch"},{default:x(()=>[V(u(i.t("absence","Only employees with sick leave")),1)]),_:1},8,["modelValue"]),_(f,{modelValue:n.year,"onUpdate:modelValue":a[2]||(a[2]=k=>n.year=k),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])])]),n.loading?(o(),B(m,{key:0,rows:6})):n.types.length?(o(),c("div",rf,[r("p",cf,[V(u(i.n("absence","%n day of sick leave in {year}","%n days of sick leave in {year}",Math.round(n.totals.days),{year:n.year}))+" · "+u(i.n("absence","%n employee affected","%n employees affected",n.totals.affected))+" ",1),r("span",uf,u(i.t("absence","of {total}",{total:n.totals.employees})),1)]),i.filtered.length?(o(),c("div",df,[r("table",pf,[r("thead",null,[r("tr",null,[a[3]||(a[3]=r("th",{class:"num rank"}," # ",-1)),r("th",null,u(i.t("absence","Employee")),1),r("th",hf,u(i.t("absence","Days")),1),r("th",mf,u(i.t("absence","Absences")),1),r("th",ff,u(i.t("absence","Longest")),1),r("th",gf,u(i.t("absence","Most recent")),1),a[4]||(a[4]=r("th",{class:"bar-col"},null,-1))])]),r("tbody",null,[(o(!0),c(K,null,ue(i.filtered,(k,b)=>(o(),c("tr",{key:k.employeeUid},[r("td",yf,u(b+1),1),r("td",null,[r("div",bf,[_(y,{user:k.employeeUid,displayName:k.displayName,size:24,hideStatus:""},null,8,["user","displayName"]),V(" "+u(k.displayName),1)])]),r("td",vf,u(i.fmt(k.days)),1),r("td",_f,u(k.episodes||"—"),1),r("td",wf,u(k.longestEpisode?i.fmt(k.longestEpisode):"—"),1),r("td",Cf,u(k.lastDate?i.formatDate(k.lastDate):"—"),1),r("td",kf,[r("div",{class:"bar",style:le({width:i.barWidth(k.days),backgroundColor:i.barColor}),title:i.n("absence","%n day","%n days",Math.round(k.days))},null,12,xf)])]))),128))])])])):C("",!0),i.filtered.length?C("",!0):(o(),B(g,{key:1,name:n.search?i.t("absence","No matches"):i.t("absence","No sick leave recorded"),description:n.search?i.t("absence","No employee matches “{query}”.",{query:n.search}):i.t("absence","Nobody has recorded sick leave in {year}.",{year:n.year})},{icon:x(()=>[_(p,{size:20})]),_:1},8,["name","description"]))])):(o(),B(g,{key:1,name:i.t("absence","No sick leave type configured"),description:i.t("absence","This overview counts the leave type with the key “sick”. Add or enable it in the admin settings to see figures here.")},{icon:x(()=>[_(p,{size:20})]),_:1},8,["name","description"]))])}const Af=F(af,[["render",Sf],["__scopeId","data-v-a5aa42b8"]]),Lf={name:"ChartLineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Nf=["aria-hidden","aria-label"],Df=["fill","width","height"],Tf={d:"M16,11.78L20.24,4.45L21.97,5.45L16.74,14.5L10.23,10.75L5.46,19H22V21H2V3H4V17.54L9.5,8L16,11.78Z"},Ef={key:0};function Bf(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-line-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Tf,[t.title?(o(),c("title",Ef,u(t.title),1)):C("",!0)])],8,Df))],16,Nf)}const If=F(Lf,[["render",Bf]]),Mf={name:"DonutChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{radius:64,animated:!1}},computed:{circumference(){return 2*Math.PI*this.radius},total(){return this.data.reduce((e,a)=>e+a.value,0)},segments(){const e=this.total||1;let a=0;return this.data.filter(t=>t.value>0).map(t=>{const s=t.value/e*100,n=t.value/e*this.circumference,i={...t,pct:s,len:n,offset:a};return a+=n,i})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{t:M,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},zf={class:"donut"},$f={key:0,class:"donut__title"},Rf={class:"donut__body"},Of=["aria-label"],Vf=["r"],Pf=["r","stroke","stroke-dasharray","stroke-dashoffset"],qf={x:"80",y:"74",class:"donut__total"},Hf={x:"80",y:"92",class:"donut__unit"},Ff={class:"donut__legend"},Uf={class:"donut__label"},jf={class:"donut__value"};function Wf(e,a,t,s,n,i){return o(),c("figure",zf,[t.title?(o(),c("figcaption",$f,u(t.title),1)):C("",!0),r("div",Rf,[(o(),c("svg",{viewBox:"0 0 160 160",class:"donut__svg",role:"img","aria-label":t.title},[r("circle",{class:"donut__track",cx:"80",cy:"80",r:n.radius},null,8,Vf),(o(!0),c(K,null,ue(i.segments,(l,d)=>(o(),c("circle",{key:d,class:"donut__seg",cx:"80",cy:"80",r:n.radius,stroke:l.color,"stroke-dasharray":`${n.animated?l.len:0} ${i.circumference}`,"stroke-dashoffset":-l.offset,transform:"rotate(-90 80 80)"},[r("title",null,u(l.label)+": "+u(i.fmt(l.value)),1)],8,Pf))),128)),r("text",qf,u(i.fmt(i.total)),1),r("text",Hf,u(i.t("absence","days")),1)],8,Of)),r("ul",Ff,[(o(!0),c(K,null,ue(i.segments,(l,d)=>(o(),c("li",{key:d},[r("span",{class:"donut__swatch",style:le({background:l.color})},null,4),r("span",Uf,u(l.label),1),r("span",jf,u(i.fmt(l.value))+" · "+u(Math.round(l.pct))+"%",1)]))),128))])])])}const Gf=F(Mf,[["render",Wf],["__scopeId","data-v-a6ff040b"]]),Zf={name:"LineChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:200,padX:28,padTop:16,padBottom:22}},computed:{max(){return Math.max(1,...this.data.map(e=>e.value))},points(){const e=this.data.length,a=this.width-this.padX*2,t=this.height-this.padTop-this.padBottom;return this.data.map((s,n)=>({x:this.padX+(e<=1?a/2:a*n/(e-1)),y:this.padTop+t*(1-s.value/this.max),label:s.label,value:s.value}))},linePath(){return this.points.map((e,a)=>`${a===0?"M":"L"}${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" ")},areaPath(){if(!this.points.length)return"";const e=this.height-this.padBottom,a=this.points[0],t=this.points[this.points.length-1];return`M${a.x} ${e} `+this.points.map(s=>`L${s.x.toFixed(1)} ${s.y.toFixed(1)}`).join(" ")+` L${t.x} ${e} Z`},gridlines(){const e=this.height-this.padTop-this.padBottom;return[0,.5,1].map(a=>this.padTop+e*a)}},methods:{showLabel(e){const a=this.data.length>8?2:1;return e%a===0}}},Kf={class:"line"},Yf={key:0,class:"line__title"},Xf=["viewBox","aria-label"],Qf=["x1","x2","y1","y2"],Jf=["d"],eg=["d"],tg=["cx","cy"],ag=["x","y"];function ig(e,a,t,s,n,i){return o(),c("figure",Kf,[t.title?(o(),c("figcaption",Yf,u(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"line__svg",role:"img","aria-label":t.title,preserveAspectRatio:"none"},[(o(!0),c(K,null,ue(i.gridlines,(l,d)=>(o(),c("line",{key:"g"+d,class:"line__grid",x1:n.padX,x2:n.width-n.padX,y1:l,y2:l},null,8,Qf))),128)),r("path",{class:"line__area",d:i.areaPath},null,8,Jf),r("path",{ref:"line",class:"line__stroke",d:i.linePath},null,8,eg),(o(!0),c(K,null,ue(i.points,(l,d)=>(o(),c("g",{key:"p"+d},[r("circle",{class:"line__dot",cx:l.x,cy:l.y,r:"3"},null,8,tg),i.showLabel(d)?(o(),c("text",{key:0,class:"line__xlabel",x:l.x,y:n.height-4,"text-anchor":"middle"},u(l.label),9,ag)):C("",!0)]))),128))],8,Xf))])}const ng=F(Zf,[["render",ig],["__scopeId","data-v-f4b72e98"]]),sg={name:"HrStatistics",components:{NcDateTimePickerNative:wi,NcEmptyContent:je,ChartLine:If,LineChart:ng,DonutChart:Gf,SkeletonList:vt},data(){const e=new Date;return{loading:!0,from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),trends:{byMonth:{},byType:[],total:0}}},computed:{monthData(){return Object.entries(this.trends.byMonth).map(([e,a])=>({label:e.slice(5),value:a}))},typeData(){return this.trends.byType.map(e=>({label:`${e.typeIcon||""} ${e.typeLabel}`.trim(),value:e.days,color:e.typeColor}))},perMonthAvg(){const e=Object.keys(this.trends.byMonth).length;return e?this.trends.total/e:0}},watch:{from(){this.reload()},to(){this.reload()}},mounted(){this.reload()},methods:{t:M,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.trends=await ce.reportTrends(Me(this.from),Me(this.to))}finally{this.loading=!1}}}},lg={class:"page page--narrow"},og={class:"page__header"},rg={class:"page__title"},cg={class:"range"},ug={class:"cards"},dg={class:"card"},pg={class:"card__value"},hg={class:"card__label"},mg={class:"card"},fg={class:"card__value"},gg={class:"card__label"},yg={class:"card"},bg={class:"card__value"},vg={class:"card__label"},_g={class:"panel"},wg={class:"panel"};function Cg(e,a,t,s,n,i){const l=w("NcDateTimePickerNative"),d=w("SkeletonList"),h=w("ChartLine"),f=w("NcEmptyContent"),m=w("LineChart"),p=w("DonutChart");return o(),c("div",lg,[r("header",og,[r("h2",rg,u(i.t("absence","Statistics")),1),r("div",cg,[_(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=g=>n.from=g),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),_(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=g=>n.to=g),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])])]),n.loading?(o(),B(d,{key:0,rows:4})):(o(),c(K,{key:1},[r("div",ug,[r("div",dg,[a[2]||(a[2]=r("span",{class:"card__icon","aria-hidden":"true"},"🏖️",-1)),r("span",pg,u(i.fmt(n.trends.total)),1),r("span",hg,u(i.t("absence","approved leave days")),1)]),r("div",mg,[a[3]||(a[3]=r("span",{class:"card__icon","aria-hidden":"true"},"📊",-1)),r("span",fg,u(i.fmt(i.perMonthAvg)),1),r("span",gg,u(i.t("absence","avg. days per month")),1)]),r("div",yg,[a[4]||(a[4]=r("span",{class:"card__icon","aria-hidden":"true"},"🗂️",-1)),r("span",bg,u(n.trends.byType.length),1),r("span",vg,u(i.t("absence","leave types used")),1)])]),n.trends.total===0?(o(),B(f,{key:0,name:i.t("absence","No approved leave in this range"),description:i.t("absence","Pick a wider date range, or check back once leave has been approved.")},{icon:x(()=>[_(h,{size:20})]),_:1},8,["name","description"])):(o(),c(K,{key:1},[r("div",_g,[_(m,{title:i.t("absence","Absence days per month"),data:i.monthData},null,8,["title","data"])]),r("div",wg,[_(p,{title:i.t("absence","Days by leave type"),data:i.typeData},null,8,["title","data"])])],64))],64))])}const kg=F(sg,[["render",Cg],["__scopeId","data-v-857116af"]]),xg={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sg=["aria-hidden","aria-label"],Ag=["fill","width","height"],Lg={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},Ng={key:0};function Dg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Lg,[t.title?(o(),c("title",Ng,u(t.title),1)):C("",!0)])],8,Ag))],16,Sg)}const Tg=F(xg,[["render",Dg]]),Eg={name:"ChevronLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Bg=["aria-hidden","aria-label"],Ig=["fill","width","height"],Mg={d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},zg={key:0};function $g(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-left-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Mg,[t.title?(o(),c("title",zg,u(t.title),1)):C("",!0)])],8,Ig))],16,Bg)}const Rg=F(Eg,[["render",$g]]),Og={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Vg=["aria-hidden","aria-label"],Pg=["fill","width","height"],qg={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},Hg={key:0};function Fg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",qg,[t.title?(o(),c("title",Hg,u(t.title),1)):C("",!0)])],8,Pg))],16,Vg)}const Ug=F(Og,[["render",Fg]]),dn=864e5,jg={name:"TeamTimeline",components:{NcAvatar:qt,NcButton:ge,NcEmptyContent:je,ChevronLeft:Rg,ChevronRight:Ug,CalendarBlank:Tg,SkeletonList:vt},props:{scope:{type:String,default:"team"}},data(){const e=new Date;return{year:e.getFullYear(),month:e.getMonth(),events:[],dayWidth:30,loading:!0}},computed:{firstDay(){return new Date(this.year,this.month,1)},lastDay(){return new Date(this.year,this.month+1,0)},monthLabel(){return this.firstDay.toLocaleDateString(void 0,{month:"long",year:"numeric"})},days(){const e=[];for(let a=1;a<=this.lastDay.getDate();a++){const t=new Date(this.year,this.month,a),s=t.getDay();e.push({day:a,index:a-1,weekend:s===0||s===6,iso:Me(t)})}return e},todayIndex(){const e=new Date;return e.getFullYear()===this.year&&e.getMonth()===this.month?e.getDate()-1:-1},rows(){const e={},a=this.firstDay,t=this.lastDay.getDate()-1;for(const s of this.events){e[s.employeeUid]||(e[s.employeeUid]={uid:s.employeeUid,name:s.displayName,segments:[]});const n=Math.max(0,Math.round((new Date(s.start+"T00:00:00")-a)/dn)),i=Math.min(t,Math.round((new Date(s.end+"T00:00:00")-a)/dn));if(i<0||n>t)continue;const l=W.leaveType(s.typeId);e[s.employeeUid].segments.push({left:n*this.dayWidth+2,width:(i-n+1)*this.dayWidth-4,color:l.color,icon:l.icon,pending:s.status!=="APPROVED",title:`${l.label} · ${Ea(s.start,s.end)}${s.status!=="APPROVED"?" ("+s.status+")":""}`})}return Object.values(e).sort((s,n)=>s.name.localeCompare(n.name))},legendTypes(){const e=new Set(this.events.map(a=>a.typeId));return W.leaveTypes.filter(a=>e.has(a.id))}},watch:{scope(){this.load()}},mounted(){this.load()},methods:{t:M,async load(){this.loading=!0;try{this.events=(await ce.getCalendar(Me(this.firstDay),Me(this.lastDay),this.scope)).events}catch{this.events=[]}finally{this.loading=!1}},shift(e){let a=this.month+e,t=this.year;a<0&&(a=11,t--),a>11&&(a=0,t++),this.month=a,this.year=t,this.load()},goToday(){const e=new Date;this.year=e.getFullYear(),this.month=e.getMonth(),this.load()}}},Wg={class:"gantt"},Gg={class:"gantt__toolbar"},Zg={class:"gantt__month"},Kg={key:1,class:"gantt__scroll"},Yg={class:"gantt__row gantt__row--head"},Xg={class:"gantt__name gantt__name--head"},Qg={class:"gantt__track"},Jg={class:"gantt__name"},e2={class:"gantt__name-text"},t2={class:"gantt__track"},a2=["title"],i2={class:"gantt__pill-icon","aria-hidden":"true"},n2={class:"legend"},s2={class:"legend__item legend__item--muted"};function l2(e,a,t,s,n,i){const l=w("ChevronLeft"),d=w("NcButton"),h=w("ChevronRight"),f=w("SkeletonList"),m=w("NcAvatar"),p=w("CalendarBlank"),g=w("NcEmptyContent");return o(),c("div",Wg,[r("div",Gg,[_(d,{variant:"tertiary","aria-label":i.t("absence","Previous month"),onClick:a[0]||(a[0]=y=>i.shift(-1))},{icon:x(()=>[_(l,{size:20})]),_:1},8,["aria-label"]),r("strong",Zg,u(i.monthLabel),1),_(d,{variant:"tertiary","aria-label":i.t("absence","Next month"),onClick:a[1]||(a[1]=y=>i.shift(1))},{icon:x(()=>[_(h,{size:20})]),_:1},8,["aria-label"]),_(d,{variant:"tertiary",onClick:i.goToday},{default:x(()=>[V(u(i.t("absence","Today")),1)]),_:1},8,["onClick"])]),n.loading?(o(),B(f,{key:0,rows:4,class:"gantt__loading"})):(o(),c("div",Kg,[r("div",{class:"gantt__grid",style:le({"--day-w":n.dayWidth+"px","--days":i.days.length})},[r("div",Yg,[r("div",Xg,u(i.t("absence","Person")),1),r("div",Qg,[(o(!0),c(K,null,ue(i.days,y=>(o(),c("span",{key:"h"+y.day,class:U(["gantt__daynum",{"gantt__daynum--weekend":y.weekend,"gantt__daynum--today":y.index===i.todayIndex}]),style:le({left:y.index*n.dayWidth+"px"})},u(y.day),7))),128))])]),(o(!0),c(K,null,ue(i.rows,y=>(o(),c("div",{key:y.uid,class:"gantt__row"},[r("div",Jg,[_(m,{user:y.uid,displayName:y.name,size:26,hideStatus:""},null,8,["user","displayName"]),r("span",e2,u(y.name),1)]),r("div",t2,[(o(!0),c(K,null,ue(i.days,k=>(o(),c("span",{key:"c"+y.uid+k.day,class:U(["gantt__col",{"gantt__col--weekend":k.weekend}]),style:le({left:k.index*n.dayWidth+"px"})},null,6))),128)),i.todayIndex>=0?(o(),c("span",{key:0,class:"gantt__today",style:le({left:i.todayIndex*n.dayWidth+"px"})},null,4)):C("",!0),(o(!0),c(K,null,ue(y.segments,(k,b)=>(o(),c("span",{key:b,class:U(["gantt__pill",{"gantt__pill--pending":k.pending}]),style:le({left:k.left+"px",width:k.width+"px","--pill":k.color}),title:k.title},[r("span",i2,u(k.icon),1)],14,a2))),128))])]))),128))],4),i.rows.length?C("",!0):(o(),B(g,{key:0,name:i.t("absence","No absences this month"),description:i.t("absence","A calm, well-staffed month. ☀️")},{icon:x(()=>[_(p,{size:20})]),_:1},8,["name","description"]))])),r("div",n2,[(o(!0),c(K,null,ue(i.legendTypes,y=>(o(),c("span",{key:y.id,class:"legend__item"},[r("span",{class:"legend__swatch",style:le({background:y.color})},null,4),V(u(y.icon)+" "+u(y.label),1)]))),128)),r("span",s2,[a[2]||(a[2]=r("span",{class:"legend__swatch legend__swatch--pending"},null,-1)),V(u(i.t("absence","Pending / not yet approved")),1)])])])}const ds=F(jg,[["render",l2],["__scopeId","data-v-d9d12d41"]]),o2={name:"HrWhosOff",components:{TeamTimeline:ds},methods:{t:M}},r2={class:"page"},c2={class:"page__header"},u2={class:"page__title"};function d2(e,a,t,s,n,i){const l=w("TeamTimeline");return o(),c("div",r2,[r("header",c2,[r("h2",u2,u(i.t("absence","Who's off")),1)]),_(l,{scope:"company"})])}const p2=F(o2,[["render",d2]]),h2={name:"BalanceRing",props:{row:{type:Object,required:!0}},data(){return{radius:50,animated:!1,tween:0}},computed:{circumference(){return 2*Math.PI*this.radius},fraction(){return!this.row.entitlement||this.row.entitlement<=0?this.row.used>0?1:0:Math.min(1,Math.max(0,this.row.used/this.row.entitlement))},usedOffset(){return this.animated?this.circumference*(1-this.fraction):this.circumference},targetValue(){return this.row.remaining!==null&&this.row.remaining!==void 0?Number(this.row.remaining):Number(this.row.used)},remainingLabel(){return this.format(this.tween)},ariaLabel(){return`${this.row.typeLabel}: ${this.remainingLabel} ${this.t("absence","days left")}`}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0,this.tween=this.targetValue;return}requestAnimationFrame(()=>{this.animated=!0}),this.countUp()},methods:{countUp(){const e=this.targetValue,a=900,t=performance.now(),s=n=>{const i=Math.min(1,(n-t)/a),l=1-Math.pow(1-i,3);this.tween=Math.round(e*l*10)/10,i<1?requestAnimationFrame(s):this.tween=e};requestAnimationFrame(s)},format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},m2=["aria-label"],f2={viewBox:"0 0 120 120",class:"ring__svg"},g2=["r"],y2=["r","stroke","stroke-dasharray","stroke-dashoffset"],b2={x:"60",y:"54",class:"ring__value"},v2={x:"60",y:"74",class:"ring__unit"},_2={class:"ring__label"},w2={class:"ring__icon","aria-hidden":"true"},C2={class:"ring__name"},k2={class:"ring__meta"},x2={key:2,class:"ring__pending"};function S2(e,a,t,s,n,i){return o(),c("div",{class:"ring",role:"group","aria-label":i.ariaLabel},[(o(),c("svg",f2,[r("circle",{class:"ring__track",cx:"60",cy:"60",r:n.radius},null,8,g2),r("circle",{class:"ring__used",cx:"60",cy:"60",r:n.radius,stroke:t.row.typeColor,"stroke-dasharray":i.circumference,"stroke-dashoffset":i.usedOffset,transform:"rotate(-90 60 60)"},null,8,y2),r("text",b2,u(i.remainingLabel),1),r("text",v2,u(e.t("absence","left")),1)])),r("div",_2,[r("span",w2,u(t.row.typeIcon),1),r("span",C2,u(t.row.typeLabel),1)]),r("div",k2,[t.row.entitlement!==null?(o(),c(K,{key:0},[V(u(e.t("absence","{used} of {total} used",{used:i.format(t.row.used),total:i.format(t.row.entitlement)})),1)],64)):(o(),c(K,{key:1},[V(u(e.t("absence","{used} taken",{used:i.format(t.row.used)})),1)],64)),t.row.pending>0?(o(),c("span",x2,"· "+u(e.t("absence","{n} pending",{n:i.format(t.row.pending)})),1)):C("",!0)])],8,m2)}const A2=F(h2,[["render",S2],["__scopeId","data-v-430f0399"]]),L2={name:"BalanceCard",components:{BalanceRing:A2},props:{row:{type:Object,required:!0}},methods:{t:M,format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},signed(e){const a=Number(e);return(a>=0?"+":"−")+this.format(Math.abs(a))}}},N2={class:"card"},D2={key:0,class:"ledger"},T2={class:"ledger__row"},E2={key:0,class:"ledger__row"},B2={key:1,class:"ledger__row"},I2={class:"ledger__row ledger__row--total"},M2={class:"ledger__row"},z2={key:2,class:"ledger__row ledger__row--pending"};function $2(e,a,t,s,n,i){const l=w("BalanceRing");return o(),c("div",N2,[_(l,{row:t.row},null,8,["row"]),t.row.entitlement!==null?(o(),c("dl",D2,[r("div",T2,[r("dt",null,u(i.t("absence","Base allowance")),1),r("dd",null,u(i.format(t.row.baseDays)),1)]),t.row.carryOverDays?(o(),c("div",E2,[r("dt",null,u(i.t("absence","Carried over")),1),r("dd",null,u(i.signed(t.row.carryOverDays)),1)])):C("",!0),t.row.manualAdjustment?(o(),c("div",B2,[r("dt",null,u(i.t("absence","Adjustment")),1),r("dd",null,u(i.signed(t.row.manualAdjustment)),1)])):C("",!0),r("div",I2,[r("dt",null,u(i.t("absence","Entitlement")),1),r("dd",null,u(i.format(t.row.entitlement)),1)]),r("div",M2,[r("dt",null,u(i.t("absence","Used")),1),r("dd",null,u(t.row.used?"−"+i.format(t.row.used):i.format(0)),1)]),t.row.pending?(o(),c("div",z2,[r("dt",null,u(i.t("absence","Pending approval")),1),r("dd",null,u("−"+i.format(t.row.pending)),1)])):C("",!0),r("div",{class:"ledger__row ledger__row--available",style:le({"--type-color":t.row.typeColor})},[r("dt",null,u(i.t("absence","Available")),1),r("dd",null,u(i.format(t.row.available)),1)],4)])):C("",!0)])}const R2=F(L2,[["render",$2],["__scopeId","data-v-291dbad2"]]),O2={name:"BarChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:220,animated:!1}},computed:{padTop(){return 24},baseline(){return this.height-22},max(){return Math.max(1,...this.data.map(e=>e.value))},slot(){return this.data.length?this.width/this.data.length:this.width},barWidth(){return Math.min(48,this.slot*.6)},bars(){return this.data.map((e,a)=>{const t=e.value/this.max*(this.baseline-this.padTop),s=a*this.slot+(this.slot-this.barWidth)/2;return{x:s,cx:s+this.barWidth/2,y:this.baseline-t,h:t,value:e.value,label:e.label,color:e.color||"var(--color-primary-element)"}})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},V2={class:"chart"},P2={key:0,class:"chart__title"},q2=["viewBox","aria-label"],H2=["x","y","width","height","fill"],F2=["x","y"],U2=["x","y"];function j2(e,a,t,s,n,i){return o(),c("figure",V2,[t.title?(o(),c("figcaption",P2,u(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"chart__svg",role:"img","aria-label":t.title},[(o(!0),c(K,null,ue(i.bars,(l,d)=>(o(),c("g",{key:d},[r("rect",{x:l.x,y:n.animated?l.y:i.baseline,width:i.barWidth,height:n.animated?l.h:0,fill:l.color,rx:"4",class:"chart__bar"},null,8,H2),r("text",{x:l.cx,y:n.height-4,"text-anchor":"middle",class:"chart__label"},u(l.label),9,F2),l.value>0?(o(),c("text",{key:0,x:l.cx,y:l.y-4,"text-anchor":"middle",class:"chart__value"},u(i.fmt(l.value)),9,U2)):C("",!0)]))),128))],8,q2))])}const W2=F(O2,[["render",j2],["__scopeId","data-v-fc9e92b9"]]),G2={name:"PalmIllustration"},Z2={class:"palm",viewBox:"0 0 160 140",width:"160",height:"140",role:"img","aria-hidden":"true"};function K2(e,a,t,s,n,i){return o(),c("svg",Z2,[...a[0]||(a[0]=[Ln('',7)])])}const Y2=F(G2,[["render",K2],["__scopeId","data-v-85fdc3d1"]]),X2={name:"MyLeave",components:{NcButton:ge,NcEmptyContent:je,Plus:Wn,BalanceCard:R2,BarChart:W2,RequestListItem:cs,SkeletonList:vt,PalmIllustration:Y2},inject:["absence:openNew"],props:{id:{type:[String,Number],default:null}},setup(){return{store:W}},computed:{year(){return new Date().getFullYear()},rings(){return W.balance.balances.filter(e=>e.year===this.year&&e.countsAgainstBalance)},leaveByMonth(){return this.monthChart(e=>e.countsAgainstBalance!==!1&&e.key!=="sick",null)},sickByMonth(){const e=W.leaveTypes.find(a=>a.key==="sick");return e?this.monthChart(a=>a.key==="sick",e.color):null},nextBreak(){const e=Me(new Date),a=W.requests.filter(l=>l.status==="APPROVED"&&l.endDate>=e).sort((l,d)=>l.startDate.localeCompare(d.startDate));if(!a.length)return null;const t=a[0],s=W.leaveType(t.typeId),n=Ea(t.startDate,t.endDate);if(t.startDate<=e)return{icon:s.icon,color:s.color,eyebrow:M("absence","You are off right now"),headline:M("absence","Enjoy your {type}! 🌴",{type:s.label.toLowerCase()}),sub:n};const i=Math.max(1,Math.round((new Date(t.startDate+"T00:00:00")-new Date(e+"T00:00:00"))/864e5));return{icon:s.icon,color:s.color,eyebrow:M("absence","Your next break"),headline:Rt("absence","%n day to go","%n days to go",i),sub:`${s.label} · ${n}`}}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload),this.id&&W.select(Number(this.id))},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,monthChart(e,a){const t=new Array(12).fill(0);for(const s of W.requests)s.status!=="APPROVED"||!e(W.leaveType(s.typeId))||rl(t,s.startDate,s.endDate,s.workingDays,this.year);return t.map((s,n)=>({label:new Date(this.year,n,1).toLocaleDateString(void 0,{month:"short"}),value:Math.round(s*10)/10,...a?{color:a}:{}}))},openNew(){this["absence:openNew"]()},async reload(){await Promise.all([W.loadRequests({scope:"mine"}),W.loadMyBalance()])}}},Q2={class:"page page--narrow page--roomy"},J2={class:"page__header page__header--center"},ey={class:"page__title"},ty={class:"hero__emoji","aria-hidden":"true"},ay={class:"hero__text"},iy={class:"hero__eyebrow"},ny={class:"hero__headline"},sy={class:"hero__sub"},ly={key:1,class:"overview"},oy={key:2,class:"charts"},ry={key:0,class:"charts__card"},cy={key:1,class:"charts__card"},uy={class:"requests"},dy={class:"requests__title"};function py(e,a,t,s,n,i){const l=w("Plus"),d=w("NcButton"),h=w("BalanceCard"),f=w("BarChart"),m=w("SkeletonList"),p=w("RequestListItem"),g=w("PalmIllustration"),y=w("NcEmptyContent");return o(),c("div",Q2,[r("header",J2,[r("h2",ey,u(i.t("absence","My leave")),1),_(d,{variant:"primary",onClick:i.openNew},{icon:x(()=>[_(l,{size:20})]),default:x(()=>[V(" "+u(i.t("absence","New request")),1)]),_:1},8,["onClick"])]),i.nextBreak?(o(),c("section",{key:0,class:"hero",style:le({"--accent":i.nextBreak.color})},[r("span",ty,u(i.nextBreak.icon),1),r("div",ay,[r("span",iy,u(i.nextBreak.eyebrow),1),r("strong",ny,u(i.nextBreak.headline),1),r("span",sy,u(i.nextBreak.sub),1)])],4)):C("",!0),i.rings.length?(o(),c("section",ly,[(o(!0),c(K,null,ue(i.rings,k=>(o(),B(h,{key:k.typeId+"-"+k.year,row:k},null,8,["row"]))),128))])):C("",!0),i.leaveByMonth||i.sickByMonth?(o(),c("section",oy,[i.leaveByMonth?(o(),c("div",ry,[_(f,{title:i.t("absence","Leave taken by month ({year})",{year:i.year}),data:i.leaveByMonth},null,8,["title","data"])])):C("",!0),i.sickByMonth?(o(),c("div",cy,[_(f,{title:i.t("absence","Sick days by month ({year})",{year:i.year}),data:i.sickByMonth},null,8,["title","data"])])):C("",!0)])):C("",!0),r("section",uy,[r("h3",dy,u(i.t("absence","Requests")),1),s.store.loading?(o(),B(m,{key:0,rows:4})):s.store.requests.length?(o(),B(Xa,{key:1,tag:"ul",name:"rli",class:"requests__list"},{default:x(()=>[(o(!0),c(K,null,ue(s.store.requests,k=>(o(),B(p,{key:k.id,request:k,active:s.store.selectedId===k.id,onSelect:a[0]||(a[0]=b=>s.store.select(b))},null,8,["request","active"]))),128))]),_:1})):(o(),B(y,{key:2,name:i.t("absence","No leave requests yet"),description:i.t("absence","Your leave requests will appear here once you submit one.")},{icon:x(()=>[_(g)]),action:x(()=>[_(d,{variant:"primary",onClick:i.openNew},{default:x(()=>[V(u(i.t("absence","Request time off")),1)]),_:1},8,["onClick"])]),_:1},8,["name","description"]))])])}const pn=F(X2,[["render",py],["__scopeId","data-v-7fdf2132"]]),hy={name:"Team",components:{TeamTimeline:ds},methods:{t:M}},my={class:"page"},fy={class:"page__header"},gy={class:"page__title"};function yy(e,a,t,s,n,i){const l=w("TeamTimeline");return o(),c("div",my,[r("header",fy,[r("h2",gy,u(i.t("absence","Team")),1)]),_(l,{scope:"team"})])}const by=F(hy,[["render",yy]]),vy=[{path:"/",redirect:"/my"},{path:"/my",name:"my",component:pn},{path:"/approvals",name:"approvals",component:hm},{path:"/team",name:"team",component:by},{path:"/hr/balances",name:"hr-balances",component:Hm},{path:"/hr/statistics",name:"hr-statistics",component:kg},{path:"/hr/sick-leave",name:"hr-sick-leave",component:Af},{path:"/hr/whos-off",name:"hr-whos-off",component:p2},{path:"/hr/exports",name:"hr-exports",component:tf},{path:"/requests/:id",name:"request",component:pn,props:!0}],_y=mo({history:Wl(),routes:vy}),Wt=cl(E1);Wt.config.globalProperties.t=M,Wt.config.globalProperties.n=Rt,Wt.use(_y),Wt.mount("#absence-app"); + `;return[{ncActionComponent:Wh,ncActionComponentProps:{},iconSvg:this.userStatus.icon?t:void 0,text:`${this.userStatus.message}`}].concat(e)}return e}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),Kt("settings:avatar:updated",this.loadAvatarUrl),Kt("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),Kt("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeUnmount(){Yt("settings:avatar:updated",this.loadAvatarUrl),Yt("settings:display-name:updated",this.loadAvatarUrl),Yt("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:G,handleUserStatusUpdated(e){this.user===e.userId&&(this.userStatus={status:e.status,icon:e.icon,message:e.message},this.hasStatus=e.status!==null)},async toggleMenu(e){e.type==="keydown"&&e.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const e=encodeURIComponent(this.user),{data:a}=await vi.post(bi("contactsmenu/findOne"),`shareType=0&shareWith=${e}`);this.contactsMenuData=a,this.contactsMenuActions=a.topAction?[a.topAction].concat(a.actions):a.actions}catch{this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$slots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const e=this.avatarUrlGenerator(this.user,64),a=[e+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(e,a)}else{const e=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(e)}},avatarUrlGenerator(e,a){let t=dh(e,{size:a,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return e===Qa()?.uid&&typeof oc_userconfig<"u"&&(t+="?v="+window.oc_userconfig.avatar.version),t},updateImageIfValid(e,a=null){const t=Zh(this.user);if(this.isUserDefined&&typeof t=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),t===!1&&(this.userDoesNotExist=!0);return}const s=new Image;s.onload=()=>{this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),this.isAvatarLoaded=!0,mn(this.user,!0)},s.onerror=n=>{Be.debug("[NcAvatar] Invalid avatar url",{error:n,url:e}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,mn(this.user,!1)},a&&(s.srcset=a),s.src=e}}},Yh=["title"],Xh=["src","srcset"],Qh={key:2,class:"avatardiv__user-status avatardiv__user-status--icon"};function Jh(e,a,t,s,n,i){const l=k("NcLoadingIcon"),d=k("IconDotsHorizontal"),h=k("NcButton"),f=k("NcIconSvgWrapper"),m=k("NcActions"),p=k("NcUserStatusIcon"),g=Xa("click-outside");return Ce((o(),c("span",{class:j(["avatardiv popovermenu-wrapper",{"avatardiv--unknown":n.userDoesNotExist,"avatardiv--with-menu":i.hasMenu,"avatardiv--with-menu-loading":n.contactsMenuLoading}]),style:re(i.avatarStyle),title:i.tooltip},[O(e.$slots,"icon",{},()=>[t.iconClass?(o(),c("span",{key:0,class:j([t.iconClass,"avatar-class-icon"])},null,2)):n.isAvatarLoaded&&!n.userDoesNotExist?(o(),c("img",{key:1,src:n.avatarUrlLoaded,srcset:n.avatarSrcSetLoaded,alt:""},null,8,Xh)):C("",!0)],!0),i.hasMenu&&i.menu.length===0?(o(),T(h,{key:0,"aria-label":i.avatarAriaLabel,class:"action-item action-item__menutoggle",variant:"tertiary-no-background",onClick:i.toggleMenu},{icon:x(()=>[n.contactsMenuLoading?(o(),T(l,{key:0})):(o(),T(d,{key:1,size:20}))]),_:1},8,["aria-label","onClick"])):i.hasMenu?(o(),T(m,{key:1,open:n.contactsMenuOpenState,"onUpdate:open":a[0]||(a[0]=b=>n.contactsMenuOpenState=b),"aria-label":i.avatarAriaLabel,container:t.menuContainer,forceMenu:"",manualOpen:"",variant:"tertiary-no-background",onClick:i.toggleMenu},tt({default:x(()=>[(o(!0),c(Z,null,ce(i.menu,(b,_)=>(o(),T(ct(b.ncActionComponent),J({key:_},{ref_for:!0},b.ncActionComponentProps),tt({default:x(()=>[$(" "+u(b.text),1)]),_:2},[b.iconSvg?{name:"icon",fn:x(()=>[v(f,{svg:b.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1040))),128))]),_:2},[n.contactsMenuLoading?{name:"icon",fn:x(()=>[v(l)]),key:"0"}:void 0]),1032,["open","aria-label","container","onClick"])):C("",!0),i.showUserStatusIconOnAvatar?(o(),c("span",Qh,u(e.userStatus.icon),1)):i.canDisplayUserStatus?(o(),T(p,{key:3,class:"avatardiv__user-status",status:e.userStatus.status,"aria-hidden":String(i.hasMenu)},null,8,["status","aria-hidden"])):C("",!0),i.showInitials?(o(),c("span",{key:4,style:re(i.initialsWrapperStyle),class:"avatardiv__initials-wrapper"},[r("span",{style:re(i.initialsStyle),class:"avatardiv__initials"},u(i.initials),5)],4)):C("",!0)],14,Yh)),[[g,i.closeMenu]])}const Ft=te(Kh,[["render",Jh],["__scopeId","data-v-e0ae1174"]]),e1={name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},t1=["aria-hidden","aria-label"],a1=["fill","width","height"],i1={d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"},n1={key:0};function s1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon cancel-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",i1,[t.title?(o(),c("title",n1,u(t.title),1)):C("",!0)])],8,a1))],16,t1)}const l1=F(e1,[["render",s1]]),o1={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},r1=["aria-hidden","aria-label"],c1=["fill","width","height"],u1={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},d1={key:0};function p1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",u1,[t.title?(o(),c("title",d1,u(t.title),1)):C("",!0)])],8,c1))],16,r1)}const h1=F(o1,[["render",p1]]),m1={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f1=["aria-hidden","aria-label"],g1=["fill","width","height"],y1={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"},b1={key:0};function v1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon close-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",y1,[t.title?(o(),c("title",b1,u(t.title),1)):C("",!0)])],8,g1))],16,f1)}const _1=F(m1,[["render",v1]]),w1={name:"CommentOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},k1=["aria-hidden","aria-label"],C1=["fill","width","height"],x1={d:"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z"},S1={key:0};function A1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon comment-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",x1,[t.title?(o(),c("title",S1,u(t.title),1)):C("",!0)])],8,C1))],16,k1)}const L1=F(w1,[["render",A1]]),E1={name:"HistoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N1=["aria-hidden","aria-label"],D1=["fill","width","height"],I1={d:"M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3"},T1={key:0};function M1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon history-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",I1,[t.title?(o(),c("title",T1,u(t.title),1)):C("",!0)])],8,D1))],16,N1)}const B1=F(E1,[["render",M1]]),z1={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$1=["aria-hidden","aria-label"],R1=["fill","width","height"],V1={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},P1={key:0};function q1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon information-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",V1,[t.title?(o(),c("title",P1,u(t.title),1)):C("",!0)])],8,R1))],16,$1)}const H1=F(z1,[["render",q1]]),O1={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},F1=["aria-hidden","aria-label"],U1=["fill","width","height"],j1={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"},W1={key:0};function G1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",j1,[t.title?(o(),c("title",W1,u(t.title),1)):C("",!0)])],8,U1))],16,F1)}const ms=F(O1,[["render",G1]]),Z1={name:"StatusChip",props:{status:{type:String,required:!0}},computed:{meta(){return ti(this.status)}}},K1={class:"status-chip__dot","aria-hidden":"true"};function Y1(e,a,t,s,n,i){return o(),c("span",{class:"status-chip",style:re({"--chip-text":i.meta.text,"--chip-tint":i.meta.tint})},[r("span",K1,u(i.meta.icon),1),$(" "+u(i.meta.label),1)],4)}const Mi=F(Z1,[["render",Y1],["__scopeId","data-v-b664cccb"]]),X1={name:"CoveragePanel",components:{NcAvatar:Ft,NcEmptyContent:qe,NcNoteCard:yi,AccountGroup:Ci,StatusChip:Mi},props:{coverage:{type:Object,required:!0}},methods:{t:M}},Q1={class:"section"},J1={class:"section__title"},e0={key:2,class:"overlap"},t0={class:"overlap__name"};function a0(e,a,t,s,n,i){const l=k("NcNoteCard"),d=k("NcAvatar"),h=k("StatusChip"),f=k("AccountGroup"),m=k("NcEmptyContent");return o(),c("div",Q1,[t.coverage.conflict?(o(),T(l,{key:0,type:"warning"},{default:x(()=>[$(u(i.t("absence","Approving this would put {peak} team members off at once (limit {threshold}).",{peak:t.coverage.projectedPeak,threshold:t.coverage.threshold})),1)]),_:1})):(o(),T(l,{key:1,type:"success"},{default:x(()=>[$(u(i.t("absence","Coverage looks fine — at most {peak} away at once.",{peak:t.coverage.projectedPeak??t.coverage.maxConcurrent})),1)]),_:1})),r("h4",J1,u(i.t("absence","Team members off during these dates")),1),t.coverage.events.length?(o(),c("ul",e0,[(o(!0),c(Z,null,ce(t.coverage.events,p=>(o(),c("li",{key:p.requestId,class:"overlap__item"},[v(d,{user:p.employeeUid,displayName:p.displayName,size:28,hideStatus:""},null,8,["user","displayName"]),r("span",t0,u(p.displayName),1),v(h,{status:p.status},null,8,["status"])]))),128))])):(o(),T(m,{key:3,name:i.t("absence","Nobody else is off 🎉")},{icon:x(()=>[v(f,{size:20})]),_:1},8,["name"]))])}const i0=F(X1,[["render",a0],["__scopeId","data-v-48df71be"]]),n0={name:"LeaveTypeChip",props:{typeId:{type:Number,required:!0}},computed:{type(){return H.leaveType(this.typeId)}}},s0={class:"type-chip__icon","aria-hidden":"true"};function l0(e,a,t,s,n,i){return o(),c("span",{class:"type-chip",style:re({"--type-color":i.type.color})},[r("span",s0,u(i.type.icon),1),$(" "+u(i.type.label),1)],4)}const o0=F(n0,[["render",l0],["__scopeId","data-v-debceb16"]]),r0={name:"RequestStepper",props:{status:{type:String,required:!0}},computed:{steps(){const e=this.status,a={label:M("absence","Requested"),state:"done",tone:"default",icon:"📝"};let t;["PENDING","ESCALATED","WITHDRAWAL_PENDING"].includes(e)?t={label:e==="ESCALATED"?M("absence","With HR"):M("absence","In review"),state:"current",tone:"default",icon:"⏳"}:t={label:M("absence","Reviewed"),state:"done",tone:"default",icon:"👀"};let s;switch(e){case"APPROVED":s={label:M("absence","Approved"),state:"done",tone:"success",icon:"✅"};break;case"REJECTED":s={label:M("absence","Declined"),state:"done",tone:"error",icon:"✋"};break;case"CANCELLED":s={label:M("absence","Cancelled"),state:"done",tone:"muted",icon:"🚫"};break;case"WITHDRAWAL_PENDING":s={label:M("absence","Withdrawing"),state:"current",tone:"default",icon:"↩️"};break;default:s={label:M("absence","Decision"),state:"future",tone:"default",icon:"•"}}return[a,t,s]}},methods:{t:M}},c0=["aria-label"],u0={class:"stepper__dot","aria-hidden":"true"},d0={class:"stepper__label"},p0={key:0,class:"stepper__bar","aria-hidden":"true"};function h0(e,a,t,s,n,i){return o(),c("ol",{class:"stepper","aria-label":i.t("absence","Request progress")},[(o(!0),c(Z,null,ce(i.steps,(l,d)=>(o(),c("li",{key:d,class:j(["stepper__step",[`stepper__step--${l.state}`,`stepper__step--${l.tone}`]])},[r("span",u0,u(l.icon),1),r("span",d0,u(l.label),1),de.$emit("close"))},tt({default:x(()=>[v(q,{id:"details",name:i.t("absence","Details"),order:1},{icon:x(()=>[v(d,{size:20})]),default:x(()=>[r("div",g0,[i.showStatus?(o(),T(h,{key:0,status:n.detail.status,class:"section__stepper"},null,8,["status"])):C("",!0),r("dl",y0,[r("dt",null,u(i.t("absence","Employee")),1),r("dd",null,u(n.detail.employeeUid),1),r("dt",null,u(i.t("absence","Type")),1),r("dd",null,[v(f,{typeId:n.detail.typeId},null,8,["typeId"])]),r("dt",null,u(i.t("absence","Dates")),1),r("dd",null,u(i.rangeLabel),1),r("dt",null,u(i.t("absence","Working days")),1),r("dd",null,u(n.detail.workingDays),1),n.detail.replacementUid?(o(),c(Z,{key:0},[r("dt",null,u(i.t("absence","Replacement")),1),r("dd",b0,[v(m,{user:n.detail.replacementUid,size:20,hideStatus:""},null,8,["user"]),$(" "+u(n.detail.replacementName||n.detail.replacementUid),1)])],64)):C("",!0),n.detail.reason?(o(),c(Z,{key:1},[r("dt",null,u(i.t("absence","Reason")),1),r("dd",null,u(n.detail.reason),1)],64)):C("",!0),n.detail.decidedBy?(o(),c(Z,{key:2},[r("dt",null,u(i.t("absence","Decided by")),1),r("dd",v0,[v(m,{user:n.detail.decidedBy,size:20,hideStatus:""},null,8,["user"]),$(" "+u(n.detail.decidedBy),1),i.decidedAtLabel?(o(),c("span",_0," · "+u(i.decidedAtLabel),1)):C("",!0)])],64)):C("",!0),n.detail.decisionComment?(o(),c(Z,{key:3},[r("dt",null,u(i.t("absence","Decision note")),1),r("dd",null,u(n.detail.decisionComment),1)],64)):C("",!0)]),r("div",w0,[n.detail.canDecide&&i.isDecidable?(o(),c(Z,{key:0},[v(g,{variant:"success",disabled:n.busy,onClick:i.approve},{icon:x(()=>[v(p,{size:20})]),default:x(()=>[$(" "+u(i.decideLabelApprove),1)]),_:1},8,["disabled","onClick"]),v(g,{variant:"error",disabled:n.busy,onClick:i.startReject},{icon:x(()=>[v(b,{size:20})]),default:x(()=>[$(" "+u(i.decideLabelReject),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0),n.detail.canModify&&i.isModifiable?(o(),c(Z,{key:1},[i.canEdit?(o(),T(g,{key:0,variant:"secondary",disabled:n.busy,onClick:a[0]||(a[0]=W=>e.$emit("edit",n.detail))},{icon:x(()=>[v(_,{size:20})]),default:x(()=>[$(" "+u(i.t("absence","Edit")),1)]),_:1},8,["disabled"])):C("",!0),v(g,{variant:"tertiary",disabled:n.busy,onClick:i.startCancel},{icon:x(()=>[v(y,{size:20})]),default:x(()=>[$(" "+u(i.cancelLabel),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0)]),n.confirmingCancel?(o(),T(A,{key:1,type:"warning"},{default:x(()=>[r("p",null,u(i.t("absence","Cancel this absence for {employee}? They are notified, and it is removed from the calendars. The record itself is kept, marked cancelled.",{employee:n.detail.employeeUid})),1),r("div",k0,[v(g,{variant:"tertiary",disabled:n.busy,onClick:a[1]||(a[1]=W=>n.confirmingCancel=!1)},{default:x(()=>[$(u(i.t("absence","Back")),1)]),_:1},8,["disabled"]),v(g,{variant:"error",disabled:n.busy,onClick:i.cancel},{default:x(()=>[$(u(i.t("absence","Confirm cancellation")),1)]),_:1},8,["disabled","onClick"])])]),_:1})):C("",!0),n.rejecting?(o(),c("div",C0,[v(V,{modelValue:n.rejectComment,"onUpdate:modelValue":a[2]||(a[2]=W=>n.rejectComment=W),label:i.t("absence","Reason for declining"),rows:"2"},null,8,["modelValue","label"]),r("div",x0,[v(g,{variant:"tertiary",onClick:a[3]||(a[3]=W=>n.rejecting=!1)},{default:x(()=>[$(u(i.t("absence","Back")),1)]),_:1}),v(g,{variant:"error",disabled:n.rejectComment.trim()===""||n.busy,onClick:i.reject},{default:x(()=>[$(u(i.t("absence","Confirm decline")),1)]),_:1},8,["disabled","onClick"])])])):C("",!0)])]),_:1},8,["name"]),n.detail.coverage?(o(),T(q,{key:0,id:"coverage",name:i.t("absence","Coverage"),order:2},{icon:x(()=>[v(z,{size:20})]),default:x(()=>[v(Y,{coverage:n.detail.coverage},null,8,["coverage"])]),_:1},8,["name"])):C("",!0),v(q,{id:"comments",name:i.t("absence","Comments"),order:3},{icon:x(()=>[v(ae,{size:20})]),default:x(()=>[r("div",S0,[n.detail.comments.length?(o(),c("ul",A0,[(o(!0),c(Z,null,ce(n.detail.comments,W=>(o(),c("li",{key:W.id,class:"comments__item"},[r("div",L0,[v(m,{user:W.authorUid,size:24,hideStatus:""},null,8,["user"]),r("strong",null,u(W.authorUid),1)]),r("p",null,u(W.body),1)]))),128))])):(o(),T(le,{key:1,name:i.t("absence","No comments yet"),description:i.t("absence","Start the conversation below.")},{icon:x(()=>[v(ae,{size:20})]),_:1},8,["name","description"])),r("div",E0,[v(V,{modelValue:n.newComment,"onUpdate:modelValue":a[4]||(a[4]=W=>n.newComment=W),placeholder:i.t("absence","Add a comment…"),rows:"2"},null,8,["modelValue","placeholder"]),v(g,{variant:"secondary",disabled:n.newComment.trim()===""||n.busy,onClick:i.postComment},{default:x(()=>[$(u(i.t("absence","Send")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"]),v(q,{id:"history",name:i.t("absence","History"),order:4},{icon:x(()=>[v(oe,{size:20})]),default:x(()=>[r("div",N0,[n.detail.history&&n.detail.history.length?(o(),c("ol",D0,[(o(!0),c(Z,null,ce(n.detail.history,W=>(o(),c("li",{key:W.id,class:"timeline__item"},[r("span",I0,u(i.eventMeta(W.eventType).icon),1),r("div",T0,[r("div",M0,[r("strong",null,u(i.eventMeta(W.eventType).label),1),r("span",B0,u(i.formatDateTime(W.createdAt)),1)]),r("div",z0,[W.actorUid==="system"?(o(),c(Z,{key:0},[$(u(i.t("absence","Automatically")),1)],64)):(o(),c(Z,{key:1},[v(m,{user:W.actorUid,size:20,hideStatus:""},null,8,["user"]),$(" "+u(W.actorUid),1)],64))]),W.detail?(o(),c("p",$0,u(W.detail),1)):C("",!0)])]))),128))])):(o(),T(le,{key:1,name:i.t("absence","No history yet")},{icon:x(()=>[v(oe,{size:20})]),_:1},8,["name"]))])]),_:1},8,["name"])]),_:2},[i.showStatus?{name:"description",fn:x(()=>[v(l,{status:n.detail.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","subname"])):C("",!0)}const V0=F(f0,[["render",R0],["__scopeId","data-v-e2cb898f"]]),P0={name:"App",components:{NcContent:sc,NcAppContent:To,NcAppNavigation:Fo,NcAppNavigationNew:Qr,NcAppNavigationItem:Zr,NcAppNavigationCaption:Go,NcCounterBubble:Zn,RequestDialog:Nd,RequestSidebar:V0,Plus:Qn,CalendarAccountOutline:_c,CalendarSearch:Kn,ClipboardCheck:Gc,AccountGroup:Ci,ScaleBalance:Jn,ChartBar:qc,CalendarMonth:Lc,Download:Xn,ClipboardPlusOutline:Yn,Thermometer:es},setup(){return he("absence:openNew",()=>window.dispatchEvent(new CustomEvent("absence:open-new"))),he("absence:openRecord",()=>window.dispatchEvent(new CustomEvent("absence:open-record"))),he("absence:openEdit",e=>window.dispatchEvent(new CustomEvent("absence:open-edit",{detail:e}))),{store:H}},data(){return{showDialog:!1,editRequest:null,recordMode:!1}},computed:{session(){return H.session},pendingCount(){return H.session.pendingApprovals||0}},mounted(){window.addEventListener("absence:open-new",this.openNewRequest),window.addEventListener("absence:open-record",this.openRecord),window.addEventListener("absence:open-edit",this.onOpenEditEvent),this.$route.params.id&&H.select(Number(this.$route.params.id))},beforeUnmount(){window.removeEventListener("absence:open-new",this.openNewRequest),window.removeEventListener("absence:open-record",this.openRecord),window.removeEventListener("absence:open-edit",this.onOpenEditEvent)},methods:{openNewRequest(){this.editRequest=null,this.recordMode=!1,this.showDialog=!0},openRecord(){this.editRequest=null,this.recordMode=!0,this.showDialog=!0},onOpenEditEvent(e){this.openEditRequest(e.detail)},openEditRequest(e){this.editRequest=e,this.recordMode=!1,this.showDialog=!0,H.select(null)},closeDialog(){this.showDialog=!1,this.editRequest=null,this.recordMode=!1},onChanged(){this.closeDialog(),H.select(null),window.dispatchEvent(new CustomEvent("absence:refresh"))}}};function q0(e,a,t,s,n,i){const l=k("Plus"),d=k("NcAppNavigationNew"),h=k("CalendarAccountOutline"),f=k("NcAppNavigationItem"),m=k("ClipboardCheck"),p=k("NcCounterBubble"),g=k("AccountGroup"),b=k("NcAppNavigationCaption"),_=k("ClipboardPlusOutline"),y=k("CalendarSearch"),A=k("ScaleBalance"),V=k("ChartBar"),q=k("Thermometer"),z=k("CalendarMonth"),Y=k("Download"),ae=k("NcAppNavigation"),le=k("router-view"),oe=k("NcAppContent"),Te=k("RequestSidebar"),W=k("RequestDialog"),$e=k("NcContent");return o(),T($e,{appName:"absence"},{default:x(()=>[v(ae,null,{list:x(()=>[v(d,{text:e.t("absence","New request"),onClick:i.openNewRequest},{icon:x(()=>[v(l,{size:20})]),_:1},8,["text","onClick"]),v(f,{name:e.t("absence","My leave"),to:{name:"my"}},{icon:x(()=>[v(h,{size:20})]),_:1},8,["name"]),i.session.isManager||i.session.isHr?(o(),T(f,{key:0,name:e.t("absence","Approvals"),to:{name:"approvals"}},tt({icon:x(()=>[v(m,{size:20})]),_:2},[i.pendingCount>0?{name:"counter",fn:x(()=>[v(p,{count:i.pendingCount,type:"highlighted"},null,8,["count"])]),key:"0"}:void 0]),1032,["name"])):C("",!0),v(f,{name:e.t("absence","Team"),to:{name:"team"}},{icon:x(()=>[v(g,{size:20})]),_:1},8,["name"]),i.session.isHr?(o(),c(Z,{key:1},[v(b,{name:e.t("absence","HR")},null,8,["name"]),v(f,{name:e.t("absence","Record absence"),onClick:i.openRecord},{icon:x(()=>[v(_,{size:20})]),_:1},8,["name","onClick"]),v(f,{name:e.t("absence","Absences"),to:{name:"hr-absences"}},{icon:x(()=>[v(y,{size:20})]),_:1},8,["name"]),v(f,{name:e.t("absence","Balances"),to:{name:"hr-balances"}},{icon:x(()=>[v(A,{size:20})]),_:1},8,["name"]),v(f,{name:e.t("absence","Statistics"),to:{name:"hr-statistics"}},{icon:x(()=>[v(V,{size:20})]),_:1},8,["name"]),v(f,{name:e.t("absence","Sick leave"),to:{name:"hr-sick-leave"}},{icon:x(()=>[v(q,{size:20})]),_:1},8,["name"]),v(f,{name:e.t("absence","Who's off"),to:{name:"hr-whos-off"}},tt({icon:x(()=>[v(z,{size:20})]),_:2},[i.session.escalatedCount>0?{name:"counter",fn:x(()=>[v(p,{count:i.session.escalatedCount},null,8,["count"])]),key:"0"}:void 0]),1032,["name"]),v(f,{name:e.t("absence","Exports"),to:{name:"hr-exports"}},{icon:x(()=>[v(Y,{size:20})]),_:1},8,["name"])],64)):C("",!0)]),_:1}),v(oe,null,{default:x(()=>[v(le)]),_:1}),s.store.selectedId?(o(),T(Te,{key:s.store.selectedId,onClose:a[0]||(a[0]=He=>s.store.select(null)),onEdit:i.openEditRequest,onChanged:i.onChanged},null,8,["onEdit","onChanged"])):C("",!0),n.showDialog?(o(),T(W,{key:1,request:n.editRequest,hrMode:n.recordMode,onClose:i.closeDialog,onSaved:i.onChanged},null,8,["request","hrMode","onClose","onSaved"])):C("",!0)]),_:1})}const H0=F(P0,[["render",q0],["__scopeId","data-v-20950abb"]]),O0={name:"CheckAllIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},F0=["aria-hidden","aria-label"],U0=["fill","width","height"],j0={d:"M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z"},W0={key:0};function G0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-all-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",j0,[t.title?(o(),c("title",W0,u(t.title),1)):C("",!0)])],8,U0))],16,F0)}const Z0=F(O0,[["render",G0]]),K0={name:"NcListItem",components:{NcActions:rt,NcCounterBubble:Zn,NcVNodes:ki},inheritAttrs:!1,props:{details:{type:String,default:""},name:{type:String,default:void 0},to:{type:[String,Object],default:null},href:{type:String,default:"#"},target:{type:String,default:""},anchorId:{type:String,default:""},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:void 0},linkAriaLabel:{type:String,default:""},actionsAriaLabel:{type:String,default:void 0},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:"",validator(e){return["highlighted","outlined",""].indexOf(e)!==-1}},forceDisplayActions:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},oneLine:{type:Boolean,default:!1}},emits:["click","dragstart","update:menuOpen"],setup(){return{isLegacy34:at}},data(){return{hovered:!1,hasActions:!1,hasSubname:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1,hasDetails:!1}},computed:{showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return(this.details!==""||this.hasDetails)&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)}},watch:{menuOpen(e){!e&&!this.hovered&&(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleBlur(e){this.menuOpen||this.$refs["list-item"]?.contains(e.relatedTarget)||this.hideActions()},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleMouseover(){this.showActions(),this.hovered=!0},handleActionsUpdateOpen(e){this.menuOpen=e,this.$emit("update:menuOpen",e)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubname!==!!this.$slots.subname&&(this.hasSubname=!!this.$slots.subname),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator),this.hasDetails!==!!this.$slots.details&&(this.hasDetails=!!this.$slots.details)}}},Y0=["id","aria-label","href","target","rel","onClick"],X0={class:"list-item-content"},Q0={class:"list-item-content__main"},J0={class:"list-item-content__name"},em={class:"list-item-content__details"},tm={key:0,class:"list-item-details__details"},am={key:1,class:"list-item-details__extra"},im={key:1,class:"list-item-details__indicator"},nm={key:0,class:"list-item-content__extra-actions"},sm={key:2,class:"list-item__extra"};function lm(e,a,t,s,n,i){const l=k("NcCounterBubble"),d=k("NcActions");return o(),T(ct(t.to?"router-link":"NcVNodes"),fi(gi({...t.to&&{custom:!0,to:t.to}})),{default:x(({href:h,navigate:f,isActive:m})=>[r("li",J({class:["list-item__wrapper",{"list-item__wrapper--active":t.active??m,"list-item__wrapper--legacy":s.isLegacy34}]},e.$attrs),[r("div",{ref:"list-item",class:j(["list-item",{"list-item--compact":t.compact,"list-item--one-line":t.oneLine}]),onMouseover:a[5]||(a[5]=(...p)=>i.handleMouseover&&i.handleMouseover(...p)),onMouseleave:a[6]||(a[6]=(...p)=>i.handleMouseleave&&i.handleMouseleave(...p))},[r("a",{id:t.anchorId||void 0,"aria-label":t.linkAriaLabel,class:"list-item__anchor",href:h||t.href,target:t.target||(t.href==="#"?void 0:"_blank"),rel:t.href==="#"?void 0:"noopener noreferrer",onFocus:a[0]||(a[0]=(...p)=>i.showActions&&i.showActions(...p)),onFocusout:a[1]||(a[1]=(...p)=>i.handleBlur&&i.handleBlur(...p)),onClick:p=>i.onClick(p,f,h),onDragstart:a[2]||(a[2]=p=>e.$emit("dragstart",p)),onKeydown:a[3]||(a[3]=we((...p)=>i.hideActions&&i.hideActions(...p),["esc"]))},[O(e.$slots,"icon",{},void 0,!0),r("div",X0,[r("div",Q0,[r("div",J0,[O(e.$slots,"name",{},()=>[$(u(t.name),1)],!0)]),n.hasSubname?(o(),c("div",{key:0,class:j(["list-item-content__subname",{"list-item-content__subname--bold":t.bold}])},[O(e.$slots,"subname",{},void 0,!0)],2)):C("",!0)]),r("div",em,[i.showDetails?(o(),c("div",tm,[O(e.$slots,"details",{},()=>[$(u(t.details),1)],!0)])):C("",!0),t.counterNumber!==0||n.hasIndicator?Ce((o(),c("div",am,[t.counterNumber!==0?(o(),T(l,{key:0,count:t.counterNumber,active:s.isLegacy34?t.active??m:!1,class:"list-item-details__counter",type:t.counterType},null,8,["count","active","type"])):C("",!0),n.hasIndicator?(o(),c("span",im,[O(e.$slots,"indicator",{},void 0,!0)])):C("",!0)],512)),[[et,i.showAdditionalElements]]):C("",!0)])])],40,Y0),e.$slots["extra-actions"]?(o(),c("div",nm,[O(e.$slots,"extra-actions",{},void 0,!0)])):C("",!0),t.forceDisplayActions||n.displayActionsOnHoverFocus?(o(),c("div",{key:1,class:"list-item-content__actions",onFocusout:a[4]||(a[4]=(...p)=>i.handleBlur&&i.handleBlur(...p))},[v(d,{ref:"actions",primary:s.isLegacy34?t.active??m:!1,forceMenu:t.forceMenu,"aria-label":t.actionsAriaLabel,"onUpdate:open":i.handleActionsUpdateOpen},tt({default:x(()=>[O(e.$slots,"actions",{},void 0,!0)]),_:2},[e.$slots["actions-icon"]?{name:"icon",fn:x(()=>[O(e.$slots,"actions-icon",{},void 0,!0)]),key:"0"}:void 0]),1032,["primary","forceMenu","aria-label","onUpdate:open"])],32)):C("",!0),e.$slots.extra?(o(),c("div",sm,[O(e.$slots,"extra",{},void 0,!0)])):C("",!0)],34)],16)]),_:3},16)}const om=te(K0,[["render",lm],["__scopeId","data-v-0e705f5a"]]),rm={name:"RequestListItem",components:{NcListItem:om,StatusChip:Mi},props:{request:{type:Object,required:!0},active:{type:Boolean,default:!1},showEmployee:{type:Boolean,default:!1}},emits:["select"],computed:{type(){return H.leaveType(this.request.typeId)},showStatus(){return H.statusVisible(this.request)},colorSoft(){return`color-mix(in srgb, ${this.type.color} 18%, transparent)`},title(){return this.showEmployee?`${this.request.employeeUid} · ${this.type.label}`:this.type.label},subtitle(){const e=Ta(this.request.startDate,this.request.endDate),a=bt("absence","%n day","%n days",this.request.workingDays);return`${e} · ${a}`}},methods:{t:M,n:bt}};function cm(e,a,t,s,n,i){const l=k("StatusChip"),d=k("NcListItem");return o(),c("div",{class:j(["rli",{"rli--active":t.active}]),style:re({"--type-color":i.type.color})},[v(d,{name:i.title,active:t.active,forceDisplayActions:!0,onClick:a[0]||(a[0]=h=>e.$emit("select",t.request.id))},tt({icon:x(()=>[r("span",{class:"rli__icon",style:re({background:i.colorSoft}),"aria-hidden":"true"},u(i.type.icon),5)]),subname:x(()=>[$(u(i.subtitle),1)]),_:2},[i.showStatus?{name:"indicator",fn:x(()=>[v(l,{status:t.request.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","active"])],6)}const Bi=F(rm,[["render",cm],["__scopeId","data-v-4165016d"]]),um={name:"SkeletonList",props:{rows:{type:Number,default:4}},methods:{t:M}},dm=["aria-label"];function pm(e,a,t,s,n,i){return o(),c("div",{class:"skeleton","aria-label":i.t("absence","Loading…"),role:"status"},[(o(!0),c(Z,null,ce(t.rows,l=>(o(),c("div",{key:l,class:"skeleton__row"},[...a[0]||(a[0]=[In('',3)])]))),128))],8,dm)}const pt=F(um,[["render",pm],["__scopeId","data-v-024c423c"]]),hm=["PENDING","ESCALATED","WITHDRAWAL_PENDING"],mm={name:"Approvals",components:{NcEmptyContent:qe,CheckAll:Z0,RequestListItem:Bi,SkeletonList:pt},setup(){return{store:H}},data(){return{loading:!0,teamQueue:[],escalated:[]}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload)},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,async reload(){this.loading=!0;try{const e=await se.listRequests({scope:"reports"});this.teamQueue=e.filter(a=>hm.includes(a.status)),H.session.isHr&&(this.escalated=await se.listRequests({scope:"hr",status:"ESCALATED"}))}finally{this.loading=!1}}}},fm={class:"page page--narrow page--roomy"},gm={class:"page__header"},ym={class:"page__title"},bm={key:0,class:"group"},vm={class:"group__title"},_m={key:1,class:"group"},wm={class:"group__title"};function km(e,a,t,s,n,i){const l=k("SkeletonList"),d=k("RequestListItem"),h=k("CheckAll"),f=k("NcEmptyContent");return o(),c("div",fm,[r("header",gm,[r("h2",ym,u(i.t("absence","Approvals")),1)]),n.loading?(o(),T(l,{key:0,rows:3})):(o(),c(Z,{key:1},[n.teamQueue.length?(o(),c("section",bm,[r("h3",vm,u(i.t("absence","Awaiting your decision")),1),v(Jt,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Z,null,ce(n.teamQueue,m=>(o(),T(d,{key:m.id,request:m,showEmployee:!0,active:s.store.selectedId===m.id,onSelect:a[0]||(a[0]=p=>s.store.select(p))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),n.escalated.length?(o(),c("section",_m,[r("h3",wm,u(i.t("absence","Escalated to HR"))+" ⏫ ",1),v(Jt,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Z,null,ce(n.escalated,m=>(o(),T(d,{key:m.id,request:m,showEmployee:!0,active:s.store.selectedId===m.id,onSelect:a[1]||(a[1]=p=>s.store.select(p))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),!n.teamQueue.length&&!n.escalated.length?(o(),T(f,{key:2,name:i.t("absence","All caught up!"),description:i.t("absence","No requests waiting for a decision. ✨")},{icon:x(()=>[v(h,{size:20})]),_:1},8,["name","description"])):C("",!0)],64))])}const Cm=F(mm,[["render",km],["__scopeId","data-v-8142b834"]]),Ga=100,fn=["PENDING","ESCALATED","WITHDRAWAL_PENDING","APPROVED","REJECTED","CANCELLED"],xm={name:"HrAbsences",components:{NcButton:me,NcEmptyContent:qe,NcLoadingIcon:Ht,NcSelect:Ot,CalendarSearch:Kn,ClipboardPlusOutline:Yn,RequestListItem:Bi,SkeletonList:pt},inject:["absence:openRecord"],setup(){return{store:H}},data(){const e=this.$route?.query||{},a=new Date().getFullYear(),t=e.employee?{uid:e.employee,displayName:e.employeeName||e.employee}:null,s=e.year?Number(e.year):a;return{loading:!0,loadingMore:!1,rows:[],hasMore:!1,employee:t,employeeOptions:t?[t]:[],employeeLoading:!1,type:e.type&&H.leaveTypes.find(n=>n.id===Number(e.type))||null,status:fn.includes(e.status)?{value:e.status,label:ti(e.status).label}:null,year:{value:s,label:String(s)}}},computed:{typeOptions(){return H.leaveTypes},statusOptions(){return fn.map(e=>({value:e,label:ti(e).label}))},yearOptions(){const e=new Date().getFullYear(),a=[];for(let t=e+1;t>=e-4;t--)a.push({value:t,label:String(t)});return[...a,{value:null,label:M("absence","All years")}]},filtersActive(){return this.employee!==null||this.type!==null||this.status!==null||this.year.value!==null},query(){const e={scope:"hr"};return this.employee&&(e.employeeUid=this.employee.uid),this.type&&(e.typeId=this.type.id),this.status&&(e.status=this.status.value),this.year.value!==null&&(e.from=`${this.year.value}-01-01`,e.to=`${this.year.value}-12-31`),e},queryKey(){return JSON.stringify(this.query)}},watch:{queryKey:{handler(){this.reload()},immediate:!0}},mounted(){window.addEventListener("absence:refresh",this.reload)},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,n:bt,clearFilters(){this.employee=null,this.type=null,this.status=null,this.year={value:null,label:M("absence","All years")}},openRecord(){this["absence:openRecord"]()},async onEmployeeSearch(e){if(!(!e||e.length<2)){this.employeeLoading=!0;try{this.employeeOptions=await se.searchUsers(e)}catch{this.employeeOptions=[]}finally{this.employeeLoading=!1}}},async reload(){this.loading=!0;try{this.rows=await this.fetch(0),this.hasMore=this.rows.length===Ga}catch{this.rows=[],this.hasMore=!1,Ie(M("absence","Could not load the absences"))}finally{this.loading=!1}},async loadMore(){this.loadingMore=!0;try{const e=await this.fetch(this.rows.length);this.rows=[...this.rows,...e],this.hasMore=e.length===Ga}catch{Ie(M("absence","Could not load more absences"))}finally{this.loadingMore=!1}},fetch(e){return se.listRequests({...this.query,limit:Ga,offset:e})}}},Sm={class:"page page--narrow page--roomy"},Am={class:"page__header"},Lm={class:"page__title"},Em={class:"page__tools filters"},Nm={class:"opt"},Dm={class:"opt__icon"},Im={class:"opt"},Tm={class:"opt__icon"},Mm={class:"summary"},Bm={key:0,class:"summary__muted"},zm={key:0,class:"more"};function $m(e,a,t,s,n,i){const l=k("ClipboardPlusOutline"),d=k("NcButton"),h=k("NcSelect"),f=k("SkeletonList"),m=k("RequestListItem"),p=k("NcLoadingIcon"),g=k("CalendarSearch"),b=k("NcEmptyContent");return o(),c("div",Sm,[r("header",Am,[r("h2",Lm,u(i.t("absence","Absences")),1),v(d,{variant:"primary",onClick:i.openRecord},{icon:x(()=>[v(l,{size:20})]),default:x(()=>[$(" "+u(i.t("absence","Record absence")),1)]),_:1},8,["onClick"])]),r("div",Em,[v(h,{modelValue:n.employee,"onUpdate:modelValue":a[0]||(a[0]=_=>n.employee=_),class:"filters__employee",options:n.employeeOptions,loading:n.employeeLoading,userSelect:!0,label:"displayName",filterable:!1,placeholder:i.t("absence","All employees"),"aria-label-combobox":i.t("absence","Employee"),onSearch:i.onEmployeeSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"]),v(h,{modelValue:n.type,"onUpdate:modelValue":a[1]||(a[1]=_=>n.type=_),class:"filters__select",options:i.typeOptions,label:"label",placeholder:i.t("absence","All types"),"aria-label-combobox":i.t("absence","Leave type")},{option:x(({icon:_,label:y})=>[r("span",Nm,[r("span",Dm,u(_),1),$(u(y),1)])]),"selected-option":x(({icon:_,label:y})=>[r("span",Im,[r("span",Tm,u(_),1),$(u(y),1)])]),_:1},8,["modelValue","options","placeholder","aria-label-combobox"]),v(h,{modelValue:n.status,"onUpdate:modelValue":a[2]||(a[2]=_=>n.status=_),class:"filters__select",options:i.statusOptions,label:"label",placeholder:i.t("absence","All statuses"),"aria-label-combobox":i.t("absence","Status")},null,8,["modelValue","options","placeholder","aria-label-combobox"]),v(h,{modelValue:n.year,"onUpdate:modelValue":a[3]||(a[3]=_=>n.year=_),class:"filters__year",options:i.yearOptions,label:"label",clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])]),n.loading?(o(),T(f,{key:0,rows:6})):n.rows.length?(o(),c(Z,{key:1},[r("p",Mm,[$(u(i.n("absence","%n absence","%n absences",n.rows.length))+" ",1),n.hasMore?(o(),c("span",Bm,u(i.t("absence","(more available)")),1)):C("",!0)]),v(Jt,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Z,null,ce(n.rows,_=>(o(),T(m,{key:_.id,request:_,showEmployee:!0,active:s.store.selectedId===_.id,onSelect:a[4]||(a[4]=y=>s.store.select(y))},null,8,["request","active"]))),128))]),_:1}),n.hasMore?(o(),c("div",zm,[v(d,{variant:"secondary",disabled:n.loadingMore,onClick:i.loadMore},{icon:x(()=>[n.loadingMore?(o(),T(p,{key:0,size:20})):C("",!0)]),default:x(()=>[$(" "+u(i.t("absence","Load more")),1)]),_:1},8,["disabled","onClick"])])):C("",!0)],64)):(o(),T(b,{key:2,name:i.t("absence","No absences found"),description:i.filtersActive?i.t("absence","Nothing matches these filters. Try widening them."):i.t("absence","Recorded absences appear here — including the ones employees request themselves.")},{icon:x(()=>[v(g,{size:20})]),action:x(()=>[i.filtersActive?(o(),T(d,{key:0,variant:"secondary",onClick:i.clearFilters},{default:x(()=>[$(u(i.t("absence","Clear filters")),1)]),_:1},8,["onClick"])):C("",!0)]),_:1},8,["name","description"]))])}const Rm=F(xm,[["render",$m],["__scopeId","data-v-7eba53dc"]]),Vm={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Pm=["aria-hidden","aria-label"],qm=["fill","width","height"],Hm={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},Om={key:0};function Fm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon magnify-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Hm,[t.title?(o(),c("title",Om,u(t.title),1)):C("",!0)])],8,qm))],16,Pm)}const fs=F(Vm,[["render",Fm]]),Um={name:"HrBalances",components:{NcAvatar:Ft,NcButton:me,NcEmptyContent:qe,NcModal:En,NcSelect:Ot,NcTextField:Si,Magnify:fs,Pencil:ms,ScaleBalance:Jn,SkeletonList:pt},data(){const e=new Date().getFullYear();return{loading:!0,rows:[],search:"",year:e,years:[e-1,e,e+1],editing:null,saving:!1,form:{baseDays:0,manualAdjustment:0,adjustmentNote:""}}},computed:{filtered(){const e=this.search.trim().toLowerCase();return e?this.rows.filter(a=>a.displayName.toLowerCase().includes(e)||a.employeeUid.toLowerCase().includes(e)):this.rows}},watch:{year(){this.reload()}},mounted(){this.reload()},methods:{t:M,fmt(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.rows=await se.reportBalances(this.year)}catch{Ie(M("absence","Could not load balances"))}finally{this.loading=!1}},async edit(e){this.editing=e;try{const a=(await se.listEntitlements(e.employeeUid,this.year)).find(t=>t.typeId===e.typeId);this.form={baseDays:a?a.baseDays:e.baseDays,manualAdjustment:a?a.manualAdjustment:0,adjustmentNote:"",entitlementId:a?a.id:e.entitlementId}}catch{this.form={baseDays:e.baseDays,manualAdjustment:0,adjustmentNote:"",entitlementId:e.entitlementId}}},async save(){this.saving=!0;try{const e={baseDays:Number(this.form.baseDays),manualAdjustment:Number(this.form.manualAdjustment),adjustmentNote:this.form.adjustmentNote};this.form.entitlementId?await se.updateEntitlement(this.form.entitlementId,e):await se.createEntitlement({employeeUid:this.editing.employeeUid,year:this.year,typeId:this.editing.typeId,...e}),Lt(M("absence","Entitlement updated")),this.editing=null,await this.reload()}catch(e){Ie(e.response?.data?.message||M("absence","Could not update entitlement"))}finally{this.saving=!1}}}},jm={class:"page"},Wm={class:"page__header"},Gm={class:"page__title"},Zm={class:"page__tools"},Km={key:1,class:"table-wrap"},Ym={class:"tbl"},Xm={class:"num"},Qm={class:"num"},Jm={class:"num"},ef={class:"num"},tf={class:"num"},af={class:"emp"},nf={class:"type"},sf={"aria-hidden":"true"},lf={class:"num"},of={class:"num"},rf={class:"num"},cf={class:"num"},uf={class:"edit"},df={class:"edit__actions"};function pf(e,a,t,s,n,i){const l=k("Magnify"),d=k("NcTextField"),h=k("NcSelect"),f=k("SkeletonList"),m=k("NcAvatar"),p=k("Pencil"),g=k("NcButton"),b=k("ScaleBalance"),_=k("NcEmptyContent"),y=k("NcModal");return o(),c("div",jm,[r("header",Wm,[r("h2",Gm,u(i.t("absence","Balances")),1),r("div",Zm,[v(d,{modelValue:n.search,"onUpdate:modelValue":a[0]||(a[0]=A=>n.search=A),label:i.t("absence","Search employee"),class:"page__search"},{icon:x(()=>[v(l,{size:18})]),_:1},8,["modelValue","label"]),v(h,{modelValue:n.year,"onUpdate:modelValue":a[1]||(a[1]=A=>n.year=A),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])])]),n.loading?(o(),T(f,{key:0,rows:6})):(o(),c("div",Km,[r("table",Ym,[r("thead",null,[r("tr",null,[r("th",null,u(i.t("absence","Employee")),1),r("th",null,u(i.t("absence","Type")),1),r("th",Xm,u(i.t("absence","Entitlement")),1),r("th",Qm,u(i.t("absence","Used")),1),r("th",Jm,u(i.t("absence","Pending")),1),r("th",ef,u(i.t("absence","Remaining")),1),r("th",tf,u(i.t("absence","Available")),1),a[7]||(a[7]=r("th",null,null,-1))])]),r("tbody",null,[(o(!0),c(Z,null,ce(i.filtered,A=>(o(),c("tr",{key:A.employeeUid+"-"+A.typeId},[r("td",null,[r("div",af,[v(m,{user:A.employeeUid,displayName:A.displayName,size:24,hideStatus:""},null,8,["user","displayName"]),$(" "+u(A.displayName),1)])]),r("td",null,[r("span",nf,[r("span",sf,u(A.typeIcon),1),$(" "+u(A.typeLabel),1)])]),r("td",lf,u(i.fmt(A.entitlement)),1),r("td",of,u(i.fmt(A.used)),1),r("td",rf,u(i.fmt(A.pending)),1),r("td",cf,u(i.fmt(A.remaining)),1),r("td",{class:j(["num",{neg:(A.available??0)<0}])},u(i.fmt(A.available)),3),r("td",null,[A.countsAgainstBalance?(o(),T(g,{key:0,variant:"tertiary","aria-label":i.t("absence","Edit entitlement"),onClick:V=>i.edit(A)},{icon:x(()=>[v(p,{size:18})]),_:1},8,["aria-label","onClick"])):C("",!0)])]))),128))])]),i.filtered.length?C("",!0):(o(),T(_,{key:0,name:n.search?i.t("absence","No matches"):i.t("absence","No balances yet"),description:n.search?i.t("absence","No employee matches “{query}”.",{query:n.search}):i.t("absence","Balances appear here once employees have entitlements for {year}.",{year:n.year})},{icon:x(()=>[v(b,{size:20})]),_:1},8,["name","description"]))])),n.editing?(o(),T(y,{key:2,name:i.t("absence","Edit entitlement"),onClose:a[6]||(a[6]=A=>n.editing=null)},{default:x(()=>[r("div",uf,[r("h3",null,u(n.editing.displayName)+" · "+u(n.editing.typeLabel)+" · "+u(n.year),1),r("label",null,u(i.t("absence","Base days")),1),v(d,{modelValue:n.form.baseDays,"onUpdate:modelValue":a[2]||(a[2]=A=>n.form.baseDays=A),type:"number"},null,8,["modelValue"]),r("label",null,u(i.t("absence","Manual adjustment (+/−)")),1),v(d,{modelValue:n.form.manualAdjustment,"onUpdate:modelValue":a[3]||(a[3]=A=>n.form.manualAdjustment=A),type:"number"},null,8,["modelValue"]),r("label",null,u(i.t("absence","Adjustment note")),1),v(d,{modelValue:n.form.adjustmentNote,"onUpdate:modelValue":a[4]||(a[4]=A=>n.form.adjustmentNote=A),placeholder:i.t("absence","Why is this being adjusted?")},null,8,["modelValue","placeholder"]),r("div",df,[v(g,{variant:"tertiary",onClick:a[5]||(a[5]=A=>n.editing=null)},{default:x(()=>[$(u(i.t("absence","Cancel")),1)]),_:1}),v(g,{variant:"primary",disabled:n.saving,onClick:i.save},{default:x(()=>[$(u(i.t("absence","Save")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])):C("",!0)])}const hf=F(Um,[["render",pf],["__scopeId","data-v-524b60ef"]]),mf={name:"HrExports",components:{NcButton:me,NcDateTimePickerNative:xi,NcSelect:Ot,Download:Xn},data(){const e=new Date;return{from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),year:e.getFullYear(),years:[e.getFullYear()-1,e.getFullYear(),e.getFullYear()+1]}},computed:{requestsUrl(){return se.exportRequestsUrl(ze(this.from),ze(this.to))},balancesUrl(){return se.exportBalancesUrl(this.year)}},methods:{t:M}},ff={class:"page page--narrow page--flat"},gf={class:"page__header"},yf={class:"page__title"},bf={class:"cards"},vf={class:"card"},_f={class:"card__row"},wf=["href"],kf={class:"card"},Cf={class:"card__row"},xf=["href"];function Sf(e,a,t,s,n,i){const l=k("NcDateTimePickerNative"),d=k("Download"),h=k("NcButton"),f=k("NcSelect");return o(),c("div",ff,[r("header",gf,[r("h2",yf,u(i.t("absence","Exports")),1)]),r("div",bf,[r("div",vf,[r("h3",null,u(i.t("absence","Requests")),1),r("p",null,u(i.t("absence","All leave requests overlapping the selected date range, as CSV.")),1),r("div",_f,[v(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=m=>n.from=m),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),v(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=m=>n.to=m),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])]),r("a",{href:i.requestsUrl,class:"dl"},[v(h,{variant:"primary"},{icon:x(()=>[v(d,{size:20})]),default:x(()=>[$(" "+u(i.t("absence","Download requests CSV")),1)]),_:1})],8,wf)]),r("div",kf,[r("h3",null,u(i.t("absence","Balances")),1),r("p",null,u(i.t("absence","Per-employee entitlement, used, remaining and carry-over for a year.")),1),r("div",Cf,[v(f,{modelValue:n.year,"onUpdate:modelValue":a[2]||(a[2]=m=>n.year=m),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])]),r("a",{href:i.balancesUrl,class:"dl"},[v(h,{variant:"primary"},{icon:x(()=>[v(d,{size:20})]),default:x(()=>[$(" "+u(i.t("absence","Download balances CSV")),1)]),_:1})],8,xf)])])])}const Af=F(mf,[["render",Sf],["__scopeId","data-v-6d9165ed"]]),Lf={name:"HrSickLeave",components:{NcAvatar:Ft,NcCheckboxRadioSwitch:pl,NcEmptyContent:qe,NcSelect:Ot,NcTextField:Si,Magnify:fs,Thermometer:es,SkeletonList:pt},data(){const e=new Date().getFullYear();return{loading:!0,rows:[],types:[],totals:{employees:0,affected:0,days:0,episodes:0},search:"",onlyAffected:!0,year:e,years:[e-2,e-1,e,e+1]}},computed:{filtered(){const e=this.search.trim().toLowerCase();return this.rows.filter(a=>this.onlyAffected&&!a.days?!1:e?a.displayName.toLowerCase().includes(e)||a.employeeUid.toLowerCase().includes(e):!0)},maxDays(){return this.rows.reduce((e,a)=>Math.max(e,a.days||0),0)},barColor(){return this.types[0]?.color||"var(--color-primary-element)"}},watch:{year(){this.reload()}},mounted(){this.reload()},methods:{t:M,n:bt,fmt(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},formatDate(e){return new Date(e+"T00:00:00").toLocaleDateString(void 0,{dateStyle:"medium"})},openRecords(e){e.days&&this.$router.push({name:"hr-absences",query:{employee:e.employeeUid,employeeName:e.displayName,...this.types.length===1?{type:this.types[0].id}:{},year:this.year}})},barWidth(e){return!e||this.maxDays<=0?"0":Math.max(2,Math.round(e/this.maxDays*100))+"%"},async reload(){this.loading=!0;try{const e=await se.reportSickLeave(this.year);this.rows=e.rows??[],this.types=e.types??[],this.totals=e.totals??{employees:0,affected:0,days:0,episodes:0}}catch{Ie(M("absence","Could not load the sick leave overview"))}finally{this.loading=!1}}}},Ef={class:"page"},Nf={class:"page__header"},Df={class:"page__title"},If={class:"page__tools"},Tf={key:2,class:"report"},Mf={class:"summary"},Bf={class:"summary__muted"},zf={key:0,class:"table-wrap"},$f={class:"tbl"},Rf={class:"num"},Vf={class:"num"},Pf={class:"num"},qf={class:"num"},Hf=["onClick"],Of={class:"num rank"},Ff={class:"emp"},Uf=["title","onClick"],jf={class:"num strong"},Wf={class:"num"},Gf={class:"num"},Zf={class:"num"},Kf={class:"bar-col"},Yf=["title"];function Xf(e,a,t,s,n,i){const l=k("Magnify"),d=k("NcTextField"),h=k("NcCheckboxRadioSwitch"),f=k("NcSelect"),m=k("SkeletonList"),p=k("Thermometer"),g=k("NcEmptyContent"),b=k("NcAvatar");return o(),c("div",Ef,[r("header",Nf,[r("h2",Df,u(i.t("absence","Sick leave")),1),r("div",If,[v(d,{modelValue:n.search,"onUpdate:modelValue":a[0]||(a[0]=_=>n.search=_),label:i.t("absence","Search employee"),class:"page__search"},{icon:x(()=>[v(l,{size:18})]),_:1},8,["modelValue","label"]),v(h,{modelValue:n.onlyAffected,"onUpdate:modelValue":a[1]||(a[1]=_=>n.onlyAffected=_),type:"switch"},{default:x(()=>[$(u(i.t("absence","Only employees with sick leave")),1)]),_:1},8,["modelValue"]),v(f,{modelValue:n.year,"onUpdate:modelValue":a[2]||(a[2]=_=>n.year=_),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])])]),n.loading?(o(),T(m,{key:0,rows:6})):n.types.length?(o(),c("div",Tf,[r("p",Mf,[$(u(i.n("absence","%n day of sick leave in {year}","%n days of sick leave in {year}",Math.round(n.totals.days),{year:n.year}))+" · "+u(i.n("absence","%n employee affected","%n employees affected",n.totals.affected))+" ",1),r("span",Bf,u(i.t("absence","of {total}",{total:n.totals.employees})),1)]),i.filtered.length?(o(),c("div",zf,[r("table",$f,[r("thead",null,[r("tr",null,[a[3]||(a[3]=r("th",{class:"num rank"}," # ",-1)),r("th",null,u(i.t("absence","Employee")),1),r("th",Rf,u(i.t("absence","Days")),1),r("th",Vf,u(i.t("absence","Absences")),1),r("th",Pf,u(i.t("absence","Longest")),1),r("th",qf,u(i.t("absence","Most recent")),1),a[4]||(a[4]=r("th",{class:"bar-col"},null,-1))])]),r("tbody",null,[(o(!0),c(Z,null,ce(i.filtered,(_,y)=>(o(),c("tr",{key:_.employeeUid,class:j(["row",{"row--drillable":_.days>0}]),onClick:A=>i.openRecords(_)},[r("td",Of,u(y+1),1),r("td",null,[r("div",Ff,[v(b,{user:_.employeeUid,displayName:_.displayName,size:24,hideStatus:""},null,8,["user","displayName"]),_.days>0?(o(),c("button",{key:0,type:"button",class:"emp__link",title:i.t("absence","Show these sick days"),onClick:pe(A=>i.openRecords(_),["stop"])},u(_.displayName),9,Uf)):(o(),c(Z,{key:1},[$(u(_.displayName),1)],64))])]),r("td",jf,u(i.fmt(_.days)),1),r("td",Wf,u(_.episodes||"—"),1),r("td",Gf,u(_.longestEpisode?i.fmt(_.longestEpisode):"—"),1),r("td",Zf,u(_.lastDate?i.formatDate(_.lastDate):"—"),1),r("td",Kf,[r("div",{class:"bar",style:re({width:i.barWidth(_.days),backgroundColor:i.barColor}),title:i.n("absence","%n day","%n days",Math.round(_.days))},null,12,Yf)])],10,Hf))),128))])])])):C("",!0),i.filtered.length?C("",!0):(o(),T(g,{key:1,name:n.search?i.t("absence","No matches"):i.t("absence","No sick leave recorded"),description:n.search?i.t("absence","No employee matches “{query}”.",{query:n.search}):i.t("absence","Nobody has recorded sick leave in {year}.",{year:n.year})},{icon:x(()=>[v(p,{size:20})]),_:1},8,["name","description"]))])):(o(),T(g,{key:1,name:i.t("absence","No sick leave type configured"),description:i.t("absence","This overview counts the leave type with the key “sick”. Add or enable it in the admin settings to see figures here.")},{icon:x(()=>[v(p,{size:20})]),_:1},8,["name","description"]))])}const Qf=F(Lf,[["render",Xf],["__scopeId","data-v-3510541a"]]),Jf={name:"ChartLineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},eg=["aria-hidden","aria-label"],tg=["fill","width","height"],ag={d:"M16,11.78L20.24,4.45L21.97,5.45L16.74,14.5L10.23,10.75L5.46,19H22V21H2V3H4V17.54L9.5,8L16,11.78Z"},ig={key:0};function ng(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-line-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",ag,[t.title?(o(),c("title",ig,u(t.title),1)):C("",!0)])],8,tg))],16,eg)}const sg=F(Jf,[["render",ng]]),lg={name:"DonutChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{radius:64,animated:!1}},computed:{circumference(){return 2*Math.PI*this.radius},total(){return this.data.reduce((e,a)=>e+a.value,0)},segments(){const e=this.total||1;let a=0;return this.data.filter(t=>t.value>0).map(t=>{const s=t.value/e*100,n=t.value/e*this.circumference,i={...t,pct:s,len:n,offset:a};return a+=n,i})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{t:M,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},og={class:"donut"},rg={key:0,class:"donut__title"},cg={class:"donut__body"},ug=["aria-label"],dg=["r"],pg=["r","stroke","stroke-dasharray","stroke-dashoffset"],hg={x:"80",y:"74",class:"donut__total"},mg={x:"80",y:"92",class:"donut__unit"},fg={class:"donut__legend"},gg={class:"donut__label"},yg={class:"donut__value"};function bg(e,a,t,s,n,i){return o(),c("figure",og,[t.title?(o(),c("figcaption",rg,u(t.title),1)):C("",!0),r("div",cg,[(o(),c("svg",{viewBox:"0 0 160 160",class:"donut__svg",role:"img","aria-label":t.title},[r("circle",{class:"donut__track",cx:"80",cy:"80",r:n.radius},null,8,dg),(o(!0),c(Z,null,ce(i.segments,(l,d)=>(o(),c("circle",{key:d,class:"donut__seg",cx:"80",cy:"80",r:n.radius,stroke:l.color,"stroke-dasharray":`${n.animated?l.len:0} ${i.circumference}`,"stroke-dashoffset":-l.offset,transform:"rotate(-90 80 80)"},[r("title",null,u(l.label)+": "+u(i.fmt(l.value)),1)],8,pg))),128)),r("text",hg,u(i.fmt(i.total)),1),r("text",mg,u(i.t("absence","days")),1)],8,ug)),r("ul",fg,[(o(!0),c(Z,null,ce(i.segments,(l,d)=>(o(),c("li",{key:d},[r("span",{class:"donut__swatch",style:re({background:l.color})},null,4),r("span",gg,u(l.label),1),r("span",yg,u(i.fmt(l.value))+" · "+u(Math.round(l.pct))+"%",1)]))),128))])])])}const vg=F(lg,[["render",bg],["__scopeId","data-v-a6ff040b"]]),_g={name:"LineChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:200,padX:28,padTop:16,padBottom:22}},computed:{max(){return Math.max(1,...this.data.map(e=>e.value))},points(){const e=this.data.length,a=this.width-this.padX*2,t=this.height-this.padTop-this.padBottom;return this.data.map((s,n)=>({x:this.padX+(e<=1?a/2:a*n/(e-1)),y:this.padTop+t*(1-s.value/this.max),label:s.label,value:s.value}))},linePath(){return this.points.map((e,a)=>`${a===0?"M":"L"}${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" ")},areaPath(){if(!this.points.length)return"";const e=this.height-this.padBottom,a=this.points[0],t=this.points[this.points.length-1];return`M${a.x} ${e} `+this.points.map(s=>`L${s.x.toFixed(1)} ${s.y.toFixed(1)}`).join(" ")+` L${t.x} ${e} Z`},gridlines(){const e=this.height-this.padTop-this.padBottom;return[0,.5,1].map(a=>this.padTop+e*a)}},methods:{showLabel(e){const a=this.data.length>8?2:1;return e%a===0}}},wg={class:"line"},kg={key:0,class:"line__title"},Cg=["viewBox","aria-label"],xg=["x1","x2","y1","y2"],Sg=["d"],Ag=["d"],Lg=["cx","cy"],Eg=["x","y"];function Ng(e,a,t,s,n,i){return o(),c("figure",wg,[t.title?(o(),c("figcaption",kg,u(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"line__svg",role:"img","aria-label":t.title,preserveAspectRatio:"none"},[(o(!0),c(Z,null,ce(i.gridlines,(l,d)=>(o(),c("line",{key:"g"+d,class:"line__grid",x1:n.padX,x2:n.width-n.padX,y1:l,y2:l},null,8,xg))),128)),r("path",{class:"line__area",d:i.areaPath},null,8,Sg),r("path",{ref:"line",class:"line__stroke",d:i.linePath},null,8,Ag),(o(!0),c(Z,null,ce(i.points,(l,d)=>(o(),c("g",{key:"p"+d},[r("circle",{class:"line__dot",cx:l.x,cy:l.y,r:"3"},null,8,Lg),i.showLabel(d)?(o(),c("text",{key:0,class:"line__xlabel",x:l.x,y:n.height-4,"text-anchor":"middle"},u(l.label),9,Eg)):C("",!0)]))),128))],8,Cg))])}const Dg=F(_g,[["render",Ng],["__scopeId","data-v-f4b72e98"]]),Ig={name:"HrStatistics",components:{NcDateTimePickerNative:xi,NcEmptyContent:qe,ChartLine:sg,LineChart:Dg,DonutChart:vg,SkeletonList:pt},data(){const e=new Date;return{loading:!0,from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),trends:{byMonth:{},byType:[],total:0}}},computed:{monthData(){return Object.entries(this.trends.byMonth).map(([e,a])=>({label:e.slice(5),value:a}))},typeData(){return this.trends.byType.map(e=>({label:`${e.typeIcon||""} ${e.typeLabel}`.trim(),value:e.days,color:e.typeColor}))},perMonthAvg(){const e=Object.keys(this.trends.byMonth).length;return e?this.trends.total/e:0}},watch:{from(){this.reload()},to(){this.reload()}},mounted(){this.reload()},methods:{t:M,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.trends=await se.reportTrends(ze(this.from),ze(this.to))}finally{this.loading=!1}}}},Tg={class:"page page--narrow"},Mg={class:"page__header"},Bg={class:"page__title"},zg={class:"range"},$g={class:"cards"},Rg={class:"card"},Vg={class:"card__value"},Pg={class:"card__label"},qg={class:"card"},Hg={class:"card__value"},Og={class:"card__label"},Fg={class:"card"},Ug={class:"card__value"},jg={class:"card__label"},Wg={class:"panel"},Gg={class:"panel"};function Zg(e,a,t,s,n,i){const l=k("NcDateTimePickerNative"),d=k("SkeletonList"),h=k("ChartLine"),f=k("NcEmptyContent"),m=k("LineChart"),p=k("DonutChart");return o(),c("div",Tg,[r("header",Mg,[r("h2",Bg,u(i.t("absence","Statistics")),1),r("div",zg,[v(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=g=>n.from=g),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),v(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=g=>n.to=g),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])])]),n.loading?(o(),T(d,{key:0,rows:4})):(o(),c(Z,{key:1},[r("div",$g,[r("div",Rg,[a[2]||(a[2]=r("span",{class:"card__icon","aria-hidden":"true"},"🏖️",-1)),r("span",Vg,u(i.fmt(n.trends.total)),1),r("span",Pg,u(i.t("absence","approved leave days")),1)]),r("div",qg,[a[3]||(a[3]=r("span",{class:"card__icon","aria-hidden":"true"},"📊",-1)),r("span",Hg,u(i.fmt(i.perMonthAvg)),1),r("span",Og,u(i.t("absence","avg. days per month")),1)]),r("div",Fg,[a[4]||(a[4]=r("span",{class:"card__icon","aria-hidden":"true"},"🗂️",-1)),r("span",Ug,u(n.trends.byType.length),1),r("span",jg,u(i.t("absence","leave types used")),1)])]),n.trends.total===0?(o(),T(f,{key:0,name:i.t("absence","No approved leave in this range"),description:i.t("absence","Pick a wider date range, or check back once leave has been approved.")},{icon:x(()=>[v(h,{size:20})]),_:1},8,["name","description"])):(o(),c(Z,{key:1},[r("div",Wg,[v(m,{title:i.t("absence","Absence days per month"),data:i.monthData},null,8,["title","data"])]),r("div",Gg,[v(p,{title:i.t("absence","Days by leave type"),data:i.typeData},null,8,["title","data"])])],64))],64))])}const Kg=F(Ig,[["render",Zg],["__scopeId","data-v-857116af"]]),Yg={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xg=["aria-hidden","aria-label"],Qg=["fill","width","height"],Jg={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},e2={key:0};function t2(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Jg,[t.title?(o(),c("title",e2,u(t.title),1)):C("",!0)])],8,Qg))],16,Xg)}const a2=F(Yg,[["render",t2]]),i2={name:"ChevronLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},n2=["aria-hidden","aria-label"],s2=["fill","width","height"],l2={d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},o2={key:0};function r2(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-left-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",l2,[t.title?(o(),c("title",o2,u(t.title),1)):C("",!0)])],8,s2))],16,n2)}const c2=F(i2,[["render",r2]]),u2={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},d2=["aria-hidden","aria-label"],p2=["fill","width","height"],h2={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},m2={key:0};function f2(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",h2,[t.title?(o(),c("title",m2,u(t.title),1)):C("",!0)])],8,p2))],16,d2)}const g2=F(u2,[["render",f2]]),gn=864e5,y2={name:"TeamTimeline",components:{NcAvatar:Ft,NcButton:me,NcEmptyContent:qe,ChevronLeft:c2,ChevronRight:g2,CalendarBlank:a2,SkeletonList:pt},props:{scope:{type:String,default:"team"},selectable:{type:Boolean,default:!1}},emits:["select"],setup(){return{store:H}},data(){const e=new Date;return{year:e.getFullYear(),month:e.getMonth(),events:[],dayWidth:30,loading:!0}},computed:{firstDay(){return new Date(this.year,this.month,1)},lastDay(){return new Date(this.year,this.month+1,0)},monthLabel(){return this.firstDay.toLocaleDateString(void 0,{month:"long",year:"numeric"})},days(){const e=[];for(let a=1;a<=this.lastDay.getDate();a++){const t=new Date(this.year,this.month,a),s=t.getDay();e.push({day:a,index:a-1,weekend:s===0||s===6,iso:ze(t)})}return e},todayIndex(){const e=new Date;return e.getFullYear()===this.year&&e.getMonth()===this.month?e.getDate()-1:-1},rows(){const e={},a=this.firstDay,t=this.lastDay.getDate()-1;for(const s of this.events){e[s.employeeUid]||(e[s.employeeUid]={uid:s.employeeUid,name:s.displayName,segments:[]});const n=Math.max(0,Math.round((new Date(s.start+"T00:00:00")-a)/gn)),i=Math.min(t,Math.round((new Date(s.end+"T00:00:00")-a)/gn));if(i<0||n>t)continue;const l=H.leaveType(s.typeId);e[s.employeeUid].segments.push({requestId:s.requestId,left:n*this.dayWidth+2,width:(i-n+1)*this.dayWidth-4,color:l.color,icon:l.icon,pending:s.status!=="APPROVED",title:`${l.label} · ${Ta(s.start,s.end)}${s.status!=="APPROVED"?" ("+s.status+")":""}`})}return Object.values(e).sort((s,n)=>s.name.localeCompare(n.name))},legendTypes(){const e=new Set(this.events.map(a=>a.typeId));return H.leaveTypes.filter(a=>e.has(a.id))}},watch:{scope(){this.load()}},mounted(){this.load(),window.addEventListener("absence:refresh",this.load)},beforeUnmount(){window.removeEventListener("absence:refresh",this.load)},methods:{t:M,async load(){this.loading=!0;try{this.events=(await se.getCalendar(ze(this.firstDay),ze(this.lastDay),this.scope)).events}catch{this.events=[]}finally{this.loading=!1}},shift(e){let a=this.month+e,t=this.year;a<0&&(a=11,t--),a>11&&(a=0,t++),this.month=a,this.year=t,this.load()},goToday(){const e=new Date;this.year=e.getFullYear(),this.month=e.getMonth(),this.load()}}},b2={class:"gantt"},v2={class:"gantt__toolbar"},_2={class:"gantt__month"},w2={key:1,class:"gantt__scroll"},k2={class:"gantt__row gantt__row--head"},C2={class:"gantt__name gantt__name--head"},x2={class:"gantt__track"},S2={class:"gantt__name"},A2={class:"gantt__name-text"},L2={class:"gantt__track"},E2={class:"gantt__pill-icon","aria-hidden":"true"},N2={class:"legend"},D2={class:"legend__item legend__item--muted"};function I2(e,a,t,s,n,i){const l=k("ChevronLeft"),d=k("NcButton"),h=k("ChevronRight"),f=k("SkeletonList"),m=k("NcAvatar"),p=k("CalendarBlank"),g=k("NcEmptyContent");return o(),c("div",b2,[r("div",v2,[v(d,{variant:"tertiary","aria-label":i.t("absence","Previous month"),onClick:a[0]||(a[0]=b=>i.shift(-1))},{icon:x(()=>[v(l,{size:20})]),_:1},8,["aria-label"]),r("strong",_2,u(i.monthLabel),1),v(d,{variant:"tertiary","aria-label":i.t("absence","Next month"),onClick:a[1]||(a[1]=b=>i.shift(1))},{icon:x(()=>[v(h,{size:20})]),_:1},8,["aria-label"]),v(d,{variant:"tertiary",onClick:i.goToday},{default:x(()=>[$(u(i.t("absence","Today")),1)]),_:1},8,["onClick"])]),n.loading?(o(),T(f,{key:0,rows:4,class:"gantt__loading"})):(o(),c("div",w2,[r("div",{class:"gantt__grid",style:re({"--day-w":n.dayWidth+"px","--days":i.days.length})},[r("div",k2,[r("div",C2,u(i.t("absence","Person")),1),r("div",x2,[(o(!0),c(Z,null,ce(i.days,b=>(o(),c("span",{key:"h"+b.day,class:j(["gantt__daynum",{"gantt__daynum--weekend":b.weekend,"gantt__daynum--today":b.index===i.todayIndex}]),style:re({left:b.index*n.dayWidth+"px"})},u(b.day),7))),128))])]),(o(!0),c(Z,null,ce(i.rows,b=>(o(),c("div",{key:b.uid,class:"gantt__row"},[r("div",S2,[v(m,{user:b.uid,displayName:b.name,size:26,hideStatus:""},null,8,["user","displayName"]),r("span",A2,u(b.name),1)]),r("div",L2,[(o(!0),c(Z,null,ce(i.days,_=>(o(),c("span",{key:"c"+b.uid+_.day,class:j(["gantt__col",{"gantt__col--weekend":_.weekend}]),style:re({left:_.index*n.dayWidth+"px"})},null,6))),128)),i.todayIndex>=0?(o(),c("span",{key:0,class:"gantt__today",style:re({left:i.todayIndex*n.dayWidth+"px"})},null,4)):C("",!0),(o(!0),c(Z,null,ce(b.segments,(_,y)=>(o(),T(ct(t.selectable?"button":"span"),{key:y,class:j(["gantt__pill",{"gantt__pill--pending":_.pending,"gantt__pill--clickable":t.selectable,"gantt__pill--active":t.selectable&&s.store.selectedId===_.requestId}]),type:t.selectable?"button":null,style:re({left:_.left+"px",width:_.width+"px","--pill":_.color}),title:_.title,"aria-label":t.selectable?_.title:null,onClick:A=>t.selectable&&e.$emit("select",_.requestId)},{default:x(()=>[r("span",E2,u(_.icon),1)]),_:2},1032,["class","type","style","title","aria-label","onClick"]))),128))])]))),128))],4),i.rows.length?C("",!0):(o(),T(g,{key:0,name:i.t("absence","No absences this month"),description:i.t("absence","A calm, well-staffed month. ☀️")},{icon:x(()=>[v(p,{size:20})]),_:1},8,["name","description"]))])),r("div",N2,[(o(!0),c(Z,null,ce(i.legendTypes,b=>(o(),c("span",{key:b.id,class:"legend__item"},[r("span",{class:"legend__swatch",style:re({background:b.color})},null,4),$(u(b.icon)+" "+u(b.label),1)]))),128)),r("span",D2,[a[2]||(a[2]=r("span",{class:"legend__swatch legend__swatch--pending"},null,-1)),$(u(i.t("absence","Pending / not yet approved")),1)])])])}const gs=F(y2,[["render",I2],["__scopeId","data-v-0eafc5f2"]]),T2={name:"HrWhosOff",components:{TeamTimeline:gs},setup(){return{store:H}},methods:{t:M}},M2={class:"page"},B2={class:"page__header"},z2={class:"page__title"},$2={class:"hint"};function R2(e,a,t,s,n,i){const l=k("TeamTimeline");return o(),c("div",M2,[r("header",B2,[r("h2",z2,u(i.t("absence","Who's off")),1)]),r("p",$2,u(i.t("absence","Select an absence to see its details, or to correct or cancel it.")),1),v(l,{scope:"company",selectable:!0,onSelect:a[0]||(a[0]=d=>s.store.select(d))})])}const V2=F(T2,[["render",R2],["__scopeId","data-v-d10092b8"]]),P2={name:"BalanceRing",props:{row:{type:Object,required:!0}},data(){return{radius:50,animated:!1,tween:0}},computed:{circumference(){return 2*Math.PI*this.radius},fraction(){return!this.row.entitlement||this.row.entitlement<=0?this.row.used>0?1:0:Math.min(1,Math.max(0,this.row.used/this.row.entitlement))},usedOffset(){return this.animated?this.circumference*(1-this.fraction):this.circumference},targetValue(){return this.row.remaining!==null&&this.row.remaining!==void 0?Number(this.row.remaining):Number(this.row.used)},remainingLabel(){return this.format(this.tween)},ariaLabel(){return`${this.row.typeLabel}: ${this.remainingLabel} ${this.t("absence","days left")}`}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0,this.tween=this.targetValue;return}requestAnimationFrame(()=>{this.animated=!0}),this.countUp()},methods:{countUp(){const e=this.targetValue,a=900,t=performance.now(),s=n=>{const i=Math.min(1,(n-t)/a),l=1-Math.pow(1-i,3);this.tween=Math.round(e*l*10)/10,i<1?requestAnimationFrame(s):this.tween=e};requestAnimationFrame(s)},format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},q2=["aria-label"],H2={viewBox:"0 0 120 120",class:"ring__svg"},O2=["r"],F2=["r","stroke","stroke-dasharray","stroke-dashoffset"],U2={x:"60",y:"54",class:"ring__value"},j2={x:"60",y:"74",class:"ring__unit"},W2={class:"ring__label"},G2={class:"ring__icon","aria-hidden":"true"},Z2={class:"ring__name"},K2={class:"ring__meta"},Y2={key:2,class:"ring__pending"};function X2(e,a,t,s,n,i){return o(),c("div",{class:"ring",role:"group","aria-label":i.ariaLabel},[(o(),c("svg",H2,[r("circle",{class:"ring__track",cx:"60",cy:"60",r:n.radius},null,8,O2),r("circle",{class:"ring__used",cx:"60",cy:"60",r:n.radius,stroke:t.row.typeColor,"stroke-dasharray":i.circumference,"stroke-dashoffset":i.usedOffset,transform:"rotate(-90 60 60)"},null,8,F2),r("text",U2,u(i.remainingLabel),1),r("text",j2,u(e.t("absence","left")),1)])),r("div",W2,[r("span",G2,u(t.row.typeIcon),1),r("span",Z2,u(t.row.typeLabel),1)]),r("div",K2,[t.row.entitlement!==null?(o(),c(Z,{key:0},[$(u(e.t("absence","{used} of {total} used",{used:i.format(t.row.used),total:i.format(t.row.entitlement)})),1)],64)):(o(),c(Z,{key:1},[$(u(e.t("absence","{used} taken",{used:i.format(t.row.used)})),1)],64)),t.row.pending>0?(o(),c("span",Y2,"· "+u(e.t("absence","{n} pending",{n:i.format(t.row.pending)})),1)):C("",!0)])],8,q2)}const Q2=F(P2,[["render",X2],["__scopeId","data-v-430f0399"]]),J2={name:"BalanceCard",components:{BalanceRing:Q2},props:{row:{type:Object,required:!0}},methods:{t:M,format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},signed(e){const a=Number(e);return(a>=0?"+":"−")+this.format(Math.abs(a))}}},ey={class:"card"},ty={key:0,class:"ledger"},ay={class:"ledger__row"},iy={key:0,class:"ledger__row"},ny={key:1,class:"ledger__row"},sy={class:"ledger__row ledger__row--total"},ly={class:"ledger__row"},oy={key:2,class:"ledger__row ledger__row--pending"};function ry(e,a,t,s,n,i){const l=k("BalanceRing");return o(),c("div",ey,[v(l,{row:t.row},null,8,["row"]),t.row.entitlement!==null?(o(),c("dl",ty,[r("div",ay,[r("dt",null,u(i.t("absence","Base allowance")),1),r("dd",null,u(i.format(t.row.baseDays)),1)]),t.row.carryOverDays?(o(),c("div",iy,[r("dt",null,u(i.t("absence","Carried over")),1),r("dd",null,u(i.signed(t.row.carryOverDays)),1)])):C("",!0),t.row.manualAdjustment?(o(),c("div",ny,[r("dt",null,u(i.t("absence","Adjustment")),1),r("dd",null,u(i.signed(t.row.manualAdjustment)),1)])):C("",!0),r("div",sy,[r("dt",null,u(i.t("absence","Entitlement")),1),r("dd",null,u(i.format(t.row.entitlement)),1)]),r("div",ly,[r("dt",null,u(i.t("absence","Used")),1),r("dd",null,u(t.row.used?"−"+i.format(t.row.used):i.format(0)),1)]),t.row.pending?(o(),c("div",oy,[r("dt",null,u(i.t("absence","Pending approval")),1),r("dd",null,u("−"+i.format(t.row.pending)),1)])):C("",!0),r("div",{class:"ledger__row ledger__row--available",style:re({"--type-color":t.row.typeColor})},[r("dt",null,u(i.t("absence","Available")),1),r("dd",null,u(i.format(t.row.available)),1)],4)])):C("",!0)])}const cy=F(J2,[["render",ry],["__scopeId","data-v-291dbad2"]]),uy={name:"BarChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:220,animated:!1}},computed:{padTop(){return 24},baseline(){return this.height-22},max(){return Math.max(1,...this.data.map(e=>e.value))},slot(){return this.data.length?this.width/this.data.length:this.width},barWidth(){return Math.min(48,this.slot*.6)},bars(){return this.data.map((e,a)=>{const t=e.value/this.max*(this.baseline-this.padTop),s=a*this.slot+(this.slot-this.barWidth)/2;return{x:s,cx:s+this.barWidth/2,y:this.baseline-t,h:t,value:e.value,label:e.label,color:e.color||"var(--color-primary-element)"}})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},dy={class:"chart"},py={key:0,class:"chart__title"},hy=["viewBox","aria-label"],my=["x","y","width","height","fill"],fy=["x","y"],gy=["x","y"];function yy(e,a,t,s,n,i){return o(),c("figure",dy,[t.title?(o(),c("figcaption",py,u(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"chart__svg",role:"img","aria-label":t.title},[(o(!0),c(Z,null,ce(i.bars,(l,d)=>(o(),c("g",{key:d},[r("rect",{x:l.x,y:n.animated?l.y:i.baseline,width:i.barWidth,height:n.animated?l.h:0,fill:l.color,rx:"4",class:"chart__bar"},null,8,my),r("text",{x:l.cx,y:n.height-4,"text-anchor":"middle",class:"chart__label"},u(l.label),9,fy),l.value>0?(o(),c("text",{key:0,x:l.cx,y:l.y-4,"text-anchor":"middle",class:"chart__value"},u(i.fmt(l.value)),9,gy)):C("",!0)]))),128))],8,hy))])}const by=F(uy,[["render",yy],["__scopeId","data-v-fc9e92b9"]]),vy={name:"PalmIllustration"},_y={class:"palm",viewBox:"0 0 160 140",width:"160",height:"140",role:"img","aria-hidden":"true"};function wy(e,a,t,s,n,i){return o(),c("svg",_y,[...a[0]||(a[0]=[In('',7)])])}const ky=F(vy,[["render",wy],["__scopeId","data-v-85fdc3d1"]]),Cy={name:"MyLeave",components:{NcButton:me,NcEmptyContent:qe,Plus:Qn,BalanceCard:cy,BarChart:by,RequestListItem:Bi,SkeletonList:pt,PalmIllustration:ky},inject:["absence:openNew"],props:{id:{type:[String,Number],default:null}},setup(){return{store:H}},computed:{year(){return new Date().getFullYear()},rings(){return H.balance.balances.filter(e=>e.year===this.year&&e.countsAgainstBalance)},leaveByMonth(){return this.monthChart(e=>e.countsAgainstBalance!==!1&&e.key!=="sick",null)},sickByMonth(){const e=H.leaveTypes.find(a=>a.key==="sick");return e?this.monthChart(a=>a.key==="sick",e.color):null},nextBreak(){const e=ze(new Date),a=H.requests.filter(l=>l.status==="APPROVED"&&l.endDate>=e).sort((l,d)=>l.startDate.localeCompare(d.startDate));if(!a.length)return null;const t=a[0],s=H.leaveType(t.typeId),n=Ta(t.startDate,t.endDate);if(t.startDate<=e)return{icon:s.icon,color:s.color,eyebrow:M("absence","You are off right now"),headline:M("absence","Enjoy your {type}! 🌴",{type:s.label.toLowerCase()}),sub:n};const i=Math.max(1,Math.round((new Date(t.startDate+"T00:00:00")-new Date(e+"T00:00:00"))/864e5));return{icon:s.icon,color:s.color,eyebrow:M("absence","Your next break"),headline:bt("absence","%n day to go","%n days to go",i),sub:`${s.label} · ${n}`}}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload),this.id&&H.select(Number(this.id))},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,monthChart(e,a){const t=new Array(12).fill(0);for(const s of H.requests)s.status!=="APPROVED"||!e(H.leaveType(s.typeId))||hl(t,s.startDate,s.endDate,s.workingDays,this.year);return t.map((s,n)=>({label:new Date(this.year,n,1).toLocaleDateString(void 0,{month:"short"}),value:Math.round(s*10)/10,...a?{color:a}:{}}))},openNew(){this["absence:openNew"]()},async reload(){await Promise.all([H.loadRequests({scope:"mine"}),H.loadMyBalance()])}}},xy={class:"page page--narrow page--roomy"},Sy={class:"page__header page__header--center"},Ay={class:"page__title"},Ly={class:"hero__emoji","aria-hidden":"true"},Ey={class:"hero__text"},Ny={class:"hero__eyebrow"},Dy={class:"hero__headline"},Iy={class:"hero__sub"},Ty={key:1,class:"overview"},My={key:2,class:"charts"},By={key:0,class:"charts__card"},zy={key:1,class:"charts__card"},$y={class:"requests"},Ry={class:"requests__title"};function Vy(e,a,t,s,n,i){const l=k("Plus"),d=k("NcButton"),h=k("BalanceCard"),f=k("BarChart"),m=k("SkeletonList"),p=k("RequestListItem"),g=k("PalmIllustration"),b=k("NcEmptyContent");return o(),c("div",xy,[r("header",Sy,[r("h2",Ay,u(i.t("absence","My leave")),1),v(d,{variant:"primary",onClick:i.openNew},{icon:x(()=>[v(l,{size:20})]),default:x(()=>[$(" "+u(i.t("absence","New request")),1)]),_:1},8,["onClick"])]),i.nextBreak?(o(),c("section",{key:0,class:"hero",style:re({"--accent":i.nextBreak.color})},[r("span",Ly,u(i.nextBreak.icon),1),r("div",Ey,[r("span",Ny,u(i.nextBreak.eyebrow),1),r("strong",Dy,u(i.nextBreak.headline),1),r("span",Iy,u(i.nextBreak.sub),1)])],4)):C("",!0),i.rings.length?(o(),c("section",Ty,[(o(!0),c(Z,null,ce(i.rings,_=>(o(),T(h,{key:_.typeId+"-"+_.year,row:_},null,8,["row"]))),128))])):C("",!0),i.leaveByMonth||i.sickByMonth?(o(),c("section",My,[i.leaveByMonth?(o(),c("div",By,[v(f,{title:i.t("absence","Leave taken by month ({year})",{year:i.year}),data:i.leaveByMonth},null,8,["title","data"])])):C("",!0),i.sickByMonth?(o(),c("div",zy,[v(f,{title:i.t("absence","Sick days by month ({year})",{year:i.year}),data:i.sickByMonth},null,8,["title","data"])])):C("",!0)])):C("",!0),r("section",$y,[r("h3",Ry,u(i.t("absence","Requests")),1),s.store.loading?(o(),T(m,{key:0,rows:4})):s.store.requests.length?(o(),T(Jt,{key:1,tag:"ul",name:"rli",class:"requests__list"},{default:x(()=>[(o(!0),c(Z,null,ce(s.store.requests,_=>(o(),T(p,{key:_.id,request:_,active:s.store.selectedId===_.id,onSelect:a[0]||(a[0]=y=>s.store.select(y))},null,8,["request","active"]))),128))]),_:1})):(o(),T(b,{key:2,name:i.t("absence","No leave requests yet"),description:i.t("absence","Your leave requests will appear here once you submit one.")},{icon:x(()=>[v(g)]),action:x(()=>[v(d,{variant:"primary",onClick:i.openNew},{default:x(()=>[$(u(i.t("absence","Request time off")),1)]),_:1},8,["onClick"])]),_:1},8,["name","description"]))])])}const yn=F(Cy,[["render",Vy],["__scopeId","data-v-7fdf2132"]]),Py={name:"Team",components:{TeamTimeline:gs},methods:{t:M}},qy={class:"page"},Hy={class:"page__header"},Oy={class:"page__title"};function Fy(e,a,t,s,n,i){const l=k("TeamTimeline");return o(),c("div",qy,[r("header",Hy,[r("h2",Oy,u(i.t("absence","Team")),1)]),v(l,{scope:"team"})])}const Uy=F(Py,[["render",Fy]]),jy=[{path:"/",redirect:"/my"},{path:"/my",name:"my",component:yn},{path:"/approvals",name:"approvals",component:Cm},{path:"/team",name:"team",component:Uy},{path:"/hr/absences",name:"hr-absences",component:Rm},{path:"/hr/balances",name:"hr-balances",component:hf},{path:"/hr/statistics",name:"hr-statistics",component:Kg},{path:"/hr/sick-leave",name:"hr-sick-leave",component:Qf},{path:"/hr/whos-off",name:"hr-whos-off",component:V2},{path:"/hr/exports",name:"hr-exports",component:Af},{path:"/requests/:id",name:"request",component:yn,props:!0}],Wy=vo({history:Xl(),routes:jy}),Zt=ml(H0);Zt.config.globalProperties.t=M,Zt.config.globalProperties.n=bt,Zt.use(Wy),Zt.mount("#absence-app"); //# sourceMappingURL=absence-main.mjs.map diff --git a/js/absence-main.mjs.map b/js/absence-main.mjs.map index d73345a..238c10b 100644 --- a/js/absence-main.mjs.map +++ b/js/absence-main.mjs.map @@ -1 +1 @@ -{"version":3,"file":"absence-main.mjs","sources":["../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/splitpanes/dist/splitpanes.esm.js","../node_modules/vue-router/dist/devtools-Bpr7ZAVB.js","../node_modules/vue-router/dist/vue-router.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DyNMVZpX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-DavgjaFX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-g57j16pB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-VjSWJ8R4.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-CGTllrXj.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BXR0sWNu.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-BO5T5ePT.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-CDeYtA3E.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationNew-CBNppM7Q.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BYh5hWDN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CV0YMrXW.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../node_modules/vue-material-design-icons/CalendarAccountOutline.vue","../node_modules/vue-material-design-icons/CalendarMonth.vue","../node_modules/vue-material-design-icons/ChartBar.vue","../node_modules/vue-material-design-icons/ClipboardCheck.vue","../node_modules/vue-material-design-icons/ClipboardPlusOutline.vue","../node_modules/vue-material-design-icons/Download.vue","../node_modules/vue-material-design-icons/Plus.vue","../node_modules/vue-material-design-icons/ScaleBalance.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../node_modules/@nextcloud/vue/dist/chunks/constants-wIEKSp2G.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-B8CMOUnH.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-Dxzj4zdb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-5Sg6EUP6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs","../node_modules/vue-material-design-icons/Send.vue","../src/store.js","../src/components/RequestDialog.vue","../node_modules/@vueuse/components/dist/index.js","../node_modules/@nextcloud/vue/dist/directives/Focus/index.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/directives/Linkify/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent-CGAPqk4S.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-C8YzAzrZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs","../node_modules/@nextcloud/vue/dist/chunks/autolink-DrIurosL.mjs","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/chunks/colors-Cv9F-jWS.mjs","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-BF5OEQFU.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-BFiaYt9A.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-vYFtIOzD.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionText-CQ9qwJ0p.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-1KxMUN7V.mjs","../node_modules/vue-material-design-icons/Cancel.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/CommentOutline.vue","../node_modules/vue-material-design-icons/History.vue","../node_modules/vue-material-design-icons/InformationOutline.vue","../node_modules/vue-material-design-icons/Pencil.vue","../src/components/StatusChip.vue","../src/components/CoveragePanel.vue","../src/components/LeaveTypeChip.vue","../src/components/RequestStepper.vue","../src/components/RequestSidebar.vue","../src/App.vue","../node_modules/vue-material-design-icons/CheckAll.vue","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-BliLJpvU.mjs","../src/components/RequestListItem.vue","../src/components/SkeletonList.vue","../src/views/Approvals.vue","../node_modules/vue-material-design-icons/Magnify.vue","../src/views/hr/HrBalances.vue","../src/views/hr/HrExports.vue","../src/views/hr/HrSickLeave.vue","../node_modules/vue-material-design-icons/ChartLine.vue","../src/components/DonutChart.vue","../src/components/LineChart.vue","../src/views/hr/HrStatistics.vue","../node_modules/vue-material-design-icons/CalendarBlank.vue","../node_modules/vue-material-design-icons/ChevronLeft.vue","../node_modules/vue-material-design-icons/ChevronRight.vue","../src/components/TeamTimeline.vue","../src/views/hr/HrWhosOff.vue","../src/components/BalanceRing.vue","../src/components/BalanceCard.vue","../src/components/BarChart.vue","../src/components/PalmIllustration.vue","../src/views/MyLeave.vue","../src/views/Team.vue","../src/router.js","../src/main.js"],"sourcesContent":["import { loadState } from \"@nextcloud/initial-state\";\nfunction getCapabilities() {\n try {\n return loadState(\"core\", \"capabilities\");\n } catch (error) {\n console.debug(\"Could not find capabilities initial state fall back to _oc_capabilities\");\n if (!(\"_oc_capabilities\" in window)) {\n return {};\n }\n return window[\"_oc_capabilities\"];\n }\n}\nexport {\n getCapabilities\n};\n//# sourceMappingURL=index.mjs.map\n","import { computed as e, createBlock as t, createElementBlock as n, getCurrentInstance as r, h as i, inject as a, nextTick as o, normalizeStyle as s, onBeforeUnmount as c, onMounted as l, openBlock as u, provide as d, ref as f, renderSlot as p, resolveDynamicComponent as m, unref as h, useAttrs as g, useSlots as _, watch as v } from \"vue\";\n//#region src/components/splitpanes/splitpanes.vue\nvar y = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {\n\t__name: \"splitpanes\",\n\tprops: {\n\t\thorizontal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tpushOtherPanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\tmaximizePanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\trtl: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tfirstSplitter: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tkeyboardStep: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5\n\t\t}\n\t},\n\temits: [\n\t\t\"ready\",\n\t\t\"resize\",\n\t\t\"resized\",\n\t\t\"pane-click\",\n\t\t\"pane-maximize\",\n\t\t\"pane-add\",\n\t\t\"pane-remove\",\n\t\t\"splitter-click\",\n\t\t\"splitter-dblclick\",\n\t\t\"direction-changed\"\n\t],\n\tsetup(n, { emit: r }) {\n\t\tlet a = r, s = n, p = g(), h = _(), y = f([]), b = e(() => y.value.reduce((e, t) => (e[~~t.id] = t) && e, {})), x = e(() => y.value.length), S = f(null), C = f(!1), w = f({\n\t\t\tmouseDown: !1,\n\t\t\tdragging: !1,\n\t\t\tactiveSplitter: null,\n\t\t\tcursorOffset: 0\n\t\t}), T = f({\n\t\t\tsplitter: null,\n\t\t\ttimeoutId: null\n\t\t}), E = e(() => ({\n\t\t\t[`splitpanes splitpanes--${s.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n\t\t\t\"splitpanes--dragging\": w.value.dragging,\n\t\t\t\"splitpanes--ready\": C.value\n\t\t})), ee = () => {\n\t\t\tdocument.addEventListener(\"mousemove\", k, { passive: !1 }), document.addEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", k, { passive: !1 }), document.addEventListener(\"touchend\", A));\n\t\t}, D = () => {\n\t\t\tdocument.removeEventListener(\"mousemove\", k, { passive: !1 }), document.removeEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", k, { passive: !1 }), document.removeEventListener(\"touchend\", A));\n\t\t}, O = (e, t) => {\n\t\t\tlet n = e.target.closest(\".splitpanes__splitter\");\n\t\t\tif (n) {\n\t\t\t\tlet { left: t, top: r } = n.getBoundingClientRect(), { clientX: i, clientY: a } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\t\tw.value.cursorOffset = s.horizontal ? a - r : i - t;\n\t\t\t}\n\t\t\tee(), w.value.mouseDown = !0, w.value.activeSplitter = t, document.documentElement.style.cursor = s.horizontal ? \"row-resize\" : \"col-resize\";\n\t\t}, k = (e) => {\n\t\t\tw.value.mouseDown && (e.preventDefault(), w.value.dragging || (window.getSelection()?.removeAllRanges(), w.value.dragging = !0), requestAnimationFrame(() => {\n\t\t\t\tL(F(e)), $(\"resize\", { event: e }, !0);\n\t\t\t}));\n\t\t}, A = (e) => {\n\t\t\tw.value.dragging && (window.getSelection()?.removeAllRanges(), $(\"resized\", { event: e }, !0)), w.value.mouseDown = !1, w.value.activeSplitter = null, setTimeout(() => {\n\t\t\t\tw.value.dragging = !1, D(), document.documentElement.style.cursor = \"\";\n\t\t\t}, 100);\n\t\t}, j = (e, t) => {\n\t\t\t\"ontouchstart\" in window && (e.preventDefault(), T.value.splitter === t ? (clearTimeout(T.value.timeoutId), T.value.timeoutId = null, M(e, t), T.value.splitter = null) : (T.value.splitter = t, T.value.timeoutId = setTimeout(() => T.value.splitter = null, 500))), w.value.dragging || $(\"splitter-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0);\n\t\t}, M = (e, t) => {\n\t\t\tif ($(\"splitter-dblclick\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0), s.maximizePanes) {\n\t\t\t\tlet n = 0;\n\t\t\t\ty.value = y.value.map((e, r) => (e.size = r === t ? e.max : e.min, r !== t && (n += e.min), e)), y.value[t].size -= n, $(\"pane-maximize\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t,\n\t\t\t\t\tpane: y.value[t]\n\t\t\t\t}), $(\"resized\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t\n\t\t\t\t}, !0);\n\t\t\t}\n\t\t}, N = (e, t) => {\n\t\t\tif (!s.keyboardStep) return;\n\t\t\tlet n = s.horizontal ? e.key === \"ArrowDown\" : e.key === \"ArrowRight\", r = s.horizontal ? e.key === \"ArrowUp\" : e.key === \"ArrowLeft\";\n\t\t\tif (!n && !r) return;\n\t\t\te.preventDefault(), w.value.activeSplitter = t;\n\t\t\tlet i = (n ? 1 : -1) * (s.rtl && !s.horizontal ? -1 : 1), a = z(t) + y.value[t].size;\n\t\t\tR(Math.min(Math.max(a + i * s.keyboardStep, 0), 100)), $(\"resize\", { event: e }, !0), $(\"resized\", { event: e }, !0), w.value.activeSplitter = null;\n\t\t}, P = (e, t) => {\n\t\t\tlet n = b.value[t];\n\t\t\tn && $(\"pane-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: n.index,\n\t\t\t\tpane: n\n\t\t\t});\n\t\t}, F = (e) => {\n\t\t\tlet t = S.value.getBoundingClientRect(), { clientX: n, clientY: r } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\treturn {\n\t\t\t\tx: n - (s.horizontal ? 0 : w.value.cursorOffset) - t.left,\n\t\t\t\ty: r - (s.horizontal ? w.value.cursorOffset : 0) - t.top\n\t\t\t};\n\t\t}, I = (e) => {\n\t\t\te = e[s.horizontal ? \"y\" : \"x\"];\n\t\t\tlet t = S.value[s.horizontal ? \"clientHeight\" : \"clientWidth\"];\n\t\t\treturn s.rtl && !s.horizontal && (e = t - e), e * 100 / t;\n\t\t}, L = (e) => {\n\t\t\tR(I(e));\n\t\t}, R = (e) => {\n\t\t\tlet t = w.value.activeSplitter;\n\t\t\tif (t === null || t >= y.value.length - 1) return;\n\t\t\tlet n = {\n\t\t\t\tprevPanesSize: z(t),\n\t\t\t\tnextPanesSize: B(t),\n\t\t\t\tprevReachedMinPanes: 0,\n\t\t\t\tnextReachedMinPanes: 0\n\t\t\t}, r = 0 + (s.pushOtherPanes ? 0 : n.prevPanesSize), i = 100 - (s.pushOtherPanes ? 0 : n.nextPanesSize);\n\t\t\te = Math.max(Math.min(e, i), r);\n\t\t\tlet a = [t, t + 1], o = y.value[a[0]] || null, c = y.value[a[1]] || null, l = o !== null && o.max < 100 && e >= o.max + n.prevPanesSize, u = c !== null && c.max < 100 && e <= 100 - (c.max + B(t + 1));\n\t\t\tif (l || u) {\n\t\t\t\tl ? (o.size = o.max, c.size = Math.min(Math.max(100 - o.max - n.prevPanesSize - n.nextPanesSize, c.min), c.max)) : (o.size = Math.min(Math.max(100 - c.max - n.prevPanesSize - B(t + 1), o.min), o.max), c.size = c.max);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (s.pushOtherPanes) {\n\t\t\t\tlet t = te(n, e);\n\t\t\t\tif (!t) return;\n\t\t\t\t({sums: n, panesToResize: a} = t), o = y.value[a[0]] || null, c = y.value[a[1]] || null;\n\t\t\t}\n\t\t\to !== null && (o.size = Math.min(Math.max(e - n.prevPanesSize - n.prevReachedMinPanes, o.min), o.max)), c !== null && (c.size = Math.min(Math.max(100 - e - n.nextPanesSize - n.nextReachedMinPanes, c.min), c.max));\n\t\t}, te = (e, t) => {\n\t\t\tlet n = w.value.activeSplitter, r = [n, n + 1];\n\t\t\tif (t < e.prevPanesSize + y.value[r[0]].min) {\n\t\t\t\tif (r[0] = V(n).index, e.prevReachedMinPanes = 0, r[0] < n && y.value.forEach((t, i) => {\n\t\t\t\t\ti > r[0] && i <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), r[0] === void 0) return e.prevReachedMinPanes = 0, y.value[0].size = y.value[0].min, y.value.forEach((t, r) => {\n\t\t\t\t\tr > 0 && r <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), y.value[r[1]].size = 100 - e.prevReachedMinPanes - y.value[0].min - e.prevPanesSize - e.nextPanesSize, null;\n\t\t\t\te.prevPanesSize = z(r[0]);\n\t\t\t}\n\t\t\treturn t > 100 - e.nextPanesSize - y.value[r[1]].min && (r[1] = H(n).index, e.nextReachedMinPanes = 0, r[1] > n + 1 && y.value.forEach((t, i) => {\n\t\t\t\ti > n && i < r[1] && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), e.nextPanesSize = r[1] === void 0 ? 0 : B(r[1] - 1), r[1] === void 0) ? (e.nextReachedMinPanes = 0, y.value.forEach((t, r) => {\n\t\t\t\tr >= n + 1 && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), r[0] !== void 0 && (y.value[r[0]].size = 100 - e.prevPanesSize - B(r[0] - 1)), null) : {\n\t\t\t\tsums: e,\n\t\t\t\tpanesToResize: r\n\t\t\t};\n\t\t}, z = (e) => y.value.reduce((t, n, r) => t + (r < e ? n.size : 0), 0), B = (e) => y.value.reduce((t, n, r) => t + (r > e + 1 ? n.size : 0), 0), V = (e) => [...y.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, H = (e) => y.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, U = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) {\n\t\t\t\tlet e = t.classList.contains(\"splitpanes__pane\"), n = t.classList.contains(\"splitpanes__splitter\");\n\t\t\t\t!e && !n && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n\t\t\t}\n\t\t}, W = (e, t, n = !1) => {\n\t\t\tlet r = e - 1, i = document.createElement(\"div\");\n\t\t\ti.classList.add(\"splitpanes__splitter\"), n || (i.onmousedown = (e) => O(e, r), typeof window < \"u\" && \"ontouchstart\" in window && (i.ontouchstart = (e) => O(e, r)), i.onclick = (e) => j(e, r + 1), s.keyboardStep && (i.setAttribute(\"tabindex\", \"0\"), i.setAttribute(\"role\", \"separator\"), i.setAttribute(\"aria-orientation\", s.horizontal ? \"horizontal\" : \"vertical\"), i.onkeydown = (e) => N(e, r))), i.ondblclick = (e) => M(e, r + 1), t.parentNode.insertBefore(i, t);\n\t\t}, G = (e) => {\n\t\t\te.onmousedown = null, e.onclick = null, e.ondblclick = null, e.onkeydown = null, e.remove();\n\t\t}, K = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) t.className.includes(\"splitpanes__splitter\") && G(t);\n\t\t\tlet t = 0;\n\t\t\tfor (let n of e) n.className.includes(\"splitpanes__pane\") && (!t && s.firstSplitter ? W(t, n, !0) : t && W(t, n), t++);\n\t\t}, q = ({ uid: e, ...t }) => {\n\t\t\tlet n = b.value[e];\n\t\t\tfor (let [e, r] of Object.entries(t)) n[e] = r;\n\t\t}, J = !1, Y = (e) => {\n\t\t\tlet t = -1;\n\t\t\tArray.from(S.value?.children || []).some((n) => (n.className.includes(\"splitpanes__pane\") && t++, n.isSameNode(e.el))), y.value.splice(t, 0, {\n\t\t\t\t...e,\n\t\t\t\tindex: t\n\t\t\t}), y.value.forEach((e, t) => e.index = t), C.value && !J && (J = !0, o(() => {\n\t\t\t\tK(), Z({ addedPane: y.value[t] }), $(\"pane-add\", { pane: y.value[t] }), J = !1;\n\t\t\t}));\n\t\t}, X = (e) => {\n\t\t\tlet t = y.value.findIndex((t) => t.id === e);\n\t\t\ty.value[t].el = null;\n\t\t\tlet n = y.value.splice(t, 1)[0];\n\t\t\ty.value.forEach((e, t) => e.index = t), o(() => {\n\t\t\t\tK(), $(\"pane-remove\", { pane: n }), Z({ removedPane: {\n\t\t\t\t\t...n,\n\t\t\t\t\tindex: t\n\t\t\t\t} });\n\t\t\t});\n\t\t}, Z = (e = {}) => {\n\t\t\t!e.addedPane && !e.removedPane ? re() : y.value.some((e) => e.givenSize !== null || e.min || e.max < 100) ? ie(e) : ne(), C.value && $(\"resized\");\n\t\t}, ne = () => {\n\t\t\tlet e = 100 / x.value, t = 100, n = [], r = [];\n\t\t\tfor (let i of y.value) i.size = Math.max(Math.min(e, i.max), i.min), t -= i.size, i.size >= i.max && n.push(i.id), i.size <= i.min && r.push(i.id);\n\t\t\tMath.abs(t) > .1 && Q(t, n, r);\n\t\t}, re = () => {\n\t\t\tlet e = 100, t = [], n = [], r = 0;\n\t\t\tfor (let i of y.value) e -= i.size, i.givenSize !== null && r++, i.size >= i.max && t.push(i.id), i.size <= i.min && n.push(i.id);\n\t\t\tlet i = 100;\n\t\t\tif (e > .1) {\n\t\t\t\tfor (let t of y.value) t.givenSize === null && (t.size = Math.max(Math.min(e / (x.value - r), t.max), t.min)), i -= t.size;\n\t\t\t\ti > .1 && Q(i, t, n);\n\t\t\t}\n\t\t}, ie = ({ addedPane: e, removedPane: t } = {}) => {\n\t\t\tlet n = y.value.reduce((e, t) => e + (t.givenSize === null ? 0 : t.givenSize), 0), r = y.value.filter((e) => e.givenSize === null).length, i = r > 0 ? (100 - n) / r : 0, a = 0, o = [], s = [];\n\t\t\tfor (let e of y.value) a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\tif (!(Math.abs(a) < .1)) {\n\t\t\t\ta = 100;\n\t\t\t\tfor (let e of y.value) e.givenSize === null && (e.size = Math.max(Math.min(i, e.max), e.min)), a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\t\tMath.abs(a) > .1 && Q(a, o, s);\n\t\t\t}\n\t\t}, Q = (e, t, n) => {\n\t\t\tlet r;\n\t\t\tr = e > 0 ? e / (x.value - t.length) : e / (x.value - n.length), y.value.forEach((i, a) => {\n\t\t\t\tif (e > 0 && !t.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t} else if (!n.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t}\n\t\t\t}), Math.abs(e) > .1 && C.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n\t\t}, $ = (e, t = void 0, n = !1) => {\n\t\t\tlet r = t?.index ?? w.value.activeSplitter ?? null;\n\t\t\ta(e, {\n\t\t\t\t...t,\n\t\t\t\t...r !== null && { index: r },\n\t\t\t\t...n && r !== null && {\n\t\t\t\t\tprevPane: y.value[r - +!!s.firstSplitter],\n\t\t\t\t\tnextPane: y.value[r + +!s.firstSplitter]\n\t\t\t\t},\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t};\n\t\tv(() => s.firstSplitter, () => K()), v(() => s.horizontal, (e) => o(() => {\n\t\t\ta(\"direction-changed\", {\n\t\t\t\thorizontal: e,\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t})), l(() => {\n\t\t\tU(), K(), Z(), $(\"ready\"), C.value = !0;\n\t\t}), c(() => C.value = !1);\n\t\tlet ae = () => {\n\t\t\tlet { class: e, ...t } = p;\n\t\t\treturn i(\"div\", {\n\t\t\t\tref: S,\n\t\t\t\tclass: [E.value, e],\n\t\t\t\t...t\n\t\t\t}, h.default?.());\n\t\t};\n\t\treturn d(\"panes\", y), d(\"indexedPanes\", b), d(\"horizontal\", e(() => s.horizontal)), d(\"requestUpdate\", q), d(\"onPaneAdd\", Y), d(\"onPaneRemove\", X), d(\"onPaneClick\", P), (e, n) => (u(), t(m(ae)));\n\t}\n}), b = {\n\t__name: \"pane\",\n\tprops: {\n\t\tsize: { type: [Number, String] },\n\t\tminSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0\n\t\t},\n\t\tmaxSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 100\n\t\t}\n\t},\n\tsetup(t) {\n\t\tlet i = t, o = a(\"requestUpdate\"), d = a(\"onPaneAdd\"), m = a(\"horizontal\"), g = a(\"onPaneRemove\"), _ = a(\"onPaneClick\"), y = r()?.uid, b = a(\"indexedPanes\"), x = e(() => b.value[y]), S = f(null), C = e(() => {\n\t\t\tlet e = isNaN(i.size) || i.size === void 0 ? 0 : parseFloat(i.size);\n\t\t\treturn Math.max(Math.min(e, T.value), w.value);\n\t\t}), w = e(() => {\n\t\t\tlet e = parseFloat(i.minSize);\n\t\t\treturn isNaN(e) ? 0 : e;\n\t\t}), T = e(() => {\n\t\t\tlet e = parseFloat(i.maxSize);\n\t\t\treturn isNaN(e) ? 100 : e;\n\t\t}), E = e(() => {\n\t\t\tlet e = x.value?.size ?? (i.size === void 0 ? void 0 : C.value);\n\t\t\treturn e === void 0 ? \"\" : `${m.value ? \"height\" : \"width\"}: ${e}%`;\n\t\t});\n\t\treturn v(() => C.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tsize: e\n\t\t})), v(() => w.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmin: e\n\t\t})), v(() => T.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmax: e\n\t\t})), l(() => {\n\t\t\td({\n\t\t\t\tid: y,\n\t\t\t\tel: S.value,\n\t\t\t\tmin: w.value,\n\t\t\t\tmax: T.value,\n\t\t\t\tgivenSize: i.size === void 0 ? null : C.value,\n\t\t\t\tsize: C.value\n\t\t\t});\n\t\t}), c(() => g(y)), (e, t) => (u(), n(\"div\", {\n\t\t\tref_key: \"paneEl\",\n\t\t\tref: S,\n\t\t\tclass: \"splitpanes__pane\",\n\t\t\tonClick: t[0] ||= (t) => h(_)(t, e._.uid),\n\t\t\tstyle: s(E.value)\n\t\t}, [p(e.$slots, \"default\")], 4));\n\t}\n};\n//#endregion\nexport { b as Pane, y as Splitpanes };\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as isRouteComponent, c as diagnostics, g as isESModule, h as isArray, p as assign, r as matchedRouteKey, u as createRouterError } from \"./useApi-CROJJdhE.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && diagnostics.VUE_ROUTER_R0080({ text: \"\" + text });\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\tdiagnostics.VUE_ROUTER_R0070({\n\t\t\tto,\n\t\t\tfrom\n\t\t});\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0040({ el: position.el });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tdiagnostics.VUE_ROUTER_R0041({ el: position.el });\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && diagnostics.VUE_ROUTER_R0042({ el: position.el });\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tconst fnName = name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\";\n\t\t\tdiagnostics.VUE_ROUTER_R0020({ fn: fnName });\n\t\t}\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) diagnostics.VUE_ROUTER_R0021();\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\tdiagnostics.VUE_ROUTER_R0022({ fn: \"onBeforeRouteLeave\" });\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\tdiagnostics.VUE_ROUTER_R0022({ fn: \"onBeforeRouteUpdate\" });\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst guardInfo = {\n\t\t\t\tname: guard.name,\n\t\t\t\tguard: guard.toString()\n\t\t\t};\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0023(guardInfo);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0023(guardInfo);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tdiagnostics.VUE_ROUTER_R0025();\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) diagnostics.VUE_ROUTER_R0024({\n\t\t\tfrom: from.fullPath,\n\t\t\tto: to.fullPath\n\t\t});\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) diagnostics.VUE_ROUTER_R0026({ path: record.path });\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0027({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path,\n\t\t\t\t\t\treceived: String(rawComponent)\n\t\t\t\t\t});\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0028({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0029({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0030({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, isBrowser as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { C as isSameRouteLocation, E as parseURL, F as isBrowser, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-Bpr7ZAVB.js\";\nimport { a as routerKey, c as diagnostics, d as isNavigationFailure, f as applyToParams, h as isArray, i as routeLocationKey, l as NavigationFailureType, n as useRouter, o as routerViewLocationKey, p as assign, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as createRouterError, v as mergeOptions, y as noop } from \"./useApi-CROJJdhE.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0120({ cause: err });\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) diagnostics.VUE_ROUTER_R0121();\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) diagnostics.VUE_ROUTER_R0110({\n\t\tbase,\n\t\tsuggestion: base.replace(/#.*$/, \"#\")\n\t});\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) diagnostics.VUE_ROUTER_R0090({\n\t\t\t\tname: key.name,\n\t\t\t\tpath: record.path\n\t\t\t});\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0100({\n\t\t\t\t\t\tparams: invalidParams.join(\"\\\", \\\"\"),\n\t\t\t\t\t\tinherited: isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) diagnostics.VUE_ROUTER_R0101({ path });\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0102({\n\t\t\talias: b.record.path,\n\t\t\toriginal: a.record.path,\n\t\t\tname: key.name\n\t\t});\n\t\treturn;\n\t}\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0102({\n\t\t\talias: b.record.path,\n\t\t\toriginal: a.record.path,\n\t\t\tname: key.name\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) diagnostics.VUE_ROUTER_R0103({ name: String(parent.record.name) });\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0104({\n\t\t\tpath: record.record.path,\n\t\t\tname: key.name,\n\t\t\tparent: parent.record.path\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) diagnostics.VUE_ROUTER_R0105({\n\t\t\tancestor: insertionAncestor.record.path,\n\t\t\trecord: matcher.record.path\n\t\t});\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) diagnostics.VUE_ROUTER_R0050({ to });\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\tdiagnostics.VUE_ROUTER_R0060({ comp });\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) diagnostics.VUE_ROUTER_R0001({ name: String(parentOrRoute) });\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0002({ name: String(name) });\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) diagnostics.VUE_ROUTER_R0003({\n\t\t\t\t\tlocation: rawLocation,\n\t\t\t\t\thref\n\t\t\t\t});\n\t\t\t\telse if (!matchedRoute.matched.length) diagnostics.VUE_ROUTER_R0004({ path: rawLocation });\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\tdiagnostics.VUE_ROUTER_R0005({ rawLocation });\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) diagnostics.VUE_ROUTER_R0006({ path: rawLocation.path });\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) diagnostics.VUE_ROUTER_R0007({ hash });\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) diagnostics.VUE_ROUTER_R0003({\n\t\t\t\tlocation: rawLocation,\n\t\t\t\thref\n\t\t\t});\n\t\t\telse if (!matchedRoute.matched.length) diagnostics.VUE_ROUTER_R0004({ path: rawLocation.path != null ? rawLocation.path : rawLocation });\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\tdiagnostics.VUE_ROUTER_R0008({\n\t\t\t\t\ttarget: JSON.stringify(newTargetLocation, null, 2),\n\t\t\t\t\tto: to.fullPath\n\t\t\t\t});\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\tdiagnostics.VUE_ROUTER_R0009({\n\t\t\t\t\t\t\tfrom: from.fullPath,\n\t\t\t\t\t\t\tto: toLocation.fullPath\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0010();\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => to === currentRoute.value && position && scrollToPosition(position)).catch((err) => to === currentRoute.value && triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0011({ cause: err });\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\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-TgcZd4AI.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-wdIzZwir.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.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-51427d61\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-DavgjaFX.mjs.map\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","/*!\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/NcAppNavigation-OHw55TTZ.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-g8ubWhoz.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.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 const shouldActivateFocusTrap = computed(() => isMobile.value && open.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(shouldActivateFocusTrap, () => {\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 (shouldActivateFocusTrap.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\": __props.ariaLabel || void 0,\n \"aria-labelledby\": __props.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-1344f70d\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-g57j16pB.mjs.map\n","import '../assets/NcAppNavigationCaption-ggcWspH2.css';\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, createElementBlock, createVNode, normalizeProps, guardReactiveProps, renderSlot, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f0e411c2\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-VjSWJ8R4.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-DZEDRf0t.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-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.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 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 setup() {\n return { isLegacy34 };\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-6926a0b8\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-CGTllrXj.mjs.map\n","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-BZFdtdJL.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-BXR0sWNu.mjs.map\n","import '../assets/NcActionButton-DLer-aUY.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, normalizeStyle, toDisplayString, createCommentVNode, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of `<input type=\"radio\">`\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the <button>\n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event - The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"aria-label\", \"disabled\", \"title\", \"type\"];\nconst _hoisted_3 = { class: \"action-button__longtext-wrapper\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"action-button__name\"\n};\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-button__text\"\n};\nconst _hoisted_7 = [\"textContent\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"action-button__pressed-icon material-design-icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"button\", mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: [\"action-button button-vue\", {\n \"action-button--active\": $options.isChecked,\n focusable: $options.isFocusable\n }],\n disabled: $props.disabled,\n title: _ctx.title,\n type: $options.nativeType\n }, $options.buttonAttributes, {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args))\n }), [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([[_ctx.isIconUrl ? \"action-button__icon--url\" : _ctx.icon], \"action-button__icon\"]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null }),\n \"aria-hidden\": \"true\"\n }, null, 6)\n ], true),\n createElementVNode(\"span\", _hoisted_3, [\n _ctx.name ? (openBlock(), createElementBlock(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true),\n _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-button__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n $props.description ? (openBlock(), createElementBlock(\"span\", {\n key: 3,\n class: \"action-button__description\",\n textContent: toDisplayString($props.description)\n }, null, 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ]),\n $props.isMenu ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"action-button__menu-icon\",\n directional: \"\",\n path: $setup.mdiChevronRight\n }, null, 8, [\"path\"])) : $options.isChecked ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n path: $setup.mdiCheck,\n class: \"action-button__pressed-icon\"\n }, null, 8, [\"path\"])) : $options.isChecked === false ? (openBlock(), createElementBlock(\"span\", _hoisted_8)) : createCommentVNode(\"\", true),\n createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6c2daf4e\"]]);\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-BO5T5ePT.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-BZ1xj6Xi.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-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-CGTllrXj.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.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 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 setup() {\n return { isLegacy34 };\n },\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-cfbd3794\"]]);\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 {(event: PointerEvent) => void} [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-fcab058b\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-CDeYtA3E.mjs.map\n","import '../assets/NcAppNavigationNew-Bn8zj5lM.css';\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n components: {\n NcButton\n },\n props: {\n /**\n * Id of the button\n */\n buttonId: {\n type: String,\n required: false,\n default: \"\"\n },\n /**\n * Disabled state of the button\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Main text of the button\n */\n text: {\n type: String,\n required: true\n },\n /**\n * The color variant to use.\n *\n * @default 'primary'\n */\n variant: {\n type: String,\n default: \"primary\",\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\"].indexOf(value) !== -1;\n }\n }\n },\n emits: [\"click\"]\n};\nconst _hoisted_1 = { class: \"app-navigation-new\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcButton, {\n id: $props.buttonId,\n disabled: $props.disabled,\n variant: $props.variant,\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\"))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.text), 1)\n ]),\n _: 3\n }, 8, [\"id\", \"disabled\", \"variant\"])\n ]);\n}\nconst NcAppNavigationNew = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ba6c9df\"]]);\nexport {\n NcAppNavigationNew as N\n};\n//# sourceMappingURL=NcAppNavigationNew-CBNppM7Q.mjs.map\n","import '../assets/NcContent-DX4Rs6Pc.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-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-wdIzZwir.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 - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\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-${__props.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-d13dcb98\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BYh5hWDN.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: __props.active,\n \"counter-bubble__counter--highlighted\": __props.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": __props.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CV0YMrXW.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-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=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = /* @__PURE__ */ Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-wIEKSp2G.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-wIEKSp2G.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps, mergeModels } from \"vue\";\nimport { r as register, x as t40, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t40);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": __props.hideLabel }]),\n for: __props.id\n }, toDisplayString(__props.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: __props.id,\n class: [\"native-datetime-picker__input\", __props.inputClass],\n type: __props.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-B8CMOUnH.mjs.map\n","import '../assets/NcTextArea-BxGe3Lqn.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] 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 });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-Dxzj4zdb.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-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.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\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.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: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.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 __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.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\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.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 __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.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\"])) : __props.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(__props.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-5Sg6EUP6.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { r as register, b as t51, c as t18, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcInputField } from \"./NcInputField-5Sg6EUP6.mjs\";\nregister(t18, t51);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs.map\n","\n\n","import { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n *\n * Lightweight reactive store shared across views (no Vuex/Pinia dependency).\n */\nimport { reactive } from 'vue'\nimport api from './api.js'\n\n/**\n *\n */\nfunction initialSession() {\n\ttry {\n\t\treturn loadState('absence', 'session')\n\t} catch {\n\t\treturn { uid: null }\n\t}\n}\n\n/**\n *\n */\nfunction initialLeaveTypes() {\n\ttry {\n\t\treturn loadState('absence', 'leaveTypes') || []\n\t} catch {\n\t\treturn []\n\t}\n}\n\nexport const store = reactive({\n\tsession: initialSession(),\n\tleaveTypes: initialLeaveTypes(),\n\trequests: [],\n\tbalance: { balances: [] },\n\tloading: false,\n\tselectedId: null,\n\n\t// ---- getters ----\n\tleaveType(id) {\n\t\t// A null/undefined id means the server withheld the leave type (neutral\n\t\t// shared-calendar visibility): show a generic \"Absent\" marker, not \"Unknown\".\n\t\tif (id === null || id === undefined) {\n\t\t\treturn { label: t('absence', 'Absent'), color: '#888', icon: '🌴' }\n\t\t}\n\t\treturn this.leaveTypes.find((t) => t.id === id) || { label: t('absence', 'Unknown'), color: '#888', icon: '❔' }\n\t},\n\t/**\n\t * True when the type is recorded by HR (e.g. sick leave), not self-requested.\n\t *\n\t * @param request\n\t */\n\tisHrRecorded(request) {\n\t\tconst type = this.leaveType(request.typeId)\n\t\treturn type && type.employeeRequestable === false\n\t},\n\t/**\n\t * Whether to show a status chip. HR-recorded leave (sick) that is approved has no\n\t * approval concept, so the \"Approved\" label is hidden as noise.\n\t *\n\t * @param request\n\t */\n\tstatusVisible(request) {\n\t\treturn !(this.isHrRecorded(request) && request.status === 'APPROVED')\n\t},\n\tget enabledLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled)\n\t},\n\t/** Types an employee may self-request (excludes HR-recorded types like sick leave). */\n\tget requestableLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled && t.employeeRequestable)\n\t},\n\n\t// ---- actions ----\n\tasync refreshSession() {\n\t\ttry {\n\t\t\tthis.session = await api.getSession()\n\t\t} catch (e) {\n\t\t\tconsole.error('Absence: failed to refresh session', e)\n\t\t}\n\t},\n\n\tasync loadLeaveTypes() {\n\t\tthis.leaveTypes = await api.listLeaveTypes(false)\n\t},\n\n\tasync loadRequests(params) {\n\t\tthis.loading = true\n\t\ttry {\n\t\t\tthis.requests = await api.listRequests(params)\n\t\t} catch {\n\t\t\tshowError(t('absence', 'Could not load requests'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\n\tasync loadMyBalance(year) {\n\t\tthis.balance = await api.getMyBalance(year)\n\t},\n\n\tasync createRequest(data) {\n\t\tconst created = await api.createRequest(data)\n\t\tshowSuccess(t('absence', 'On its way ✈️'))\n\t\tawait this.refreshSession()\n\t\treturn created\n\t},\n\n\tasync updateRequest(id, data) {\n\t\tconst updated = await api.updateRequest(id, data)\n\t\tshowSuccess(t('absence', 'Request updated'))\n\t\treturn updated\n\t},\n\n\tasync cancelRequest(id) {\n\t\tconst res = await api.cancelRequest(id)\n\t\tshowSuccess(t('absence', 'Request cancelled'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync approveRequest(id, comment) {\n\t\tconst res = await api.approveRequest(id, comment)\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync rejectRequest(id, comment) {\n\t\tconst res = await api.rejectRequest(id, comment)\n\t\tshowSuccess(t('absence', 'Request declined'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tselect(id) {\n\t\tthis.selectedId = id\n\t},\n})\n\n/**\n * Visual metadata for a request status (spec §15.4).\n * `text` uses Nextcloud's contrast-optimised *-text variables so labels stay\n * readable; `tint` is the base semantic colour used for the chip background.\n *\n * @param status\n */\nexport function statusMeta(status) {\n\tswitch (status) {\n\t\tcase 'PENDING':\n\t\t\treturn { label: t('absence', 'Pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏳' }\n\t\tcase 'ESCALATED':\n\t\t\treturn { label: t('absence', 'With HR'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏫' }\n\t\tcase 'APPROVED':\n\t\t\treturn { label: t('absence', 'Approved'), text: 'var(--color-success-text)', tint: 'var(--color-success)', icon: '✅' }\n\t\tcase 'REJECTED':\n\t\t\treturn { label: t('absence', 'Declined'), text: 'var(--color-error-text)', tint: 'var(--color-error)', icon: '✋' }\n\t\tcase 'CANCELLED':\n\t\t\treturn { label: t('absence', 'Cancelled'), text: 'var(--color-text-maxcontrast)', tint: 'var(--color-text-maxcontrast)', icon: '🚫' }\n\t\tcase 'WITHDRAWAL_PENDING':\n\t\t\treturn { label: t('absence', 'Withdrawal pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '↩️' }\n\t\tdefault:\n\t\t\treturn { label: status, text: 'var(--color-main-text)', tint: 'var(--color-text-maxcontrast)', icon: '•' }\n\t}\n}\n","\n\n\n\n\n\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, h, reactive, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { createDisposableDirective, reactiveOmit, toRefs as toRefs$1, useToggle } from \"@vueuse/shared\";\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} });\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} });\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = createDisposableDirective({ mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} });\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width, height]) => handler({\n\t\twidth,\n\t\theight\n\t}));\n} });\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementVisibility(target, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tif (options === null || options === void 0 ? void 0 : options.controls) {\n\t\t\tconst state = useElementVisibility(el, options);\n\t\t\twatch(state.isVisible, () => handler(state), { immediate: true });\n\t\t} else watch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} });\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} });\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"immediate\",\n\t\t\"interval\"\n\t]\n});\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* @__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn createDisposableDirective((el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t});\n}\nconst vScrollLock = onScrollLock();\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };\n","const directive = {\n mounted(el) {\n el.focus();\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // URL that begins with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting, UrlOpenSyms);\n\n // Closing bracket component. This character WILL be included in the URL.\n // Must come after qsNonAccepting (which includes all close-bracket tokens)\n // so that CLOSE -> Url wins over CLOSE -> UrlOpenSyms.\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import escapeHTML from \"escape-html\";\nimport { Options, tokenize } from \"linkifyjs\";\nfunction linkifyString(str) {\n const options = new Options({\n defaultProtocol: \"https\",\n target: \"_blank\",\n className: \"external linkified\",\n attributes: {\n rel: \"nofollow noopener noreferrer\"\n }\n }, defaultRender);\n const tokens = tokenize(str);\n const result = [];\n for (const token of tokens) {\n if (token.t === \"nl\" && options.get(\"nl2br\")) {\n result.push(\"
\\n\");\n } else if (!token.isLink || !options.check(token)) {\n result.push(escapeHTML(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result.join(\"\");\n}\nfunction escapeAttr(href) {\n return href.replace(/\"/g, \""\");\n}\nfunction attributesToString(attributes) {\n const result = [];\n for (const attr in attributes) {\n const val = attributes[attr] + \"\";\n result.push(`${attr}=\"${escapeAttr(val)}\"`);\n }\n return result.join(\" \");\n}\nfunction defaultRender({ tagName, attributes, content }) {\n return `<${tagName} ${attributesToString(attributes)}>${escapeHTML(content)}`;\n}\nconst directive = function(el, { value }) {\n if (value?.linkify === true) {\n el.innerHTML = linkifyString(value.text);\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, inject, withDirectives, openBlock, createElementBlock, createTextVNode, toDisplayString, unref } from \"vue\";\nimport directive from \"../directives/Linkify/index.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarHeader\",\n props: {\n name: {},\n title: {},\n linkify: { type: Boolean }\n },\n setup(__props) {\n const headerRef = inject(\"NcAppSidebar:header:ref\");\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"h2\", {\n ref_key: \"headerRef\",\n ref: headerRef,\n tabindex: \"-1\",\n title: __props.title\n }, [\n createTextVNode(toDisplayString(__props.name), 1)\n ], 8, _hoisted_1)), [\n [unref(directive), { text: __props.name, linkify: __props.linkify }]\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map\n","import '../assets/NcEmptyContent-DJMDuGVz.css';\nimport { defineComponent, openBlock, createElementBlock, unref, renderSlot, createCommentVNode, createTextVNode, toDisplayString } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"empty-content__icon\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = {\n key: 2,\n class: \"empty-content__description\"\n};\nconst _hoisted_5 = {\n key: 3,\n class: \"empty-content__action\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcEmptyContent\",\n props: {\n description: { default: \"\" },\n name: { default: \"\" }\n },\n setup(__props) {\n const nameId = createElementId();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n \"aria-labelledby\": unref(nameId),\n class: \"empty-content\",\n role: \"note\"\n }, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n __props.name !== \"\" || _ctx.$slots.name ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n id: unref(nameId),\n class: \"empty-content__name\"\n }, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString(__props.name), 1)\n ], true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true),\n __props.description !== \"\" || _ctx.$slots.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.action ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"action\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n };\n }\n});\nconst NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8609a4c1\"]]);\nexport {\n NcEmptyContent as N\n};\n//# sourceMappingURL=NcEmptyContent-CGAPqk4S.mjs.map\n","import '../assets/NcAppSidebar-oJQ8kUb0.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\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$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$4(_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 dock-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$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\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$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\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 star-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$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\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$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\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 star-outline-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$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value,\n [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: __props.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(__props.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_OCROY\";\nconst sidebarTabsButton_legacy = \"_sidebarTabsButton_legacy_e9-y9\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_S48M1\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_GZRY8\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_ZDmkU\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_y6cLW\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v9SPG\",\n sidebarTabsButton,\n sidebarTabsButton_legacy,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active,\n isLegacy34\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: normalizeClass([\"app-sidebar-tabs__nav\", { \"app-sidebar-tabs__nav--legacy\": $data.isLegacy34 }]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 34)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e74d1502\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\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 * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n forceMenu: $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"forceMenu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n forceTabs: $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"forceTabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e8979b7f\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-C8YzAzrZ.mjs.map\n","import '../assets/NcAppSidebarTab-Xd3HTDbw.css';\nimport { openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppSidebarTab\",\n inject: [\"registerTab\", \"unregisterTab\", \"getActiveTab\", \"isTablistShown\"],\n props: {\n /**\n * Unique id of the sidebar tab\n */\n id: {\n type: String,\n required: true\n },\n /**\n * Tab name in navigation\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Tab icon's html class in navigation. Used if #icon slot is not provided\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Tab order in navigation. If not provided, name is used.\n */\n order: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"bottomReached\",\n \"scroll\"\n ],\n expose: [\"id\", \"name\", \"icon\", \"order\", \"renderIcon\"],\n computed: {\n /**\n * Is the current tab an active tab, that should be shown?\n *\n * @return {boolean}\n */\n isActive() {\n return this.getActiveTab() === this.id;\n }\n },\n created() {\n this.registerTab(this);\n },\n beforeUnmount() {\n this.unregisterTab(this.id);\n },\n methods: {\n onScroll(event) {\n if (this.$el.scrollHeight - this.$el.scrollTop === this.$el.clientHeight) {\n this.$emit(\"bottomReached\", event);\n }\n this.$emit(\"scroll\", event);\n },\n /**\n * Render tab's icon slot if any\n *\n * @return {import('vue').VNode[]}\n */\n renderIcon() {\n return this.$slots.icon?.();\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"role\", \"tabindex\"];\nconst _hoisted_2 = { class: \"hidden-visually\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"section\", {\n id: `tab-${$props.id}`,\n \"aria-hidden\": !$options.isActive,\n \"aria-label\": $options.isTablistShown() ? void 0 : $props.name,\n \"aria-labelledby\": $options.isTablistShown() ? `tab-button-${$props.id}` : void 0,\n class: normalizeClass([\"app-sidebar__tab\", { \"app-sidebar__tab--active\": $options.isActive }]),\n role: $options.isTablistShown() ? \"tabpanel\" : void 0,\n tabindex: $options.isTablistShown() ? 0 : -1,\n onScroll: _cache[0] || (_cache[0] = (...args) => $options.onScroll && $options.onScroll(...args))\n }, [\n createElementVNode(\"h3\", _hoisted_2, toDisplayString($props.name), 1),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 42, _hoisted_1);\n}\nconst NcAppSidebarTab = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-dba10798\"]]);\nexport {\n NcAppSidebarTab as N\n};\n//# sourceMappingURL=NcAppSidebarTab-DOSDDbGA.mjs.map\n","import '../assets/autolink-XS-VDSVB.css';\nimport { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visitParents, SKIP } from \"unist-util-visit-parents\";\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nconst _hoisted_1 = [\"href\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextExternalLink\",\n props: {\n href: {},\n decorateExternal: { type: Boolean, default: false }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"a\", {\n href: __props.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: normalizeClass([_ctx.$style.externalLink, {\n [_ctx.$style.externalLink_decorated]: __props.decorateExternal\n }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.href), 1)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst externalLink = \"_externalLink_d-mCx\";\nconst externalLink_decorated = \"_externalLink_decorated_W3wuz\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_ZJnaR\",\n externalLink,\n externalLink_decorated\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRichTextExternalLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visitParents(tree, (node) => node.type === \"text\", (node, ancestors) => {\n if (ancestors.some((ancestor) => ancestor.type === \"link\" || ancestor.type === \"linkReference\")) {\n return;\n }\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node) ?? 0;\n const parsed = parseUrl(node.value);\n const parsedNodes = typeof parsed === \"string\" ? [u(\"text\", parsed)] : parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n parent.children.splice(index, 1, ...parsedNodes);\n return [SKIP, index + parsedNodes.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcRichTextExternalLink, props: { href: href.trim(), decorateExternal: true } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n NcRichTextExternalLink as N,\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink-DrIurosL.mjs.map\n","import { l as logger } from \"../../chunks/logger-D3RVzcfQ.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { r as register, t as t3, a as t } from \"./_l10n-wdIzZwir.mjs\";\nregister(t3);\nclass Color {\n /**\n * @param r - The red value\n * @param g - The green value\n * @param b - The blue value\n * @param name - The name of the color\n */\n constructor(r, g, b, name) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.name = name;\n this.r = Math.min(r, 255);\n this.g = Math.min(g, 255);\n this.b = Math.min(b, 255);\n this.name = name;\n }\n r;\n g;\n b;\n name;\n /**\n * The hexadecimal color string.\n */\n get color() {\n const toHex = (int) => `00${int.toString(16)}`.slice(-2);\n return `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`;\n }\n}\nfunction calculateStepIncrement(steps, color1, color2) {\n return {\n r: (color2.r - color1.r) / steps,\n g: (color2.g - color1.g) / steps,\n b: (color2.b - color1.b) / steps\n };\n}\nfunction mixPalette(steps, color1, color2) {\n const palette = [];\n palette.push(color1);\n const increment = calculateStepIncrement(steps, color1, color2);\n for (let i = 1; i < steps; i++) {\n const r = Math.floor(color1.r + increment.r * i);\n const g = Math.floor(color1.g + increment.g * i);\n const b = Math.floor(color1.b + increment.b * i);\n palette.push(new Color(r, g, b));\n }\n return palette;\n}\nconst COLOR_RED = new Color(182, 70, 157, t(\"Purple\"));\nconst COLOR_YELLOW = new Color(221, 203, 85, t(\"Gold\"));\nconst COLOR_BLUE = new Color(0, 130, 201, t(\"Nextcloud blue\"));\nconst COLOR_BLACK = new Color(0, 0, 0, t(\"Black\"));\nconst COLOR_WHITE = new Color(255, 255, 255, t(\"White\"));\nconst defaultPalette = [\n COLOR_RED,\n new Color(\n ...[191, 103, 139],\n t(\"Rosy brown\")\n // TRANSLATORS: A color name for RGB(191, 103, 139)\n ),\n new Color(\n ...[201, 136, 121],\n t(\"Feldspar\")\n // TRANSLATORS: A color name for RGB(201, 136, 121)\n ),\n new Color(\n ...[211, 169, 103],\n t(\"Whiskey\")\n // TRANSLATORS: A color name for RGB(211, 169, 103)\n ),\n COLOR_YELLOW,\n new Color(\n ...[165, 184, 114],\n t(\"Olivine\")\n // TRANSLATORS: A color name for RGB(165, 184, 114)\n ),\n new Color(\n ...[110, 166, 143],\n t(\"Acapulco\")\n // TRANSLATORS: A color name for RGB(110, 166, 143)\n ),\n new Color(\n ...[55, 148, 172],\n t(\"Boston Blue\")\n // TRANSLATORS: A color name for RGB(55, 148, 172)\n ),\n COLOR_BLUE,\n new Color(\n ...[45, 115, 190],\n t(\"Mariner\")\n // TRANSLATORS: A color name for RGB(45, 115, 190)\n ),\n new Color(\n ...[91, 100, 179],\n t(\"Blue Violet\")\n // TRANSLATORS: A color name for RGB(91, 100, 179)\n ),\n new Color(\n ...[136, 85, 168],\n t(\"Deluge\")\n // TRANSLATORS: A color name for RGB(136, 85, 168)\n )\n];\nfunction generatePalette(steps) {\n const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);\n const palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE);\n const palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED);\n return palette1.concat(palette2).concat(palette3);\n}\nexport {\n Color as C,\n COLOR_BLACK as a,\n COLOR_WHITE as b,\n defaultPalette as d,\n generatePalette as g\n};\n//# sourceMappingURL=colors-Cv9F-jWS.mjs.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors-Cv9F-jWS.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble-BeGb2xGc.css';\nimport { generateUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuest ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ?? checkIfDarkTheme(document.body) ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}?guestFallback=true`, {\n user,\n size\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs.map\n","import '../assets/NcUserStatusIcon-B3aHoBAd.css';\nimport { defineComponent, useModel, computed, watch, openBlock, createElementBlock, normalizeClass, createCommentVNode, mergeModels } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, Q as t52, R as t11, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst awaySvg = '\\n\\n\t\\n\\n';\nconst busySvg = '\\n\\n\t\\n\\n';\nconst dndSvg = '\\n\\n\t\\n\\n';\nconst invisibleSvg = '\\n\\n\t\\n\\n';\nconst onlineSvg = '\\n\\n\t\\n\\n';\nregister(t52);\nregister(t11);\nfunction getUserStatusText(status) {\n switch (status) {\n case \"away\":\n return t(\"away\");\n // TRANSLATORS: User status if the user is currently away from keyboard\n case \"busy\":\n return t(\"busy\");\n case \"dnd\":\n return t(\"do not disturb\");\n case \"online\":\n return t(\"online\");\n case \"invisible\":\n return t(\"invisible\");\n case \"offline\":\n return t(\"offline\");\n default:\n return status;\n }\n}\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserStatusIcon\",\n props: /* @__PURE__ */ mergeModels({\n user: { default: void 0 },\n ariaHidden: { type: [Boolean, String], default: false }\n }, {\n \"status\": {},\n \"statusModifiers\": {}\n }),\n emits: [\"update:status\"],\n setup(__props) {\n const status = useModel(__props, \"status\");\n const props = __props;\n const isInvisible = computed(() => status.value && [\"invisible\", \"offline\"].includes(status.value));\n const ariaLabel = computed(() => status.value && (!props.ariaHidden || props.ariaHidden === \"false\") ? t(\"User status: {status}\", { status: getUserStatusText(status.value) }) : void 0);\n watch(() => props.user, async (user) => {\n if (!status.value && user && getCapabilities()?.user_status?.enabled) {\n try {\n const { data } = await axios.get(generateOcsUrl(\"/apps/user_status/api/v1/statuses/{user}\", { user }));\n status.value = data.ocs?.data?.status;\n } catch (error) {\n logger.debug(\"Error while fetching user status\", { error });\n }\n }\n }, { immediate: true });\n const matchSvg = {\n online: onlineSvg,\n away: awaySvg,\n busy: busySvg,\n dnd: dndSvg,\n invisible: invisibleSvg,\n offline: invisibleSvg\n };\n const activeSvg = computed(() => status.value && matchSvg[status.value]);\n return (_ctx, _cache) => {\n return status.value ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"user-status-icon\", {\n \"user-status-icon--invisible\": isInvisible.value\n }]),\n \"aria-hidden\": !ariaLabel.value || void 0,\n \"aria-label\": ariaLabel.value,\n role: \"img\",\n innerHTML: activeSvg.value\n }, null, 10, _hoisted_1)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcUserStatusIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-881a79fb\"]]);\nexport {\n NcUserStatusIcon as N,\n getUserStatusText as g\n};\n//# sourceMappingURL=NcUserStatusIcon-BF5OEQFU.mjs.map\n","import '../assets/NcActionLink-b4Ph5q10.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionLink\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * destionation to link to\n */\n href: {\n type: String,\n required: true,\n validator: (value) => {\n try {\n return new URL(value);\n } catch {\n return value.startsWith(\"#\") || value.startsWith(\"/\");\n }\n }\n },\n /**\n * download the link instead of opening\n */\n download: {\n type: String,\n default: null\n },\n /**\n * target to open the link\n */\n target: {\n type: String,\n default: \"_self\",\n validator: (value) => {\n return value && (!value.startsWith(\"_\") || [\"_blank\", \"_self\", \"_parent\", \"_top\"].indexOf(value) > -1);\n }\n },\n /**\n * Declares a native tooltip when not null\n */\n title: {\n type: String,\n default: null\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"download\", \"href\", \"aria-label\", \"target\", \"title\", \"role\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"action-link__longtext-wrapper\"\n};\nconst _hoisted_4 = { class: \"action-link__name\" };\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = [\"textContent\"];\nconst _hoisted_7 = {\n key: 2,\n class: \"action-link__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"a\", {\n download: $props.download,\n href: $props.href,\n \"aria-label\": _ctx.ariaLabel,\n target: $props.target,\n title: $props.title,\n class: \"action-link focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-link__icon\", [_ctx.isIconUrl ? \"action-link__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1),\n _cache[1] || (_cache[1] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1);\n}\nconst NcActionLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-32f01b7a\"]]);\nexport {\n NcActionLink as N\n};\n//# sourceMappingURL=NcActionLink-BFiaYt9A.mjs.map\n","import '../assets/NcActionRouter-BWXfCfxM.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, renderSlot, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionRouter\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * router-link to prop [https://router.vuejs.org/api/#to](https://router.vuejs.org/api/#to)\n */\n to: {\n type: [String, Object],\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-router__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-router__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-router__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RouterLink = resolveComponent(\"RouterLink\");\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createVNode(_component_RouterLink, {\n \"aria-label\": _ctx.ariaLabel,\n class: \"action-router focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n title: _ctx.title,\n to: $props.to,\n onClick: _ctx.onClick\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-router__icon\", [_ctx.isIconUrl ? \"action-router__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n _cache[0] || (_cache[0] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"role\", \"title\", \"to\", \"onClick\"])\n ], 8, _hoisted_1);\n}\nconst NcActionRouter = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-87267750\"]]);\nexport {\n NcActionRouter as N\n};\n//# sourceMappingURL=NcActionRouter-vYFtIOzD.mjs.map\n","import '../assets/NcActionText-Dzegj6AY.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText-CQ9qwJ0p.mjs.map\n","import '../assets/NcAvatar-Bs7qEhkA.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions-C-wDqSrv.mjs\";\nimport { g as getRoute } from \"./autolink-DrIurosL.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, m as t10, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeStyle, normalizeClass, renderSlot, createCommentVNode, createBlock, withCtx, createSlots, Fragment, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon-BF5OEQFU.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-BFiaYt9A.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-vYFtIOzD.mjs\";\nimport { N as NcActionText } from \"./NcActionText-CQ9qwJ0p.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nregister(t10);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {Record} options - Options for setting the user status\n * @param {string} options.status user's status\n * @param {string} options.message user's message\n * @param {string} options.icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\");\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n menu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `\n\t\t\t\t\t${escape(this.userStatus.icon)}\n\t\t\t\t`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n }\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuOpenState = false;\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n avatarUrl + \" 1x\",\n this.avatarUrlGenerator(this.user, 512) + \" 8x\"\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n let avatarUrl = getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest\n });\n if (user === getCurrentUser()?.uid && typeof oc_userconfig !== \"undefined\") {\n avatarUrl += \"?v=\" + window.oc_userconfig.avatar.version;\n }\n return avatarUrl;\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $options.hasMenu && $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : $options.hasMenu ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n forceMenu: \"\",\n manualOpen: \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e0ae1174\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar-1KxMUN7V.mjs.map\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n","import '../assets/NcListItem-BjeejGlB.css';\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CV0YMrXW.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, withKeys, renderSlot, createTextVNode, toDisplayString, createElementBlock, createCommentVNode, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\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 * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"dragstart\",\n \"update:menuOpen\"\n ],\n setup() {\n return { isLegacy34 };\n },\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {(event: Event) => void} [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 showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", {\n \"list-item__wrapper--active\": $props.active ?? isActive,\n \"list-item__wrapper--legacy\": $setup.isLegacy34\n }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onDragstart: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"dragstart\", $event)),\n onKeydown: _cache[3] || (_cache[3] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $setup.isLegacy34 ? $props.active ?? isActive : false,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[4] || (_cache[4] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $setup.isLegacy34 ? $props.active ?? isActive : false,\n forceMenu: $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"forceMenu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0e705f5a\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-BliLJpvU.mjs.map\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createRouter, createWebHashHistory } from 'vue-router'\nimport Approvals from './views/Approvals.vue'\nimport HrBalances from './views/hr/HrBalances.vue'\nimport HrExports from './views/hr/HrExports.vue'\nimport HrSickLeave from './views/hr/HrSickLeave.vue'\nimport HrStatistics from './views/hr/HrStatistics.vue'\nimport HrWhosOff from './views/hr/HrWhosOff.vue'\nimport MyLeave from './views/MyLeave.vue'\nimport Team from './views/Team.vue'\n\nconst routes = [\n\t{ path: '/', redirect: '/my' },\n\t{ path: '/my', name: 'my', component: MyLeave },\n\t{ path: '/approvals', name: 'approvals', component: Approvals },\n\t{ path: '/team', name: 'team', component: Team },\n\t{ path: '/hr/balances', name: 'hr-balances', component: HrBalances },\n\t{ path: '/hr/statistics', name: 'hr-statistics', component: HrStatistics },\n\t{ path: '/hr/sick-leave', name: 'hr-sick-leave', component: HrSickLeave },\n\t{ path: '/hr/whos-off', name: 'hr-whos-off', component: HrWhosOff },\n\t{ path: '/hr/exports', name: 'hr-exports', component: HrExports },\n\t// Deep link from notifications/activity: open My leave with the request selected.\n\t{ path: '/requests/:id', name: 'request', component: MyLeave, props: true },\n]\n\nexport default createRouter({\n\thistory: createWebHashHistory(),\n\troutes,\n})\n","import { translatePlural as n, translate as t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createApp } from 'vue'\nimport App from './App.vue'\nimport router from './router.js'\n\nconst app = createApp(App)\napp.config.globalProperties.t = t\napp.config.globalProperties.n = n\napp.use(router)\napp.mount('#absence-app')\n"],"names":["getCapabilities","loadState","y","n","r","a","s","p","g","h","_","f","b","e","t","x","S","C","w","T","E","ee","k","A","D","O","i","L","F","$","j","M","N","z","R","P","I","B","o","c","l","u","te","V","H","U","W","G","K","q","J","Y","Z","X","re","ie","ne","Q","v","ae","d","m","isBrowser","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","text","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","base","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","key","isSameRouteLocationParamsValue","isArray","isEquivalentArray","value","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","name","search","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","record","runWithContext","fn","enterCallbackArray","resolve","reject","next","valid","createRouterError","guardReturn","guardCall","err","extractComponentsGuards","matched","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolved","resolvedComponent","isESModule","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","len","recordFrom","recordTo","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","state","fromState","listener","pauseListeners","listen","callback","teardown","index","beforeUnloadListener","history","assign","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","data","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","options","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","subPattern","parse","match","params","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parent","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","mergeOptions","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","children","noop","matcherRef","getRoutes","findInsertionIndex","pickParams","parentMatcher","mergeMetaFields","clearRoutes","newParams","normalized","normalizeRecordProps","propsObject","props","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","inject","routerKey","currentRoute","routeLocationKey","computed","unref","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","preferSingleVNode","vnodes","RouterLink","defineComponent","slots","link","reactive","elClass","getLinkClass","target","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","injectedRoute","routerViewLocationKey","routeToDisplay","injectedDepth","viewDepthKey","depth","initialDepth","matchedRoute","matchedRouteRef","provide","matchedRouteKey","viewRef","ref","watch","instance","oldInstance","_oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","component","vnode","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","applyToParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","error","isNavigationFailure","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","app","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","scrollBehavior","nextTick","started","reactiveRoute","shallowReactive","unmountApp","promise","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","useAppName","useLocalizedAppName","apps","realAppName2","id","register","t27","_sfc_main$1","__props","isMobile","useIsMobile","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","emit","_ctx","_cache","openBlock","createBlock","NcButton","normalizeClass","withCtx","createVNode","NcIconSvgWrapper","mdiArrowRight","NcAppContentDetailsToggle","_export_sfc","browserStorage","getBuilder","instanceName","_sfc_main","Pane","Splitpanes","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createElementBlock","toDisplayString","createCommentVNode","Fragment","withModifiers","withDirectives","createElementVNode","renderSlot","vShow","NcAppContent","NcAppNavigationList","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","t20","_hoisted_1$1","open","useModel","title","$event","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","focusTrap","setHasAppNavigation","warn","appNavigationContainerElement","useTemplateRef","shouldActivateFocusTrap","watchEffect","toggleFocusTrap","subscribe","toggleNavigationByEventBus","createFocusTrap","toggleNavigation","getTrapStack","onUnmounted","unsubscribe","bodyStyles","animationLength","open2","handleEsc","isLegacy34","withKeys","NcAppNavigation","NcActions","actionProps","_value","headingLevel","_component_NcActions","resolveDynamicComponent","createTextVNode","normalizeProps","guardReactiveProps","NcAppNavigationCaption","_hoisted_4","mergeProps","ChevronUp","IconArrowRight","t14","IconClose","newValue","_component_IconArrowRight","_component_NcButton","_component_IconClose","vModelText","NcInputConfirmCancel","ActionGlobalMixin","ActionTextMixin","NC_ACTIONS_CLOSE_MENU","NC_ACTIONS_IS_SEMANTIC_MENU","behavior","mdiCheck","mdiChevronRight","attributes","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_component_NcIconSvgWrapper","normalizeStyle","NcActionButton","_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","ChevronDown","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcLoadingIcon","_sfc_main$4","createElementId","newVal","routerLinkHref","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcAppNavigationIconCollapsible","NcAppNavigationItem","NcAppNavigationNew","t30","contentSvg","navigationSvg","setAppNavigation","hasAppNavigation","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","Teleport","NcContent","humanizedCount","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","NcCounterBubble","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","INJECTION_KEY_THEME","useIsDarkThemeElement","element","toValue","isDarkTheme","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","t40","mergeModels","modelValue","formattedValue","formatValue","formattedMax","formattedMin","getReadableDate","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","input","time","timezoneOffsetSeconds","inputDateWithTimezone","NcDateTimePickerNative","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","ariaDescribedby","ariaDescribedby2","handleInput","mdiAlertCircleOutline","NcTextArea","__emit","inputElement","hasTrailingIcon","isValidLabel","NcInputField","t18","inputFieldInstance","defaultTrailingButtonLabels","NcInputFieldPropNames","propsToForward","sharedProps","createSlots","mdiUndo","mdiClose","initialSession","initialLeaveTypes","store","request","type","api","showError","year","created","showSuccess","updated","res","comment","statusMeta","status","NcModal","NcSelect","NcTextField","NcNoteCard","Send","toIso","generateUrl","makeHolidayChecker","weekdays","parseWeekdays","countWorkingDays","types","today","seen","own","users","payload","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_29","_createBlock","_component_NcModal","_toDisplayString","_component_NcNoteCard","_createVNode","_component_NcSelect","_withCtx","icon","label","_hoisted_11","_component_NcDateTimePickerNative","_component_NcTextField","_Fragment","_createTextVNode","_hoisted_22","_hoisted_24","_hoisted_27","_hoisted_28","_component_NcTextArea","_component_Send","stopClickOutsideMap","vOnClickOutside","binding","capture","stop","onClickOutside","directive","encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","groups","addToGroups","flags","group","flagsForToken","State","nextState","regex","exactOnly","inputs","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","sch","run$1","start","str","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","first","second","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","Options","opts","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","operator","isCallable","option","obj","val","MultiToken","truncate","formatted","protocol","formattedHref","tagName","content","className","rel","eventListeners","createTokenClass","Token","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","linkifyString","escapeHTML","escapeAttr","attributesToString","attr","headerRef","nameId","NcEmptyContent","_sfc_main$5","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$4","IconDockRight","_hoisted_1$4","IconStar","_hoisted_1$3","IconStarOutline","selected","_sfc_main$6","sidebarTabsButton","sidebarTabsButton_legacy","sidebarTabsButton_selected","sidebarTabsButton__name","sidebarTabsButton__icon","sidebarTabsButton__legacyIcon","style0","cssModules","NcAppSidebarTabsButton","tab","active","tabIndex","_component_NcAppSidebarTabsButton","renderList","NcAppSidebarTabs","t15","_sfc_main$7","useIsSmallMobile","isSlotPopulated","menu","menuTrigger","activeTab","_component_IconDockRight","_component_IconStar","_component_IconStarOutline","_component_NcAppSidebarHeader","_component_NcAppSidebarTabs","_component_NcEmptyContent","_directive_focus","resolveDirective","_directive_click_outside","Transition","NcAppSidebar","NcAppSidebarTab","getRoute","removePrefix","prefix","removePrefixes","prefixes","acc","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","getEnabledContactsMenuActions","entry","action","t3","Color","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","COLOR_YELLOW","COLOR_BLUE","generatePalette","palette1","palette2","palette3","hashCode","Md5","finalInt","usernameToColor","username","finalPalette","global","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","in_quote_char","output","idx","normalize_tag","tag_set","module","this","getAvatarUrl","user","size","guestUrl","themeUrl","awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","t52","t11","getUserStatusText","isInvisible","ariaLabel","axios","generateOcsUrl","matchSvg","activeSvg","NcUserStatusIcon","NcActionLink","_component_RouterLink","NcActionRouter","NcActionText","t10","userStatus","userId","capabilities","getCurrentUser","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","initials","filteredChars","filtered","actions","item","escape","emojiIcon","avatarUrl","srcset","userHasAvatar","img","_component_IconDotsHorizontal","_component_NcUserStatusIcon","NcAvatar","AccountGroup","StatusChip","_renderList","ev","_component_NcAvatar","_component_StatusChip","_component_AccountGroup","_normalizeStyle","requested","review","outcome","step","_normalizeClass","LeaveTypeChip","CoveragePanel","RequestStepper","InformationOutline","CommentOutline","History","Check","Close","CancelIcon","formatRange","iso","_component_NcAppSidebar","_component_NcAppSidebarTab","_component_InformationOutline","_component_RequestStepper","_component_LeaveTypeChip","_component_Check","_component_Close","_component_CancelIcon","_component_CoveragePanel","_component_CommentOutline","_component_History","RequestDialog","RequestSidebar","Plus","CalendarAccountOutline","ClipboardCheck","ScaleBalance","ChartBar","CalendarMonth","Download","ClipboardPlusOutline","Thermometer","_component_NcContent","_component_NcAppNavigation","_component_NcAppNavigationNew","_component_Plus","_component_NcAppNavigationItem","_component_CalendarAccountOutline","_component_ClipboardCheck","_component_NcCounterBubble","_component_NcAppNavigationCaption","_component_ClipboardPlusOutline","_component_ScaleBalance","_component_ChartBar","_component_Thermometer","_component_CalendarMonth","_component_Download","_component_NcAppContent","_component_router_view","_component_RequestSidebar","_component_RequestDialog","NcListItem","range","days","_component_NcListItem","ACTIONABLE","CheckAll","RequestListItem","SkeletonList","reports","_component_SkeletonList","_TransitionGroup","_component_RequestListItem","_component_CheckAll","Magnify","row","ent","_component_Magnify","now","NcCheckboxRadioSwitch","max","report","_component_NcCheckboxRadioSwitch","total","pct","seg","usableW","usableH","ChartLine","LineChart","DonutChart","month","months","_component_ChartLine","_component_LineChart","_component_DonutChart","DAY_MS","ChevronLeft","ChevronRight","CalendarBlank","arr","dt","dow","byUid","monthStart","lastIndex","ids","lt","_component_ChevronLeft","_component_ChevronRight","_component_CalendarBlank","TeamTimeline","_component_TeamTimeline","duration","eased","BalanceRing","_component_BalanceRing","bar","BalanceCard","BarChart","PalmIllustration","sickType","approved","typeMatches","color","buckets","addWorkingDaysByMonth","_component_BalanceCard","_component_BarChart","_component_PalmIllustration","MyLeave","Approvals","Team","HrBalances","HrStatistics","HrSickLeave","HrWhosOff","HrExports","createApp","App"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,73,74,78,82,86,87,88]} \ No newline at end of file +{"version":3,"file":"absence-main.mjs","sources":["../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/splitpanes/dist/splitpanes.esm.js","../node_modules/vue-router/dist/devtools-Bpr7ZAVB.js","../node_modules/vue-router/dist/vue-router.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DyNMVZpX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-DavgjaFX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-g57j16pB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-VjSWJ8R4.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-CGTllrXj.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BXR0sWNu.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-BO5T5ePT.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-CDeYtA3E.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationNew-CBNppM7Q.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BYh5hWDN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CV0YMrXW.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../node_modules/vue-material-design-icons/CalendarAccountOutline.vue","../node_modules/vue-material-design-icons/CalendarMonth.vue","../node_modules/vue-material-design-icons/CalendarSearch.vue","../node_modules/vue-material-design-icons/ChartBar.vue","../node_modules/vue-material-design-icons/ClipboardCheck.vue","../node_modules/vue-material-design-icons/ClipboardPlusOutline.vue","../node_modules/vue-material-design-icons/Download.vue","../node_modules/vue-material-design-icons/Plus.vue","../node_modules/vue-material-design-icons/ScaleBalance.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../node_modules/@nextcloud/vue/dist/chunks/constants-wIEKSp2G.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-B8CMOUnH.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-Dxzj4zdb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-5Sg6EUP6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs","../node_modules/vue-material-design-icons/Send.vue","../src/store.js","../src/components/RequestDialog.vue","../node_modules/@vueuse/components/dist/index.js","../node_modules/@nextcloud/vue/dist/directives/Focus/index.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/directives/Linkify/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent-CGAPqk4S.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-C8YzAzrZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs","../node_modules/@nextcloud/vue/dist/chunks/autolink-DrIurosL.mjs","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/chunks/colors-Cv9F-jWS.mjs","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-BF5OEQFU.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-BFiaYt9A.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-vYFtIOzD.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionText-CQ9qwJ0p.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-1KxMUN7V.mjs","../node_modules/vue-material-design-icons/Cancel.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/CommentOutline.vue","../node_modules/vue-material-design-icons/History.vue","../node_modules/vue-material-design-icons/InformationOutline.vue","../node_modules/vue-material-design-icons/Pencil.vue","../src/components/StatusChip.vue","../src/components/CoveragePanel.vue","../src/components/LeaveTypeChip.vue","../src/components/RequestStepper.vue","../src/components/RequestSidebar.vue","../src/App.vue","../node_modules/vue-material-design-icons/CheckAll.vue","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-BliLJpvU.mjs","../src/components/RequestListItem.vue","../src/components/SkeletonList.vue","../src/views/Approvals.vue","../src/views/hr/HrAbsences.vue","../node_modules/vue-material-design-icons/Magnify.vue","../src/views/hr/HrBalances.vue","../src/views/hr/HrExports.vue","../src/views/hr/HrSickLeave.vue","../node_modules/vue-material-design-icons/ChartLine.vue","../src/components/DonutChart.vue","../src/components/LineChart.vue","../src/views/hr/HrStatistics.vue","../node_modules/vue-material-design-icons/CalendarBlank.vue","../node_modules/vue-material-design-icons/ChevronLeft.vue","../node_modules/vue-material-design-icons/ChevronRight.vue","../src/components/TeamTimeline.vue","../src/views/hr/HrWhosOff.vue","../src/components/BalanceRing.vue","../src/components/BalanceCard.vue","../src/components/BarChart.vue","../src/components/PalmIllustration.vue","../src/views/MyLeave.vue","../src/views/Team.vue","../src/router.js","../src/main.js"],"sourcesContent":["import { loadState } from \"@nextcloud/initial-state\";\nfunction getCapabilities() {\n try {\n return loadState(\"core\", \"capabilities\");\n } catch (error) {\n console.debug(\"Could not find capabilities initial state fall back to _oc_capabilities\");\n if (!(\"_oc_capabilities\" in window)) {\n return {};\n }\n return window[\"_oc_capabilities\"];\n }\n}\nexport {\n getCapabilities\n};\n//# sourceMappingURL=index.mjs.map\n","import { computed as e, createBlock as t, createElementBlock as n, getCurrentInstance as r, h as i, inject as a, nextTick as o, normalizeStyle as s, onBeforeUnmount as c, onMounted as l, openBlock as u, provide as d, ref as f, renderSlot as p, resolveDynamicComponent as m, unref as h, useAttrs as g, useSlots as _, watch as v } from \"vue\";\n//#region src/components/splitpanes/splitpanes.vue\nvar y = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {\n\t__name: \"splitpanes\",\n\tprops: {\n\t\thorizontal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tpushOtherPanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\tmaximizePanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\trtl: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tfirstSplitter: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tkeyboardStep: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5\n\t\t}\n\t},\n\temits: [\n\t\t\"ready\",\n\t\t\"resize\",\n\t\t\"resized\",\n\t\t\"pane-click\",\n\t\t\"pane-maximize\",\n\t\t\"pane-add\",\n\t\t\"pane-remove\",\n\t\t\"splitter-click\",\n\t\t\"splitter-dblclick\",\n\t\t\"direction-changed\"\n\t],\n\tsetup(n, { emit: r }) {\n\t\tlet a = r, s = n, p = g(), h = _(), y = f([]), b = e(() => y.value.reduce((e, t) => (e[~~t.id] = t) && e, {})), x = e(() => y.value.length), S = f(null), C = f(!1), w = f({\n\t\t\tmouseDown: !1,\n\t\t\tdragging: !1,\n\t\t\tactiveSplitter: null,\n\t\t\tcursorOffset: 0\n\t\t}), T = f({\n\t\t\tsplitter: null,\n\t\t\ttimeoutId: null\n\t\t}), E = e(() => ({\n\t\t\t[`splitpanes splitpanes--${s.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n\t\t\t\"splitpanes--dragging\": w.value.dragging,\n\t\t\t\"splitpanes--ready\": C.value\n\t\t})), ee = () => {\n\t\t\tdocument.addEventListener(\"mousemove\", k, { passive: !1 }), document.addEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", k, { passive: !1 }), document.addEventListener(\"touchend\", A));\n\t\t}, D = () => {\n\t\t\tdocument.removeEventListener(\"mousemove\", k, { passive: !1 }), document.removeEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", k, { passive: !1 }), document.removeEventListener(\"touchend\", A));\n\t\t}, O = (e, t) => {\n\t\t\tlet n = e.target.closest(\".splitpanes__splitter\");\n\t\t\tif (n) {\n\t\t\t\tlet { left: t, top: r } = n.getBoundingClientRect(), { clientX: i, clientY: a } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\t\tw.value.cursorOffset = s.horizontal ? a - r : i - t;\n\t\t\t}\n\t\t\tee(), w.value.mouseDown = !0, w.value.activeSplitter = t, document.documentElement.style.cursor = s.horizontal ? \"row-resize\" : \"col-resize\";\n\t\t}, k = (e) => {\n\t\t\tw.value.mouseDown && (e.preventDefault(), w.value.dragging || (window.getSelection()?.removeAllRanges(), w.value.dragging = !0), requestAnimationFrame(() => {\n\t\t\t\tL(F(e)), $(\"resize\", { event: e }, !0);\n\t\t\t}));\n\t\t}, A = (e) => {\n\t\t\tw.value.dragging && (window.getSelection()?.removeAllRanges(), $(\"resized\", { event: e }, !0)), w.value.mouseDown = !1, w.value.activeSplitter = null, setTimeout(() => {\n\t\t\t\tw.value.dragging = !1, D(), document.documentElement.style.cursor = \"\";\n\t\t\t}, 100);\n\t\t}, j = (e, t) => {\n\t\t\t\"ontouchstart\" in window && (e.preventDefault(), T.value.splitter === t ? (clearTimeout(T.value.timeoutId), T.value.timeoutId = null, M(e, t), T.value.splitter = null) : (T.value.splitter = t, T.value.timeoutId = setTimeout(() => T.value.splitter = null, 500))), w.value.dragging || $(\"splitter-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0);\n\t\t}, M = (e, t) => {\n\t\t\tif ($(\"splitter-dblclick\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0), s.maximizePanes) {\n\t\t\t\tlet n = 0;\n\t\t\t\ty.value = y.value.map((e, r) => (e.size = r === t ? e.max : e.min, r !== t && (n += e.min), e)), y.value[t].size -= n, $(\"pane-maximize\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t,\n\t\t\t\t\tpane: y.value[t]\n\t\t\t\t}), $(\"resized\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t\n\t\t\t\t}, !0);\n\t\t\t}\n\t\t}, N = (e, t) => {\n\t\t\tif (!s.keyboardStep) return;\n\t\t\tlet n = s.horizontal ? e.key === \"ArrowDown\" : e.key === \"ArrowRight\", r = s.horizontal ? e.key === \"ArrowUp\" : e.key === \"ArrowLeft\";\n\t\t\tif (!n && !r) return;\n\t\t\te.preventDefault(), w.value.activeSplitter = t;\n\t\t\tlet i = (n ? 1 : -1) * (s.rtl && !s.horizontal ? -1 : 1), a = z(t) + y.value[t].size;\n\t\t\tR(Math.min(Math.max(a + i * s.keyboardStep, 0), 100)), $(\"resize\", { event: e }, !0), $(\"resized\", { event: e }, !0), w.value.activeSplitter = null;\n\t\t}, P = (e, t) => {\n\t\t\tlet n = b.value[t];\n\t\t\tn && $(\"pane-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: n.index,\n\t\t\t\tpane: n\n\t\t\t});\n\t\t}, F = (e) => {\n\t\t\tlet t = S.value.getBoundingClientRect(), { clientX: n, clientY: r } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\treturn {\n\t\t\t\tx: n - (s.horizontal ? 0 : w.value.cursorOffset) - t.left,\n\t\t\t\ty: r - (s.horizontal ? w.value.cursorOffset : 0) - t.top\n\t\t\t};\n\t\t}, I = (e) => {\n\t\t\te = e[s.horizontal ? \"y\" : \"x\"];\n\t\t\tlet t = S.value[s.horizontal ? \"clientHeight\" : \"clientWidth\"];\n\t\t\treturn s.rtl && !s.horizontal && (e = t - e), e * 100 / t;\n\t\t}, L = (e) => {\n\t\t\tR(I(e));\n\t\t}, R = (e) => {\n\t\t\tlet t = w.value.activeSplitter;\n\t\t\tif (t === null || t >= y.value.length - 1) return;\n\t\t\tlet n = {\n\t\t\t\tprevPanesSize: z(t),\n\t\t\t\tnextPanesSize: B(t),\n\t\t\t\tprevReachedMinPanes: 0,\n\t\t\t\tnextReachedMinPanes: 0\n\t\t\t}, r = 0 + (s.pushOtherPanes ? 0 : n.prevPanesSize), i = 100 - (s.pushOtherPanes ? 0 : n.nextPanesSize);\n\t\t\te = Math.max(Math.min(e, i), r);\n\t\t\tlet a = [t, t + 1], o = y.value[a[0]] || null, c = y.value[a[1]] || null, l = o !== null && o.max < 100 && e >= o.max + n.prevPanesSize, u = c !== null && c.max < 100 && e <= 100 - (c.max + B(t + 1));\n\t\t\tif (l || u) {\n\t\t\t\tl ? (o.size = o.max, c.size = Math.min(Math.max(100 - o.max - n.prevPanesSize - n.nextPanesSize, c.min), c.max)) : (o.size = Math.min(Math.max(100 - c.max - n.prevPanesSize - B(t + 1), o.min), o.max), c.size = c.max);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (s.pushOtherPanes) {\n\t\t\t\tlet t = te(n, e);\n\t\t\t\tif (!t) return;\n\t\t\t\t({sums: n, panesToResize: a} = t), o = y.value[a[0]] || null, c = y.value[a[1]] || null;\n\t\t\t}\n\t\t\to !== null && (o.size = Math.min(Math.max(e - n.prevPanesSize - n.prevReachedMinPanes, o.min), o.max)), c !== null && (c.size = Math.min(Math.max(100 - e - n.nextPanesSize - n.nextReachedMinPanes, c.min), c.max));\n\t\t}, te = (e, t) => {\n\t\t\tlet n = w.value.activeSplitter, r = [n, n + 1];\n\t\t\tif (t < e.prevPanesSize + y.value[r[0]].min) {\n\t\t\t\tif (r[0] = V(n).index, e.prevReachedMinPanes = 0, r[0] < n && y.value.forEach((t, i) => {\n\t\t\t\t\ti > r[0] && i <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), r[0] === void 0) return e.prevReachedMinPanes = 0, y.value[0].size = y.value[0].min, y.value.forEach((t, r) => {\n\t\t\t\t\tr > 0 && r <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), y.value[r[1]].size = 100 - e.prevReachedMinPanes - y.value[0].min - e.prevPanesSize - e.nextPanesSize, null;\n\t\t\t\te.prevPanesSize = z(r[0]);\n\t\t\t}\n\t\t\treturn t > 100 - e.nextPanesSize - y.value[r[1]].min && (r[1] = H(n).index, e.nextReachedMinPanes = 0, r[1] > n + 1 && y.value.forEach((t, i) => {\n\t\t\t\ti > n && i < r[1] && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), e.nextPanesSize = r[1] === void 0 ? 0 : B(r[1] - 1), r[1] === void 0) ? (e.nextReachedMinPanes = 0, y.value.forEach((t, r) => {\n\t\t\t\tr >= n + 1 && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), r[0] !== void 0 && (y.value[r[0]].size = 100 - e.prevPanesSize - B(r[0] - 1)), null) : {\n\t\t\t\tsums: e,\n\t\t\t\tpanesToResize: r\n\t\t\t};\n\t\t}, z = (e) => y.value.reduce((t, n, r) => t + (r < e ? n.size : 0), 0), B = (e) => y.value.reduce((t, n, r) => t + (r > e + 1 ? n.size : 0), 0), V = (e) => [...y.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, H = (e) => y.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, U = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) {\n\t\t\t\tlet e = t.classList.contains(\"splitpanes__pane\"), n = t.classList.contains(\"splitpanes__splitter\");\n\t\t\t\t!e && !n && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n\t\t\t}\n\t\t}, W = (e, t, n = !1) => {\n\t\t\tlet r = e - 1, i = document.createElement(\"div\");\n\t\t\ti.classList.add(\"splitpanes__splitter\"), n || (i.onmousedown = (e) => O(e, r), typeof window < \"u\" && \"ontouchstart\" in window && (i.ontouchstart = (e) => O(e, r)), i.onclick = (e) => j(e, r + 1), s.keyboardStep && (i.setAttribute(\"tabindex\", \"0\"), i.setAttribute(\"role\", \"separator\"), i.setAttribute(\"aria-orientation\", s.horizontal ? \"horizontal\" : \"vertical\"), i.onkeydown = (e) => N(e, r))), i.ondblclick = (e) => M(e, r + 1), t.parentNode.insertBefore(i, t);\n\t\t}, G = (e) => {\n\t\t\te.onmousedown = null, e.onclick = null, e.ondblclick = null, e.onkeydown = null, e.remove();\n\t\t}, K = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) t.className.includes(\"splitpanes__splitter\") && G(t);\n\t\t\tlet t = 0;\n\t\t\tfor (let n of e) n.className.includes(\"splitpanes__pane\") && (!t && s.firstSplitter ? W(t, n, !0) : t && W(t, n), t++);\n\t\t}, q = ({ uid: e, ...t }) => {\n\t\t\tlet n = b.value[e];\n\t\t\tfor (let [e, r] of Object.entries(t)) n[e] = r;\n\t\t}, J = !1, Y = (e) => {\n\t\t\tlet t = -1;\n\t\t\tArray.from(S.value?.children || []).some((n) => (n.className.includes(\"splitpanes__pane\") && t++, n.isSameNode(e.el))), y.value.splice(t, 0, {\n\t\t\t\t...e,\n\t\t\t\tindex: t\n\t\t\t}), y.value.forEach((e, t) => e.index = t), C.value && !J && (J = !0, o(() => {\n\t\t\t\tK(), Z({ addedPane: y.value[t] }), $(\"pane-add\", { pane: y.value[t] }), J = !1;\n\t\t\t}));\n\t\t}, X = (e) => {\n\t\t\tlet t = y.value.findIndex((t) => t.id === e);\n\t\t\ty.value[t].el = null;\n\t\t\tlet n = y.value.splice(t, 1)[0];\n\t\t\ty.value.forEach((e, t) => e.index = t), o(() => {\n\t\t\t\tK(), $(\"pane-remove\", { pane: n }), Z({ removedPane: {\n\t\t\t\t\t...n,\n\t\t\t\t\tindex: t\n\t\t\t\t} });\n\t\t\t});\n\t\t}, Z = (e = {}) => {\n\t\t\t!e.addedPane && !e.removedPane ? re() : y.value.some((e) => e.givenSize !== null || e.min || e.max < 100) ? ie(e) : ne(), C.value && $(\"resized\");\n\t\t}, ne = () => {\n\t\t\tlet e = 100 / x.value, t = 100, n = [], r = [];\n\t\t\tfor (let i of y.value) i.size = Math.max(Math.min(e, i.max), i.min), t -= i.size, i.size >= i.max && n.push(i.id), i.size <= i.min && r.push(i.id);\n\t\t\tMath.abs(t) > .1 && Q(t, n, r);\n\t\t}, re = () => {\n\t\t\tlet e = 100, t = [], n = [], r = 0;\n\t\t\tfor (let i of y.value) e -= i.size, i.givenSize !== null && r++, i.size >= i.max && t.push(i.id), i.size <= i.min && n.push(i.id);\n\t\t\tlet i = 100;\n\t\t\tif (e > .1) {\n\t\t\t\tfor (let t of y.value) t.givenSize === null && (t.size = Math.max(Math.min(e / (x.value - r), t.max), t.min)), i -= t.size;\n\t\t\t\ti > .1 && Q(i, t, n);\n\t\t\t}\n\t\t}, ie = ({ addedPane: e, removedPane: t } = {}) => {\n\t\t\tlet n = y.value.reduce((e, t) => e + (t.givenSize === null ? 0 : t.givenSize), 0), r = y.value.filter((e) => e.givenSize === null).length, i = r > 0 ? (100 - n) / r : 0, a = 0, o = [], s = [];\n\t\t\tfor (let e of y.value) a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\tif (!(Math.abs(a) < .1)) {\n\t\t\t\ta = 100;\n\t\t\t\tfor (let e of y.value) e.givenSize === null && (e.size = Math.max(Math.min(i, e.max), e.min)), a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\t\tMath.abs(a) > .1 && Q(a, o, s);\n\t\t\t}\n\t\t}, Q = (e, t, n) => {\n\t\t\tlet r;\n\t\t\tr = e > 0 ? e / (x.value - t.length) : e / (x.value - n.length), y.value.forEach((i, a) => {\n\t\t\t\tif (e > 0 && !t.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t} else if (!n.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t}\n\t\t\t}), Math.abs(e) > .1 && C.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n\t\t}, $ = (e, t = void 0, n = !1) => {\n\t\t\tlet r = t?.index ?? w.value.activeSplitter ?? null;\n\t\t\ta(e, {\n\t\t\t\t...t,\n\t\t\t\t...r !== null && { index: r },\n\t\t\t\t...n && r !== null && {\n\t\t\t\t\tprevPane: y.value[r - +!!s.firstSplitter],\n\t\t\t\t\tnextPane: y.value[r + +!s.firstSplitter]\n\t\t\t\t},\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t};\n\t\tv(() => s.firstSplitter, () => K()), v(() => s.horizontal, (e) => o(() => {\n\t\t\ta(\"direction-changed\", {\n\t\t\t\thorizontal: e,\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t})), l(() => {\n\t\t\tU(), K(), Z(), $(\"ready\"), C.value = !0;\n\t\t}), c(() => C.value = !1);\n\t\tlet ae = () => {\n\t\t\tlet { class: e, ...t } = p;\n\t\t\treturn i(\"div\", {\n\t\t\t\tref: S,\n\t\t\t\tclass: [E.value, e],\n\t\t\t\t...t\n\t\t\t}, h.default?.());\n\t\t};\n\t\treturn d(\"panes\", y), d(\"indexedPanes\", b), d(\"horizontal\", e(() => s.horizontal)), d(\"requestUpdate\", q), d(\"onPaneAdd\", Y), d(\"onPaneRemove\", X), d(\"onPaneClick\", P), (e, n) => (u(), t(m(ae)));\n\t}\n}), b = {\n\t__name: \"pane\",\n\tprops: {\n\t\tsize: { type: [Number, String] },\n\t\tminSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0\n\t\t},\n\t\tmaxSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 100\n\t\t}\n\t},\n\tsetup(t) {\n\t\tlet i = t, o = a(\"requestUpdate\"), d = a(\"onPaneAdd\"), m = a(\"horizontal\"), g = a(\"onPaneRemove\"), _ = a(\"onPaneClick\"), y = r()?.uid, b = a(\"indexedPanes\"), x = e(() => b.value[y]), S = f(null), C = e(() => {\n\t\t\tlet e = isNaN(i.size) || i.size === void 0 ? 0 : parseFloat(i.size);\n\t\t\treturn Math.max(Math.min(e, T.value), w.value);\n\t\t}), w = e(() => {\n\t\t\tlet e = parseFloat(i.minSize);\n\t\t\treturn isNaN(e) ? 0 : e;\n\t\t}), T = e(() => {\n\t\t\tlet e = parseFloat(i.maxSize);\n\t\t\treturn isNaN(e) ? 100 : e;\n\t\t}), E = e(() => {\n\t\t\tlet e = x.value?.size ?? (i.size === void 0 ? void 0 : C.value);\n\t\t\treturn e === void 0 ? \"\" : `${m.value ? \"height\" : \"width\"}: ${e}%`;\n\t\t});\n\t\treturn v(() => C.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tsize: e\n\t\t})), v(() => w.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmin: e\n\t\t})), v(() => T.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmax: e\n\t\t})), l(() => {\n\t\t\td({\n\t\t\t\tid: y,\n\t\t\t\tel: S.value,\n\t\t\t\tmin: w.value,\n\t\t\t\tmax: T.value,\n\t\t\t\tgivenSize: i.size === void 0 ? null : C.value,\n\t\t\t\tsize: C.value\n\t\t\t});\n\t\t}), c(() => g(y)), (e, t) => (u(), n(\"div\", {\n\t\t\tref_key: \"paneEl\",\n\t\t\tref: S,\n\t\t\tclass: \"splitpanes__pane\",\n\t\t\tonClick: t[0] ||= (t) => h(_)(t, e._.uid),\n\t\t\tstyle: s(E.value)\n\t\t}, [p(e.$slots, \"default\")], 4));\n\t}\n};\n//#endregion\nexport { b as Pane, y as Splitpanes };\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as isRouteComponent, c as diagnostics, g as isESModule, h as isArray, p as assign, r as matchedRouteKey, u as createRouterError } from \"./useApi-CROJJdhE.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && diagnostics.VUE_ROUTER_R0080({ text: \"\" + text });\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\tdiagnostics.VUE_ROUTER_R0070({\n\t\t\tto,\n\t\t\tfrom\n\t\t});\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0040({ el: position.el });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tdiagnostics.VUE_ROUTER_R0041({ el: position.el });\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && diagnostics.VUE_ROUTER_R0042({ el: position.el });\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tconst fnName = name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\";\n\t\t\tdiagnostics.VUE_ROUTER_R0020({ fn: fnName });\n\t\t}\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) diagnostics.VUE_ROUTER_R0021();\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\tdiagnostics.VUE_ROUTER_R0022({ fn: \"onBeforeRouteLeave\" });\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\tdiagnostics.VUE_ROUTER_R0022({ fn: \"onBeforeRouteUpdate\" });\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst guardInfo = {\n\t\t\t\tname: guard.name,\n\t\t\t\tguard: guard.toString()\n\t\t\t};\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0023(guardInfo);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0023(guardInfo);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tdiagnostics.VUE_ROUTER_R0025();\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) diagnostics.VUE_ROUTER_R0024({\n\t\t\tfrom: from.fullPath,\n\t\t\tto: to.fullPath\n\t\t});\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) diagnostics.VUE_ROUTER_R0026({ path: record.path });\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0027({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path,\n\t\t\t\t\t\treceived: String(rawComponent)\n\t\t\t\t\t});\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0028({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0029({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0030({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, isBrowser as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { C as isSameRouteLocation, E as parseURL, F as isBrowser, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-Bpr7ZAVB.js\";\nimport { a as routerKey, c as diagnostics, d as isNavigationFailure, f as applyToParams, h as isArray, i as routeLocationKey, l as NavigationFailureType, n as useRouter, o as routerViewLocationKey, p as assign, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as createRouterError, v as mergeOptions, y as noop } from \"./useApi-CROJJdhE.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0120({ cause: err });\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) diagnostics.VUE_ROUTER_R0121();\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) diagnostics.VUE_ROUTER_R0110({\n\t\tbase,\n\t\tsuggestion: base.replace(/#.*$/, \"#\")\n\t});\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) diagnostics.VUE_ROUTER_R0090({\n\t\t\t\tname: key.name,\n\t\t\t\tpath: record.path\n\t\t\t});\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0100({\n\t\t\t\t\t\tparams: invalidParams.join(\"\\\", \\\"\"),\n\t\t\t\t\t\tinherited: isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) diagnostics.VUE_ROUTER_R0101({ path });\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0102({\n\t\t\talias: b.record.path,\n\t\t\toriginal: a.record.path,\n\t\t\tname: key.name\n\t\t});\n\t\treturn;\n\t}\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0102({\n\t\t\talias: b.record.path,\n\t\t\toriginal: a.record.path,\n\t\t\tname: key.name\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) diagnostics.VUE_ROUTER_R0103({ name: String(parent.record.name) });\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0104({\n\t\t\tpath: record.record.path,\n\t\t\tname: key.name,\n\t\t\tparent: parent.record.path\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) diagnostics.VUE_ROUTER_R0105({\n\t\t\tancestor: insertionAncestor.record.path,\n\t\t\trecord: matcher.record.path\n\t\t});\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) diagnostics.VUE_ROUTER_R0050({ to });\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\tdiagnostics.VUE_ROUTER_R0060({ comp });\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) diagnostics.VUE_ROUTER_R0001({ name: String(parentOrRoute) });\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0002({ name: String(name) });\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) diagnostics.VUE_ROUTER_R0003({\n\t\t\t\t\tlocation: rawLocation,\n\t\t\t\t\thref\n\t\t\t\t});\n\t\t\t\telse if (!matchedRoute.matched.length) diagnostics.VUE_ROUTER_R0004({ path: rawLocation });\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\tdiagnostics.VUE_ROUTER_R0005({ rawLocation });\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) diagnostics.VUE_ROUTER_R0006({ path: rawLocation.path });\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) diagnostics.VUE_ROUTER_R0007({ hash });\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) diagnostics.VUE_ROUTER_R0003({\n\t\t\t\tlocation: rawLocation,\n\t\t\t\thref\n\t\t\t});\n\t\t\telse if (!matchedRoute.matched.length) diagnostics.VUE_ROUTER_R0004({ path: rawLocation.path != null ? rawLocation.path : rawLocation });\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\tdiagnostics.VUE_ROUTER_R0008({\n\t\t\t\t\ttarget: JSON.stringify(newTargetLocation, null, 2),\n\t\t\t\t\tto: to.fullPath\n\t\t\t\t});\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\tdiagnostics.VUE_ROUTER_R0009({\n\t\t\t\t\t\t\tfrom: from.fullPath,\n\t\t\t\t\t\t\tto: toLocation.fullPath\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0010();\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => to === currentRoute.value && position && scrollToPosition(position)).catch((err) => to === currentRoute.value && triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0011({ cause: err });\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\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-TgcZd4AI.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-wdIzZwir.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.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-51427d61\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-DavgjaFX.mjs.map\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","/*!\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/NcAppNavigation-OHw55TTZ.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-g8ubWhoz.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.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 const shouldActivateFocusTrap = computed(() => isMobile.value && open.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(shouldActivateFocusTrap, () => {\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 (shouldActivateFocusTrap.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\": __props.ariaLabel || void 0,\n \"aria-labelledby\": __props.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-1344f70d\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-g57j16pB.mjs.map\n","import '../assets/NcAppNavigationCaption-ggcWspH2.css';\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, createElementBlock, createVNode, normalizeProps, guardReactiveProps, renderSlot, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f0e411c2\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-VjSWJ8R4.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-DZEDRf0t.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-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.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 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 setup() {\n return { isLegacy34 };\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-6926a0b8\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-CGTllrXj.mjs.map\n","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-BZFdtdJL.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-BXR0sWNu.mjs.map\n","import '../assets/NcActionButton-DLer-aUY.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, normalizeStyle, toDisplayString, createCommentVNode, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of `<input type=\"radio\">`\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the <button>\n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event - The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"aria-label\", \"disabled\", \"title\", \"type\"];\nconst _hoisted_3 = { class: \"action-button__longtext-wrapper\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"action-button__name\"\n};\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-button__text\"\n};\nconst _hoisted_7 = [\"textContent\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"action-button__pressed-icon material-design-icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"button\", mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: [\"action-button button-vue\", {\n \"action-button--active\": $options.isChecked,\n focusable: $options.isFocusable\n }],\n disabled: $props.disabled,\n title: _ctx.title,\n type: $options.nativeType\n }, $options.buttonAttributes, {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args))\n }), [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([[_ctx.isIconUrl ? \"action-button__icon--url\" : _ctx.icon], \"action-button__icon\"]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null }),\n \"aria-hidden\": \"true\"\n }, null, 6)\n ], true),\n createElementVNode(\"span\", _hoisted_3, [\n _ctx.name ? (openBlock(), createElementBlock(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true),\n _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-button__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n $props.description ? (openBlock(), createElementBlock(\"span\", {\n key: 3,\n class: \"action-button__description\",\n textContent: toDisplayString($props.description)\n }, null, 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ]),\n $props.isMenu ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"action-button__menu-icon\",\n directional: \"\",\n path: $setup.mdiChevronRight\n }, null, 8, [\"path\"])) : $options.isChecked ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n path: $setup.mdiCheck,\n class: \"action-button__pressed-icon\"\n }, null, 8, [\"path\"])) : $options.isChecked === false ? (openBlock(), createElementBlock(\"span\", _hoisted_8)) : createCommentVNode(\"\", true),\n createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6c2daf4e\"]]);\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-BO5T5ePT.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-BZ1xj6Xi.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-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-CGTllrXj.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.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 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 setup() {\n return { isLegacy34 };\n },\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-cfbd3794\"]]);\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 {(event: PointerEvent) => void} [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-fcab058b\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-CDeYtA3E.mjs.map\n","import '../assets/NcAppNavigationNew-Bn8zj5lM.css';\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n components: {\n NcButton\n },\n props: {\n /**\n * Id of the button\n */\n buttonId: {\n type: String,\n required: false,\n default: \"\"\n },\n /**\n * Disabled state of the button\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Main text of the button\n */\n text: {\n type: String,\n required: true\n },\n /**\n * The color variant to use.\n *\n * @default 'primary'\n */\n variant: {\n type: String,\n default: \"primary\",\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\"].indexOf(value) !== -1;\n }\n }\n },\n emits: [\"click\"]\n};\nconst _hoisted_1 = { class: \"app-navigation-new\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcButton, {\n id: $props.buttonId,\n disabled: $props.disabled,\n variant: $props.variant,\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\"))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.text), 1)\n ]),\n _: 3\n }, 8, [\"id\", \"disabled\", \"variant\"])\n ]);\n}\nconst NcAppNavigationNew = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ba6c9df\"]]);\nexport {\n NcAppNavigationNew as N\n};\n//# sourceMappingURL=NcAppNavigationNew-CBNppM7Q.mjs.map\n","import '../assets/NcContent-DX4Rs6Pc.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-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-wdIzZwir.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 - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\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-${__props.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-d13dcb98\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BYh5hWDN.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: __props.active,\n \"counter-bubble__counter--highlighted\": __props.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": __props.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CV0YMrXW.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-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=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = /* @__PURE__ */ Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-wIEKSp2G.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-wIEKSp2G.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps, mergeModels } from \"vue\";\nimport { r as register, x as t40, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t40);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": __props.hideLabel }]),\n for: __props.id\n }, toDisplayString(__props.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: __props.id,\n class: [\"native-datetime-picker__input\", __props.inputClass],\n type: __props.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-B8CMOUnH.mjs.map\n","import '../assets/NcTextArea-BxGe3Lqn.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] 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 });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-Dxzj4zdb.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-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.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\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.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: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.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 __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.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\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.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 __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.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\"])) : __props.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(__props.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-5Sg6EUP6.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { r as register, b as t51, c as t18, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcInputField } from \"./NcInputField-5Sg6EUP6.mjs\";\nregister(t18, t51);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs.map\n","\n\n","import { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n *\n * Lightweight reactive store shared across views (no Vuex/Pinia dependency).\n */\nimport { reactive } from 'vue'\nimport api from './api.js'\n\n/**\n *\n */\nfunction initialSession() {\n\ttry {\n\t\treturn loadState('absence', 'session')\n\t} catch {\n\t\treturn { uid: null }\n\t}\n}\n\n/**\n *\n */\nfunction initialLeaveTypes() {\n\ttry {\n\t\treturn loadState('absence', 'leaveTypes') || []\n\t} catch {\n\t\treturn []\n\t}\n}\n\nexport const store = reactive({\n\tsession: initialSession(),\n\tleaveTypes: initialLeaveTypes(),\n\trequests: [],\n\tbalance: { balances: [] },\n\tloading: false,\n\tselectedId: null,\n\n\t// ---- getters ----\n\tleaveType(id) {\n\t\t// A null/undefined id means the server withheld the leave type (neutral\n\t\t// shared-calendar visibility): show a generic \"Absent\" marker, not \"Unknown\".\n\t\tif (id === null || id === undefined) {\n\t\t\treturn { label: t('absence', 'Absent'), color: '#888', icon: '🌴' }\n\t\t}\n\t\treturn this.leaveTypes.find((t) => t.id === id) || { label: t('absence', 'Unknown'), color: '#888', icon: '❔' }\n\t},\n\t/**\n\t * True when the type is recorded by HR (e.g. sick leave), not self-requested.\n\t *\n\t * @param request\n\t */\n\tisHrRecorded(request) {\n\t\tconst type = this.leaveType(request.typeId)\n\t\treturn type && type.employeeRequestable === false\n\t},\n\t/**\n\t * Whether to show a status chip. HR-recorded leave (sick) that is approved has no\n\t * approval concept, so the \"Approved\" label is hidden as noise.\n\t *\n\t * @param request\n\t */\n\tstatusVisible(request) {\n\t\treturn !(this.isHrRecorded(request) && request.status === 'APPROVED')\n\t},\n\tget enabledLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled)\n\t},\n\t/** Types an employee may self-request (excludes HR-recorded types like sick leave). */\n\tget requestableLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled && t.employeeRequestable)\n\t},\n\n\t// ---- actions ----\n\tasync refreshSession() {\n\t\ttry {\n\t\t\tthis.session = await api.getSession()\n\t\t} catch (e) {\n\t\t\tconsole.error('Absence: failed to refresh session', e)\n\t\t}\n\t},\n\n\tasync loadLeaveTypes() {\n\t\tthis.leaveTypes = await api.listLeaveTypes(false)\n\t},\n\n\tasync loadRequests(params) {\n\t\tthis.loading = true\n\t\ttry {\n\t\t\tthis.requests = await api.listRequests(params)\n\t\t} catch {\n\t\t\tshowError(t('absence', 'Could not load requests'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\n\tasync loadMyBalance(year) {\n\t\tthis.balance = await api.getMyBalance(year)\n\t},\n\n\tasync createRequest(data) {\n\t\tconst created = await api.createRequest(data)\n\t\tshowSuccess(t('absence', 'On its way ✈️'))\n\t\tawait this.refreshSession()\n\t\treturn created\n\t},\n\n\tasync updateRequest(id, data) {\n\t\tconst updated = await api.updateRequest(id, data)\n\t\tshowSuccess(t('absence', 'Request updated'))\n\t\treturn updated\n\t},\n\n\tasync cancelRequest(id) {\n\t\tconst res = await api.cancelRequest(id)\n\t\tshowSuccess(t('absence', 'Request cancelled'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync approveRequest(id, comment) {\n\t\tconst res = await api.approveRequest(id, comment)\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync rejectRequest(id, comment) {\n\t\tconst res = await api.rejectRequest(id, comment)\n\t\tshowSuccess(t('absence', 'Request declined'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tselect(id) {\n\t\tthis.selectedId = id\n\t},\n})\n\n/**\n * Visual metadata for a request status (spec §15.4).\n * `text` uses Nextcloud's contrast-optimised *-text variables so labels stay\n * readable; `tint` is the base semantic colour used for the chip background.\n *\n * @param status\n */\nexport function statusMeta(status) {\n\tswitch (status) {\n\t\tcase 'PENDING':\n\t\t\treturn { label: t('absence', 'Pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏳' }\n\t\tcase 'ESCALATED':\n\t\t\treturn { label: t('absence', 'With HR'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏫' }\n\t\tcase 'APPROVED':\n\t\t\treturn { label: t('absence', 'Approved'), text: 'var(--color-success-text)', tint: 'var(--color-success)', icon: '✅' }\n\t\tcase 'REJECTED':\n\t\t\treturn { label: t('absence', 'Declined'), text: 'var(--color-error-text)', tint: 'var(--color-error)', icon: '✋' }\n\t\tcase 'CANCELLED':\n\t\t\treturn { label: t('absence', 'Cancelled'), text: 'var(--color-text-maxcontrast)', tint: 'var(--color-text-maxcontrast)', icon: '🚫' }\n\t\tcase 'WITHDRAWAL_PENDING':\n\t\t\treturn { label: t('absence', 'Withdrawal pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '↩️' }\n\t\tdefault:\n\t\t\treturn { label: status, text: 'var(--color-main-text)', tint: 'var(--color-text-maxcontrast)', icon: '•' }\n\t}\n}\n","\n\n\n\n\n\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, h, reactive, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { createDisposableDirective, reactiveOmit, toRefs as toRefs$1, useToggle } from \"@vueuse/shared\";\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} });\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} });\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = createDisposableDirective({ mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} });\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width, height]) => handler({\n\t\twidth,\n\t\theight\n\t}));\n} });\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementVisibility(target, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tif (options === null || options === void 0 ? void 0 : options.controls) {\n\t\t\tconst state = useElementVisibility(el, options);\n\t\t\twatch(state.isVisible, () => handler(state), { immediate: true });\n\t\t} else watch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} });\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} });\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"immediate\",\n\t\t\"interval\"\n\t]\n});\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* @__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn createDisposableDirective((el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t});\n}\nconst vScrollLock = onScrollLock();\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };\n","const directive = {\n mounted(el) {\n el.focus();\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // URL that begins with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting, UrlOpenSyms);\n\n // Closing bracket component. This character WILL be included in the URL.\n // Must come after qsNonAccepting (which includes all close-bracket tokens)\n // so that CLOSE -> Url wins over CLOSE -> UrlOpenSyms.\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import escapeHTML from \"escape-html\";\nimport { Options, tokenize } from \"linkifyjs\";\nfunction linkifyString(str) {\n const options = new Options({\n defaultProtocol: \"https\",\n target: \"_blank\",\n className: \"external linkified\",\n attributes: {\n rel: \"nofollow noopener noreferrer\"\n }\n }, defaultRender);\n const tokens = tokenize(str);\n const result = [];\n for (const token of tokens) {\n if (token.t === \"nl\" && options.get(\"nl2br\")) {\n result.push(\"
\\n\");\n } else if (!token.isLink || !options.check(token)) {\n result.push(escapeHTML(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result.join(\"\");\n}\nfunction escapeAttr(href) {\n return href.replace(/\"/g, \""\");\n}\nfunction attributesToString(attributes) {\n const result = [];\n for (const attr in attributes) {\n const val = attributes[attr] + \"\";\n result.push(`${attr}=\"${escapeAttr(val)}\"`);\n }\n return result.join(\" \");\n}\nfunction defaultRender({ tagName, attributes, content }) {\n return `<${tagName} ${attributesToString(attributes)}>${escapeHTML(content)}`;\n}\nconst directive = function(el, { value }) {\n if (value?.linkify === true) {\n el.innerHTML = linkifyString(value.text);\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, inject, withDirectives, openBlock, createElementBlock, createTextVNode, toDisplayString, unref } from \"vue\";\nimport directive from \"../directives/Linkify/index.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarHeader\",\n props: {\n name: {},\n title: {},\n linkify: { type: Boolean }\n },\n setup(__props) {\n const headerRef = inject(\"NcAppSidebar:header:ref\");\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"h2\", {\n ref_key: \"headerRef\",\n ref: headerRef,\n tabindex: \"-1\",\n title: __props.title\n }, [\n createTextVNode(toDisplayString(__props.name), 1)\n ], 8, _hoisted_1)), [\n [unref(directive), { text: __props.name, linkify: __props.linkify }]\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map\n","import '../assets/NcEmptyContent-DJMDuGVz.css';\nimport { defineComponent, openBlock, createElementBlock, unref, renderSlot, createCommentVNode, createTextVNode, toDisplayString } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"empty-content__icon\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = {\n key: 2,\n class: \"empty-content__description\"\n};\nconst _hoisted_5 = {\n key: 3,\n class: \"empty-content__action\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcEmptyContent\",\n props: {\n description: { default: \"\" },\n name: { default: \"\" }\n },\n setup(__props) {\n const nameId = createElementId();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n \"aria-labelledby\": unref(nameId),\n class: \"empty-content\",\n role: \"note\"\n }, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n __props.name !== \"\" || _ctx.$slots.name ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n id: unref(nameId),\n class: \"empty-content__name\"\n }, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString(__props.name), 1)\n ], true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true),\n __props.description !== \"\" || _ctx.$slots.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.action ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"action\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n };\n }\n});\nconst NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8609a4c1\"]]);\nexport {\n NcEmptyContent as N\n};\n//# sourceMappingURL=NcEmptyContent-CGAPqk4S.mjs.map\n","import '../assets/NcAppSidebar-oJQ8kUb0.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\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$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$4(_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 dock-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$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\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$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\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 star-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$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\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$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\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 star-outline-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$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value,\n [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: __props.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(__props.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_OCROY\";\nconst sidebarTabsButton_legacy = \"_sidebarTabsButton_legacy_e9-y9\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_S48M1\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_GZRY8\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_ZDmkU\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_y6cLW\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v9SPG\",\n sidebarTabsButton,\n sidebarTabsButton_legacy,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active,\n isLegacy34\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: normalizeClass([\"app-sidebar-tabs__nav\", { \"app-sidebar-tabs__nav--legacy\": $data.isLegacy34 }]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 34)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e74d1502\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\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 * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n forceMenu: $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"forceMenu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n forceTabs: $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"forceTabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e8979b7f\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-C8YzAzrZ.mjs.map\n","import '../assets/NcAppSidebarTab-Xd3HTDbw.css';\nimport { openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppSidebarTab\",\n inject: [\"registerTab\", \"unregisterTab\", \"getActiveTab\", \"isTablistShown\"],\n props: {\n /**\n * Unique id of the sidebar tab\n */\n id: {\n type: String,\n required: true\n },\n /**\n * Tab name in navigation\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Tab icon's html class in navigation. Used if #icon slot is not provided\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Tab order in navigation. If not provided, name is used.\n */\n order: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"bottomReached\",\n \"scroll\"\n ],\n expose: [\"id\", \"name\", \"icon\", \"order\", \"renderIcon\"],\n computed: {\n /**\n * Is the current tab an active tab, that should be shown?\n *\n * @return {boolean}\n */\n isActive() {\n return this.getActiveTab() === this.id;\n }\n },\n created() {\n this.registerTab(this);\n },\n beforeUnmount() {\n this.unregisterTab(this.id);\n },\n methods: {\n onScroll(event) {\n if (this.$el.scrollHeight - this.$el.scrollTop === this.$el.clientHeight) {\n this.$emit(\"bottomReached\", event);\n }\n this.$emit(\"scroll\", event);\n },\n /**\n * Render tab's icon slot if any\n *\n * @return {import('vue').VNode[]}\n */\n renderIcon() {\n return this.$slots.icon?.();\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"role\", \"tabindex\"];\nconst _hoisted_2 = { class: \"hidden-visually\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"section\", {\n id: `tab-${$props.id}`,\n \"aria-hidden\": !$options.isActive,\n \"aria-label\": $options.isTablistShown() ? void 0 : $props.name,\n \"aria-labelledby\": $options.isTablistShown() ? `tab-button-${$props.id}` : void 0,\n class: normalizeClass([\"app-sidebar__tab\", { \"app-sidebar__tab--active\": $options.isActive }]),\n role: $options.isTablistShown() ? \"tabpanel\" : void 0,\n tabindex: $options.isTablistShown() ? 0 : -1,\n onScroll: _cache[0] || (_cache[0] = (...args) => $options.onScroll && $options.onScroll(...args))\n }, [\n createElementVNode(\"h3\", _hoisted_2, toDisplayString($props.name), 1),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 42, _hoisted_1);\n}\nconst NcAppSidebarTab = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-dba10798\"]]);\nexport {\n NcAppSidebarTab as N\n};\n//# sourceMappingURL=NcAppSidebarTab-DOSDDbGA.mjs.map\n","import '../assets/autolink-XS-VDSVB.css';\nimport { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visitParents, SKIP } from \"unist-util-visit-parents\";\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nconst _hoisted_1 = [\"href\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextExternalLink\",\n props: {\n href: {},\n decorateExternal: { type: Boolean, default: false }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"a\", {\n href: __props.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: normalizeClass([_ctx.$style.externalLink, {\n [_ctx.$style.externalLink_decorated]: __props.decorateExternal\n }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.href), 1)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst externalLink = \"_externalLink_d-mCx\";\nconst externalLink_decorated = \"_externalLink_decorated_W3wuz\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_ZJnaR\",\n externalLink,\n externalLink_decorated\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRichTextExternalLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visitParents(tree, (node) => node.type === \"text\", (node, ancestors) => {\n if (ancestors.some((ancestor) => ancestor.type === \"link\" || ancestor.type === \"linkReference\")) {\n return;\n }\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node) ?? 0;\n const parsed = parseUrl(node.value);\n const parsedNodes = typeof parsed === \"string\" ? [u(\"text\", parsed)] : parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n parent.children.splice(index, 1, ...parsedNodes);\n return [SKIP, index + parsedNodes.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcRichTextExternalLink, props: { href: href.trim(), decorateExternal: true } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n NcRichTextExternalLink as N,\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink-DrIurosL.mjs.map\n","import { l as logger } from \"../../chunks/logger-D3RVzcfQ.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { r as register, t as t3, a as t } from \"./_l10n-wdIzZwir.mjs\";\nregister(t3);\nclass Color {\n /**\n * @param r - The red value\n * @param g - The green value\n * @param b - The blue value\n * @param name - The name of the color\n */\n constructor(r, g, b, name) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.name = name;\n this.r = Math.min(r, 255);\n this.g = Math.min(g, 255);\n this.b = Math.min(b, 255);\n this.name = name;\n }\n r;\n g;\n b;\n name;\n /**\n * The hexadecimal color string.\n */\n get color() {\n const toHex = (int) => `00${int.toString(16)}`.slice(-2);\n return `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`;\n }\n}\nfunction calculateStepIncrement(steps, color1, color2) {\n return {\n r: (color2.r - color1.r) / steps,\n g: (color2.g - color1.g) / steps,\n b: (color2.b - color1.b) / steps\n };\n}\nfunction mixPalette(steps, color1, color2) {\n const palette = [];\n palette.push(color1);\n const increment = calculateStepIncrement(steps, color1, color2);\n for (let i = 1; i < steps; i++) {\n const r = Math.floor(color1.r + increment.r * i);\n const g = Math.floor(color1.g + increment.g * i);\n const b = Math.floor(color1.b + increment.b * i);\n palette.push(new Color(r, g, b));\n }\n return palette;\n}\nconst COLOR_RED = new Color(182, 70, 157, t(\"Purple\"));\nconst COLOR_YELLOW = new Color(221, 203, 85, t(\"Gold\"));\nconst COLOR_BLUE = new Color(0, 130, 201, t(\"Nextcloud blue\"));\nconst COLOR_BLACK = new Color(0, 0, 0, t(\"Black\"));\nconst COLOR_WHITE = new Color(255, 255, 255, t(\"White\"));\nconst defaultPalette = [\n COLOR_RED,\n new Color(\n ...[191, 103, 139],\n t(\"Rosy brown\")\n // TRANSLATORS: A color name for RGB(191, 103, 139)\n ),\n new Color(\n ...[201, 136, 121],\n t(\"Feldspar\")\n // TRANSLATORS: A color name for RGB(201, 136, 121)\n ),\n new Color(\n ...[211, 169, 103],\n t(\"Whiskey\")\n // TRANSLATORS: A color name for RGB(211, 169, 103)\n ),\n COLOR_YELLOW,\n new Color(\n ...[165, 184, 114],\n t(\"Olivine\")\n // TRANSLATORS: A color name for RGB(165, 184, 114)\n ),\n new Color(\n ...[110, 166, 143],\n t(\"Acapulco\")\n // TRANSLATORS: A color name for RGB(110, 166, 143)\n ),\n new Color(\n ...[55, 148, 172],\n t(\"Boston Blue\")\n // TRANSLATORS: A color name for RGB(55, 148, 172)\n ),\n COLOR_BLUE,\n new Color(\n ...[45, 115, 190],\n t(\"Mariner\")\n // TRANSLATORS: A color name for RGB(45, 115, 190)\n ),\n new Color(\n ...[91, 100, 179],\n t(\"Blue Violet\")\n // TRANSLATORS: A color name for RGB(91, 100, 179)\n ),\n new Color(\n ...[136, 85, 168],\n t(\"Deluge\")\n // TRANSLATORS: A color name for RGB(136, 85, 168)\n )\n];\nfunction generatePalette(steps) {\n const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);\n const palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE);\n const palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED);\n return palette1.concat(palette2).concat(palette3);\n}\nexport {\n Color as C,\n COLOR_BLACK as a,\n COLOR_WHITE as b,\n defaultPalette as d,\n generatePalette as g\n};\n//# sourceMappingURL=colors-Cv9F-jWS.mjs.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors-Cv9F-jWS.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble-BeGb2xGc.css';\nimport { generateUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuest ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ?? checkIfDarkTheme(document.body) ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}?guestFallback=true`, {\n user,\n size\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs.map\n","import '../assets/NcUserStatusIcon-B3aHoBAd.css';\nimport { defineComponent, useModel, computed, watch, openBlock, createElementBlock, normalizeClass, createCommentVNode, mergeModels } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, Q as t52, R as t11, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst awaySvg = '\\n\\n\t\\n\\n';\nconst busySvg = '\\n\\n\t\\n\\n';\nconst dndSvg = '\\n\\n\t\\n\\n';\nconst invisibleSvg = '\\n\\n\t\\n\\n';\nconst onlineSvg = '\\n\\n\t\\n\\n';\nregister(t52);\nregister(t11);\nfunction getUserStatusText(status) {\n switch (status) {\n case \"away\":\n return t(\"away\");\n // TRANSLATORS: User status if the user is currently away from keyboard\n case \"busy\":\n return t(\"busy\");\n case \"dnd\":\n return t(\"do not disturb\");\n case \"online\":\n return t(\"online\");\n case \"invisible\":\n return t(\"invisible\");\n case \"offline\":\n return t(\"offline\");\n default:\n return status;\n }\n}\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserStatusIcon\",\n props: /* @__PURE__ */ mergeModels({\n user: { default: void 0 },\n ariaHidden: { type: [Boolean, String], default: false }\n }, {\n \"status\": {},\n \"statusModifiers\": {}\n }),\n emits: [\"update:status\"],\n setup(__props) {\n const status = useModel(__props, \"status\");\n const props = __props;\n const isInvisible = computed(() => status.value && [\"invisible\", \"offline\"].includes(status.value));\n const ariaLabel = computed(() => status.value && (!props.ariaHidden || props.ariaHidden === \"false\") ? t(\"User status: {status}\", { status: getUserStatusText(status.value) }) : void 0);\n watch(() => props.user, async (user) => {\n if (!status.value && user && getCapabilities()?.user_status?.enabled) {\n try {\n const { data } = await axios.get(generateOcsUrl(\"/apps/user_status/api/v1/statuses/{user}\", { user }));\n status.value = data.ocs?.data?.status;\n } catch (error) {\n logger.debug(\"Error while fetching user status\", { error });\n }\n }\n }, { immediate: true });\n const matchSvg = {\n online: onlineSvg,\n away: awaySvg,\n busy: busySvg,\n dnd: dndSvg,\n invisible: invisibleSvg,\n offline: invisibleSvg\n };\n const activeSvg = computed(() => status.value && matchSvg[status.value]);\n return (_ctx, _cache) => {\n return status.value ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"user-status-icon\", {\n \"user-status-icon--invisible\": isInvisible.value\n }]),\n \"aria-hidden\": !ariaLabel.value || void 0,\n \"aria-label\": ariaLabel.value,\n role: \"img\",\n innerHTML: activeSvg.value\n }, null, 10, _hoisted_1)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcUserStatusIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-881a79fb\"]]);\nexport {\n NcUserStatusIcon as N,\n getUserStatusText as g\n};\n//# sourceMappingURL=NcUserStatusIcon-BF5OEQFU.mjs.map\n","import '../assets/NcActionLink-b4Ph5q10.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionLink\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * destionation to link to\n */\n href: {\n type: String,\n required: true,\n validator: (value) => {\n try {\n return new URL(value);\n } catch {\n return value.startsWith(\"#\") || value.startsWith(\"/\");\n }\n }\n },\n /**\n * download the link instead of opening\n */\n download: {\n type: String,\n default: null\n },\n /**\n * target to open the link\n */\n target: {\n type: String,\n default: \"_self\",\n validator: (value) => {\n return value && (!value.startsWith(\"_\") || [\"_blank\", \"_self\", \"_parent\", \"_top\"].indexOf(value) > -1);\n }\n },\n /**\n * Declares a native tooltip when not null\n */\n title: {\n type: String,\n default: null\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"download\", \"href\", \"aria-label\", \"target\", \"title\", \"role\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"action-link__longtext-wrapper\"\n};\nconst _hoisted_4 = { class: \"action-link__name\" };\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = [\"textContent\"];\nconst _hoisted_7 = {\n key: 2,\n class: \"action-link__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"a\", {\n download: $props.download,\n href: $props.href,\n \"aria-label\": _ctx.ariaLabel,\n target: $props.target,\n title: $props.title,\n class: \"action-link focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-link__icon\", [_ctx.isIconUrl ? \"action-link__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1),\n _cache[1] || (_cache[1] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1);\n}\nconst NcActionLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-32f01b7a\"]]);\nexport {\n NcActionLink as N\n};\n//# sourceMappingURL=NcActionLink-BFiaYt9A.mjs.map\n","import '../assets/NcActionRouter-BWXfCfxM.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, renderSlot, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionRouter\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * router-link to prop [https://router.vuejs.org/api/#to](https://router.vuejs.org/api/#to)\n */\n to: {\n type: [String, Object],\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-router__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-router__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-router__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RouterLink = resolveComponent(\"RouterLink\");\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createVNode(_component_RouterLink, {\n \"aria-label\": _ctx.ariaLabel,\n class: \"action-router focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n title: _ctx.title,\n to: $props.to,\n onClick: _ctx.onClick\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-router__icon\", [_ctx.isIconUrl ? \"action-router__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n _cache[0] || (_cache[0] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"role\", \"title\", \"to\", \"onClick\"])\n ], 8, _hoisted_1);\n}\nconst NcActionRouter = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-87267750\"]]);\nexport {\n NcActionRouter as N\n};\n//# sourceMappingURL=NcActionRouter-vYFtIOzD.mjs.map\n","import '../assets/NcActionText-Dzegj6AY.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText-CQ9qwJ0p.mjs.map\n","import '../assets/NcAvatar-Bs7qEhkA.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions-C-wDqSrv.mjs\";\nimport { g as getRoute } from \"./autolink-DrIurosL.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, m as t10, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeStyle, normalizeClass, renderSlot, createCommentVNode, createBlock, withCtx, createSlots, Fragment, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon-BF5OEQFU.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-BFiaYt9A.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-vYFtIOzD.mjs\";\nimport { N as NcActionText } from \"./NcActionText-CQ9qwJ0p.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nregister(t10);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {Record} options - Options for setting the user status\n * @param {string} options.status user's status\n * @param {string} options.message user's message\n * @param {string} options.icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\");\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n menu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `\n\t\t\t\t\t${escape(this.userStatus.icon)}\n\t\t\t\t`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n }\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuOpenState = false;\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n avatarUrl + \" 1x\",\n this.avatarUrlGenerator(this.user, 512) + \" 8x\"\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n let avatarUrl = getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest\n });\n if (user === getCurrentUser()?.uid && typeof oc_userconfig !== \"undefined\") {\n avatarUrl += \"?v=\" + window.oc_userconfig.avatar.version;\n }\n return avatarUrl;\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $options.hasMenu && $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : $options.hasMenu ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n forceMenu: \"\",\n manualOpen: \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e0ae1174\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar-1KxMUN7V.mjs.map\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n","import '../assets/NcListItem-BjeejGlB.css';\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CV0YMrXW.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, withKeys, renderSlot, createTextVNode, toDisplayString, createElementBlock, createCommentVNode, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `
` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\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 * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"dragstart\",\n \"update:menuOpen\"\n ],\n setup() {\n return { isLegacy34 };\n },\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {(event: Event) => void} [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 showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", {\n \"list-item__wrapper--active\": $props.active ?? isActive,\n \"list-item__wrapper--legacy\": $setup.isLegacy34\n }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onDragstart: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"dragstart\", $event)),\n onKeydown: _cache[3] || (_cache[3] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $setup.isLegacy34 ? $props.active ?? isActive : false,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[4] || (_cache[4] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $setup.isLegacy34 ? $props.active ?? isActive : false,\n forceMenu: $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"forceMenu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0e705f5a\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-BliLJpvU.mjs.map\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createRouter, createWebHashHistory } from 'vue-router'\nimport Approvals from './views/Approvals.vue'\nimport HrAbsences from './views/hr/HrAbsences.vue'\nimport HrBalances from './views/hr/HrBalances.vue'\nimport HrExports from './views/hr/HrExports.vue'\nimport HrSickLeave from './views/hr/HrSickLeave.vue'\nimport HrStatistics from './views/hr/HrStatistics.vue'\nimport HrWhosOff from './views/hr/HrWhosOff.vue'\nimport MyLeave from './views/MyLeave.vue'\nimport Team from './views/Team.vue'\n\nconst routes = [\n\t{ path: '/', redirect: '/my' },\n\t{ path: '/my', name: 'my', component: MyLeave },\n\t{ path: '/approvals', name: 'approvals', component: Approvals },\n\t{ path: '/team', name: 'team', component: Team },\n\t{ path: '/hr/absences', name: 'hr-absences', component: HrAbsences },\n\t{ path: '/hr/balances', name: 'hr-balances', component: HrBalances },\n\t{ path: '/hr/statistics', name: 'hr-statistics', component: HrStatistics },\n\t{ path: '/hr/sick-leave', name: 'hr-sick-leave', component: HrSickLeave },\n\t{ path: '/hr/whos-off', name: 'hr-whos-off', component: HrWhosOff },\n\t{ path: '/hr/exports', name: 'hr-exports', component: HrExports },\n\t// Deep link from notifications/activity: open My leave with the request selected.\n\t{ path: '/requests/:id', name: 'request', component: MyLeave, props: true },\n]\n\nexport default createRouter({\n\thistory: createWebHashHistory(),\n\troutes,\n})\n","import { translatePlural as n, translate as t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createApp } from 'vue'\nimport App from './App.vue'\nimport router from './router.js'\n\nconst app = createApp(App)\napp.config.globalProperties.t = t\napp.config.globalProperties.n = n\napp.use(router)\napp.mount('#absence-app')\n"],"names":["getCapabilities","loadState","y","n","r","a","s","p","g","h","_","f","b","e","t","x","S","C","w","T","E","ee","k","A","D","O","i","L","F","$","j","M","N","z","R","P","I","B","o","c","l","u","te","V","H","U","W","G","K","q","J","Y","Z","X","re","ie","ne","Q","v","ae","d","m","isBrowser","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","text","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","base","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","key","isSameRouteLocationParamsValue","isArray","isEquivalentArray","value","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","name","search","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","record","runWithContext","fn","enterCallbackArray","resolve","reject","next","valid","createRouterError","guardReturn","guardCall","err","extractComponentsGuards","matched","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolved","resolvedComponent","isESModule","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","len","recordFrom","recordTo","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","state","fromState","listener","pauseListeners","listen","callback","teardown","index","beforeUnloadListener","history","assign","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","data","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","options","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","subPattern","parse","match","params","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parent","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","mergeOptions","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","children","noop","matcherRef","getRoutes","findInsertionIndex","pickParams","parentMatcher","mergeMetaFields","clearRoutes","newParams","normalized","normalizeRecordProps","propsObject","props","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","inject","routerKey","currentRoute","routeLocationKey","computed","unref","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","preferSingleVNode","vnodes","RouterLink","defineComponent","slots","link","reactive","elClass","getLinkClass","target","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","injectedRoute","routerViewLocationKey","routeToDisplay","injectedDepth","viewDepthKey","depth","initialDepth","matchedRoute","matchedRouteRef","provide","matchedRouteKey","viewRef","ref","watch","instance","oldInstance","_oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","component","vnode","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","applyToParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","error","isNavigationFailure","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","app","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","scrollBehavior","nextTick","started","reactiveRoute","shallowReactive","unmountApp","promise","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","useAppName","useLocalizedAppName","apps","realAppName2","id","register","t27","_sfc_main$1","__props","isMobile","useIsMobile","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","emit","_ctx","_cache","openBlock","createBlock","NcButton","normalizeClass","withCtx","createVNode","NcIconSvgWrapper","mdiArrowRight","NcAppContentDetailsToggle","_export_sfc","browserStorage","getBuilder","instanceName","_sfc_main","Pane","Splitpanes","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createElementBlock","toDisplayString","createCommentVNode","Fragment","withModifiers","withDirectives","createElementVNode","renderSlot","vShow","NcAppContent","NcAppNavigationList","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","t20","_hoisted_1$1","open","useModel","title","$event","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","focusTrap","setHasAppNavigation","warn","appNavigationContainerElement","useTemplateRef","shouldActivateFocusTrap","watchEffect","toggleFocusTrap","subscribe","toggleNavigationByEventBus","createFocusTrap","toggleNavigation","getTrapStack","onUnmounted","unsubscribe","bodyStyles","animationLength","open2","handleEsc","isLegacy34","withKeys","NcAppNavigation","NcActions","actionProps","_value","headingLevel","_component_NcActions","resolveDynamicComponent","createTextVNode","normalizeProps","guardReactiveProps","NcAppNavigationCaption","_hoisted_4","mergeProps","ChevronUp","IconArrowRight","t14","IconClose","newValue","_component_IconArrowRight","_component_NcButton","_component_IconClose","vModelText","NcInputConfirmCancel","ActionGlobalMixin","ActionTextMixin","NC_ACTIONS_CLOSE_MENU","NC_ACTIONS_IS_SEMANTIC_MENU","behavior","mdiCheck","mdiChevronRight","attributes","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_component_NcIconSvgWrapper","normalizeStyle","NcActionButton","_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","ChevronDown","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcLoadingIcon","_sfc_main$4","createElementId","newVal","routerLinkHref","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcAppNavigationIconCollapsible","NcAppNavigationItem","NcAppNavigationNew","t30","contentSvg","navigationSvg","setAppNavigation","hasAppNavigation","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","Teleport","NcContent","humanizedCount","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","NcCounterBubble","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","INJECTION_KEY_THEME","useIsDarkThemeElement","element","toValue","isDarkTheme","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","t40","mergeModels","modelValue","formattedValue","formatValue","formattedMax","formattedMin","getReadableDate","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","input","time","timezoneOffsetSeconds","inputDateWithTimezone","NcDateTimePickerNative","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","ariaDescribedby","ariaDescribedby2","handleInput","mdiAlertCircleOutline","NcTextArea","__emit","inputElement","hasTrailingIcon","isValidLabel","NcInputField","t18","inputFieldInstance","defaultTrailingButtonLabels","NcInputFieldPropNames","propsToForward","sharedProps","createSlots","mdiUndo","mdiClose","initialSession","initialLeaveTypes","store","request","type","api","showError","year","created","showSuccess","updated","res","comment","statusMeta","status","NcModal","NcSelect","NcTextField","NcNoteCard","Send","toIso","generateUrl","makeHolidayChecker","weekdays","parseWeekdays","countWorkingDays","types","today","seen","own","users","payload","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_29","_createBlock","_component_NcModal","_toDisplayString","_component_NcNoteCard","_createVNode","_component_NcSelect","_withCtx","icon","label","_hoisted_11","_component_NcDateTimePickerNative","_component_NcTextField","_Fragment","_createTextVNode","_hoisted_22","_hoisted_24","_hoisted_27","_hoisted_28","_component_NcTextArea","_component_Send","stopClickOutsideMap","vOnClickOutside","binding","capture","stop","onClickOutside","directive","encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","groups","addToGroups","flags","group","flagsForToken","State","nextState","regex","exactOnly","inputs","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","sch","run$1","start","str","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","first","second","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","Options","opts","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","operator","isCallable","option","obj","val","MultiToken","truncate","formatted","protocol","formattedHref","tagName","content","className","rel","eventListeners","createTokenClass","Token","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","linkifyString","escapeHTML","escapeAttr","attributesToString","attr","headerRef","nameId","NcEmptyContent","_sfc_main$5","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$4","IconDockRight","_hoisted_1$4","IconStar","_hoisted_1$3","IconStarOutline","selected","_sfc_main$6","sidebarTabsButton","sidebarTabsButton_legacy","sidebarTabsButton_selected","sidebarTabsButton__name","sidebarTabsButton__icon","sidebarTabsButton__legacyIcon","style0","cssModules","NcAppSidebarTabsButton","tab","active","tabIndex","_component_NcAppSidebarTabsButton","renderList","NcAppSidebarTabs","t15","_sfc_main$7","useIsSmallMobile","isSlotPopulated","menu","menuTrigger","activeTab","_component_IconDockRight","_component_IconStar","_component_IconStarOutline","_component_NcAppSidebarHeader","_component_NcAppSidebarTabs","_component_NcEmptyContent","_directive_focus","resolveDirective","_directive_click_outside","Transition","NcAppSidebar","NcAppSidebarTab","getRoute","removePrefix","prefix","removePrefixes","prefixes","acc","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","getEnabledContactsMenuActions","entry","action","t3","Color","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","COLOR_YELLOW","COLOR_BLUE","generatePalette","palette1","palette2","palette3","hashCode","Md5","finalInt","usernameToColor","username","finalPalette","global","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","in_quote_char","output","idx","normalize_tag","tag_set","module","this","getAvatarUrl","user","size","guestUrl","themeUrl","awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","t52","t11","getUserStatusText","isInvisible","ariaLabel","axios","generateOcsUrl","matchSvg","activeSvg","NcUserStatusIcon","NcActionLink","_component_RouterLink","NcActionRouter","NcActionText","t10","userStatus","userId","capabilities","getCurrentUser","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","initials","filteredChars","filtered","actions","item","escape","emojiIcon","avatarUrl","srcset","userHasAvatar","img","_component_IconDotsHorizontal","_component_NcUserStatusIcon","NcAvatar","AccountGroup","StatusChip","_renderList","ev","_component_NcAvatar","_component_StatusChip","_component_AccountGroup","_normalizeStyle","requested","review","outcome","step","_normalizeClass","LeaveTypeChip","CoveragePanel","RequestStepper","InformationOutline","CommentOutline","History","Check","Close","CancelIcon","formatRange","iso","_component_NcAppSidebar","_component_NcAppSidebarTab","_component_InformationOutline","_component_RequestStepper","_component_LeaveTypeChip","_component_Check","_component_Close","_component_CancelIcon","_component_CoveragePanel","_component_CommentOutline","_component_History","RequestDialog","RequestSidebar","Plus","CalendarAccountOutline","CalendarSearch","ClipboardCheck","ScaleBalance","ChartBar","CalendarMonth","Download","ClipboardPlusOutline","Thermometer","_component_NcContent","_component_NcAppNavigation","_component_NcAppNavigationNew","_component_Plus","_component_NcAppNavigationItem","_component_CalendarAccountOutline","_component_ClipboardCheck","_component_NcCounterBubble","_component_NcAppNavigationCaption","_component_ClipboardPlusOutline","_component_CalendarSearch","_component_ScaleBalance","_component_ChartBar","_component_Thermometer","_component_CalendarMonth","_component_Download","_component_NcAppContent","_component_router_view","_component_RequestSidebar","_component_RequestDialog","NcListItem","range","days","_component_NcListItem","ACTIONABLE","CheckAll","RequestListItem","SkeletonList","reports","_component_SkeletonList","_TransitionGroup","_component_RequestListItem","_component_CheckAll","PAGE_SIZE","STATUSES","thisYear","employee","lt","years","Magnify","row","ent","_component_Magnify","now","NcCheckboxRadioSwitch","max","report","_component_NcCheckboxRadioSwitch","_withModifiers","total","pct","seg","usableW","usableH","ChartLine","LineChart","DonutChart","month","months","_component_ChartLine","_component_LineChart","_component_DonutChart","DAY_MS","ChevronLeft","ChevronRight","CalendarBlank","arr","dt","dow","byUid","monthStart","lastIndex","ids","_component_ChevronLeft","_component_ChevronRight","_resolveDynamicComponent","_component_CalendarBlank","TeamTimeline","_component_TeamTimeline","duration","eased","BalanceRing","_component_BalanceRing","bar","BalanceCard","BarChart","PalmIllustration","sickType","approved","typeMatches","color","buckets","addWorkingDaysByMonth","_component_BalanceCard","_component_BarChart","_component_PalmIllustration","MyLeave","Approvals","Team","HrAbsences","HrBalances","HrStatistics","HrSickLeave","HrWhosOff","HrExports","createApp","App"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,74,75,80,84,88,89,90]} \ No newline at end of file diff --git a/lib/Db/LeaveRequestMapper.php b/lib/Db/LeaveRequestMapper.php index 57439be..546a204 100644 --- a/lib/Db/LeaveRequestMapper.php +++ b/lib/Db/LeaveRequestMapper.php @@ -61,7 +61,10 @@ public function findFiltered(array $filters, ?int $limit = null, ?int $offset = $qb->andWhere($qb->expr()->lte('start_date', $qb->createNamedParameter($filters['to']))); } - $qb->orderBy('start_date', 'DESC'); + // The id tiebreaker keeps the order total: start_date alone is not unique, so + // without it `limit`/`offset` paging (HR's absence list) could repeat or skip + // rows whenever several absences share a start date. + $qb->orderBy('start_date', 'DESC')->addOrderBy('id', 'DESC'); if ($limit !== null) { $qb->setMaxResults($limit); } diff --git a/src/App.vue b/src/App.vue index 322d499..bcd801a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -47,6 +47,11 @@ + + + {{ t('absence', 'Edit') }} - + @@ -86,6 +86,20 @@ + + +

{{ t('absence', 'Cancel this absence for {employee}? They are notified, and it is removed from the calendars. The record itself is kept, marked cancelled.', { employee: detail.employeeUid }) }}

+
+ + {{ t('absence', 'Back') }} + + + {{ t('absence', 'Confirm cancellation') }} + +
+
+
- + :title="seg.title" + :aria-label="selectable ? seg.title : null" + @click="selectable && $emit('select', seg.requestId)"> - +
@@ -115,6 +123,16 @@ export default { components: { NcAvatar, NcButton, NcEmptyContent, ChevronLeft, ChevronRight, CalendarBlank, SkeletonList }, props: { scope: { type: String, default: 'team' }, + // Turn the pills into buttons that open the request. Only set it where the + // viewer may actually read every request in the timeline (HR's "Who's off") — + // elsewhere the calendar can include leave whose detail the API would refuse. + selectable: { type: Boolean, default: false }, + }, + + emits: ['select'], + setup() { + // Expose the module-level reactive store to the template (Options API). + return { store } }, data() { @@ -174,6 +192,7 @@ export default { } const type = store.leaveType(ev.typeId) byUid[ev.employeeUid].segments.push({ + requestId: ev.requestId, left: startIdx * this.dayWidth + 2, width: (endIdx - startIdx + 1) * this.dayWidth - 4, color: type.color, @@ -199,6 +218,12 @@ export default { mounted() { this.load() + // A cancellation made through the sidebar must drop off the timeline. + window.addEventListener('absence:refresh', this.load) + }, + + beforeUnmount() { + window.removeEventListener('absence:refresh', this.load) }, methods: { @@ -382,6 +407,30 @@ $name-w: 180px; ); opacity: 0.9; } + + // As a + @@ -214,6 +232,29 @@ export default { return new Date(iso + 'T00:00:00').toLocaleDateString(undefined, { dateStyle: 'medium' }) }, + /** + * Drill into the individual records behind a row, where they can be + * corrected or cancelled. Rows with no sick leave have nothing to show. + * + * @param {object} row one employee's aggregated figures + */ + openRecords(row) { + if (!row.days) { + return + } + this.$router.push({ + name: 'hr-absences', + query: { + employee: row.employeeUid, + employeeName: row.displayName, + // The report can aggregate several sick types; filter by type only + // when there is exactly one, so nothing gets hidden. + ...(this.types.length === 1 ? { type: this.types[0].id } : {}), + year: this.year, + }, + }) + }, + barWidth(days) { if (!days || this.maxDays <= 0) { return '0' @@ -267,6 +308,28 @@ export default { display: inline-flex; align-items: center; gap: 8px; + + &__link { + background: none; + border: none; + padding: 0; + font: inherit; + color: inherit; + cursor: pointer; + text-align: start; + + &:hover { + text-decoration: underline; + } + } +} + +.row--drillable { + cursor: pointer; + + &:hover { + background: var(--color-background-hover); + } } .bar-col { diff --git a/src/views/hr/HrWhosOff.vue b/src/views/hr/HrWhosOff.vue index 78afc60..381d647 100644 --- a/src/views/hr/HrWhosOff.vue +++ b/src/views/hr/HrWhosOff.vue @@ -9,17 +9,37 @@ {{ t('absence', 'Who\'s off') }}

- +

+ {{ t('absence', 'Select an absence to see its details, or to correct or cancel it.') }} +

+ + +