From f41e1376051d55ad4df3479dd6d958bbc6b10283 Mon Sep 17 00:00:00 2001 From: Daniel Kesselberg Date: Tue, 11 Aug 2026 14:48:58 +0200 Subject: [PATCH] fix(background-jobs): adjust width for when column Assisted-by: ClaudeCode:claude-opus-5 Signed-off-by: Daniel Kesselberg --- css/{main-fCfLS1TP.chunk.css => main-B5AoQMcv.chunk.css} | 2 +- css/serverinfo-main.css | 2 +- js/serverinfo-main.mjs | 2 +- js/serverinfo-main.mjs.map | 2 +- src/components/JobRunsTable.vue | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename css/{main-fCfLS1TP.chunk.css => main-B5AoQMcv.chunk.css} (99%) diff --git a/css/main-fCfLS1TP.chunk.css b/css/main-B5AoQMcv.chunk.css similarity index 99% rename from css/main-fCfLS1TP.chunk.css rename to css/main-B5AoQMcv.chunk.css index 7341c23f..0a839034 100644 --- a/css/main-fCfLS1TP.chunk.css +++ b/css/main-B5AoQMcv.chunk.css @@ -1 +1 @@ -.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}@media only screen and (max-width:512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width:512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-00a99684]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-00a99684]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-00a99684]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-00a99684]{--button-size: var(--clickable-area-large)}.button-vue[data-v-00a99684] *{cursor:pointer}.button-vue[data-v-00a99684]:focus{outline:none}.button-vue[data-v-00a99684]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-00a99684]:disabled *{cursor:default}.button-vue[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-00a99684]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-00a99684]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-00a99684]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-00a99684]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-00a99684]{flex-direction:row-reverse}.button-vue--reverse[data-v-00a99684]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-00a99684]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-00a99684]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-00a99684]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-00a99684] svg{height:16px;width:16px}.button-vue__text[data-v-00a99684]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-00a99684]:empty{display:none}.button-vue[data-v-00a99684]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-00a99684]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-00a99684]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-00a99684]{width:100%}.button-vue[data-v-00a99684]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-00a99684]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-00a99684]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-00a99684]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-00a99684]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-00a99684]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-00a99684]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-00a99684]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-00a99684]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-00a99684]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-00a99684]:active{background-color:var(--color-success)}.button-vue--warning[data-v-00a99684]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-00a99684]:active{background-color:var(--color-warning)}.button-vue--error[data-v-00a99684]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-00a99684]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-00a99684]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-00a99684],.button-vue--legacy.button-vue--success[data-v-00a99684],.button-vue--legacy.button-vue--warning[data-v-00a99684]{color:#fff}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3c357e2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3c357e2d]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3c357e2d],.modal-mask[data-v-3c357e2d] *{box-sizing:border-box}.modal-mask--opaque[data-v-3c357e2d]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3c357e2d]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3c357e2d]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3c357e2d]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-3c357e2d]{padding-inline-start:calc(var(--header-height) * var(--v046d2bb2));text-align:center}}.modal-header .icons-menu[data-v-3c357e2d]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3c357e2d] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3c357e2d] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-3c357e2d],.modal-wrapper .next[data-v-3c357e2d]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,.modal-wrapper .next[data-v-3c357e2d]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3c357e2d]{inset-inline-start:2px}.modal-wrapper .next[data-v-3c357e2d]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3c357e2d]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3c357e2d]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3c357e2d]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3c357e2d]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3c357e2d]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3c357e2d]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3c357e2d]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width:512px)or (max-height:400px)){.modal-wrapper .modal-container[data-v-3c357e2d]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-3c357e2d],.fade-leave-active[data-v-3c357e2d]{transition:opacity .25s}.fade-enter-from[data-v-3c357e2d],.fade-leave-to[data-v-3c357e2d]{opacity:0}.fade-visibility-enter-from[data-v-3c357e2d],.fade-visibility-leave-to[data-v-3c357e2d]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3c357e2d],.modal-in-leave-active[data-v-3c357e2d],.modal-out-enter-active[data-v-3c357e2d],.modal-out-leave-active[data-v-3c357e2d]{transition:opacity .25s}.modal-in-enter-from[data-v-3c357e2d],.modal-in-leave-to[data-v-3c357e2d],.modal-out-enter-from[data-v-3c357e2d],.modal-out-leave-to[data-v-3c357e2d]{opacity:0}.modal-in-enter .modal-container[data-v-3c357e2d],.modal-in-leave-to .modal-container[data-v-3c357e2d]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3c357e2d],.modal-out-leave-to .modal-container[data-v-3c357e2d]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3c357e2d linear var(--v71f7c020) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d]{animation:breath-3c357e2d 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d]{animation-play-state:paused!important}@keyframes progressring-3c357e2d{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3c357e2d{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-23e5cae7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-23e5cae7]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-23e5cae7]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-23e5cae7]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-23e5cae7]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-23e5cae7]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-23e5cae7]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-23e5cae7]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-23e5cae7]{width:100%}.action-item__menutoggle__icon[data-v-23e5cae7]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_bkeq-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_zfWgY.v-popper--theme-nc-popover-9,._ncPopover_zfWgY.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.job-status[data-v-0e5a1326]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status__dot[data-v-0e5a1326]{flex:0 0 auto;width:10px;height:10px;border-radius:10px;background-color:var(--color-text-maxcontrast)}.job-status--succeeded .job-status__dot[data-v-0e5a1326]{background-color:var(--color-success)}.job-status--failed .job-status__dot[data-v-0e5a1326],.job-status--crashed .job-status__dot[data-v-0e5a1326]{background-color:var(--color-error)}.job-details[data-v-c21cb020]{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:0;margin:0}.job-details dt[data-v-c21cb020]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap}.job-details dd[data-v-c21cb020]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.job-details__class[data-v-c21cb020]{font-family:var(--font-face-monospace, monospace);-webkit-user-select:all;user-select:all}table[data-v-0f6631a0]{table-layout:fixed}.status-cell[data-v-0f6631a0]{width:32px}.when-cell[data-v-0f6631a0]{width:150px}.duration-cell[data-v-0f6631a0]{width:90px}.memory-cell[data-v-0f6631a0]{width:110px}.info-cell[data-v-0f6631a0]{width:44px;padding:0}table[data-v-452808c1]{table-layout:fixed}.job-cell[data-v-452808c1]{padding-inline-start:38px}.count-cell[data-v-452808c1]{width:80px}.memory-cell[data-v-452808c1]{width:154px}.stat-tile[data-v-4a64fa3b]{display:grid;grid-template-rows:auto 1fr;gap:2px;padding:10px 12px;border-radius:var(--border-radius);background-color:var(--color-background-hover)}.stat-tile__label[data-v-4a64fa3b]{font-size:.72em;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-maxcontrast)}.stat-tile__value[data-v-4a64fa3b]{font-size:1.25em;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;word-break:break-word}.stat-tile__value--warning[data-v-4a64fa3b]{color:var(--color-warning-text, var(--color-warning))}.stat-tile__value--critical[data-v-4a64fa3b]{color:var(--color-error-text, var(--color-error))}.background-jobs h3[data-v-612ee243]{font-weight:700;margin:16px 0 8px}.chart-wrapper[data-v-6950f64f]{height:200px;width:100%}.diskchart-container[data-v-d52cfcd6]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-d52cfcd6]{flex:1 1 auto;min-width:0}.diskinfo[data-v-d52cfcd6]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-d52cfcd6]{display:contents}.diskinfo__row dt[data-v-d52cfcd6]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-d52cfcd6]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-d52cfcd6]:before,.info-color-label--used[data-v-d52cfcd6]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-d52cfcd6]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-d52cfcd6]:before{background-color:var(--color-primary-element)}@media(width<=1280px){.text-center-mobile[data-v-d52cfcd6]{text-align:center}.diskchart-container[data-v-d52cfcd6]{margin:0 auto}.text-center-mobile .diskinfo[data-v-d52cfcd6]{justify-content:center}}.chart-wrapper[data-v-494041bc]{height:200px;width:100%}._material-design-icon_JPsV1{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_s7kf-{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_s7kf-._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox__item_691pI{border-radius:var(--border-radius-small)!important}._ncFormBox_col_Lt4lg{flex-direction:column}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI{flex:1 1}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_MaIxG{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_E8Xfr{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_8BFGk{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_Gp-TA{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_Gp-TA *{cursor:inherit}._formBoxItem_Gp-TA:has(:disabled){cursor:default;opacity:.5}._formBoxItem_Gp-TA:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_Gp-TA:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_UqZJ1{font-weight:var(--font-weight-default, normal)}._formBoxItem_Gp-TA._formBoxItem_legacy_dP9aJ{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__element_jHCux{color:var(--color-text-maxcontrast)}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__description_UqZJ1{color:inherit}._formBoxItem__content_UKovC{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_jHCux:after{content:"";position:absolute;inset:0}._formBoxItem__description_UqZJ1{color:var(--color-text-maxcontrast)}._formBoxItem__icon_AvkP3{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_v0XYD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_n8432{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_63AMQ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_IKWaj{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_IKWaj svg{height:auto!important}._iconToggleSwitch_IKWaj circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}._material-design-icon_2NWOj{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_P4ub1{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_P4ub1._formGroup_noGap_I25Tm{--form-group-content-gap: 0}._formGroup__label_dvGhm{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rqVc0{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_fnqsg{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_fnqsg._formGroup__content_only_G-Ivq{margin-block-start:0}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.material-design-icon[data-v-353fa414]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-353fa414]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v3a86fec2);--progress-bar-height: var(--v57442460)}.progress-bar--linear[data-v-353fa414]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-353fa414]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-353fa414]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-353fa414]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-353fa414]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-353fa414]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}.resource-usage[data-v-ba447d79]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.resource-usage__header[data-v-ba447d79]{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.temp[data-v-cb3096fd]{font-variant-numeric:tabular-nums}.section h3{font-size:18px}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row--tiles{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;margin:16px 0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%;white-space:normal;overflow-wrap:break-word}.server-info-table th,.server-info-table td{padding:6px;border-bottom:1px solid var(--color-border)}.server-info-table th{color:var(--color-text-maxcontrast)}.server-info-table tr:last-child td{border-bottom:none}.server-info__tag-wrapper{display:flex;flex-wrap:wrap}.server-info__php-extension-tag{display:inline-block;margin:2px;padding:1px 9px;border-radius:16px;border:1px solid var(--color-main-text)} +.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}@media only screen and (max-width:512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width:512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-00a99684]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-00a99684]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-00a99684]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-00a99684]{--button-size: var(--clickable-area-large)}.button-vue[data-v-00a99684] *{cursor:pointer}.button-vue[data-v-00a99684]:focus{outline:none}.button-vue[data-v-00a99684]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-00a99684]:disabled *{cursor:default}.button-vue[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-00a99684]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-00a99684]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-00a99684]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-00a99684]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-00a99684]{flex-direction:row-reverse}.button-vue--reverse[data-v-00a99684]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-00a99684]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-00a99684]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-00a99684]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-00a99684] svg{height:16px;width:16px}.button-vue__text[data-v-00a99684]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-00a99684]:empty{display:none}.button-vue[data-v-00a99684]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-00a99684]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-00a99684]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-00a99684]{width:100%}.button-vue[data-v-00a99684]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-00a99684]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-00a99684]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-00a99684]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-00a99684]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-00a99684]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-00a99684]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-00a99684]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-00a99684]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-00a99684]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-00a99684]:active{background-color:var(--color-success)}.button-vue--warning[data-v-00a99684]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-00a99684]:active{background-color:var(--color-warning)}.button-vue--error[data-v-00a99684]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-00a99684]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-00a99684]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-00a99684],.button-vue--legacy.button-vue--success[data-v-00a99684],.button-vue--legacy.button-vue--warning[data-v-00a99684]{color:#fff}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3c357e2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3c357e2d]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3c357e2d],.modal-mask[data-v-3c357e2d] *{box-sizing:border-box}.modal-mask--opaque[data-v-3c357e2d]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3c357e2d]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3c357e2d]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3c357e2d]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-3c357e2d]{padding-inline-start:calc(var(--header-height) * var(--v046d2bb2));text-align:center}}.modal-header .icons-menu[data-v-3c357e2d]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3c357e2d] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3c357e2d] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-3c357e2d],.modal-wrapper .next[data-v-3c357e2d]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,.modal-wrapper .next[data-v-3c357e2d]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3c357e2d]{inset-inline-start:2px}.modal-wrapper .next[data-v-3c357e2d]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3c357e2d]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3c357e2d]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3c357e2d]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3c357e2d]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3c357e2d]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3c357e2d]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3c357e2d]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width:512px)or (max-height:400px)){.modal-wrapper .modal-container[data-v-3c357e2d]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-3c357e2d],.fade-leave-active[data-v-3c357e2d]{transition:opacity .25s}.fade-enter-from[data-v-3c357e2d],.fade-leave-to[data-v-3c357e2d]{opacity:0}.fade-visibility-enter-from[data-v-3c357e2d],.fade-visibility-leave-to[data-v-3c357e2d]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3c357e2d],.modal-in-leave-active[data-v-3c357e2d],.modal-out-enter-active[data-v-3c357e2d],.modal-out-leave-active[data-v-3c357e2d]{transition:opacity .25s}.modal-in-enter-from[data-v-3c357e2d],.modal-in-leave-to[data-v-3c357e2d],.modal-out-enter-from[data-v-3c357e2d],.modal-out-leave-to[data-v-3c357e2d]{opacity:0}.modal-in-enter .modal-container[data-v-3c357e2d],.modal-in-leave-to .modal-container[data-v-3c357e2d]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3c357e2d],.modal-out-leave-to .modal-container[data-v-3c357e2d]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3c357e2d linear var(--v71f7c020) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d]{animation:breath-3c357e2d 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d]{animation-play-state:paused!important}@keyframes progressring-3c357e2d{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3c357e2d{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-23e5cae7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-23e5cae7]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-23e5cae7]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-23e5cae7]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-23e5cae7]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-23e5cae7]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-23e5cae7]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-23e5cae7]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-23e5cae7]{width:100%}.action-item__menutoggle__icon[data-v-23e5cae7]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_bkeq-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_zfWgY.v-popper--theme-nc-popover-9,._ncPopover_zfWgY.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.job-status[data-v-0e5a1326]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status__dot[data-v-0e5a1326]{flex:0 0 auto;width:10px;height:10px;border-radius:10px;background-color:var(--color-text-maxcontrast)}.job-status--succeeded .job-status__dot[data-v-0e5a1326]{background-color:var(--color-success)}.job-status--failed .job-status__dot[data-v-0e5a1326],.job-status--crashed .job-status__dot[data-v-0e5a1326]{background-color:var(--color-error)}.job-details[data-v-c21cb020]{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:0;margin:0}.job-details dt[data-v-c21cb020]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap}.job-details dd[data-v-c21cb020]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.job-details__class[data-v-c21cb020]{font-family:var(--font-face-monospace, monospace);-webkit-user-select:all;user-select:all}table[data-v-10f09a63]{table-layout:fixed}.status-cell[data-v-10f09a63]{width:32px}.when-cell[data-v-10f09a63]{width:180px}.duration-cell[data-v-10f09a63]{width:90px}.memory-cell[data-v-10f09a63]{width:110px}.info-cell[data-v-10f09a63]{width:44px;padding:0}table[data-v-452808c1]{table-layout:fixed}.job-cell[data-v-452808c1]{padding-inline-start:38px}.count-cell[data-v-452808c1]{width:80px}.memory-cell[data-v-452808c1]{width:154px}.stat-tile[data-v-4a64fa3b]{display:grid;grid-template-rows:auto 1fr;gap:2px;padding:10px 12px;border-radius:var(--border-radius);background-color:var(--color-background-hover)}.stat-tile__label[data-v-4a64fa3b]{font-size:.72em;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-maxcontrast)}.stat-tile__value[data-v-4a64fa3b]{font-size:1.25em;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;word-break:break-word}.stat-tile__value--warning[data-v-4a64fa3b]{color:var(--color-warning-text, var(--color-warning))}.stat-tile__value--critical[data-v-4a64fa3b]{color:var(--color-error-text, var(--color-error))}.background-jobs h3[data-v-612ee243]{font-weight:700;margin:16px 0 8px}.chart-wrapper[data-v-6950f64f]{height:200px;width:100%}.diskchart-container[data-v-d52cfcd6]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-d52cfcd6]{flex:1 1 auto;min-width:0}.diskinfo[data-v-d52cfcd6]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-d52cfcd6]{display:contents}.diskinfo__row dt[data-v-d52cfcd6]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-d52cfcd6]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-d52cfcd6]:before,.info-color-label--used[data-v-d52cfcd6]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-d52cfcd6]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-d52cfcd6]:before{background-color:var(--color-primary-element)}@media(width<=1280px){.text-center-mobile[data-v-d52cfcd6]{text-align:center}.diskchart-container[data-v-d52cfcd6]{margin:0 auto}.text-center-mobile .diskinfo[data-v-d52cfcd6]{justify-content:center}}.chart-wrapper[data-v-494041bc]{height:200px;width:100%}._material-design-icon_JPsV1{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_s7kf-{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_s7kf-._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox__item_691pI{border-radius:var(--border-radius-small)!important}._ncFormBox_col_Lt4lg{flex-direction:column}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI{flex:1 1}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_MaIxG{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_E8Xfr{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_8BFGk{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_Gp-TA{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_Gp-TA *{cursor:inherit}._formBoxItem_Gp-TA:has(:disabled){cursor:default;opacity:.5}._formBoxItem_Gp-TA:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_Gp-TA:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_UqZJ1{font-weight:var(--font-weight-default, normal)}._formBoxItem_Gp-TA._formBoxItem_legacy_dP9aJ{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__element_jHCux{color:var(--color-text-maxcontrast)}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__description_UqZJ1{color:inherit}._formBoxItem__content_UKovC{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_jHCux:after{content:"";position:absolute;inset:0}._formBoxItem__description_UqZJ1{color:var(--color-text-maxcontrast)}._formBoxItem__icon_AvkP3{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_v0XYD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_n8432{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_63AMQ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_IKWaj{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_IKWaj svg{height:auto!important}._iconToggleSwitch_IKWaj circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}._material-design-icon_2NWOj{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_P4ub1{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_P4ub1._formGroup_noGap_I25Tm{--form-group-content-gap: 0}._formGroup__label_dvGhm{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rqVc0{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_fnqsg{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_fnqsg._formGroup__content_only_G-Ivq{margin-block-start:0}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.material-design-icon[data-v-353fa414]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-353fa414]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v3a86fec2);--progress-bar-height: var(--v57442460)}.progress-bar--linear[data-v-353fa414]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-353fa414]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-353fa414]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-353fa414]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-353fa414]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-353fa414]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}.resource-usage[data-v-ba447d79]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.resource-usage__header[data-v-ba447d79]{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.temp[data-v-cb3096fd]{font-variant-numeric:tabular-nums}.section h3{font-size:18px}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row--tiles{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;margin:16px 0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%;white-space:normal;overflow-wrap:break-word}.server-info-table th,.server-info-table td{padding:6px;border-bottom:1px solid var(--color-border)}.server-info-table th{color:var(--color-text-maxcontrast)}.server-info-table tr:last-child td{border-bottom:none}.server-info__tag-wrapper{display:flex;flex-wrap:wrap}.server-info__php-extension-tag{display:inline-block;margin:2px;padding:1px 9px;border-radius:16px;border:1px solid var(--color-main-text)} diff --git a/css/serverinfo-main.css b/css/serverinfo-main.css index 00d8ff86..97e698e2 100644 --- a/css/serverinfo-main.css +++ b/css/serverinfo-main.css @@ -1,2 +1,2 @@ /* extracted by css-entry-points-plugin */ -@import './main-fCfLS1TP.chunk.css'; \ No newline at end of file +@import './main-B5AoQMcv.chunk.css'; \ No newline at end of file diff --git a/js/serverinfo-main.mjs b/js/serverinfo-main.mjs index c3c42bec..96babb13 100644 --- a/js/serverinfo-main.mjs +++ b/js/serverinfo-main.mjs @@ -5,7 +5,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function Zh(t){for(var e=1;e0?t[t.length-1]:null},activateTrap:function(t,e){var n=oi.getActiveTrap(t);e!==n&&oi.pauseTrap(t);var i=t.indexOf(e);i===-1||t.splice(i,1),t.push(e)},deactivateTrap:function(t,e){var n=t.indexOf(e);n!==-1&&t.splice(n,1),oi.unpauseTrap(t)},pauseTrap:function(t){var e=oi.getActiveTrap(t);e?._setPausedState(!0)},unpauseTrap:function(t){var e=oi.getActiveTrap(t);e&&!e._isManuallyPaused()&&e._setPausedState(!1)}},u2=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},c2=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},Os=function(t){return t?.key==="Tab"||t?.keyCode===9},d2=function(t){return Os(t)&&!t.shiftKey},h2=function(t){return Os(t)&&t.shiftKey},Qh=function(t){return setTimeout(t,0)},hs=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:{},Q=F.hasFallback,M=Q===void 0?!1:Q,Z=F.params,rt=Z===void 0?[]:Z,lt=o[T];if(typeof lt=="function"&&(lt=lt.apply(void 0,r2(rt))),lt===!0&&(lt=void 0),!lt){if(lt===void 0||lt===!1)return lt;throw new Error("`".concat(T,"` was specified but was not a node, or did not return a node"))}var ft=lt;if(typeof lt=="string"){try{ft=n.querySelector(lt)}catch(pt){throw new Error("`".concat(T,'` appears to be an invalid selector; error="').concat(pt.message,'"'))}if(!ft&&!M)throw new Error("`".concat(T,"` as selector refers to no known node"))}return ft},u=function(T){var F=T.activeElement;return F?F.shadowRoot&&F.shadowRoot.activeElement!==null?u(F.shadowRoot):F:null},d=function(){var T=c("initialFocus",{hasFallback:!0});if(T===!1)return!1;if(T===void 0||T&&!uu(T,o.tabbableOptions)){var F=u(n);if(l(F)>=0)T=F;else{var Q=s.tabbableGroups[0],M=Q&&Q.firstTabbableNode;T=M||c("fallbackFocus")}}else T===null&&(T=c("fallbackFocus"));if(!T)throw new Error("Your focus-trap needs to have at least one focusable element");return T},f=function(){if(s.containerGroups=s.containers.map(function(T){var F=Mx(T,o.tabbableOptions),Q=t2(T,o.tabbableOptions),M=F.length>0?F[0]:void 0,Z=F.length>0?F[F.length-1]:void 0,rt=Q.find(function(pt){return ko(pt)}),lt=Q.slice().reverse().find(function(pt){return ko(pt)}),ft=!!F.find(function(pt){return Qi(pt)>0});return{container:T,tabbableNodes:F,focusableNodes:Q,posTabIndexesFound:ft,firstTabbableNode:M,lastTabbableNode:Z,firstDomTabbableNode:rt,lastDomTabbableNode:lt,nextTabbableNode:function(pt){var xt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,gt=F.indexOf(pt);return gt<0?xt?Q.slice(Q.indexOf(pt)+1).find(function(Gt){return ko(Gt)}):Q.slice(0,Q.indexOf(pt)).reverse().find(function(Gt){return ko(Gt)}):F[gt+(xt?1:-1)]}}}),s.tabbableGroups=s.containerGroups.filter(function(T){return T.tabbableNodes.length>0}),s.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(s.containerGroups.find(function(T){return T.posTabIndexesFound})&&s.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},p=function(T){if(T!==!1&&T!==u(document)){if(!T||!T.focus){p(d());return}T.focus({preventScroll:!!o.preventScroll}),s.mostRecentlyFocusedNode=T,u2(T)&&T.select()}},y=function(T){var F=c("setReturnFocus",{params:[T]});return F||(F===!1?!1:T)},m=function(T){var F=T.target,Q=T.event,M=T.isBackward,Z=M===void 0?!1:M;F=F||Vr(Q),f();var rt=null;if(s.tabbableGroups.length>0){var lt=l(F,Q),ft=lt>=0?s.containerGroups[lt]:void 0;if(lt<0)Z?rt=s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:rt=s.tabbableGroups[0].firstTabbableNode;else if(Z){var pt=s.tabbableGroups.findIndex(function(Et){var ne=Et.firstTabbableNode;return F===ne});if(pt<0&&(ft.container===F||uu(F,o.tabbableOptions)&&!ko(F,o.tabbableOptions)&&!ft.nextTabbableNode(F,!1))&&(pt=lt),pt>=0){var xt=pt===0?s.tabbableGroups.length-1:pt-1,gt=s.tabbableGroups[xt];rt=Qi(F)>=0?gt.lastTabbableNode:gt.lastDomTabbableNode}else Os(Q)||(rt=ft.nextTabbableNode(F,!1))}else{var Gt=s.tabbableGroups.findIndex(function(Et){var ne=Et.lastTabbableNode;return F===ne});if(Gt<0&&(ft.container===F||uu(F,o.tabbableOptions)&&!ko(F,o.tabbableOptions)&&!ft.nextTabbableNode(F))&&(Gt=lt),Gt>=0){var Pt=Gt===s.tabbableGroups.length-1?0:Gt+1,$t=s.tabbableGroups[Pt];rt=Qi(F)>=0?$t.firstTabbableNode:$t.firstDomTabbableNode}else Os(Q)||(rt=ft.nextTabbableNode(F))}}else rt=c("fallbackFocus");return rt},x=function(T){var F=Vr(T);if(!(l(F,T)>=0)){if(hs(o.clickOutsideDeactivates,T)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}hs(o.allowOutsideClick,T)||T.preventDefault()}},b=function(T){var F=Vr(T),Q=l(F,T)>=0;if(Q||F instanceof Document)Q&&(s.mostRecentlyFocusedNode=F);else{T.stopImmediatePropagation();var M,Z=!0;if(s.mostRecentlyFocusedNode)if(Qi(s.mostRecentlyFocusedNode)>0){var rt=l(s.mostRecentlyFocusedNode),lt=s.containerGroups[rt].tabbableNodes;if(lt.length>0){var ft=lt.findIndex(function(pt){return pt===s.mostRecentlyFocusedNode});ft>=0&&(o.isKeyForward(s.recentNavEvent)?ft+1=0&&(M=lt[ft-1],Z=!1))}}else s.containerGroups.some(function(pt){return pt.tabbableNodes.some(function(xt){return Qi(xt)>0})})||(Z=!1);else Z=!1;Z&&(M=m({target:s.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(s.recentNavEvent)})),p(M||s.mostRecentlyFocusedNode||d())}s.recentNavEvent=void 0},A=function(T){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;s.recentNavEvent=T;var Q=m({event:T,isBackward:F});Q&&(Os(T)&&T.preventDefault(),p(Q))},R=function(T){(o.isKeyForward(T)||o.isKeyBackward(T))&&A(T,o.isKeyBackward(T))},S=function(T){c2(T)&&hs(o.escapeDeactivates,T)!==!1&&(T.preventDefault(),r.deactivate())},N=function(T){var F=Vr(T);l(F,T)>=0||hs(o.clickOutsideDeactivates,T)||hs(o.allowOutsideClick,T)||(T.preventDefault(),T.stopImmediatePropagation())},j=function(){if(s.active){oi.activateTrap(i,r);var T;return o.delayInitialFocus?T=new Promise(function(F){s.delayInitialFocusTimer=Qh(function(){p(d()),F()})}):p(d()),n.addEventListener("focusin",b,!0),n.addEventListener("mousedown",x,{capture:!0,passive:!1}),n.addEventListener("touchstart",x,{capture:!0,passive:!1}),n.addEventListener("click",N,{capture:!0,passive:!1}),n.addEventListener("keydown",R,{capture:!0,passive:!1}),n.addEventListener("keydown",S),T}},U=function(T){s.active&&!s.paused&&r._setSubtreeIsolation(!1),s.adjacentElements.clear(),s.alreadySilent.clear();var F=new Set,Q=new Set,M=Xh(T),Z;try{for(M.s();!(Z=M.n()).done;){var rt=Z.value;F.add(rt);for(var lt=typeof ShadowRoot<"u"&&rt.getRootNode()instanceof ShadowRoot,ft=rt;ft;){F.add(ft);var pt=ft.parentElement,xt=[];pt?xt=pt.children:!pt&<&&(xt=ft.getRootNode().children,pt=ft.getRootNode().host,lt=typeof ShadowRoot<"u"&&pt.getRootNode()instanceof ShadowRoot);var gt=Xh(xt),Gt;try{for(gt.s();!(Gt=gt.n()).done;){var Pt=Gt.value;Q.add(Pt)}}catch($t){gt.e($t)}finally{gt.f()}ft=pt}}}catch($t){M.e($t)}finally{M.f()}F.forEach(function($t){Q.delete($t)}),s.adjacentElements=Q},H=function(){if(s.active)return n.removeEventListener("focusin",b,!0),n.removeEventListener("mousedown",x,!0),n.removeEventListener("touchstart",x,!0),n.removeEventListener("click",N,!0),n.removeEventListener("keydown",R,!0),n.removeEventListener("keydown",S),r},q=function(T){var F=s.mostRecentlyFocusedNode;if(F){var Q=T.some(function(Z){var rt=Array.from(Z.removedNodes);return rt.some(function(lt){return lt===F||typeof lt.contains=="function"&<.contains(F)})});if(Q&&s.containers.some(function(Z){return Z?.isConnected})){f();var M=d();p(M)}}},V=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(q):void 0,et=function(){V&&(V.disconnect(),s.active&&!s.paused&&s.containers.map(function(T){V.observe(T,{subtree:!0,childList:!0})}))};return r={get active(){return s.active},get paused(){return s.paused},activate:function(T){if(s.active)return this;var F=a(T,"onActivate"),Q=a(T,"onPostActivate"),M=a(T,"checkCanFocusTrap"),Z=oi.getActiveTrap(i),rt=!1;if(Z&&!Z.paused){var lt;(lt=Z._setSubtreeIsolation)===null||lt===void 0||lt.call(Z,!1),rt=!0}try{M||f(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=u(n),F?.({trap:r});var ft=function(){M&&f();var xt=function(){r._setSubtreeIsolation(!0),et(),Q?.({trap:r})},gt=j();gt?gt.then(xt):xt()};if(M)return M(s.containers.concat()).then(ft,ft),this;ft()}catch(xt){if(Z===oi.getActiveTrap(i)&&rt){var pt;(pt=Z._setSubtreeIsolation)===null||pt===void 0||pt.call(Z,!0)}throw xt}return this},deactivate:function(T){if(!s.active)return this;var F=Zh({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},T);clearTimeout(s.delayInitialFocusTimer),s.delayInitialFocusTimer=void 0,s.paused||r._setSubtreeIsolation(!1),s.alreadySilent.clear(),H(),s.active=!1,s.paused=!1,et(),oi.deactivateTrap(i,r);var Q=a(F,"onDeactivate"),M=a(F,"onPostDeactivate"),Z=a(F,"checkCanReturnFocus"),rt=a(F,"delayReturnFocus"),lt=a(F,"returnFocus","returnFocusOnDeactivate");Q?.({trap:r});var ft=function(){lt&&p(y(s.nodeFocusedBeforeActivation)),M?.({trap:r})},pt=function(){rt&<?Qh(ft):ft()};return lt&&Z?(Z(y(s.nodeFocusedBeforeActivation)).then(pt,pt),this):(pt(),this)},pause:function(T){return s.active?(s.manuallyPaused=!0,this._setPausedState(!0,T)):this},unpause:function(T){return s.active?(s.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,T)):this},updateContainerElements:function(T){var F=[].concat(T).filter(Boolean);return s.containers=F.map(function(Q){return typeof Q=="string"?n.querySelector(Q):Q}),o.isolateSubtrees&&U(s.containers),s.active&&(f(),s.paused||r._setSubtreeIsolation(!0)),et(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return s.manuallyPaused}},_setPausedState:{value:function(T,F){if(s.paused===T)return this;if(s.paused=T,T){var Q=a(F,"onPause"),M=a(F,"onPostPause");Q?.({trap:r}),H(),r._setSubtreeIsolation(!1),et(),M?.({trap:r})}else{var Z=a(F,"onUnpause"),rt=a(F,"onPostUnpause");Z?.({trap:r});var lt=function(){f();var ft=function(){r._setSubtreeIsolation(!0),et(),rt?.({trap:r})},pt=j();pt?pt.then(ft):ft()};lt()}return this}},_setSubtreeIsolation:{value:function(T){o.isolateSubtrees&&s.adjacentElements.forEach(function(F){var Q;T?o.isolateSubtrees==="aria-hidden"?((F.ariaHidden==="true"||((Q=F.getAttribute("aria-hidden"))===null||Q===void 0?void 0:Q.toLowerCase())==="true")&&s.alreadySilent.add(F),F.setAttribute("aria-hidden","true")):((F.inert||F.hasAttribute("inert"))&&s.alreadySilent.add(F),F.setAttribute("inert",!0)):s.alreadySilent.has(F)||(o.isolateSubtrees==="aria-hidden"?F.removeAttribute("aria-hidden"):F.removeAttribute("inert"))})}}}),r.updateContainerElements(t),r};function er(){return window._nc_focus_trap??=[],window._nc_focus_trap}function p2(){let t=[];return{pause(){t=[...er()];for(const e of t)e.pause()},unpause(){if(t.length===er().length)for(const e of t)e.unpause();t=[]}}}function g2(t,e={}){const n=p2();Ke(t,()=>{Fe(e.disabled)||(Fe(t)?n.pause():n.unpause())}),Wn(()=>{n.unpause()})}const m2=["top","right","bottom","left"],Mh=["start","end"],tf=m2.reduce((t,e)=>t.concat(e,e+"-"+Mh[0],e+"-"+Mh[1]),[]),nr=Math.min,uc=Math.max,v2={left:"right",right:"left",bottom:"top",top:"bottom"};function mm(t,e,n){return uc(t,nr(e,n))}function yo(t,e){return typeof t=="function"?t(e):t}function hi(t){return t.split("-")[0]}function An(t){return t.split("-")[1]}function vm(t){return t==="x"?"y":"x"}function Kc(t){return t==="y"?"height":"width"}function ri(t){const e=t[0];return e==="t"||e==="b"?"y":"x"}function Xc(t){return vm(ri(t))}function ym(t,e,n){n===void 0&&(n=!1);const i=An(t),o=Xc(t),s=Kc(o);let r=o==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(r=Ua(r)),[r,Ua(r)]}function y2(t){const e=Ua(t);return[ja(t),e,ja(e)]}function ja(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const ef=["left","right"],nf=["right","left"],b2=["top","bottom"],_2=["bottom","top"];function w2(t,e,n){switch(t){case"top":case"bottom":return n?e?nf:ef:e?ef:nf;case"left":case"right":return e?b2:_2;default:return[]}}function x2(t,e,n,i){const o=An(t);let s=w2(hi(t),n==="start",i);return o&&(s=s.map(r=>r+"-"+o),e&&(s=s.concat(s.map(ja)))),s}function Ua(t){const e=hi(t);return v2[e]+t.slice(e.length)}function E2(t){var e,n,i,o;return{top:(e=t.top)!=null?e:0,right:(n=t.right)!=null?n:0,bottom:(i=t.bottom)!=null?i:0,left:(o=t.left)!=null?o:0}}function bm(t){return typeof t!="number"?E2(t):{top:t,right:t,bottom:t,left:t}}function $s(t){const{x:e,y:n,width:i,height:o}=t;return{width:i,height:o,top:n,left:e,right:e+i,bottom:n+o,x:e,y:n}}function of(t,e,n){let{reference:i,floating:o}=t;const s=ri(e),r=Xc(e),a=Kc(r),l=hi(e),c=s==="y",u=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,f=i[a]/2-o[a]/2;let p;switch(l){case"top":p={x:u,y:i.y-o.height};break;case"bottom":p={x:u,y:i.y+i.height};break;case"right":p={x:i.x+i.width,y:d};break;case"left":p={x:i.x-o.width,y:d};break;default:p={x:i.x,y:i.y}}const y=An(e);return y&&(p[r]+=f*(y==="end"?1:-1)*(n&&c?-1:1)),p}async function A2(t,e){var n;e===void 0&&(e={});const{x:i,y:o,platform:s,rects:r,elements:a,strategy:l}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=yo(e,t),y=bm(p),m=a[f?d==="floating"?"reference":"floating":d],x=$s(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(m)))==null||n?m:m.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:l})),b=d==="floating"?{x:i,y:o,width:r.floating.width,height:r.floating.height}:r.reference,A=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),R=await(s.isElement==null?void 0:s.isElement(A))&&await(s.getScale==null?void 0:s.getScale(A))||{x:1,y:1},S=$s(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:b,offsetParent:A,strategy:l}):b);return{top:(x.top-S.top+y.top)/R.y,bottom:(S.bottom-x.bottom+y.bottom)/R.y,left:(x.left-S.left+y.left)/R.x,right:(S.right-x.right+y.right)/R.x}}const S2=50,C2=async(t,e,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:s=[],platform:r}=n,a=r.detectOverflow?r:{...r,detectOverflow:A2},l=await(r.isRTL==null?void 0:r.isRTL(e));let c=await r.getElementRects({reference:t,floating:e,strategy:o}),{x:u,y:d}=of(c,i,l),f=i,p=0;const y={};for(let m=0;m({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:o,rects:s,platform:r,elements:a,middlewareData:l}=e,{element:c,padding:u=0}=yo(t,e)||{};if(c==null)return{};const d=bm(u),f={x:n,y:i},p=Xc(o),y=Kc(p),m=await r.getDimensions(c),x=p==="y",b=x?"top":"left",A=x?"bottom":"right",R=x?"clientHeight":"clientWidth",S=s.reference[y]+s.reference[p]-f[p]-s.floating[y],N=f[p]-s.reference[p],j=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c));let U=j?j[R]:0;(!U||!await(r.isElement==null?void 0:r.isElement(j)))&&(U=a.floating[R]||s.floating[y]);const H=S/2-N/2,q=U/2-m[y]/2-1,V=nr(d[b],q),et=nr(d[A],q),T=U-m[y]-et,F=U/2-m[y]/2+H,Q=mm(V,F,T),M=!l.arrow&&An(o)!=null&&F!==Q&&s.reference[y]/2-(FAn(i)===t),...n.filter(i=>An(i)!==t)]:n.filter(i=>hi(i)===i)).filter(i=>t?An(i)===t||(e?ja(i)!==i:!1):!0)}const R2=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,i,o;const{rects:s,middlewareData:r,placement:a,platform:l,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:f=tf,autoAlignment:p=!0,...y}=yo(t,e),m=d!==void 0||f===tf?k2(d||null,p,f):f,x=((n=r.autoPlacement)==null?void 0:n.index)||0,b=m[x];if(b==null)return{};if(a!==b)return{reset:{placement:m[0]}};const A=await l.detectOverflow(e,y),R=ym(b,s,await(l.isRTL==null?void 0:l.isRTL(c.floating))),S=[A[hi(b)],A[R[0]],A[R[1]]],N=[...((i=r.autoPlacement)==null?void 0:i.overflows)||[],{placement:b,overflows:S}],j=m[x+1];if(j)return{data:{index:x+1,overflows:N},reset:{placement:j}};const U=N.map(q=>{const V=An(q.placement);return[q.placement,V&&u?q.overflows.slice(0,2).reduce((et,T)=>et+T,0):q.overflows[0],q.overflows]}).sort((q,V)=>q[1]-V[1]),H=((o=U.filter(q=>q[2].slice(0,An(q[0])?2:3).every(V=>V<=0))[0])==null?void 0:o[0])||U[0][0];return H!==a?{data:{index:x+1,overflows:N},reset:{placement:H}}:{}}}},P2=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:o,middlewareData:s,rects:r,initialPlacement:a,platform:l,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:m=!0,...x}=yo(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const b=hi(o),A=ri(a),R=hi(a)===a,S=await(l.isRTL==null?void 0:l.isRTL(c.floating)),N=f||(R||!m?[Ua(a)]:y2(a)),j=y!=="none";!f&&j&&N.push(...x2(a,m,y,S));const U=[a,...N],H=await l.detectOverflow(e,x),q=[];let V=((i=s.flip)==null?void 0:i.overflows)||[];if(u&&q.push(H[b]),d){const Q=ym(o,r,S);q.push(H[Q[0]],H[Q[1]])}if(V=[...V,{placement:o,overflows:q}],!q.every(Q=>Q<=0)){var et,T;const Q=(((et=s.flip)==null?void 0:et.index)||0)+1,M=U[Q];if(M&&(!(d==="alignment"&&A!==ri(M))||V.every(rt=>ri(rt.placement)===A?rt.overflows[0]>0:!0)))return{data:{index:Q,overflows:V},reset:{placement:M}};let Z=(T=V.filter(rt=>rt.overflows[0]<=0).sort((rt,lt)=>rt.overflows[1]-lt.overflows[1])[0])==null?void 0:T.placement;if(!Z)switch(p){case"bestFit":{var F;const rt=(F=V.filter(lt=>{if(j){const ft=ri(lt.placement);return ft===A||ft==="y"}return!0}).map(lt=>[lt.placement,lt.overflows.filter(ft=>ft>0).reduce((ft,pt)=>ft+pt,0)]).sort((lt,ft)=>lt[1]-ft[1])[0])==null?void 0:F[0];rt&&(Z=rt);break}case"initialPlacement":Z=a;break}if(o!==Z)return{reset:{placement:Z}}}return{}}}},L2=new Set(["left","top"]);async function D2(t,e){const{placement:n,platform:i,elements:o}=t,s=await(i.isRTL==null?void 0:i.isRTL(o.floating)),r=hi(n),a=An(n),l=ri(n)==="y",c=L2.has(r)?-1:1,u=s&&l?-1:1,d=yo(e,t);let{mainAxis:f,crossAxis:p,alignmentAxis:y}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof y=="number"&&(p=a==="end"?y*-1:y),l?{x:p*u,y:f*c}:{x:f*c,y:p*u}}const N2=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:o,y:s,placement:r,middlewareData:a}=e,l=await D2(e,t);return r===((n=a.offset)==null?void 0:n.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:o+l.x,y:s+l.y,data:{...l,placement:r}}}}},O2=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:o,platform:s}=e,{mainAxis:r=!0,crossAxis:a=!1,limiter:l={fn:A=>{let{x:R,y:S}=A;return{x:R,y:S}}},...c}=yo(t,e),u={x:n,y:i},d=await s.detectOverflow(e,c),f=ri(o),p=vm(f);let y=u[p],m=u[f];const x=(A,R)=>mm(R+d[A==="y"?"top":"left"],R,R-d[A==="y"?"bottom":"right"]);r&&(y=x(p,y)),a&&(m=x(f,m));const b=l.fn({...e,[p]:y,[f]:m});return{...b,data:{x:b.x-n,y:b.y-i,enabled:{[p]:r,[f]:a}}}}}},$2=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){const{placement:n,rects:i,platform:o,elements:s}=e,{apply:r=()=>{},...a}=yo(t,e),l=await o.detectOverflow(e,a),c=hi(n),u=An(n),d=ri(n)==="y",{width:f,height:p}=i.floating;let y,m;c==="top"||c==="bottom"?(y=c,m=u===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(m=c,y=u==="end"?"top":"bottom");const x=p-l.top-l.bottom,b=f-l.left-l.right,A=nr(p-l[y],x),R=nr(f-l[m],b),S=e.middlewareData.shift,N=!S;let j=A,U=R;S!=null&&S.enabled.x&&(U=b),S!=null&&S.enabled.y&&(j=x),N&&!u&&(d?U=f-2*uc(l.left,l.right):j=p-2*uc(l.top,l.bottom)),await r({...e,availableWidth:U,availableHeight:j});const H=await o.getDimensions(s.floating);return f!==H.width||p!==H.height?{reset:{rects:!0}}:{}}}};function pn(t){var e;return((e=t.ownerDocument)==null?void 0:e.defaultView)||window}function zn(t){return pn(t).getComputedStyle(t)}const sf=Math.min,Bs=Math.max,Va=Math.round;function _m(t){const e=zn(t);let n=parseFloat(e.width),i=parseFloat(e.height);const o=t.offsetWidth,s=t.offsetHeight,r=Va(n)!==o||Va(i)!==s;return r&&(n=o,i=s),{width:n,height:i,fallback:r}}function Di(t){return xm(t)?(t.nodeName||"").toLowerCase():""}let Ir;function wm(){if(Ir)return Ir;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(Ir=t.brands.map((e=>e.brand+"/"+e.version)).join(" "),Ir):navigator.userAgent}function Hn(t){return t instanceof pn(t).HTMLElement}function Ti(t){return t instanceof pn(t).Element}function xm(t){return t instanceof pn(t).Node}function rf(t){return typeof ShadowRoot>"u"?!1:t instanceof pn(t).ShadowRoot||t instanceof ShadowRoot}function Cl(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=zn(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(o)}function B2(t){return["table","td","th"].includes(Di(t))}function cc(t){const e=/firefox/i.test(wm()),n=zn(t),i=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!i&&i!=="none"||e&&n.willChange==="filter"||e&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((o=>n.willChange.includes(o)))||["paint","layout","strict","content"].some((o=>{const s=n.contain;return s!=null&&s.includes(o)}))}function Em(){return!/^((?!chrome|android).)*safari/i.test(wm())}function Yc(t){return["html","body","#document"].includes(Di(t))}function Am(t){return Ti(t)?t:t.contextElement}const Sm={x:1,y:1};function Io(t){const e=Am(t);if(!Hn(e))return Sm;const n=e.getBoundingClientRect(),{width:i,height:o,fallback:s}=_m(e);let r=(s?Va(n.width):n.width)/i,a=(s?Va(n.height):n.height)/o;return r&&Number.isFinite(r)||(r=1),a&&Number.isFinite(a)||(a=1),{x:r,y:a}}function ir(t,e,n,i){var o,s;e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=Am(t);let l=Sm;e&&(i?Ti(i)&&(l=Io(i)):l=Io(t));const c=a?pn(a):window,u=!Em()&&n;let d=(r.left+(u&&((o=c.visualViewport)==null?void 0:o.offsetLeft)||0))/l.x,f=(r.top+(u&&((s=c.visualViewport)==null?void 0:s.offsetTop)||0))/l.y,p=r.width/l.x,y=r.height/l.y;if(a){const m=pn(a),x=i&&Ti(i)?pn(i):i;let b=m.frameElement;for(;b&&i&&x!==m;){const A=Io(b),R=b.getBoundingClientRect(),S=getComputedStyle(b);R.x+=(b.clientLeft+parseFloat(S.paddingLeft))*A.x,R.y+=(b.clientTop+parseFloat(S.paddingTop))*A.y,d*=A.x,f*=A.y,p*=A.x,y*=A.y,d+=R.x,f+=R.y,b=pn(b).frameElement}}return{width:p,height:y,top:f,right:d+p,bottom:f+y,left:d,x:d,y:f}}function ki(t){return((xm(t)?t.ownerDocument:t.document)||window.document).documentElement}function Tl(t){return Ti(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Cm(t){return ir(ki(t)).left+Tl(t).scrollLeft}function or(t){if(Di(t)==="html")return t;const e=t.assignedSlot||t.parentNode||rf(t)&&t.host||ki(t);return rf(e)?e.host:e}function Tm(t){const e=or(t);return Yc(e)?e.ownerDocument.body:Hn(e)&&Cl(e)?e:Tm(e)}function Ia(t,e){var n;e===void 0&&(e=[]);const i=Tm(t),o=i===((n=t.ownerDocument)==null?void 0:n.body),s=pn(i);return o?e.concat(s,s.visualViewport||[],Cl(i)?i:[]):e.concat(i,Ia(i))}function af(t,e,n){return e==="viewport"?$s((function(i,o){const s=pn(i),r=ki(i),a=s.visualViewport;let l=r.clientWidth,c=r.clientHeight,u=0,d=0;if(a){l=a.width,c=a.height;const f=Em();(f||!f&&o==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}return{width:l,height:c,x:u,y:d}})(t,n)):Ti(e)?$s((function(i,o){const s=ir(i,!0,o==="fixed"),r=s.top+i.clientTop,a=s.left+i.clientLeft,l=Hn(i)?Io(i):{x:1,y:1};return{width:i.clientWidth*l.x,height:i.clientHeight*l.y,x:a*l.x,y:r*l.y}})(e,n)):$s((function(i){const o=ki(i),s=Tl(i),r=i.ownerDocument.body,a=Bs(o.scrollWidth,o.clientWidth,r.scrollWidth,r.clientWidth),l=Bs(o.scrollHeight,o.clientHeight,r.scrollHeight,r.clientHeight);let c=-s.scrollLeft+Cm(i);const u=-s.scrollTop;return zn(r).direction==="rtl"&&(c+=Bs(o.clientWidth,r.clientWidth)-a),{width:a,height:l,x:c,y:u}})(ki(t)))}function lf(t){return Hn(t)&&zn(t).position!=="fixed"?t.offsetParent:null}function uf(t){const e=pn(t);let n=lf(t);for(;n&&B2(n)&&zn(n).position==="static";)n=lf(n);return n&&(Di(n)==="html"||Di(n)==="body"&&zn(n).position==="static"&&!cc(n))?e:n||(function(i){let o=or(i);for(;Hn(o)&&!Yc(o);){if(cc(o))return o;o=or(o)}return null})(t)||e}function F2(t,e,n){const i=Hn(e),o=ki(e),s=ir(t,!0,n==="fixed",e);let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(i||!i&&n!=="fixed")if((Di(e)!=="body"||Cl(o))&&(r=Tl(e)),Hn(e)){const l=ir(e,!0);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else o&&(a.x=Cm(o));return{x:s.left+r.scrollLeft-a.x,y:s.top+r.scrollTop-a.y,width:s.width,height:s.height}}const j2={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=n==="clippingAncestors"?(function(c,u){const d=u.get(c);if(d)return d;let f=Ia(c).filter((x=>Ti(x)&&Di(x)!=="body")),p=null;const y=zn(c).position==="fixed";let m=y?or(c):c;for(;Ti(m)&&!Yc(m);){const x=zn(m),b=cc(m);(y?b||p:b||x.position!=="static"||!p||!["absolute","fixed"].includes(p.position))?p=x:f=f.filter((A=>A!==m)),m=or(m)}return u.set(c,f),f})(e,this._c):[].concat(n),r=[...s,i],a=r[0],l=r.reduce(((c,u)=>{const d=af(e,u,o);return c.top=Bs(d.top,c.top),c.right=sf(d.right,c.right),c.bottom=sf(d.bottom,c.bottom),c.left=Bs(d.left,c.left),c}),af(e,a,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:i}=t;const o=Hn(n),s=ki(n);if(n===s)return e;let r={scrollLeft:0,scrollTop:0},a={x:1,y:1};const l={x:0,y:0};if((o||!o&&i!=="fixed")&&((Di(n)!=="body"||Cl(s))&&(r=Tl(n)),Hn(n))){const c=ir(n);a=Io(n),l.x=c.x+n.clientLeft,l.y=c.y+n.clientTop}return{width:e.width*a.x,height:e.height*a.y,x:e.x*a.x-r.scrollLeft*a.x+l.x,y:e.y*a.y-r.scrollTop*a.y+l.y}},isElement:Ti,getDimensions:function(t){return Hn(t)?_m(t):t.getBoundingClientRect()},getOffsetParent:uf,getDocumentElement:ki,getScale:Io,async getElementRects(t){let{reference:e,floating:n,strategy:i}=t;const o=this.getOffsetParent||uf,s=this.getDimensions;return{reference:F2(e,await o(n),i),floating:{x:0,y:0,...await s(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>zn(t).direction==="rtl"},U2=(t,e,n)=>{const i=new Map,o={platform:j2,...n},s={...o.platform,_c:i};return C2(t,e,{...o,platform:s})},Ri={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:t=>[...t,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function V2(t,e){let n=Ri.themes[t]||{},i;do i=n[e],typeof i>"u"?n.$extend?n=Ri.themes[n.$extend]||{}:(n=null,i=Ri[e]):n=null;while(n);return i}function I2(t){const e=[t];let n=Ri.themes[t]||{};do n.$extend&&!n.$resetCss?(e.push(n.$extend),n=Ri.themes[n.$extend]||{}):n=null;while(n);return e.map(i=>`v-popper--theme-${i}`)}function cf(t){const e=[t];let n=Ri.themes[t]||{};do n.$extend?(e.push(n.$extend),n=Ri.themes[n.$extend]||{}):n=null;while(n);return e}let sr=!1;if(typeof window<"u"){sr=!1;try{const t=Object.defineProperty({},"passive",{get(){sr=!0}});window.addEventListener("test",null,t)}catch{}}let km=!1;typeof window<"u"&&typeof navigator<"u"&&(km=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const z2=["auto","top","bottom","left","right"].reduce((t,e)=>t.concat([e,`${e}-start`,`${e}-end`]),[]),df={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},hf={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function ff(t,e){const n=t.indexOf(e);n!==-1&&t.splice(n,1)}function cu(){return new Promise(t=>requestAnimationFrame(()=>{requestAnimationFrame(t)}))}const wn=[];let Hi=null;const pf={};function gf(t){let e=pf[t];return e||(e=pf[t]=[]),e}let dc=function(){};typeof window<"u"&&(dc=window.Element);function zt(t){return function(e){return V2(e.theme,t)}}const du="__floating-vue__popper",Rm=()=>Rt({name:"VPopper",provide(){return{[du]:{parentPopper:this}}},inject:{[du]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:zt("disabled")},positioningDisabled:{type:Boolean,default:zt("positioningDisabled")},placement:{type:String,default:zt("placement"),validator:t=>z2.includes(t)},delay:{type:[String,Number,Object],default:zt("delay")},distance:{type:[Number,String],default:zt("distance")},skidding:{type:[Number,String],default:zt("skidding")},triggers:{type:Array,default:zt("triggers")},showTriggers:{type:[Array,Function],default:zt("showTriggers")},hideTriggers:{type:[Array,Function],default:zt("hideTriggers")},popperTriggers:{type:Array,default:zt("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:zt("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:zt("popperHideTriggers")},container:{type:[String,Object,dc,Boolean],default:zt("container")},boundary:{type:[String,dc],default:zt("boundary")},strategy:{type:String,validator:t=>["absolute","fixed"].includes(t),default:zt("strategy")},autoHide:{type:[Boolean,Function],default:zt("autoHide")},handleResize:{type:Boolean,default:zt("handleResize")},instantMove:{type:Boolean,default:zt("instantMove")},eagerMount:{type:Boolean,default:zt("eagerMount")},popperClass:{type:[String,Array,Object],default:zt("popperClass")},computeTransformOrigin:{type:Boolean,default:zt("computeTransformOrigin")},autoMinSize:{type:Boolean,default:zt("autoMinSize")},autoSize:{type:[Boolean,String],default:zt("autoSize")},autoMaxSize:{type:Boolean,default:zt("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:zt("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:zt("preventOverflow")},overflowPadding:{type:[Number,String],default:zt("overflowPadding")},arrowPadding:{type:[Number,String],default:zt("arrowPadding")},arrowOverflow:{type:Boolean,default:zt("arrowOverflow")},flip:{type:Boolean,default:zt("flip")},shift:{type:Boolean,default:zt("shift")},shiftCrossAxis:{type:Boolean,default:zt("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:zt("noAutoFocus")},disposeTimeout:{type:Number,default:zt("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(t=>t.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var t;return(t=this[du])==null?void 0:t.parentPopper},hasPopperShowTriggerHover(){var t,e;return((t=this.popperTriggers)==null?void 0:t.includes("hover"))||((e=this.popperShowTriggers)==null?void 0:e.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(t){t?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((t,e)=>(t[e]="$_computePosition",t),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:t=null,skipDelay:e=!1,force:n=!1}={}){var i,o;(i=this.parentPopper)!=null&&i.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((o=this.parentPopper)==null?void 0:o.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(t,e),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:t=null,skipDelay:e=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:e}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(t,e),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((t=this.referenceNode)==null?void 0:t.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(e=>e.nodeType===e.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(N2({mainAxis:this.distance,crossAxis:this.skidding}));const e=this.placement.startsWith("auto");if(e?t.middleware.push(R2({alignment:this.placement.split("-")[1]??""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(O2({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!e&&this.flip&&t.middleware.push(P2({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(T2({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:i,rects:o,middlewareData:s})=>{let r;const{centerOffset:a}=s.arrow;return i.startsWith("top")||i.startsWith("bottom")?r=Math.abs(a)>o.reference.width/2:r=Math.abs(a)>o.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const i=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:o,placement:s,middlewareData:r})=>{var a;if((a=r.autoSize)!=null&&a.skip)return{};let l,c;return s.startsWith("top")||s.startsWith("bottom")?l=o.reference.width:c=o.reference.height,this.$_innerNode.style[i==="min"?"minWidth":i==="max"?"maxWidth":"width"]=l!=null?`${l}px`:null,this.$_innerNode.style[i==="min"?"minHeight":i==="max"?"maxHeight":"height"]=c!=null?`${c}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push($2({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:i,availableHeight:o})=>{this.$_innerNode.style.maxWidth=i!=null?`${i}px`:null,this.$_innerNode.style.maxHeight=o!=null?`${o}px`:null}})));const n=await U2(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(t,e=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Hi&&this.instantMove&&Hi.instantMove&&Hi!==this.parentPopper){Hi.$_applyHide(!0),this.$_applyShow(!0);return}e?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(t,e=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Hi=this),e?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(t){const e=this.delay;return parseInt(e&&e[t]||e||0)},async $_applyShow(t=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=t,!this.isShown&&(this.$_ensureTeleport(),await cu(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Ia(this.$_referenceNode),...Ia(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),i=n.parentNode.getBoundingClientRect(),o=e.x+e.width/2-(i.left+n.offsetLeft),s=e.y+e.height/2-(i.top+n.offsetTop);this.result.transformOrigin=`${o}px ${s}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const t=this.showGroup;if(t){let e;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=t,ff(wn,this),wn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of cf(this.theme)){const i=gf(n);ff(i,this),i.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}Hi===this&&(Hi=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const e=this.disposeTimeout;e!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},e)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await cu(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let t=this.container;if(typeof t=="string"?t=window.document.querySelector(t):t===!1&&(t=this.$_targetNodes[0].parentNode),!t)throw new Error("No container for popover: "+this.container);t.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const t=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,df,this.triggers,this.showTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],df,this.popperTriggers,this.popperShowTriggers,t);const e=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,hf,this.triggers,this.hideTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],hf,this.popperTriggers,this.popperHideTriggers,e)},$_registerEventListeners(t,e,n){this.$_events.push({targetNodes:t,eventType:e,handler:n}),t.forEach(i=>i.addEventListener(e,n,sr?{passive:!0}:void 0))},$_registerTriggerListeners(t,e,n,i,o){let s=n;i!=null&&(s=typeof i=="function"?i(s):i),s.forEach(r=>{const a=e[r];a&&this.$_registerEventListeners(t,a,o)})},$_removeEventListeners(t){const e=[];this.$_events.forEach(n=>{const{targetNodes:i,eventType:o,handler:s}=n;!t||t===o?i.forEach(r=>r.removeEventListener(o,s)):e.push(n)}),this.$_events=e},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(t,e=!1){this.$_showFrameLocked||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),e&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(t,e){for(const n of this.$_targetNodes){const i=n.getAttribute(t);i&&(n.removeAttribute(t),n.setAttribute(e,i))}},$_applyAttrsToTarget(t){for(const e of this.$_targetNodes)for(const n in t){const i=t[n];i==null?e.removeAttribute(n):e.setAttribute(n,i)}},$_updateParentShownChildren(t){let e=this.parentPopper;for(;e;)t?e.shownChildren.add(this.randomId):(e.shownChildren.delete(this.randomId),e.pendingHide&&e.hide()),e=e.parentPopper},$_isAimingPopper(){const t=this.$_referenceNode.getBoundingClientRect();if(Fs>=t.left&&Fs<=t.right&&js>=t.top&&js<=t.bottom){const e=this.$_popperNode.getBoundingClientRect(),n=Fs-bi,i=js-_i,o=e.left+e.width/2-bi+(e.top+e.height/2)-_i+e.width+e.height,s=bi+n*o,r=_i+i*o;return zr(bi,_i,s,r,e.left,e.top,e.left,e.bottom)||zr(bi,_i,s,r,e.left,e.top,e.right,e.top)||zr(bi,_i,s,r,e.right,e.top,e.right,e.bottom)||zr(bi,_i,s,r,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(km){const t=sr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",e=>mf(e),t),document.addEventListener("touchend",e=>vf(e,!0),t)}else window.addEventListener("mousedown",t=>mf(t),!0),window.addEventListener("click",t=>vf(t,!1),!0);window.addEventListener("resize",W2)}function mf(t,e){for(let n=0;n=0;i--){const o=wn[i];try{const s=o.containsGlobalTarget=o.mouseDownContains||o.popperNode().contains(t.target);o.pendingHide=!1,requestAnimationFrame(()=>{if(o.pendingHide=!1,!n[o.randomId]&&yf(o,s,t)){if(o.$_handleGlobalClose(t,e),!t.closeAllPopover&&t.closePopover&&s){let a=o.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let r=o.parentPopper;for(;r&&yf(r,r.containsGlobalTarget,t);)r.$_handleGlobalClose(t,e),r=r.parentPopper}})}catch{}}}function yf(t,e,n){return n.closeAllPopover||n.closePopover&&e||J2(t,n)&&!e}function J2(t,e){if(typeof t.autoHide=="function"){const n=t.autoHide(e);return t.lastAutoHide=n,n}return t.autoHide}function W2(){for(let t=0;t{bi=Fs,_i=js,Fs=t.clientX,js=t.clientY},sr?{passive:!0}:void 0);function zr(t,e,n,i,o,s,r,a){const l=((r-o)*(e-s)-(a-s)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e)),c=((n-t)*(e-s)-(i-e)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e));return l>=0&&l<=1&&c>=0&&c<=1}const G2={extends:Rm()},Zc=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n};function q2(t,e,n,i,o,s){return O(),J("div",{ref:"reference",class:Yt(["v-popper",{"v-popper--shown":t.slotData.isShown}])},[Zt(t.$slots,"default",Vu(Ra(t.slotData)))],2)}const K2=Zc(G2,[["render",q2]]);function X2(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var o=t.indexOf("Edge/");return o>0?parseInt(t.substring(o+5,t.indexOf(".",o)),10):-1}let da;function hc(){hc.init||(hc.init=!0,da=X2()!==-1)}var ha={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){hc(),yr(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",da&&this.$el.appendChild(t),t.data="about:blank",da||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!da&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const Y2=Cy();Ay("data-v-b329ee4c");const Z2={class:"resize-observer",tabindex:"-1"};Sy();const Q2=Y2((t,e,n,i,o,s)=>(O(),Ct("div",Z2)));ha.render=Q2,ha.__scopeId="data-v-b329ee4c",ha.__file="src/components/ResizeObserver.vue";const Pm=(t="theme")=>({computed:{themeClass(){return I2(this[t])}}}),M2=Rt({name:"VPopperContent",components:{ResizeObserver:ha},mixins:[Pm()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(t){return t!=null&&!isNaN(t)?`${t}px`:null}}}),tE=["id","aria-hidden","tabindex","data-popper-placement"],eE={ref:"inner",class:"v-popper__inner"},nE=w("div",{class:"v-popper__arrow-outer"},null,-1),iE=w("div",{class:"v-popper__arrow-inner"},null,-1),oE=[nE,iE];function sE(t,e,n,i,o,s){const r=Ys("ResizeObserver");return O(),J("div",{id:t.popperId,ref:"popover",class:Yt(["v-popper__popper",[t.themeClass,t.classes.popperClass,{"v-popper__popper--shown":t.shown,"v-popper__popper--hidden":!t.shown,"v-popper__popper--show-from":t.classes.showFrom,"v-popper__popper--show-to":t.classes.showTo,"v-popper__popper--hide-from":t.classes.hideFrom,"v-popper__popper--hide-to":t.classes.hideTo,"v-popper__popper--skip-transition":t.skipTransition,"v-popper__popper--arrow-overflow":t.result&&t.result.arrow.overflow,"v-popper__popper--no-positioning":!t.result}]]),style:ro(t.result?{position:t.result.strategy,transform:`translate3d(${Math.round(t.result.x)}px,${Math.round(t.result.y)}px,0)`}:void 0),"aria-hidden":t.shown?"false":"true",tabindex:t.autoHide?0:void 0,"data-popper-placement":t.result?t.result.placement:void 0,onKeyup:e[2]||(e[2]=r_(a=>t.autoHide&&t.$emit("hide"),["esc"]))},[w("div",{class:"v-popper__backdrop",onClick:e[0]||(e[0]=a=>t.autoHide&&t.$emit("hide"))}),w("div",{class:"v-popper__wrapper",style:ro(t.result?{transformOrigin:t.result.transformOrigin}:void 0)},[w("div",eE,[t.mounted?(O(),J(At,{key:0},[w("div",null,[Zt(t.$slots,"default")]),t.handleResize?(O(),Ct(r,{key:0,onNotify:e[1]||(e[1]=a=>t.$emit("resize",a))})):_t("",!0)],64)):_t("",!0)],512),w("div",{ref:"arrow",class:"v-popper__arrow-container",style:ro(t.result?{left:t.toPx(t.result.arrow.x),top:t.toPx(t.result.arrow.y)}:void 0)},oE,4)],4)],46,tE)}const rE=Zc(M2,[["render",sE]]),aE={methods:{show(...t){return this.$refs.popper.show(...t)},hide(...t){return this.$refs.popper.hide(...t)},dispose(...t){return this.$refs.popper.dispose(...t)},onResize(...t){return this.$refs.popper.onResize(...t)}}};let fc=function(){};typeof window<"u"&&(fc=window.Element);const lE=Rt({name:"VPopperWrapper",components:{Popper:K2,PopperContent:rE},mixins:[aE,Pm("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,fc,Boolean],default:void 0},boundary:{type:[String,fc],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(t=>t!==this.$refs.popperContent.$el)}}});function uE(t,e,n,i,o,s){const r=Ys("PopperContent"),a=Ys("Popper");return O(),Ct(a,ee({ref:"popper"},t.$props,{theme:t.finalTheme,"target-nodes":t.getTargetNodes,"popper-node":()=>t.$refs.popperContent.$el,class:[t.themeClass],onShow:e[0]||(e[0]=()=>t.$emit("show")),onHide:e[1]||(e[1]=()=>t.$emit("hide")),"onUpdate:shown":e[2]||(e[2]=l=>t.$emit("update:shown",l)),onApplyShow:e[3]||(e[3]=()=>t.$emit("apply-show")),onApplyHide:e[4]||(e[4]=()=>t.$emit("apply-hide")),onCloseGroup:e[5]||(e[5]=()=>t.$emit("close-group")),onCloseDirective:e[6]||(e[6]=()=>t.$emit("close-directive")),onAutoHide:e[7]||(e[7]=()=>t.$emit("auto-hide")),onResize:e[8]||(e[8]=()=>t.$emit("resize"))}),{default:kt(({popperId:l,isShown:c,shouldMountContent:u,skipTransition:d,autoHide:f,show:p,hide:y,handleResize:m,onResize:x,classes:b,result:A})=>[Zt(t.$slots,"default",{shown:c,show:p,hide:y}),ot(r,{ref:"popperContent","popper-id":l,theme:t.finalTheme,shown:c,mounted:u,"skip-transition":d,"auto-hide":f,"handle-resize":m,classes:b,result:A,onHide:y,onResize:x},{default:kt(()=>[Zt(t.$slots,"popper",{shown:c,hide:y})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const pc=Zc(lE,[["render",uE]]),cE={...pc,name:"VDropdown",vPopperTheme:"dropdown"};({...pc},{...pc}),Rm();const bf=Ri,dE=cE;function hE(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Lm={exports:{}},fe=Lm.exports={},Bn,Fn;function gc(){throw new Error("setTimeout has not been defined")}function mc(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Bn=setTimeout:Bn=gc}catch{Bn=gc}try{typeof clearTimeout=="function"?Fn=clearTimeout:Fn=mc}catch{Fn=mc}})();function Dm(t){if(Bn===setTimeout)return setTimeout(t,0);if((Bn===gc||!Bn)&&setTimeout)return Bn=setTimeout,setTimeout(t,0);try{return Bn(t,0)}catch{try{return Bn.call(null,t,0)}catch{return Bn.call(this,t,0)}}}function fE(t){if(Fn===clearTimeout)return clearTimeout(t);if((Fn===mc||!Fn)&&clearTimeout)return Fn=clearTimeout,clearTimeout(t);try{return Fn(t)}catch{try{return Fn.call(null,t)}catch{return Fn.call(this,t)}}}var ai=[],zo=!1,no,fa=-1;function pE(){!zo||!no||(zo=!1,no.length?ai=no.concat(ai):fa=-1,ai.length&&Nm())}function Nm(){if(!zo){var t=Dm(pE);zo=!0;for(var e=ai.length;e;){for(no=ai,ai=[];++fa1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},hu}var fu,wf;function Bm(){if(wf)return fu;wf=1;const t="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,o=e-6;return fu={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:o,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},fu}var pu={exports:{}},xf;function mE(){return xf||(xf=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:o}=Bm(),s=$m();e=t.exports={};const r=e.re=[],a=e.safeRe=[],l=e.src=[],c=e.safeSrc=[],u=e.t={};let d=0;const f="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",o],[f,i]],y=x=>{for(const[b,A]of p)x=x.split(`${b}*`).join(`${b}{0,${A}}`).split(`${b}+`).join(`${b}{1,${A}}`);return x},m=(x,b,A)=>{const R=y(b),S=d++;s(x,S,b),u[x]=S,l[S]=b,c[S]=R,r[S]=new RegExp(b,A?"g":void 0),a[S]=new RegExp(R,A?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),m("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${f}+`),m("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),m("FULL",`^${l[u.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),m("LOOSE",`^${l[u.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),m("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",l[u.COERCE],!0),m("COERCERTLFULL",l[u.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",m("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",m("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(pu,pu.exports)),pu.exports}var gu,Ef;function vE(){if(Ef)return gu;Ef=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return gu=n=>n?typeof n!="object"?t:n:e,gu}var mu,Af;function yE(){if(Af)return mu;Af=1;const t=/^[0-9]+$/,e=(n,i)=>{if(typeof n=="number"&&typeof i=="number")return n===i?0:ne(i,n)},mu}var vu,Sf;function Fm(){if(Sf)return vu;Sf=1;const t=$m(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=Bm(),{safeRe:i,t:o}=mE(),s=vE(),{compareIdentifiers:r}=yE();class a{constructor(c,u){if(u=s(u),c instanceof a){if(c.loose===!!u.loose&&c.includePrerelease===!!u.includePrerelease)return c;c=c.version}else if(typeof c!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof c}".`);if(c.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",c,u),this.options=u,this.loose=!!u.loose,this.includePrerelease=!!u.includePrerelease;const d=c.trim().match(u.loose?i[o.LOOSE]:i[o.FULL]);if(!d)throw new TypeError(`Invalid Version: ${c}`);if(this.raw=c,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){const p=+f;if(p>=0&&pc.major?1:this.minorc.minor?1:this.patchc.patch?1:0}comparePre(c){if(c instanceof a||(c=new a(c,this.options)),this.prerelease.length&&!c.prerelease.length)return-1;if(!this.prerelease.length&&c.prerelease.length)return 1;if(!this.prerelease.length&&!c.prerelease.length)return 0;let u=0;do{const d=this.prerelease[u],f=c.prerelease[u];if(t("prerelease compare",u,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++u)}compareBuild(c){c instanceof a||(c=new a(c,this.options));let u=0;do{const d=this.build[u],f=c.build[u];if(t("build compare",u,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++u)}inc(c,u,d){if(c.startsWith("pre")){if(!u&&d===!1)throw new Error("invalid increment argument: identifier is empty");if(u){const f=`-${u}`.match(this.options.loose?i[o.PRERELEASELOOSE]:i[o.PRERELEASE]);if(!f||f[1]!==u)throw new Error(`invalid identifier: ${u}`)}}switch(c){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",u,d);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",u,d);break;case"prepatch":this.prerelease.length=0,this.inc("patch",u,d),this.inc("pre",u,d);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",u,d),this.inc("pre",u,d);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const f=Number(d)?1:0;if(this.prerelease.length===0)this.prerelease=[f];else{let p=this.prerelease.length;for(;--p>=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);if(p===-1){if(u===this.prerelease.join(".")&&d===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(f)}}if(u){let p=[u,f];d===!1&&(p=[u]),r(this.prerelease[0],u)===0?isNaN(this.prerelease[1])&&(this.prerelease=p):this.prerelease=p}break}default:throw new Error(`invalid increment argument: ${c}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return vu=a,vu}var yu,Cf;function bE(){if(Cf)return yu;Cf=1;const t=Fm();return yu=(e,n)=>new t(e,n).major,yu}var _E=bE();const Tf=Wc(_E);var bu,kf;function wE(){if(kf)return bu;kf=1;const t=Fm();return bu=(e,n,i=!1)=>{if(e instanceof t)return e;try{return new t(e,n)}catch(o){if(!i)return null;throw o}},bu}var _u,Rf;function xE(){if(Rf)return _u;Rf=1;const t=wE();return _u=(e,n)=>{const i=t(e,n);return i?i.version:null},_u}var EE=xE();const AE=Wc(EE);class SE{bus;constructor(e){typeof e.getVersion!="function"||!AE(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):Tf(e.getVersion())!==Tf(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class CE{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(i=>i!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(i=>{try{i(n[0])}catch(o){console.error("could not invoke event listener",o)}})}}let fs=null;function Qc(){return fs!==null?fs:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?fs=new SE(window._nc_event_bus):fs=window._nc_event_bus=new CE,fs)}function jm(t,e){Qc().subscribe(t,e)}function TE(t,e){Qc().unsubscribe(t,e)}function kE(t,...e){Qc().emit(t,...e)}class za{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,i){this.scope=`${i?za.GLOBAL_SCOPE_PERSISTENT:za.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter(e=>e.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class RE{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new za(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function PE(t){return new RE(t)}OE();function LE(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Um(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),kE("csrf-token-update",{token:t,_internal:!0}))}async function DE(){const t=Jc("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:n}=await e.json();return Um(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function NE(t){const e=async({token:n})=>{try{t(n)}catch(i){console.error("Error updating CSRF token observer",i)}};return jm("csrf-token-update",e),()=>TE("csrf-token-update",e)}function OE(){jm("csrf-token-update",({token:t,_internal:e})=>{e||Um(t)})}PE("public").persist().build();let Ro;function Pf(t,e){return t?t.getAttribute(e):null}function $E(){if(Ro!==void 0)return Ro;const t=document?.getElementsByTagName("head")[0];if(!t)return null;const e=Pf(t,"data-user");return e===null?(Ro=null,Ro):(Ro={uid:e,displayName:Pf(t,"data-user-displayname"),isAdmin:!!window._oc_isadmin},Ro)}var me=(t=>(t[t.Debug=0]="Debug",t[t.Info=1]="Info",t[t.Warn=2]="Warn",t[t.Error=3]="Error",t[t.Fatal=4]="Fatal",t))(me||{});class BE{context;constructor(e){this.context=e||{}}formatMessage(e,n,i){let o="["+me[n].toUpperCase()+"] ";return i&&i.app&&(o+=i.app+": "),typeof e=="string"?o+e:(o+=`Unexpected ${e.name}`,e.message&&(o+=` "${e.message}"`),n===me.Debug&&e.stack&&(o+=` Stack trace: -${e.stack}`),o)}log(e,n,i){if(!(typeof this.context?.level=="number"&&e{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??me.Warn,window._oc_debug&&(e.context.level=me.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function UE(){return new jE(FE)}const VE=UE().detectUser().setApp("@nextcloud/vue").build(),Ha=K_(),IE=Rt({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),zE="_ncPopover_zfWgY",HE={"material-design-icon":"_material-design-icon_bkeq-",ncPopover:zE},Vm="nc-popover-9";bf.themes[Vm]=structuredClone(bf.themes.dropdown);const JE={name:"NcPopover",components:{Dropdown:dE,NcPopoverTriggerProvider:IE},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:t=>["menu","listbox","tree","grid","dialog","true"].includes(t)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:Vm}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?Ha?"right":"left":this.placement==="end"?Ha?"left":"right":this.placement}},watch:{shown(t){this.internalShown=t},internalShown(t){this.$emit("update:shown",t)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const t=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const e of t)e.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const t=this.getPopoverContentElement();t.tabIndex=-1,t&&(this.$focusTrap=gm(t,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:er(),fallBackFocus:t}),this.$focusTrap.activate())},clearFocusTrap(t={}){try{this.$focusTrap?.deactivate(t),this.$focusTrap=null}catch(e){VE.warn("[NcPopover] Failed to clear focus trap",{error:e})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(t){t.type==="keydown"&&t.key==="Escape"&&t.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function WE(t,e,n,i,o,s){const r=Ys("NcPopoverTriggerProvider"),a=Ys("Dropdown");return O(),Ct(a,{ref:"popover",shown:o.internalShown,"onUpdate:shown":[e[0]||(e[0]=l=>o.internalShown=l),e[1]||(e[1]=l=>o.internalShown=l)],arrowPadding:10,autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:10,handleResize:"",noAutoFocus:!0,placement:s.internalPlacement,popperClass:[t.$style.ncPopover,n.popoverBaseClass],popperTriggers:s.popperTriggers,popperHideTriggers:s.popperHideTriggers,popperShowTriggers:s.popperShowTriggers,theme:i.theme,triggers:s.internalTriggers,hideTriggers:s.hideTriggers,showTriggers:s.showTriggers,onApplyShow:s.afterShow,onApplyHide:s.afterHide},{popper:kt(l=>[Zt(t.$slots,"default",Vu(Ra(l)))]),default:kt(()=>[ot(r,{shown:o.internalShown,popupRole:n.popupRole},{default:kt(l=>[Zt(t.$slots,"trigger",Vu(Ra(l)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const GE={$style:HE},Lf=Ie(JE,[["render",WE],["__cssModules",GE]]),qE=Symbol.for("NcActions:isSemanticMenu"),KE=Symbol.for("NcActions:closeMenu"),XE={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},YE=["aria-hidden","aria-label"],ZE=["fill","width","height"],QE={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},ME={key:0};function tA(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",QE,[n.title?(O(),J("title",ME,L(n.title),1)):_t("",!0)])],8,ZE))],16,YE)}const eA=Ie(XE,[["render",tA]]);wr(xw);function Im(t){return Array.isArray(t)&&t.some(e=>{if(e===null)return!1;if(typeof e=="object"){const n=e;if(n.type===Se||n.type===At&&!Im(n.children)||n.type===br&&!n.children.trim())return!1}return!0})}const nA=".focusable",iA={name:"NcActions",components:{NcButton:si,NcPopover:Lf},provide(){return{[qE]:ht(()=>this.actionsMenuSemanticType==="menu"),[KE]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:We("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(t){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(t)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(t){return["small","normal","large"].includes(t)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:Qo()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(t){t!==this.opened&&(this.opened=t)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){g2(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(t){return t?.type?.name},isValidSingleAction(t){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(t))},isAction(t){return this.getActionName(t)?.startsWith?.("NcAction")},isIconUrl(t){try{return!!new URL(t,t.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(t){t?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(t=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:t}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,t&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(nA)},onKeydown(t){if(t.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}t.preventDefault();const e=this.getFocusableMenuItemElements(),n=[...e].indexOf(document.activeElement);if(n===-1)return;const i=t.shiftKey?n-1:n+1;(i<0||i===e.length)&&this.closeMenu(!0),this.focusIndex=i,this.focusAction();return}this.config.withArrowNavigation&&(t.key==="ArrowUp"&&this.focusPreviousAction(t),t.key==="ArrowDown"&&this.focusNextAction(t),t.key==="PageUp"&&this.focusFirstAction(t),t.key==="PageDown"&&this.focusLastAction(t)),this.handleEscapePressed(t)},onTriggerKeydown(t){t.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(t){t.key==="Escape"&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector("li.active");t&&t.classList.remove("active")},focusAction(){const t=this.getFocusableMenuItemElements()[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest("li.action");t.focus(),e&&e.classList.add("active")}},focusPreviousAction(t){this.opened&&(this.focusIndex===0?this.focusLastAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.getFocusableMenuItemElements().length-1;this.focusIndex===e?this.focusFirstAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){if(this.opened){this.preventIfEvent(t);const e=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=e>-1?e:0,this.focusAction()}},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit("focus",t)},onBlur(t){this.$emit("blur",t),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(t){this.$emit("click",t)}},render(){const t=[],e=(p,y)=>{p.forEach(m=>{if(this.isAction(m)){y.push(m);return}m.type===At&&e(m.children,y)})};if(e(this.$slots.default?.(),t),t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const i=n.slice(0,this.inline),o=t.filter(p=>!i.includes(p)),s=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=o.some(p=>r.includes(this.getActionName(p))),c=o.some(p=>s.includes(this.getActionName(p))),u=o.some(p=>a.includes(this.getActionName(p)));l?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":u?this.actionsMenuSemanticType="navigation":t.filter(p=>this.getActionName(p).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=p=>{const y=p?.props?.icon,m=p?.children?.icon?.()?.[0]??(this.isIconUrl(y)?Ne("img",{class:"action-item__menutoggle__icon",src:y,alt:""}):Ne("span",{class:["icon",y]})),x=p?.children?.default?.()?.[0]?.children?.trim(),b=this.forceName?x:"";let A=p?.props?.title;this.forceName||A||(A=x);const R={...p?.props??{}},S=["submit","reset"].includes(R.type)?R.modelValue:"button";return delete R.modelValue,delete R.type,Ne(si,ee(R,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":p?.props?.["aria-label"]||x,title:A,disabled:this.disabled||p?.props?.disabled,pressed:p?.props?.modelValue,size:this.size,type:S,wide:this.wide,variant:this.variant||(b?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":p?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>b,icon:()=>m})},f=p=>{const y=Im(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?Ne("span",{class:["icon",this.defaultIcon]}):Ne(eA,{size:20}),m=`${this.randomId}-trigger`;return Ne(Lf,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterClose:this.onClosed},{trigger:()=>Ne(si,{id:m,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>y,default:()=>this.menuName}),default:()=>Ne("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[Ne("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":m,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[p])])})};return t.length===1&&n.length===1&&!this.forceMenu?d(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),i.length>0&&this.inline>0?Ne("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...i.map(d),o.length>0?Ne("div",{class:["action-item",{"action-item--open":this.opened}]},[f(o)]):null]):Ne("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[f(t)]))}},oA=Ie(iA,[["__scopeId","data-v-23e5cae7"]]),sA=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),rA=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),aA=/^[a-zA-Z0-9]$/,lA=/^[^\x20-\x7F]$/;function uA(t,e){return!(t.target instanceof HTMLElement)||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.target.isContentEditable?!0:e.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Df(t,e){return n=>{if((sA?n.metaKey:n.ctrlKey)===!!e.ctrl){if(n.altKey!==!!e.alt||e.shift!==void 0&&n.shiftKey!==!!e.shift||uA(n,e))return;e.prevent&&n.preventDefault(),e.stop&&n.stopPropagation(),t(n)}}}function Nf(t,e=()=>{},n={}){if(rA)return()=>{};const i=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const c=l===l.toLowerCase(),u=a.key===a.key.toLowerCase();if(c!==u)return!1}return aA.test(l)&&lA.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},o=a=>typeof t=="function"?t(a):typeof t=="string"?i(a,t):Array.isArray(t)?t.some(l=>i(a,l)):!0,s=Gh(o,Df(e,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Gh(o,Df(e,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{s(),r()}}function cA(t=document.body){const e=window.getComputedStyle(t).getPropertyValue("--background-invert-if-dark");return e!==void 0?e==="invert(100%)":!1}cA();const dA=ge(zm());window.addEventListener("resize",()=>{dA.value=zm()});function zm(){return window.outerHeight===window.screen.height}const Mc=1024,Hm=Mc/2,Ja=t=>document.documentElement.clientWidth{hA.value=Ja(Mc),fA.value=Ja(Hm)},{passive:!0});function Of(t){return!t.parent||"vapor"in t||"vapor"in t.parent||t.parent.subTree!==t.vnode?null:t.parent}function pA(t){const e=[t];let n=Of(t);for(;n;)e.push(n),n=Of(n);return e}function gA(){const t=Gn();if(!t)throw new Error("useScopeId must be called within a setup context");const e=pA(t).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(e.map(n=>[n,""]))}wr(Ew,Cw);const mA=["aria-labelledby","aria-describedby"],vA=["data-theme-light","data-theme-dark"],yA=["id"],bA={class:"icons-menu"},_A=["title"],wA=["id"],xA={class:"modal-container__content"},EA=Rt({inheritAttrs:!1,__name:"NcModal",props:Wo({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:Wo(["next","previous","close","update:show"],["update:show"]),setup(t,{emit:e}){Al(V=>({v046d2bb2:b.value,v71f7c020:y.value}));const n=Uc(t,"show"),i=t,o=e,s=gA(),r=Qo(),a=qu("mask");let l;Wn(()=>q()),Ke(()=>i.additionalTrapElements,V=>{l&&l.updateContainerElements([a.value,...V])});const{isActive:c,pause:u,resume:d}=dx(A,to(()=>i.slideshowDelay),{immediate:!1}),f=ge(0),p=ge(!1);ig(()=>{p.value&&!i.slideshowPaused?d():c.value&&u()});const y=ht(()=>`${i.slideshowDelay}ms`),{stop:m}=bx(a,{onSwipeEnd:S});Wn(m),Nf("Escape",()=>{er().at(-1)===l&&j()},{allowInModal:!0}),Nf(["ArrowLeft","ArrowRight"],V=>{document.activeElement&&!a.value.contains(document.activeElement)||(V.key==="ArrowLeft"!==Ha?R():A())},{allowInModal:!0});const x=wl(),b=ht(()=>{let V=0;return i.hasNext&&i.enableSlideshow&&V++,!i.noClose&&i.closeButtonOutside&&V++,x.actions&&V++,V});Oi(()=>{!i.name&&i.labelId});function A(V){if(!i.hasNext){p.value=!1;return}V&&c.value&&N(),o("next",V)}function R(V){i.hasPrevious&&(V&&c.value&&N(),o("previous",V))}function S(V,et){if(!i.disableSwipe){if(et!=="left"&&et!=="right")return;et==="left"!==Ha?A(V):R(V)}}function N(){u(),d(),f.value++}function j(V){i.noClose||(n.value=!1,setTimeout(()=>{o("close",V)},300))}function U(V){i.closeOnClickOutside&&j(V)}async function H(){if(l)return;await yr();const V={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:er(),escapeDeactivates:!1,setReturnFocus:i.setReturnFocus};l=gm([a.value,...i.additionalTrapElements],V),l.activate()}function q(){l&&(l?.deactivate(),l=void 0)}return(V,et)=>(O(),Ct(Oy,{disabled:t.container===null,to:t.container},[ot(ls,{name:"fade",appear:"",onAfterEnter:H,onBeforeLeave:q},{default:kt(()=>[_s(w("div",ee({...V.$attrs,...E(s)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":t.dark||t.closeButtonOutside||t.hasPrevious||t.hasNext,"modal-mask--light":t.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":t.labelId||`modal-name-${E(r)}`,"aria-describedby":"modal-description-"+E(r),tabindex:"-1"}),[ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[w("div",{class:"modal-header","data-theme-light":t.lightBackdrop,"data-theme-dark":!t.lightBackdrop},[t.name.trim()!==""?(O(),J("h2",{key:0,id:"modal-name-"+E(r),class:"modal-header__name"},L(t.name),9,yA)):_t("",!0),w("div",bA,[t.hasNext&&t.enableSlideshow?(O(),J("button",{key:0,class:Yt(["play-pause-icons",{"play-pause-icons--paused":t.slideshowPaused}]),title:E(c)?E(We)("Pause slideshow"):E(We)("Start slideshow"),type:"button",onClick:et[0]||(et[0]=T=>p.value=!p.value)},[ot(Vn,{class:"play-pause-icons__icon",inline:"",name:E(c)?E(We)("Pause slideshow"):E(We)("Start slideshow"),path:E(c)?E(Iw):E(zw)},null,8,["name","path"]),E(c)?(O(),J("svg",{key:`${E(r)}-animation-${f.value}`,class:"progress-ring",height:"50",width:"50"},[...et[1]||(et[1]=[w("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):_t("",!0)],10,_A)):_t("",!0),ot(oA,{class:"header-actions",inline:t.inlineActions},{default:kt(()=>[Zt(V.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!t.noClose&&t.closeButtonOutside?(O(),Ct(si,{key:1,"aria-label":E(We)("Close"),class:"header-close",variant:"tertiary",onClick:j},{icon:kt(()=>[ot(Vn,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):_t("",!0)])],8,vA)]),_:3}),ot(ls,{name:`modal-${t.outTransition?"out":"in"}`,appear:""},{default:kt(()=>[_s(w("div",{class:Yt(["modal-wrapper",[`modal-wrapper--${t.size}`,{"modal-wrapper--spread-navigation":t.spreadNavigation}]]),onMousedown:o_(U,["self"])},[ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[_s(ot(si,{"aria-label":E(We)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:R},{icon:kt(()=>[ot(Vn,{directional:"",path:E(Bw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasPrevious]])]),_:1}),w("div",{id:"modal-description-"+E(r),class:"modal-container"},[w("div",xA,[Zt(V.$slots,"default",{},void 0,!0)]),!t.noClose&&!t.closeButtonOutside?(O(),Ct(si,{key:0,"aria-label":E(We)("Close"),class:"modal-container__close",variant:"tertiary",onClick:j},{icon:kt(()=>[ot(Vn,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):_t("",!0)],8,wA),ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[_s(ot(si,{"aria-label":E(We)("Next"),class:"next",variant:"tertiary-no-background",onClick:A},{icon:kt(()=>[ot(Vn,{directional:"",path:E(Fw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasNext]])]),_:1})],34),[[jr,n.value]])]),_:3},8,["name"])],16,mA),[[jr,n.value]])]),_:3})],8,["disabled","to"]))}}),AA=Ie(EA,[["__scopeId","data-v-3c357e2d"]]),SA=["id","textContent"],CA=["aria-label","aria-labelledby"],TA={class:"dialog__text"},kA={class:"dialog__actions"},RA=Rt({__name:"NcDialog",props:Wo({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Wo(["closing","reset","submit"],["update:open"]),setup(t,{emit:e}){const n=Uc(t,"open"),i=t,o=e,s=wl(),r=qu("wrapper"),{width:a}=yx(r,{width:900,height:0}),l=ht(()=>a.value<876),c=ht(()=>s?.navigation!==void 0),u=Qo(),d=ht(()=>i.navigationAriaLabel||void 0),f=ht(()=>{if(!i.navigationAriaLabel)return i.navigationAriaLabelledby||u}),p=qu("dialogElement"),y=ht(()=>i.isForm&&!c.value?"form":"div"),m=ht(()=>y.value!=="form"?{}:{submit(N){N.preventDefault(),o("submit",N)},reset(N){N.preventDefault(),o("reset",N)}}),x=ge(!0);function b(N,j){N.type==="submit"&&y.value==="form"&&"reportValidity"in p.value&&!p.value.reportValidity()||(A(j),window.setTimeout(()=>R(),300))}function A(N){x.value=!1,o("closing",N)}function R(){x.value=!0,n.value=!1}const S=ht(()=>({noClose:i.noClose,container:i.container===void 0?"body":i.container,labelId:u,size:i.size,show:n.value&&x.value,outTransition:i.outTransition,closeOnClickOutside:i.closeOnClickOutside,additionalTrapElements:i.additionalTrapElements}));return(N,j)=>n.value?(O(),Ct(E(AA),ee({key:0,class:"dialog__modal",disableSwipe:""},S.value,{onClose:R,"onUpdate:show":j[0]||(j[0]=U=>A())}),{default:kt(()=>[w("h2",{id:E(u),class:"dialog__name",textContent:L(t.name)},null,8,SA),(O(),Ct(_l(y.value),ee({ref:"dialogElement",class:["dialog",t.dialogClasses]},qy(m.value)),{default:kt(()=>[w("div",{ref:"wrapper",class:Yt(["dialog__wrapper",[{"dialog__wrapper--collapsed":l.value}]])},[c.value?(O(),J("nav",{key:0,class:Yt(["dialog__navigation",t.navigationClasses]),"aria-label":d.value,"aria-labelledby":f.value},[Zt(N.$slots,"navigation",{isCollapsed:l.value},void 0,!0)],10,CA)):_t("",!0),w("div",{class:Yt(["dialog__content",t.contentClasses])},[Zt(N.$slots,"default",{},()=>[w("p",TA,L(t.message),1)],!0)],2)],2),w("div",kA,[Zt(N.$slots,"actions",{},()=>[(O(!0),J(At,null,$i(t.buttons,(U,H)=>(O(),Ct(E(Ux),ee({key:H},{ref_for:!0},U,{onClick:(q,V)=>b(U,V)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):_t("",!0)}}),PA=Ie(RA,[["__scopeId","data-v-24e91b99"]]),LA=["title"],DA=Rt({__name:"JobStatusIndicator",props:{status:{},dotOnly:{type:Boolean}},setup(t){const e=t,n=ht(()=>{switch(e.status){case"SUCCEEDED":return I("serverinfo","Succeeded");case"FAILED":return I("serverinfo","Failed");case"CRASHED":return I("serverinfo","Crashed");default:return I("serverinfo","Running")}});return(i,o)=>(O(),J("span",{class:Yt(["job-status",`job-status--${t.status.toLowerCase()}`]),title:t.dotOnly?n.value:void 0},[o[0]||(o[0]=w("span",{class:"job-status__dot","aria-hidden":"true"},null,-1)),w("span",{class:Yt(t.dotOnly&&"hidden-visually")},L(n.value),3)],10,LA))}}),Jm=Qt(DA,[["__scopeId","data-v-0e5a1326"]]);function _n(t){const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&i(O(),Ct(E(PA),{name:E(Wa)(t.run.className),size:"normal",onClosing:i[0]||(i[0]=o=>n.$emit("close"))},{default:kt(()=>[w("dl",NA,[w("dt",null,L(E(I)("serverinfo","Class")),1),w("dd",OA,L(t.run.className),1),w("dt",null,L(E(I)("serverinfo","Status")),1),w("dd",null,[ot(Jm,{status:t.run.status},null,8,["status"])]),w("dt",null,L(E(I)("serverinfo","Started")),1),w("dd",null,[ot(E(Gc),{timestamp:t.run.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),w("dt",null,L(E(I)("serverinfo","Duration")),1),w("dd",null,L(E(Ga)(t.run.duration)),1),w("dt",null,L(E(I)("serverinfo","Peak memory")),1),w("dd",null,L(E(ed)(t.run.memoryPeak)),1),w("dt",null,L(E(I)("serverinfo","Run ID")),1),w("dd",null,L(t.run.runId),1),w("dt",null,L(E(I)("serverinfo","Server ID")),1),w("dd",null,L(t.run.serverId),1),w("dt",null,L(E(I)("serverinfo","Process ID")),1),w("dd",null,L(t.run.pid),1)])]),_:1},8,["name"]))}}),BA=Qt($A,[["__scopeId","data-v-c21cb020"]]),FA={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jA=["aria-hidden","aria-label"],UA=["fill","width","height"],VA={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"},IA={key:0};function zA(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon information-outline-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",VA,[n.title?(O(),J("title",IA,L(n.title),1)):_t("",!0)])],8,UA))],16,jA)}const HA=Qt(FA,[["render",zA]]),JA={class:"server-info-table"},WA={class:"status-cell"},GA={class:"hidden-visually"},qA={class:"when-cell"},KA={class:"duration-cell"},XA={class:"memory-cell"},YA={class:"info-cell"},ZA={class:"hidden-visually"},QA={class:"status-cell"},MA=["title"],tS={class:"info-cell"},eS=Rt({__name:"JobRunsTable",props:{runs:{}},emits:["select"],setup(t){const e={dateStyle:"short",timeStyle:"medium"};function n(i){return I("serverinfo","Details about {job} from {time}",{job:Wa(i.className),time:new Date(i.startedAt*1e3).toLocaleString(Mg(),e)})}return(i,o)=>(O(),J("div",JA,[w("table",null,[w("thead",null,[w("tr",null,[w("th",WA,[w("span",GA,L(E(I)("serverinfo","Status")),1)]),w("th",null,L(E(I)("serverinfo","Job")),1),w("th",qA,L(E(I)("serverinfo","When")),1),w("th",KA,L(E(I)("serverinfo","Duration")),1),w("th",XA,L(E(I)("serverinfo","Peak memory")),1),w("th",YA,[w("span",ZA,L(E(I)("serverinfo","Details")),1)])])]),w("tbody",null,[(O(!0),J(At,null,$i(t.runs,s=>(O(),J("tr",{key:s.runId},[w("td",QA,[ot(Jm,{status:s.status,dotOnly:""},null,8,["status"])]),w("td",{title:s.className},L(E(Wa)(s.className)),9,MA),w("td",null,[ot(E(Gc),{timestamp:s.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),w("td",null,L(E(Ga)(s.duration)),1),w("td",null,L(E(ed)(s.memoryPeak)),1),w("td",tS,[ot(E(si),{variant:"tertiary",size:"small","aria-label":n(s),title:n(s),onClick:r=>i.$emit("select",s)},{icon:kt(()=>[ot(HA,{size:20})]),_:1},8,["aria-label","title","onClick"])])]))),128))])])]))}}),$f=Qt(eS,[["__scopeId","data-v-0f6631a0"]]),nS={class:"server-info-table"},iS={class:"job-cell"},oS={class:"count-cell"},sS={class:"count-cell"},rS={class:"count-cell"},aS={class:"memory-cell"},lS=["title"],uS={class:"count-cell"},cS={class:"count-cell"},dS={class:"count-cell"},hS={class:"memory-cell"},fS=Rt({__name:"SlowJobsTable",props:{jobs:{}},setup(t){return(e,n)=>(O(),J("div",nS,[w("table",null,[w("thead",null,[w("tr",null,[w("th",iS,L(E(I)("serverinfo","Job")),1),w("th",oS,L(E(I)("serverinfo","Runs")),1),w("th",sS,L(E(I)("serverinfo","Average")),1),w("th",rS,L(E(I)("serverinfo","Longest")),1),w("th",aS,L(E(I)("serverinfo","Peak memory")),1)])]),w("tbody",null,[(O(!0),J(At,null,$i(t.jobs,i=>(O(),J("tr",{key:i.className},[w("td",{class:"job-cell",title:i.className},L(E(Wa)(i.className)),9,lS),w("td",uS,L(i.runs),1),w("td",cS,L(E(Ga)(i.avgDuration)),1),w("td",dS,L(E(Ga)(i.maxDuration)),1),w("td",hS,L(E(ed)(i.memoryPeak)),1)]))),128))])])]))}}),pS=Qt(fS,[["__scopeId","data-v-452808c1"]]),gS={class:"stat-tile"},mS={class:"stat-tile__label"},vS={key:0,class:"hidden-visually"},yS=Rt({__name:"StatTile",props:{label:{},value:{},status:{}},setup(t){const e=t,n=ht(()=>{switch(e.status){case"warning":return I("serverinfo","Warning");case"critical":return I("serverinfo","Critical");default:return""}});return(i,o)=>(O(),J("div",gS,[w("div",mS,L(t.label),1),w("div",{class:Yt(["stat-tile__value",t.status&&`stat-tile__value--${t.status}`])},[Zt(i.$slots,"default",{},()=>[Dt(L(t.value),1)],!0),n.value?(O(),J("span",vS,L(n.value),1)):_t("",!0)],2)]))}}),tn=Qt(yS,[["__scopeId","data-v-4a64fa3b"]]),bS={class:"section background-jobs"},_S={class:"row row--tiles"},wS=Rt({__name:"BackgroundJobsSection",props:{cron:{},jobs:{}},setup(t){const e=t,n=ge(null);function i(a){n.value={...a}}const o=ht(()=>e.cron.lastRun>0?Math.max(0,e.cron.now-e.cron.lastRun):-1),s=ht(()=>{const a=o.value;return a<0?"critical":e.cron.mode==="cron"?a>3600?"critical":a>900?"warning":"ok":a>7200?"critical":a>3600?"warning":"ok"}),r=ht(()=>{switch(e.cron.mode){case"cron":return I("serverinfo","System cron");case"webcron":return I("serverinfo","Webcron");default:return I("serverinfo","AJAX (not recommended)")}});return(a,l)=>(O(),J("div",bS,[ot(Xe,{icon:rx,title:E(I)("serverinfo","Background jobs")},null,8,["title"]),w("div",_S,[ot(tn,{label:E(I)("serverinfo","Mode"),value:r.value,status:t.cron.mode==="ajax"?"warning":void 0},null,8,["label","value","status"]),ot(tn,{label:E(I)("serverinfo","Last run"),status:s.value},{default:kt(()=>[t.cron.lastRun>0?(O(),Ct(E(Gc),{key:0,timestamp:t.cron.lastRun*1e3},null,8,["timestamp"])):(O(),J(At,{key:1},[Dt(L(E(I)("serverinfo","Never")),1)],64))]),_:1},8,["label","status"])]),w("h3",null,L(E(ic)("serverinfo","Latest failures (last %n day)","Latest failures (last %n days)",t.jobs.retentionDays)),1),t.jobs.failures.length===0?(O(),Ct(E(au),{key:0,type:"success"},{default:kt(()=>[Dt(L(E(ic)("serverinfo","No background job failed in the last %n day.","No background job failed in the last %n days.",t.jobs.retentionDays)),1)]),_:1})):(O(),Ct($f,{key:1,runs:t.jobs.failures,onSelect:i},null,8,["runs"])),w("h3",null,L(E(I)("serverinfo","Latest runs")),1),t.jobs.recent.length===0?(O(),Ct(E(au),{key:2,type:"info"},{default:kt(()=>[Dt(L(E(I)("serverinfo","No background job has run yet.")),1)]),_:1})):(O(),Ct($f,{key:3,runs:t.jobs.recent,onSelect:i},null,8,["runs"])),w("h3",null,L(E(I)("serverinfo","Slowest jobs")),1),t.jobs.slowest.length===0?(O(),Ct(E(au),{key:4,type:"info"},{default:kt(()=>[Dt(L(E(I)("serverinfo","The slow jobs statistics are not available yet. They are collected by a background job and appear after its next run.")),1)]),_:1})):(O(),Ct(pS,{key:5,jobs:t.jobs.slowest},null,8,["jobs"])),n.value?(O(),Ct(BA,{key:6,run:n.value,onClose:l[0]||(l[0]=c=>n.value=null)},null,8,["run"])):_t("",!0)]))}}),xS=Qt(wS,[["__scopeId","data-v-612ee243"]]);function xr(t){return t+.5|0}const Ei=(t,e,n)=>Math.max(Math.min(t,n),e);function Ss(t){return Ei(xr(t*2.55),0,255)}function Pi(t){return Ei(xr(t*255),0,255)}function ei(t){return Ei(xr(t/2.55)/100,0,1)}function Bf(t){return Ei(xr(t*100),0,100)}const dn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},bc=[..."0123456789ABCDEF"],ES=t=>bc[t&15],AS=t=>bc[(t&240)>>4]+bc[t&15],Hr=t=>(t&240)>>4===(t&15),SS=t=>Hr(t.r)&&Hr(t.g)&&Hr(t.b)&&Hr(t.a);function CS(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&dn[t[1]]*17,g:255&dn[t[2]]*17,b:255&dn[t[3]]*17,a:e===5?dn[t[4]]*17:255}:(e===7||e===9)&&(n={r:dn[t[1]]<<4|dn[t[2]],g:dn[t[3]]<<4|dn[t[4]],b:dn[t[5]]<<4|dn[t[6]],a:e===9?dn[t[7]]<<4|dn[t[8]]:255})),n}const TS=(t,e)=>t<255?e(t):"";function kS(t){var e=SS(t)?ES:AS;return t?"#"+e(t.r)+e(t.g)+e(t.b)+TS(t.a,e):void 0}const RS=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Gm(t,e,n){const i=e*Math.min(n,1-n),o=(s,r=(s+t/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function PS(t,e,n){const i=(o,s=(o+t/60)%6)=>n-n*e*Math.max(Math.min(s,4-s,1),0);return[i(5),i(3),i(1)]}function LS(t,e,n){const i=Gm(t,1,.5);let o;for(e+n>1&&(o=1/(e+n),e*=o,n*=o),o=0;o<3;o++)i[o]*=1-e-n,i[o]+=e;return i}function DS(t,e,n,i,o){return t===o?(e-n)/i+(e.5?c/(2-o-s):c/(o+s),a=DS(e,n,i,c,o),a=a*60+.5),[a|0,l||0,r]}function id(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Pi)}function od(t,e,n){return id(Gm,t,e,n)}function NS(t,e,n){return id(LS,t,e,n)}function OS(t,e,n){return id(PS,t,e,n)}function qm(t){return(t%360+360)%360}function $S(t){const e=RS.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?Ss(+e[5]):Pi(+e[5]));const o=qm(+e[2]),s=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=NS(o,s,r):e[1]==="hsv"?i=OS(o,s,r):i=od(o,s,r),{r:i[0],g:i[1],b:i[2],a:n}}function BS(t,e){var n=nd(t);n[0]=qm(n[0]+e),n=od(n),t.r=n[0],t.g=n[1],t.b=n[2]}function FS(t){if(!t)return;const e=nd(t),n=e[0],i=Bf(e[1]),o=Bf(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${o}%, ${ei(t.a)})`:`hsl(${n}, ${i}%, ${o}%)`}const Ff={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},jf={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function jS(){const t={},e=Object.keys(jf),n=Object.keys(Ff);let i,o,s,r,a;for(i=0;i>16&255,s>>8&255,s&255]}return t}let Jr;function US(t){Jr||(Jr=jS(),Jr.transparent=[0,0,0,0]);const e=Jr[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const VS=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function IS(t){const e=VS.exec(t);let n=255,i,o,s;if(e){if(e[7]!==i){const r=+e[7];n=e[8]?Ss(r):Ei(r*255,0,255)}return i=+e[1],o=+e[3],s=+e[5],i=255&(e[2]?Ss(i):Ei(i,0,255)),o=255&(e[4]?Ss(o):Ei(o,0,255)),s=255&(e[6]?Ss(s):Ei(s,0,255)),{r:i,g:o,b:s,a:n}}}function zS(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${ei(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const wu=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,Po=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function HS(t,e,n){const i=Po(ei(t.r)),o=Po(ei(t.g)),s=Po(ei(t.b));return{r:Pi(wu(i+n*(Po(ei(e.r))-i))),g:Pi(wu(o+n*(Po(ei(e.g))-o))),b:Pi(wu(s+n*(Po(ei(e.b))-s))),a:t.a+n*(e.a-t.a)}}function Wr(t,e,n){if(t){let i=nd(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=od(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function Km(t,e){return t&&Object.assign(e||{},t)}function Uf(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Pi(t[3]))):(e=Km(t,{r:0,g:0,b:0,a:1}),e.a=Pi(e.a)),e}function JS(t){return t.charAt(0)==="r"?IS(t):$S(t)}class ar{constructor(e){if(e instanceof ar)return e;const n=typeof e;let i;n==="object"?i=Uf(e):n==="string"&&(i=CS(e)||US(e)||JS(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Km(this._rgb);return e&&(e.a=ei(e.a)),e}set rgb(e){this._rgb=Uf(e)}rgbString(){return this._valid?zS(this._rgb):void 0}hexString(){return this._valid?kS(this._rgb):void 0}hslString(){return this._valid?FS(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,o=e.rgb;let s;const r=n===s?.5:n,a=2*r-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-c,i.r=255&c*i.r+s*o.r+.5,i.g=255&c*i.g+s*o.g+.5,i.b=255&c*i.b+s*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=HS(this._rgb,e._rgb,n)),this}clone(){return new ar(this.rgb)}alpha(e){return this._rgb.a=Pi(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=xr(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Wr(this._rgb,2,e),this}darken(e){return Wr(this._rgb,2,-e),this}saturate(e){return Wr(this._rgb,1,e),this}desaturate(e){return Wr(this._rgb,1,-e),this}rotate(e){return BS(this._rgb,e),this}}function Yn(){}const WS=(()=>{let t=0;return()=>t++})();function oe(t){return t==null}function Ae(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Vt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ve(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Dn(t,e){return Ve(t)?t:e}function Ot(t,e){return typeof t>"u"?e:t}const GS=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,Xm=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function re(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Mt(t,e,n,i){let o,s,r;if(Ae(t))for(s=t.length,o=0;ot,x:t=>t.x,y:t=>t.y};function XS(t){const e=t.split("."),n=[];let i="";for(const o of e)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function YS(t){const e=XS(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function ur(t,e){return(Vf[e]||(Vf[e]=YS(e)))(t)}function sd(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Xa=t=>typeof t<"u",Ni=t=>typeof t=="function",If=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function ZS(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const te=Math.PI,de=2*te,QS=de+te,Ya=Number.POSITIVE_INFINITY,MS=te/180,we=te/2,Ji=te/4,zf=te*2/3,Zm=Math.log10,Go=Math.sign;function Vs(t,e,n){return Math.abs(t-e)o-s).pop(),e}function e4(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function cr(t){return!e4(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function n4(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function i4(t,e,n){let i,o,s;for(i=0,o=t.length;il&&c=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function rd(t,e,n){n=n||(r=>t[r]1;)s=o+i>>1,n(s)?o=s:i=s;return{lo:o,hi:i}}const oo=(t,e,n,i)=>rd(t,n,i?o=>{const s=t[o][e];return st[o][e]rd(t,n,i=>t[i][e]>=n);function l4(t,e,n){let i=0,o=t.length;for(;ii&&t[o-1]>n;)o--;return i>0||o{const i="_onData"+sd(n),o=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...s){const r=o.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...s)}),r}})})}function Wf(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),!(i.length>0)&&(Mm.forEach(s=>{delete t[s]}),delete t._chartjs)}function c4(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const t1=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function e1(t,e){let n=[],i=!1;return function(...o){n=o,i||(i=!0,t1.call(window,()=>{i=!1,t.apply(e,n)}))}}function d4(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const n1=t=>t==="start"?"left":t==="end"?"right":"center",sn=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,h4=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function f4(t,e,n){const i=e.length;let o=0,s=i;if(t._sorted){const{iScale:r,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=r.axis,{min:d,max:f,minDefined:p,maxDefined:y}=r.getUserBounds();if(p){if(o=Math.min(oo(l,u,d).lo,n?i:oo(e,u,r.getPixelForValue(d)).lo),c){const m=l.slice(0,o+1).reverse().findIndex(x=>!oe(x[a.axis]));o-=Math.max(0,m)}o=qe(o,0,i-1)}if(y){let m=Math.max(oo(l,r.axis,f,!0).hi+1,n?0:oo(e,u,r.getPixelForValue(f),!0).hi+1);if(c){const x=l.slice(m-1).findIndex(b=>!oe(b[a.axis]));m+=Math.max(0,x)}s=qe(m,o,i)-o}else s=i-o}return{start:o,count:s}}function p4(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,o={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=o,!0;const s=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,o),s}const Gr=t=>t===0||t===1,Gf=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*de/n)),qf=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*de/n)+1,Is={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*we)+1,easeOutSine:t=>Math.sin(t*we),easeInOutSine:t=>-.5*(Math.cos(te*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>Gr(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Gr(t)?t:Gf(t,.075,.3),easeOutElastic:t=>Gr(t)?t:qf(t,.075,.3),easeInOutElastic(t){return Gr(t)?t:t<.5?.5*Gf(t*2,.1125,.45):.5+.5*qf(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Is.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Is.easeInBounce(t*2)*.5:Is.easeOutBounce(t*2-1)*.5+.5};function ad(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function Kf(t){return ad(t)?t:new ar(t)}function xu(t){return ad(t)?t:new ar(t).saturate(.5).darken(.1).hexString()}const g4=["x","y","borderWidth","radius","tension"],m4=["color","borderColor","backgroundColor"];function v4(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:m4},numbers:{type:"number",properties:g4}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function y4(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Xf=new Map;function b4(t,e){e=e||{};const n=t+JSON.stringify(e);let i=Xf.get(n);return i||(i=new Intl.NumberFormat(t,e),Xf.set(n,i)),i}function ld(t,e,n){return b4(e,n).format(t)}const _4={values(t){return Ae(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let o,s=t;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),s=w4(t,n)}const r=Zm(Math.abs(s)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ld(t,i,l)}};function w4(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var i1={formatters:_4};function x4(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:i1.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const po=Object.create(null),wc=Object.create(null);function zs(t,e){if(!e)return t;const n=e.split(".");for(let i=0,o=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>xu(o.backgroundColor),this.hoverBorderColor=(i,o)=>xu(o.borderColor),this.hoverColor=(i,o)=>xu(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Eu(this,e,n)}get(e){return zs(this,e)}describe(e,n){return Eu(wc,e,n)}override(e,n){return Eu(po,e,n)}route(e,n,i,o){const s=zs(this,e),r=zs(this,i),a="_"+n;Object.defineProperties(s,{[a]:{value:s[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[o];return Vt(l)?Object.assign({},c,l):Ot(l,c)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var pe=new E4({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[v4,y4,x4]);function A4(t){return!t||oe(t.size)||oe(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Yf(t,e,n,i,o){let s=e[o];return s||(s=e[o]=t.measureText(o).width,n.push(o)),s>i&&(i=s),i}function Wi(t,e,n){const i=t.currentDevicePixelRatio,o=n!==0?Math.max(n/2,.5):0;return Math.round((e-o)*i)/i+o}function Zf(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function xc(t,e,n,i){o1(t,e,n,i,null)}function o1(t,e,n,i,o){let s,r,a,l,c,u,d,f;const p=e.pointStyle,y=e.rotation,m=e.radius;let x=(y||0)*MS;if(p&&typeof p=="object"&&(s=p.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(x),t.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),t.restore();return}if(!(isNaN(m)||m<=0)){switch(t.beginPath(),p){default:o?t.ellipse(n,i,o/2,m,0,0,de):t.arc(n,i,m,0,de),t.closePath();break;case"triangle":u=o?o/2:m,t.moveTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),t.closePath();break;case"rectRounded":c=m*.516,l=m-c,r=Math.cos(x+Ji)*l,d=Math.cos(x+Ji)*(o?o/2-c:l),a=Math.sin(x+Ji)*l,f=Math.sin(x+Ji)*(o?o/2-c:l),t.arc(n-d,i-a,c,x-te,x-we),t.arc(n+f,i-r,c,x-we,x),t.arc(n+d,i+a,c,x,x+we),t.arc(n-f,i+r,c,x+we,x+te),t.closePath();break;case"rect":if(!y){l=Math.SQRT1_2*m,u=o?o/2:l,t.rect(n-u,i-l,2*u,2*l);break}x+=Ji;case"rectRot":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+f,i-r),t.lineTo(n+d,i+a),t.lineTo(n-f,i+r),t.closePath();break;case"crossRot":x+=Ji;case"cross":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"star":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r),x+=Ji,d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"line":r=o?o/2:Math.cos(x)*m,a=Math.sin(x)*m,t.moveTo(n-r,i-a),t.lineTo(n+r,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(x)*(o?o/2:m),i+Math.sin(x)*m);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function hr(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&s.strokeColor!=="";let l,c;for(t.save(),t.font=o.string,T4(t,s),l=0;l+t||0;function ud(t,e){const n={},i=Vt(e),o=i?Object.keys(e):e,s=Vt(t)?i?r=>Ot(t[r],t[e[r]]):r=>t[r]:()=>t;for(const r of o)n[r]=N4(s(r));return n}function O4(t){return ud(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Hs(t){return ud(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Cn(t){const e=O4(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Me(t,e){t=t||{},e=e||pe.font;let n=Ot(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Ot(t.style,e.style);i&&!(""+i).match(L4)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:Ot(t.family,e.family),lineHeight:D4(Ot(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Ot(t.weight,e.weight),string:""};return o.string=A4(o),o}function qr(t,e,n,i){let o,s,r;for(o=0,s=t.length;on&&a===0?0:a+l;return{min:r(i,-Math.abs(s)),max:r(o,s)}}function bo(t,e){return Object.assign(Object.create(t),e)}function cd(t,e=[""],n,i,o=()=>t[0]){const s=n||t;typeof i>"u"&&(i=l1("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:i,_getTarget:o,override:a=>cd([a,...t],e,s,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return r1(a,l,()=>H4(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return Mf(a).includes(l)},ownKeys(a){return Mf(a)},set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function qo(t,e,n,i){const o={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:s1(t,i),setContext:s=>qo(t,s,n,i),override:s=>qo(t.override(s),e,n,i)};return new Proxy(o,{deleteProperty(s,r){return delete s[r],delete t[r],!0},get(s,r,a){return r1(s,r,()=>F4(s,r,a))},getOwnPropertyDescriptor(s,r){return s._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(s,r,a){return t[r]=a,delete s[r],!0}})}function s1(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:o=e.allKeys}=t;return{allKeys:o,scriptable:n,indexable:i,isScriptable:Ni(n)?n:()=>n,isIndexable:Ni(i)?i:()=>i}}const B4=(t,e)=>t?t+sd(e):e,dd=(t,e)=>Vt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function r1(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function F4(t,e,n){const{_proxy:i,_context:o,_subProxy:s,_descriptors:r}=t;let a=i[e];return Ni(a)&&r.isScriptable(e)&&(a=j4(e,a,t,n)),Ae(a)&&a.length&&(a=U4(e,a,t,r.isIndexable)),dd(e,a)&&(a=qo(a,o,s&&s[e],r)),a}function j4(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,r||i);return a.delete(t),dd(t,l)&&(l=hd(o._scopes,o,t,l)),l}function U4(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_descriptors:a}=n;if(typeof s.index<"u"&&i(t))return e[s.index%e.length];if(Vt(e[0])){const l=e,c=o._scopes.filter(u=>u!==l);e=[];for(const u of l){const d=hd(c,o,t,u);e.push(qo(d,s,r&&r[t],a))}}return e}function a1(t,e,n){return Ni(t)?t(e,n):t}const V4=(t,e)=>t===!0?e:typeof t=="string"?ur(e,t):void 0;function I4(t,e,n,i,o){for(const s of e){const r=V4(n,s);if(r){t.add(r);const a=a1(r._fallback,n,o);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function hd(t,e,n,i){const o=e._rootScopes,s=a1(e._fallback,n,i),r=[...t,...o],a=new Set;a.add(i);let l=Qf(a,r,n,s||n,i);return l===null||typeof s<"u"&&s!==n&&(l=Qf(a,r,s,l,i),l===null)?!1:cd(Array.from(a),[""],o,s,()=>z4(e,n,i))}function Qf(t,e,n,i,o){for(;n;)n=I4(t,e,n,i,o);return n}function z4(t,e,n){const i=t._getTarget();e in i||(i[e]={});const o=i[e];return Ae(o)&&Vt(n)?n:o||{}}function H4(t,e,n,i){let o;for(const s of e)if(o=l1(B4(s,t),n),typeof o<"u")return dd(t,o)?hd(n,i,t,o):o}function l1(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function Mf(t){let e=t._keys;return e||(e=t._keys=J4(t._scopes)),e}function J4(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(o=>!o.startsWith("_")))e.add(i);return Array.from(e)}const W4=Number.EPSILON||1e-14,Ko=(t,e)=>et==="x"?"y":"x";function G4(t,e,n,i){const o=t.skip?e:t,s=e,r=n.skip?e:n,a=_c(s,o),l=_c(r,s);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const d=i*c,f=i*u;return{previous:{x:s.x-d*(r.x-o.x),y:s.y-d*(r.y-o.y)},next:{x:s.x+f*(r.x-o.x),y:s.y+f*(r.y-o.y)}}}function q4(t,e,n){const i=t.length;let o,s,r,a,l,c=Ko(t,0);for(let u=0;u!c.skip)),e.cubicInterpolationMode==="monotone")X4(t,o);else{let c=i?t[t.length-1]:t[0];for(s=0,r=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function Q4(t,e){return Pl(t).getPropertyValue(e)}const M4=["top","right","bottom","left"];function co(t,e,n){const i={};n=n?"-"+n:"";for(let o=0;o<4;o++){const s=M4[o];i[s]=parseFloat(t[e+"-"+s+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const tC=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function eC(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:o,offsetY:s}=i;let r=!1,a,l;if(tC(o,s,t.target))a=o,l=s;else{const c=e.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function Ki(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,o=Pl(n),s=o.boxSizing==="border-box",r=co(o,"padding"),a=co(o,"border","width"),{x:l,y:c,box:u}=eC(t,n),d=r.left+(u&&a.left),f=r.top+(u&&a.top);let{width:p,height:y}=e;return s&&(p-=r.width+a.width,y-=r.height+a.height),{x:Math.round((l-d)/p*n.width/i),y:Math.round((c-f)/y*n.height/i)}}function nC(t,e,n){let i,o;if(e===void 0||n===void 0){const s=t&&pd(t);if(!s)e=t.clientWidth,n=t.clientHeight;else{const r=s.getBoundingClientRect(),a=Pl(s),l=co(a,"border","width"),c=co(a,"padding");e=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Qa(a.maxWidth,s,"clientWidth"),o=Qa(a.maxHeight,s,"clientHeight")}}return{width:e,height:n,maxWidth:i||Ya,maxHeight:o||Ya}}const Ai=t=>Math.round(t*10)/10;function iC(t,e,n,i){const o=Pl(t),s=co(o,"margin"),r=Qa(o.maxWidth,t,"clientWidth")||Ya,a=Qa(o.maxHeight,t,"clientHeight")||Ya,l=nC(t,e,n);let{width:c,height:u}=l;if(o.boxSizing==="content-box"){const d=co(o,"border","width"),f=co(o,"padding");c-=f.width+d.width,u-=f.height+d.height}return c=Math.max(0,c-s.width),u=Math.max(0,i?c/i:u-s.height),c=Ai(Math.min(c,r,l.maxWidth)),u=Ai(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Ai(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&u>l.height&&(u=l.height,c=Ai(Math.floor(u*i))),{width:c,height:u}}function tp(t,e,n){const i=e||1,o=Ai(t.height*i),s=Ai(t.width*i);t.height=Ai(t.height),t.width=Ai(t.width);const r=t.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==s?(t.currentDevicePixelRatio=i,r.height=o,r.width=s,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const oC=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fd()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function ep(t,e){const n=Q4(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Xi(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function sC(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function rC(t,e,n,i){const o={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},r=Xi(t,o,n),a=Xi(o,s,n),l=Xi(s,e,n),c=Xi(r,a,n),u=Xi(a,l,n);return Xi(c,u,n)}const aC=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},lC=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Ho(t,e,n){return t?aC(e,n):lC()}function c1(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function d1(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function h1(t){return t==="angle"?{between:dr,compare:s4,normalize:rn}:{between:io,compare:(e,n)=>e-n,normalize:e=>e}}function np({start:t,end:e,count:n,loop:i,style:o}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:o}}function uC(t,e,n){const{property:i,start:o,end:s}=n,{between:r,normalize:a}=h1(i),l=e.length;let{start:c,end:u,loop:d}=t,f,p;if(d){for(c+=l,u+=l,f=0,p=l;fl(o,R,b)&&a(o,R)!==0,N=()=>a(s,b)===0||l(s,R,b),j=()=>m||S(),U=()=>!m||N();for(let H=u,q=u;H<=d;++H)A=e[H%r],!A.skip&&(b=c(A[i]),b!==R&&(m=l(b,o,s),x===null&&j()&&(x=a(b,o)===0?H:q),x!==null&&U()&&(y.push(np({start:x,end:H,loop:f,count:r,style:p})),x=null),q=H,R=b));return x!==null&&y.push(np({start:x,end:d,loop:f,count:r,style:p})),y}function p1(t,e){const n=[],i=t.segments;for(let o=0;oo&&t[s%e].skip;)s--;return s%=e,{start:o,end:s}}function dC(t,e,n,i){const o=t.length,s=[];let r=e,a=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%o];c.skip||c.stop?a.skip||(i=!1,s.push({start:e%o,end:(l-1)%o,loop:i}),e=r=c.stop?l:null):(r=l,a.skip&&(e=l)),a=c}return r!==null&&s.push({start:e%o,end:r%o,loop:i}),s}function hC(t,e){const n=t.points,i=t.options.spanGaps,o=n.length;if(!o)return[];const s=!!t._loop,{start:r,end:a}=cC(n,o,s,i);if(i===!0)return ip(t,[{start:r,end:a,loop:s}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=t1.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const s=i.items;let r=s.length-1,a=!1,l;for(;r>=0;--r)l=s[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(s[r]=s[s.length-1],s.pop());a&&(o.draw(),this._notify(o,i,e,"progress")),s.length||(i.running=!1,this._notify(o,i,e,"complete"),i.initial=!1),n+=s.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Zn=new mC;const sp="transparent",vC={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=Kf(t||sp),o=i.valid&&Kf(e||sp);return o&&o.valid?o.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class yC{constructor(e,n,i,o){const s=n[i];o=qr([e.to,o,s,e.from]);const r=qr([e.from,s,o]);this._active=!0,this._fn=e.fn||vC[e.type||typeof r],this._easing=Is[e.easing]||Is.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const o=this._target[this._prop],s=i-this._start,r=this._duration-s;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=qr([e.to,n,o,e.from]),this._from=qr([e.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,o=this._prop,s=this._from,r=this._loop,a=this._to;let l;if(this._active=s!==a&&(r||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let o=0;o{const s=e[o];if(!Vt(s))return;const r={};for(const a of n)r[a]=s[a];(Ae(s.properties)&&s.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,r)})})}_animateOptions(e,n){const i=n.options,o=_C(e,i);if(!o)return[];const s=this._createAnimations(o,i);return i.$shared&&bC(e.options.$animations,i).then(()=>{e.options=i},()=>{}),s}_createAnimations(e,n){const i=this._properties,o=[],s=e.$animations||(e.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){o.push(...this._animateOptions(e,n));continue}const u=n[c];let d=s[c];const f=i.get(c);if(d)if(f&&d.active()){d.update(f,u,a);continue}else d.cancel();if(!f||!f.duration){e[c]=u;continue}s[c]=d=new yC(f,e,c,u),o.push(d)}return o}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Zn.add(this._chart,i),!0}}function bC(t,e){const n=[],i=Object.keys(e);for(let o=0;o0||!n&&s<0)return o.index}return null}function up(t,e){const{chart:n,_cachedMeta:i}=t,o=n._stacks||(n._stacks={}),{iScale:s,vScale:r,index:a}=i,l=s.axis,c=r.axis,u=AC(s,r,i),d=e.length;let f;for(let p=0;pn[i].axis===e).shift()}function TC(t,e){return bo(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function kC(t,e,n){return bo(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function ps(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const o of e){const s=o._stacks;if(!s||s[i]===void 0||s[i][n]===void 0)return;delete s[i][n],s[i]._visualValues!==void 0&&s[i]._visualValues[n]!==void 0&&delete s[i]._visualValues[n]}}}const Cu=t=>t==="reset"||t==="none",cp=(t,e)=>e?t:Object.assign({},t),RC=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:v1(n,!0),values:null};class gd{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Au(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&ps(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),o=(d,f,p,y)=>d==="x"?f:d==="r"?y:p,s=n.xAxisID=Ot(i.xAxisID,Su(e,"x")),r=n.yAxisID=Ot(i.yAxisID,Su(e,"y")),a=n.rAxisID=Ot(i.rAxisID,Su(e,"r")),l=n.indexAxis,c=n.iAxisID=o(l,s,r,a),u=n.vAxisID=o(l,r,s,a);n.xScale=this.getScaleForId(s),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&Wf(this._data,this),e._stacked&&ps(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(Vt(n)){const o=this._cachedMeta;this._data=EC(n,o)}else if(i!==n){if(i){Wf(i,this);const o=this._cachedMeta;ps(o),o._parsed=[]}n&&Object.isExtensible(n)&&u4(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let o=!1;this._dataCheck();const s=n._stacked;n._stacked=Au(n.vScale,n),n.stack!==i.stack&&(o=!0,ps(n),n.stack=i.stack),this._resyncElements(e),(o||s!==n._stacked)&&(up(this,n._parsed),n._stacked=Au(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:o}=this,{iScale:s,_stacked:r}=i,a=s.axis;let l=e===0&&n===o.length?!0:i._sorted,c=e>0&&i._parsed[e-1],u,d,f;if(this._parsing===!1)i._parsed=o,i._sorted=!0,f=o;else{Ae(o[e])?f=this.parseArrayData(i,o,e,n):Vt(o[e])?f=this.parseObjectData(i,o,e,n):f=this.parsePrimitiveData(i,o,e,n);const p=()=>d[a]===null||c&&d[a]m||d=0;--f)if(!y()){this.updateRangeFromParsed(c,e,p,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let o,s,r;for(o=0,s=n.length;o=0&&ethis.getContext(i,o,n),m=c.resolveNamedOptions(f,p,y,d);return m.$shared&&(m.$shared=l,s[r]=Object.freeze(cp(m,l))),m}_resolveAnimations(e,n,i){const o=this.chart,s=this._cachedDataOpts,r=`animation-${n}`,a=s[r];if(a)return a;let l;if(o.options.animation!==!1){const u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,n),f=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(f,this.getContext(e,i,n))}const c=new m1(o,l&&l.animations);return l&&l._cacheable&&(s[r]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Cu(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),o=this._sharedOptions,s=this.getSharedOptions(i),r=this.includeOptions(n,s)||s!==o;return this.updateSharedOptions(s,n,i),{sharedOptions:s,includeOptions:r}}updateElement(e,n,i,o){Cu(o)?Object.assign(e,i):this._resolveAnimations(n,o).update(e,i)}updateSharedOptions(e,n,i){e&&!Cu(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,o){e.active=o;const s=this.getStyle(n,o);this._resolveAnimations(n,i,o).update(e,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const o=i.length,s=n.length,r=Math.min(s,o);r&&this.parse(0,r),s>o?this._insertElements(o,s-o,e):s{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(s),a=e;adr(R,a,l,!0)?1:Math.max(S,S*n,N,N*n),y=(R,S,N)=>dr(R,a,l,!0)?-1:Math.min(S,S*n,N,N*n),m=p(0,c,d),x=p(we,u,f),b=y(te,c,d),A=y(te+we,u,f);i=(m-b)/2,o=(x-A)/2,s=-(m+b)/2,r=-(x+A)/2}return{ratioX:i,ratioY:o,offsetX:s,offsetY:r}}class LC extends gd{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,c)=>{const u=e.getDatasetMeta(0).controller.getStyle(c);return{text:l,fillStyle:u.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(c),lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:u.borderWidth,strokeStyle:u.borderColor,textAlign:o,pointStyle:i,borderRadius:r&&(a||u.borderRadius),index:c}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=i;else{let s=l=>+i[l];if(Vt(i[e])){const{key:l="value"}=this._parsing;s=c=>+ur(i[c],l)}let r,a;for(r=e,a=e+n;r0&&!isNaN(e)?de*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,o=i.data.labels||[],s=ld(n._parsed[e],i.options.locale);return{label:o[e]||"",value:s}}getMaxBorderWidth(e){let n=0;const i=this.chart;let o,s,r,a,l;if(!e){for(o=0,s=i.data.datasets.length;o0&&this.getParsed(n-1);for(let N=0;N=A){U.skip=!0;continue}const H=this.getParsed(N),q=oe(H[p]),V=U[f]=r.getPixelForValue(H[f],N),et=U[p]=s||q?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,H,l):H[p],N);U.skip=isNaN(V)||isNaN(et)||q,U.stop=N>0&&Math.abs(H[f]-S[f])>x,m&&(U.parsed=H,U.raw=c.data[N]),d&&(U.options=u||this.resolveDataElementOptions(N,j.active?"active":o)),b||this.updateElement(j,N,U,o),S=H}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,o=e.data||[];if(!o.length)return i;const s=o[0].size(this.resolveDataElementOptions(0)),r=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(i,s,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function Gi(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class vd{static override(e){Object.assign(vd.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return Gi()}parse(){return Gi()}format(){return Gi()}add(){return Gi()}diff(){return Gi()}startOf(){return Gi()}endOf(){return Gi()}}var DC={_date:vd};function NC(t,e,n,i){const{controller:o,data:s,_sorted:r}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&r&&s.length){const c=a._reversePixels?a4:oo;if(i){if(o._sharedOptions){const u=s[0],d=typeof u.getRange=="function"&&u.getRange(e);if(d){const f=c(s,e,n-d),p=c(s,e,n+d);return{lo:f.lo,hi:p.hi}}}}else{const u=c(s,e,n);if(l){const{vScale:d}=o._cachedMeta,{_parsed:f}=t,p=f.slice(0,u.lo+1).reverse().findIndex(m=>!oe(m[d.axis]));u.lo-=Math.max(0,p);const y=f.slice(u.hi).findIndex(m=>!oe(m[d.axis]));u.hi+=Math.max(0,y)}return u}}return{lo:0,hi:s.length-1}}function Ll(t,e,n,i,o){const s=t.getSortedVisibleDatasetMetas(),r=n[e];for(let a=0,l=s.length;a{l[r]&&l[r](e[n],o)&&(s.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(e.x,e.y,o))}),i&&!a?[]:s}var FC={modes:{index(t,e,n,i){const o=Ki(e,t),s=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?Tu(t,o,s,i,r):ku(t,o,s,!1,i,r),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(t,e,n,i){const o=Ki(e,t),s=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?Tu(t,o,s,i,r):ku(t,o,s,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;un.pos===e)}function hp(t,e){return t.filter(n=>y1.indexOf(n.pos)===-1&&n.box.axis===e)}function ms(t,e){return t.sort((n,i)=>{const o=e?i:n,s=e?n:i;return o.weight===s.weight?o.index-s.index:o.weight-s.weight})}function jC(t){const e=[];let n,i,o,s,r,a;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=ms(gs(e,"left"),!0),o=ms(gs(e,"right")),s=ms(gs(e,"top"),!0),r=ms(gs(e,"bottom")),a=hp(e,"x"),l=hp(e,"y");return{fullSize:n,leftAndTop:i.concat(s),rightAndBottom:o.concat(l).concat(r).concat(a),chartArea:gs(e,"chartArea"),vertical:i.concat(o).concat(l),horizontal:s.concat(r).concat(a)}}function fp(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function b1(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function zC(t,e,n,i){const{pos:o,box:s}=n,r=t.maxPadding;if(!Vt(o)){n.size&&(t[o]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?s.height:s.width),n.size=d.size/d.count,t[o]+=n.size}s.getPadding&&b1(r,s.getPadding());const a=Math.max(0,e.outerWidth-fp(r,t,"left","right")),l=Math.max(0,e.outerHeight-fp(r,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:c,other:u}:{same:u,other:c}}function HC(t){const e=t.maxPadding;function n(i){const o=Math.max(e[i]-t[i],0);return t[i]+=o,o}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function JC(t,e){const n=e.maxPadding;function i(o){const s={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{s[r]=Math.max(e[r],n[r])}),s}return i(t?["left","right"]:["top","bottom"])}function Cs(t,e,n,i){const o=[];let s,r,a,l,c,u;for(s=0,r=t.length,c=0;s{typeof m.beforeLayout=="function"&&m.beforeLayout()});const u=l.reduce((m,x)=>x.box.options&&x.box.options.display===!1?m:m+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:s,availableHeight:r,vBoxMaxWidth:s/2/u,hBoxMaxHeight:r/2}),f=Object.assign({},o);b1(f,Cn(i));const p=Object.assign({maxPadding:f,w:s,h:r,x:o.left,y:o.top},o),y=VC(l.concat(c),d);Cs(a.fullSize,p,d,y),Cs(l,p,d,y),Cs(c,p,d,y)&&Cs(l,p,d,y),HC(p),pp(a.leftAndTop,p,d,y),p.x+=p.w,p.y+=p.h,pp(a.rightAndBottom,p,d,y),t.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Mt(a.chartArea,m=>{const x=m.box;Object.assign(x,t.chartArea),x.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class _1{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,o){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,o?Math.floor(n/o):i)}}isAttached(e){return!0}updateConfig(e){}}class WC extends _1{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const pa="$chartjs",GC={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},gp=t=>t===null||t==="";function qC(t,e){const n=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[pa]={initial:{height:i,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",gp(o)){const s=ep(t,"width");s!==void 0&&(t.width=s)}if(gp(i))if(t.style.height==="")t.height=t.width/(e||2);else{const s=ep(t,"height");s!==void 0&&(t.height=s)}return t}const w1=oC?{passive:!0}:!1;function KC(t,e,n){t&&t.addEventListener(e,n,w1)}function XC(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,w1)}function YC(t,e){const n=GC[t.type]||t.type,{x:i,y:o}=Ki(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function Ma(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function ZC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Ma(a.addedNodes,i),r=r&&!Ma(a.removedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function QC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Ma(a.removedNodes,i),r=r&&!Ma(a.addedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const fr=new Map;let mp=0;function x1(){const t=window.devicePixelRatio;t!==mp&&(mp=t,fr.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function MC(t,e){fr.size||window.addEventListener("resize",x1),fr.set(t,e)}function tT(t){fr.delete(t),fr.size||window.removeEventListener("resize",x1)}function eT(t,e,n){const i=t.canvas,o=i&&pd(i);if(!o)return;const s=e1((a,l)=>{const c=o.clientWidth;n(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||s(c,u)});return r.observe(o),MC(t,s),r}function Ru(t,e,n){n&&n.disconnect(),e==="resize"&&tT(t)}function nT(t,e,n){const i=t.canvas,o=e1(s=>{t.ctx!==null&&n(YC(s,t))},t);return KC(i,e,o),o}class iT extends _1{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(qC(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[pa])return!1;const i=n[pa].initial;["height","width"].forEach(s=>{const r=i[s];oe(r)?n.removeAttribute(s):n.setAttribute(s,r)});const o=i.style||{};return Object.keys(o).forEach(s=>{n.style[s]=o[s]}),n.width=n.width,delete n[pa],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const o=e.$proxies||(e.$proxies={}),s={attach:ZC,detach:QC,resize:eT}[n]||nT;o[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),o=i[n];o&&(({attach:Ru,detach:Ru,resize:Ru}[n]||XC)(e,n,o),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,o){return iC(e,n,i,o)}isAttached(e){const n=e&&pd(e);return!!(n&&n.isConnected)}}function oT(t){return!fd()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?WC:iT}let _o=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return cr(this.x)&&cr(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(o=>{i[o]=n[o]&&n[o].active()?n[o]._to:this[o]}),i}};function sT(t,e){const n=t.options.ticks,i=rT(t),o=Math.min(n.maxTicksLimit||i,i),s=n.major.enabled?lT(e):[],r=s.length,a=s[0],l=s[r-1],c=[];if(r>o)return uT(e,c,s,r/o),c;const u=aT(s,e,o);if(r>0){let d,f;const p=r>1?Math.round((l-a)/(r-1)):null;for(Zr(e,c,u,oe(p)?0:a-p,a),d=0,f=r-1;do)return l}return Math.max(o,1)}function lT(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,vp=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,yp=(t,e)=>Math.min(e||t,t);function bp(t,e){const n=[],i=t.length/e,o=t.length;let s=0;for(;sr+a)))return l}function fT(t,e){Mt(t,n=>{const i=n.gc,o=i.length/2;let s;if(o>e){for(s=0;si?i:n,i=o&&n>i?n:i,{min:Dn(n,Dn(i,n)),max:Dn(i,Dn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){re(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:o,grace:s,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$4(this,s,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||i<=1||!this.isHorizontal()){this.labelRotation=o;return}const u=this._getLabelSizes(),d=u.widest.width,f=u.highest.height,p=qe(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/i:p/(i-1),d+6>a&&(a=p/(i-(e.offset?.5:1)),l=this.maxHeight-vs(e.grid)-n.padding-_p(e.title,this.chart.options.font),c=Math.sqrt(d*d+f*f),r=o4(Math.min(Math.asin(qe((u.highest.height+6)/a,-1,1)),Math.asin(qe(l/c,-1,1))-Math.asin(qe(f/c,-1,1)))),r=Math.max(o,Math.min(s,r))),this.labelRotation=r}afterCalculateLabelRotation(){re(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){re(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:o,grid:s}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=_p(o,n.options.font);if(a?(e.width=this.maxWidth,e.height=vs(s)+l):(e.height=this.maxHeight,e.width=vs(s)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:d,highest:f}=this._getLabelSizes(),p=i.padding*2,y=li(this.labelRotation),m=Math.cos(y),x=Math.sin(y);if(a){const b=i.mirror?0:x*d.width+m*f.height;e.height=Math.min(this.maxHeight,e.height+b+p)}else{const b=i.mirror?0:m*d.width+x*f.height;e.width=Math.min(this.maxWidth,e.width+b+p)}this._calculatePadding(c,u,x,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,o){const{ticks:{align:s,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?c?(f=o*e.width,p=i*n.height):(f=i*e.height,p=o*n.width):s==="start"?p=n.width:s==="end"?f=e.width:s!=="inner"&&(f=e.width/2,p=n.width/2),this.paddingLeft=Math.max((f-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((p-d+r)*this.width/(this.width-d),0)}else{let u=n.height/2,d=e.height/2;s==="start"?(u=0,d=e.height):s==="end"&&(u=n.height,d=0),this.paddingTop=u+r,this.paddingBottom=d+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){re(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:r[q]||0,height:a[q]||0});return{first:H(0),last:H(n-1),widest:H(j),highest:H(U),widths:r,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return r4(this._alignToPixels?Wi(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*o?a/i:l/o:l*o0}_computeGridLineItems(e){const n=this.axis,i=this.chart,o=this.options,{grid:s,position:r,border:a}=o,l=s.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=vs(s),f=[],p=a.setContext(this.getContext()),y=p.display?p.width:0,m=y/2,x=function(M){return Wi(i,M,y)};let b,A,R,S,N,j,U,H,q,V,et,T;if(r==="top")b=x(this.bottom),j=this.bottom-d,H=b-m,V=x(e.top)+m,T=e.bottom;else if(r==="bottom")b=x(this.top),V=e.top,T=x(e.bottom)-m,j=b+m,H=this.top+d;else if(r==="left")b=x(this.right),N=this.right-d,U=b-m,q=x(e.left)+m,et=e.right;else if(r==="right")b=x(this.left),q=e.left,et=x(e.right)-m,N=b+m,U=this.left+d;else if(n==="x"){if(r==="center")b=x((e.top+e.bottom)/2+.5);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];b=x(this.chart.scales[M].getPixelForValue(Z))}V=e.top,T=e.bottom,j=b+m,H=j+d}else if(n==="y"){if(r==="center")b=x((e.left+e.right)/2);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];b=x(this.chart.scales[M].getPixelForValue(Z))}N=b-m,U=N-d,q=e.left,et=e.right}const F=Ot(o.ticks.maxTicksLimit,u),Q=Math.max(1,Math.ceil(u/F));for(A=0;A0&&(Et-=Pt/2);break}xt={left:Et,top:$t,width:Pt+gt.width,height:Gt+gt.height,color:M.backdropColor}}x.push({label:S,font:q,textOffset:T,options:{rotation:m,color:rt,strokeColor:lt,strokeWidth:ft,textAlign:pt,textBaseline:F,translation:[N,j],backdrop:xt}})}return x}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-li(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:o,padding:s}}=this.options,r=this._getLabelSizes(),a=e+s,l=r.widest.width;let c,u;return n==="left"?o?(u=this.right+s,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u=this.left)):n==="right"?o?(u=this.left+s,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:o,width:s,height:r}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,o,s,r),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(o=>o.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,r;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(s=0,r=o.length;s{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let s,r;for(s=0,r=n.length;s{const i=n.split("."),o=i.pop(),s=[t].concat(i).join("."),r=e[n].split("."),a=r.pop(),l=r.join(".");pe.route(s,o,l,a)})}function _T(t){return"id"in t&&"defaults"in t}class wT{constructor(){this.controllers=new Qr(gd,"datasets",!0),this.elements=new Qr(_o,"elements"),this.plugins=new Qr(Object,"plugins"),this.scales=new Qr(Mo,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(o=>{const s=i||this._getRegistryForType(o);i||s.isForType(o)||s===this.plugins&&o.id?this._exec(e,s,o):Mt(o,r=>{const a=i||this._getRegistryForType(r);this._exec(e,a,r)})})}_exec(e,n,i){const o=sd(e);re(i["before"+o],[],i),n[e](i),re(i["after"+o],[],i)}_getRegistryForType(e){for(let n=0;ns.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(o(n,i),e,"stop"),this._notify(o(i,n),e,"start")}}function ET(t){const e={},n=[],i=Object.keys($n.plugins.items);for(let s=0;s1&&wp(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function xp(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function PT(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return xp(t,"x",n[0])||xp(t,"y",n[0])}return{}}function LT(t,e){const n=po[t.type]||{scales:{}},i=e.scales||{},o=Ac(t.type,e),s=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!Vt(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=Sc(r,a,PT(r,t),pe.scales[a.type]),c=kT(l,o),u=n.scales||{};s[r]=Us(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(r=>{const a=r.type||t.type,l=r.indexAxis||Ac(a,e),c=(po[a]||{}).scales||{};Object.keys(c).forEach(u=>{const d=TT(u,l),f=r[d+"AxisID"]||d;s[f]=s[f]||Object.create(null),Us(s[f],[{axis:d},i[f],c[u]])})}),Object.keys(s).forEach(r=>{const a=s[r];Us(a,[pe.scales[a.type],pe.scale])}),s}function E1(t){const e=t.options||(t.options={});e.plugins=Ot(e.plugins,{}),e.scales=LT(t,e)}function A1(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function DT(t){return t=t||{},t.data=A1(t.data),E1(t),t}const Ep=new Map,S1=new Set;function Mr(t,e){let n=Ep.get(t);return n||(n=e(),Ep.set(t,n),S1.add(n)),n}const ys=(t,e,n)=>{const i=ur(e,n);i!==void 0&&t.add(i)};class NT{constructor(e){this._config=DT(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=A1(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),E1(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Mr(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Mr(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Mr(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Mr(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let o=i.get(e);return(!o||n)&&(o=new Map,i.set(e,o)),o}getOptionScopes(e,n,i){const{options:o,type:s}=this,r=this._cachedScopes(e,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(u=>{e&&(l.add(e),u.forEach(d=>ys(l,e,d))),u.forEach(d=>ys(l,o,d)),u.forEach(d=>ys(l,po[s]||{},d)),u.forEach(d=>ys(l,pe,d)),u.forEach(d=>ys(l,wc,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),S1.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,po[n]||{},pe.datasets[n]||{},{type:n},pe,wc]}resolveNamedOptions(e,n,i,o=[""]){const s={$shared:!0},{resolver:r,subPrefixes:a}=Ap(this._resolverCache,e,o);let l=r;if($T(r,n)){s.$shared=!1,i=Ni(i)?i():i;const c=this.createResolver(e,i,a);l=qo(r,i,c)}for(const c of n)s[c]=l[c];return s}createResolver(e,n,i=[""],o){const{resolver:s}=Ap(this._resolverCache,e,i);return Vt(n)?qo(s,n,void 0,o):s}}function Ap(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const o=n.join();let s=i.get(o);return s||(s={resolver:cd(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(o,s)),s}const OT=t=>Vt(t)&&Object.getOwnPropertyNames(t).some(e=>Ni(t[e]));function $T(t,e){const{isScriptable:n,isIndexable:i}=s1(t);for(const o of e){const s=n(o),r=i(o),a=(r||s)&&t[o];if(s&&(Ni(a)||OT(a))||r&&Ae(a))return!0}return!1}var BT="4.5.1";const FT=["top","bottom","left","right","chartArea"];function Sp(t,e){return t==="top"||t==="bottom"||FT.indexOf(t)===-1&&e==="x"}function Cp(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Tp(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),re(n&&n.onComplete,[t],e)}function jT(t){const e=t.chart,n=e.options.animation;re(n&&n.onProgress,[t],e)}function C1(t){return fd()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ga={},kp=t=>{const e=C1(t);return Object.values(ga).filter(n=>n.canvas===e).pop()};function UT(t,e,n){const i=Object.keys(t);for(const o of i){const s=+o;if(s>=e){const r=t[o];delete t[o],(n>0||s>e)&&(t[s+n]=r)}}}function VT(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let go=class{static defaults=pe;static instances=ga;static overrides=po;static registry=$n;static version=BT;static getChart=kp;static register(...t){$n.add(...t),Rp()}static unregister(...t){$n.remove(...t),Rp()}constructor(t,e){const n=this.config=new NT(e),i=C1(t),o=kp(i);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||oT(i)),this.platform.updateConfig(n);const r=this.platform.acquireContext(i,s.aspectRatio),a=r&&r.canvas,l=a&&a.height,c=a&&a.width;if(this.id=WS(),this.ctx=r,this.canvas=a,this.width=c,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new xT,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=d4(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],ga[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}Zn.listen(this,"complete",Tp),Zn.listen(this,"progress",jT),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:o}=this;return oe(t)?e&&o?o:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return $n}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():tp(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Zf(this.canvas,this.ctx),this}stop(){return Zn.stop(this),this}resize(t,e){Zn.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(i,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,tp(this,r,!0)&&(this.notifyPlugins("resize",{size:s}),re(n.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};Mt(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((s,r)=>(s[r]=!1,s),{});let o=[];e&&(o=o.concat(Object.keys(e).map(s=>{const r=e[s],a=Sc(s,r),l=a==="r",c=a==="x";return{options:r,dposition:l?"chartArea":c?"bottom":"left",dtype:l?"radialLinear":c?"category":"linear"}}))),Mt(o,s=>{const r=s.options,a=r.id,l=Sc(a,r),c=Ot(r.type,s.dtype);(r.position===void 0||Sp(r.position,l)!==Sp(s.dposition))&&(r.position=s.dposition),i[a]=!0;let u=null;if(a in n&&n[a].type===c)u=n[a];else{const d=$n.getScale(c);u=new d({id:a,type:c,ctx:this.ctx,chart:this}),n[u.id]=u}u.init(r,t)}),Mt(i,(s,r)=>{s||delete n[r]}),Mt(n,s=>{Si.configure(this,s,s.options),Si.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,o)=>i.index-o.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(o=>o===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,c=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Cp("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Mt(this.scales,t=>{Si.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!If(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:o}of e){const s=n==="_removeElements"?-o:o;UT(t,i,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=o=>new Set(t.filter(s=>s[0]===o).map((s,r)=>r+","+s.splice(1).join(","))),i=n(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Si.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],Mt(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,o)=>{i._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=g1(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&kl(e,i),t.controller.draw(),i&&Rl(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return hr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const o=FC.modes[e];return typeof o=="function"?o(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(o=>o&&o._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=bo(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",o=this.getDatasetMeta(t),s=o.controller._resolveAnimations(void 0,i);Xa(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),s.update(o,{visible:n}),this.update(r=>r.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Zn.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,s),t[o]=s},i=(o,s,r)=>{o.offsetX=s,o.offsetY=r,this._eventHandler(o)};Mt(this.options.events,o=>n(o,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},o=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const r=()=>{i("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",s)};s=()=>{this.attached=!1,i("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():s()}unbindEvents(){Mt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Mt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let o,s,r,a;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+i+"DatasetHoverStyle"]()),r=0,a=t.length;r{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[o],index:o}});!qa(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,o=(a,l)=>a.filter(c=>!l.some(u=>c.datasetIndex===u.datasetIndex&&c.index===u.index)),s=o(e,t),r=n?t:o(t,e);s.length&&this.updateHoverStyle(s,i.mode,!1),r.length&&i.mode&&this.updateHoverStyle(r,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:o}=this,s=e,r=this._getActiveElements(t,i,n,s),a=ZS(t),l=VT(t,this._lastEvent,n,a);n&&(this._lastEvent=null,re(o.onHover,[t,r,this],this),a&&re(o.onClick,[t,r,this],this));const c=!qa(r,i);return(c||e)&&(this._active=r,this._updateHoverStyles(r,i,e)),this._lastEvent=l,c}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,i)}};function Rp(){return Mt(go.instances,t=>t._plugins.invalidate())}function IT(t,e,n){const{startAngle:i,x:o,y:s,outerRadius:r,innerRadius:a,options:l}=e,{borderWidth:c,borderJoinStyle:u}=l,d=Math.min(c/r,rn(i-n));if(t.beginPath(),t.arc(o,s,r-c/2,i+d/2,n-d/2),a>0){const f=Math.min(c/a,rn(i-n));t.arc(o,s,a+c/2,n-f/2,i+f/2,!0)}else{const f=Math.min(c/2,r*rn(i-n));if(u==="round")t.arc(o,s,f,n-te/2,i+te/2,!0);else if(u==="bevel"){const p=2*f*f,y=-p*Math.cos(n+te/2)+o,m=-p*Math.sin(n+te/2)+s,x=p*Math.cos(i+te/2)+o,b=p*Math.sin(i+te/2)+s;t.lineTo(y,m),t.lineTo(x,b)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function zT(t,e,n){const{startAngle:i,pixelMargin:o,x:s,y:r,outerRadius:a,innerRadius:l}=e;let c=o/a;t.beginPath(),t.arc(s,r,a,i-c,n+c),l>o?(c=o/l,t.arc(s,r,l,n+c,i-c,!0)):t.arc(s,r,o,n+we,i-we),t.closePath(),t.clip()}function HT(t){return ud(t,["outerStart","outerEnd","innerStart","innerEnd"])}function JT(t,e,n,i){const o=HT(t.options.borderRadius),s=(n-e)/2,r=Math.min(s,i*e/2),a=l=>{const c=(n-Math.min(s,l))*i/2;return qe(l,0,Math.min(s,c))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:qe(o.innerStart,0,r),innerEnd:qe(o.innerEnd,0,r)}}function Lo(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function tl(t,e,n,i,o,s){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:u}=e,d=Math.max(e.outerRadius+i+n-c,0),f=u>0?u+i+n+c:0;let p=0;const y=o-l;if(i){const M=u>0?u-i:0,Z=d>0?d-i:0,rt=(M+Z)/2,lt=rt!==0?y*rt/(rt+i):y;p=(y-lt)/2}const m=Math.max(.001,y*d-n/te)/d,x=(y-m)/2,b=l+x+p,A=o-x-p,{outerStart:R,outerEnd:S,innerStart:N,innerEnd:j}=JT(e,f,d,A-b),U=d-R,H=d-S,q=b+R/U,V=A-S/H,et=f+N,T=f+j,F=b+N/et,Q=A-j/T;if(t.beginPath(),s){const M=(q+V)/2;if(t.arc(r,a,d,q,M),t.arc(r,a,d,M,V),S>0){const ft=Lo(H,V,r,a);t.arc(ft.x,ft.y,S,V,A+we)}const Z=Lo(T,A,r,a);if(t.lineTo(Z.x,Z.y),j>0){const ft=Lo(T,Q,r,a);t.arc(ft.x,ft.y,j,A+we,Q+Math.PI)}const rt=(A-j/f+(b+N/f))/2;if(t.arc(r,a,f,A-j/f,rt,!0),t.arc(r,a,f,rt,b+N/f,!0),N>0){const ft=Lo(et,F,r,a);t.arc(ft.x,ft.y,N,F+Math.PI,b-we)}const lt=Lo(U,b,r,a);if(t.lineTo(lt.x,lt.y),R>0){const ft=Lo(U,q,r,a);t.arc(ft.x,ft.y,R,b-we,q)}}else{t.moveTo(r,a);const M=Math.cos(q)*d+r,Z=Math.sin(q)*d+a;t.lineTo(M,Z);const rt=Math.cos(V)*d+r,lt=Math.sin(V)*d+a;t.lineTo(rt,lt)}t.closePath()}function WT(t,e,n,i,o){const{fullCircles:s,startAngle:r,circumference:a}=e;let l=e.endAngle;if(s){tl(t,e,n,i,l,o);for(let c=0;c=te&&p===0&&u!=="miter"&&IT(t,e,m),s||(tl(t,e,n,i,m,o),t.stroke())}class qT extends _o{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const o=this.getProps(["x","y"],i),{angle:s,distance:r}=Qm(o,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:c,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),f=(this.options.spacing+this.options.borderWidth)/2,p=Ot(d,l-a),y=dr(s,a,l)&&a!==l,m=p>=de||y,x=io(r,c+f,u+f);return m&&x}getCenterPoint(e){const{x:n,y:i,startAngle:o,endAngle:s,innerRadius:r,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:c}=this.options,u=(o+s)/2,d=(r+a+c+l)/2;return{x:n+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,o=(n.offset||0)/4,s=(n.spacing||0)/2,r=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>de?Math.floor(i/de):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*o,Math.sin(a)*o);const l=1-Math.sin(Math.min(te,i||0)),c=o*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,WT(e,this,c,s,r),GT(e,this,c,s,r),e.restore()}}function T1(t,e,n=e){t.lineCap=Ot(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ot(n.borderDash,e.borderDash)),t.lineDashOffset=Ot(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ot(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ot(n.borderWidth,e.borderWidth),t.strokeStyle=Ot(n.borderColor,e.borderColor)}function KT(t,e,n){t.lineTo(n.x,n.y)}function XT(t){return t.stepped?S4:t.tension||t.cubicInterpolationMode==="monotone"?C4:KT}function k1(t,e,n={}){const i=t.length,{start:o=0,end:s=i-1}=n,{start:r,end:a}=e,l=Math.max(o,r),c=Math.min(s,a),u=oa&&s>a;return{count:i,start:l,loop:e.loop,ilen:c(r+(c?a-S:S))%s,R=()=>{m!==x&&(t.lineTo(u,x),t.lineTo(u,m),t.lineTo(u,b))};for(l&&(p=o[A(0)],t.moveTo(p.x,p.y)),f=0;f<=a;++f){if(p=o[A(f)],p.skip)continue;const S=p.x,N=p.y,j=S|0;j===y?(Nx&&(x=N),u=(d*u+S)/++d):(R(),t.lineTo(S,N),y=j,d=0,m=x=N),b=N}R()}function Cc(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?ZT:YT}function QT(t){return t.stepped?sC:t.tension||t.cubicInterpolationMode==="monotone"?rC:Xi}function MT(t,e,n,i){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,i)&&o.closePath()),T1(t,e.options),t.stroke(o)}function t3(t,e,n,i){const{segments:o,options:s}=e,r=Cc(e);for(const a of o)T1(t,s,a.style),t.beginPath(),r(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const e3=typeof Path2D=="function";function n3(t,e,n,i){e3&&!e.options.segment?MT(t,e,n,i):t3(t,e,n,i)}class Er extends _o{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const o=i.spanGaps?this._loop:this._fullLoop;Z4(this._points,i,e,o,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=hC(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,o=e[n],s=this.points,r=p1(this,{property:n,start:o,end:o});if(!r.length)return;const a=[],l=QT(i);let c,u;for(c=0,u=r.length;c{a=Dl(r,a,o);const l=o[r],c=o[a];i!==null?(s.push({x:l.x,y:i}),s.push({x:c.x,y:i})):n!==null&&(s.push({x:n,y:l.y}),s.push({x:n,y:c.y}))}),s}function Dl(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Lp(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function P1(t,e){let n=[],i=!1;return Ae(t)?(i=!0,n=t):n=o3(t,e),n.length?new Er({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function Dp(t){return t&&t.fill!==!1}function s3(t,e,n){let i=t[e].fill;const o=[e];let s;if(!n)return i;for(;i!==!1&&o.indexOf(i)===-1;){if(!Ve(i))return i;if(s=t[i],!s)return!1;if(s.visible)return i;o.push(i),i=s.fill}return!1}function r3(t,e,n){const i=c3(t);if(Vt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return Ve(o)&&Math.floor(o)===o?a3(i[0],e,o,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function a3(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function l3(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:Vt(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function u3(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:Vt(t)?i=t.value:i=e.getBaseValue(),i}function c3(t){const e=t.options,n=e.fill;let i=Ot(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function d3(t){const{scale:e,index:n,line:i}=t,o=[],s=i.segments,r=i.points,a=h3(e,n);a.push(P1({x:null,y:e.bottom},i));for(let l=0;l=0;--r){const a=o[r].$filler;a&&(a.line.updateControlPoints(s,a.axis),i&&a.fill&&Pu(t.ctx,a,s))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const s=i[o].$filler;Dp(s)&&Pu(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!Dp(i)||n.drawTime!=="beforeDatasetDraw"||Pu(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Bp=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},x3=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Fp extends _o{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=re(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,o)=>e.sort(i,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,o=Me(i.font),s=o.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Bp(i,s);let c,u;n.font=o.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(r,s,a,l)+10):(u=this.maxHeight,c=this._fitCols(r,o,a,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(u,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,o){const{ctx:s,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=o+a;let d=e;s.textAlign="left",s.textBaseline="middle";let f=-1,p=-u;return this.legendItems.forEach((y,m)=>{const x=i+n/2+s.measureText(y.text).width;(m===0||c[c.length-1]+x+2*a>r)&&(d+=u,c[c.length-(m>0?0:1)]=0,p+=u,f++),l[m]={left:0,top:p,row:f,width:x,height:o},c[c.length-1]+=x+a}),d}_fitCols(e,n,i,o){const{ctx:s,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=r-e;let d=a,f=0,p=0,y=0,m=0;return this.legendItems.forEach((x,b)=>{const{itemWidth:A,itemHeight:R}=E3(i,n,s,x,o);b>0&&p+R+2*a>u&&(d+=f+a,c.push({width:f,height:p}),y+=f+a,m++,f=p=0),l[b]={left:y,top:p,col:m,width:A,height:R},f=Math.max(f,A),p+=R+a}),d+=f,c.push({width:f,height:p}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:o},rtl:s}}=this,r=Ho(s,this.left,this.width);if(this.isHorizontal()){let a=0,l=sn(i,this.left+o,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=sn(i,this.left+o,this.right-this.lineWidths[a])),c.top+=this.top+e+o,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+o}else{let a=0,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+o,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;kl(e,this),this._draw(),Rl(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:o}=this,{align:s,labels:r}=e,a=pe.color,l=Ho(e.rtl,this.left,this.width),c=Me(r.font),{padding:u}=r,d=c.size,f=d/2;let p;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=c.string;const{boxWidth:y,boxHeight:m,itemHeight:x}=Bp(r,d),b=function(j,U,H){if(isNaN(y)||y<=0||isNaN(m)||m<0)return;o.save();const q=Ot(H.lineWidth,1);if(o.fillStyle=Ot(H.fillStyle,a),o.lineCap=Ot(H.lineCap,"butt"),o.lineDashOffset=Ot(H.lineDashOffset,0),o.lineJoin=Ot(H.lineJoin,"miter"),o.lineWidth=q,o.strokeStyle=Ot(H.strokeStyle,a),o.setLineDash(Ot(H.lineDash,[])),r.usePointStyle){const V={radius:m*Math.SQRT2/2,pointStyle:H.pointStyle,rotation:H.rotation,borderWidth:q},et=l.xPlus(j,y/2),T=U+f;o1(o,V,et,T,r.pointStyleWidth&&y)}else{const V=U+Math.max((d-m)/2,0),et=l.leftForLtr(j,y),T=Hs(H.borderRadius);o.beginPath(),Object.values(T).some(F=>F!==0)?Ec(o,{x:et,y:V,w:y,h:m,radius:T}):o.rect(et,V,y,m),o.fill(),q!==0&&o.stroke()}o.restore()},A=function(j,U,H){Za(o,H.text,j,U+x/2,c,{strikethrough:H.hidden,textAlign:l.textAlign(H.textAlign)})},R=this.isHorizontal(),S=this._computeTitleHeight();R?p={x:sn(s,this.left+u,this.right-i[0]),y:this.top+u+S,line:0}:p={x:this.left+u,y:sn(s,this.top+S+u,this.bottom-n[0].height),line:0},c1(this.ctx,e.textDirection);const N=x+u;this.legendItems.forEach((j,U)=>{o.strokeStyle=j.fontColor,o.fillStyle=j.fontColor;const H=o.measureText(j.text).width,q=l.textAlign(j.textAlign||(j.textAlign=r.textAlign)),V=y+f+H;let et=p.x,T=p.y;l.setWidth(this.width),R?U>0&&et+V+u>this.right&&(T=p.y+=N,p.line++,et=p.x=sn(s,this.left+u,this.right-i[p.line])):U>0&&T+N>this.bottom&&(et=p.x=et+n[p.line].width+u,p.line++,T=p.y=sn(s,this.top+S+u,this.bottom-n[p.line].height));const F=l.x(et);if(b(F,T,j),et=h4(q,et+y+f,R?et+V:this.right,e.rtl),A(l.x(et),T,j),R)p.x+=V+u;else if(typeof j.text!="string"){const Q=c.lineHeight;p.y+=N1(j,Q)+u}else p.y+=N}),d1(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=Me(n.font),o=Cn(n.padding);if(!n.display)return;const s=Ho(e.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=o.top+l;let u,d=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),u=this.top+c,d=sn(e.align,d,this.right-f);else{const y=this.columnSizes.reduce((m,x)=>Math.max(m,x.height),0);u=c+sn(e.align,this.top,this.bottom-y-e.labels.padding-this._computeTitleHeight())}const p=sn(a,d,d+f);r.textAlign=s.textAlign(n1(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,Za(r,n.text,p,u,i)}_computeTitleHeight(){const e=this.options.title,n=Me(e.font),i=Cn(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,o,s;if(io(e,this.left,this.right)&&io(n,this.top,this.bottom)){for(s=this.legendHitBoxes,i=0;is.length>r.length?s:r)),e+n.size/2+i.measureText(o).width}function S3(t,e,n){let i=t;return typeof e.text!="string"&&(i=N1(e,n)),i}function N1(t,e){const n=t.text?t.text.length:0;return e*n}function C3(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var T3={id:"legend",_element:Fp,start(t,e,n){const i=t.legend=new Fp({ctx:t.ctx,options:n,chart:t});Si.configure(t,i,n),Si.addBox(t,i)},stop(t){Si.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Si.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,o=n.chart;o.isDatasetVisible(i)?(o.hide(i),e.hidden=!0):(o.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),u=Cn(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:s,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:o||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const Ts={average(t){if(!t.length)return!1;let e,n,i=new Set,o=0,s=0;for(e=0,n=t.length;er+a)/i.size,y:o/s}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,o=Number.POSITIVE_INFINITY,s,r,a;for(s=0,r=t.length;s{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??me.Warn,window._oc_debug&&(e.context.level=me.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function UE(){return new jE(FE)}const VE=UE().detectUser().setApp("@nextcloud/vue").build(),Ha=K_(),IE=Rt({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),zE="_ncPopover_zfWgY",HE={"material-design-icon":"_material-design-icon_bkeq-",ncPopover:zE},Vm="nc-popover-9";bf.themes[Vm]=structuredClone(bf.themes.dropdown);const JE={name:"NcPopover",components:{Dropdown:dE,NcPopoverTriggerProvider:IE},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:t=>["menu","listbox","tree","grid","dialog","true"].includes(t)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:Vm}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?Ha?"right":"left":this.placement==="end"?Ha?"left":"right":this.placement}},watch:{shown(t){this.internalShown=t},internalShown(t){this.$emit("update:shown",t)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const t=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const e of t)e.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const t=this.getPopoverContentElement();t.tabIndex=-1,t&&(this.$focusTrap=gm(t,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:er(),fallBackFocus:t}),this.$focusTrap.activate())},clearFocusTrap(t={}){try{this.$focusTrap?.deactivate(t),this.$focusTrap=null}catch(e){VE.warn("[NcPopover] Failed to clear focus trap",{error:e})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(t){t.type==="keydown"&&t.key==="Escape"&&t.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function WE(t,e,n,i,o,s){const r=Ys("NcPopoverTriggerProvider"),a=Ys("Dropdown");return O(),Ct(a,{ref:"popover",shown:o.internalShown,"onUpdate:shown":[e[0]||(e[0]=l=>o.internalShown=l),e[1]||(e[1]=l=>o.internalShown=l)],arrowPadding:10,autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:10,handleResize:"",noAutoFocus:!0,placement:s.internalPlacement,popperClass:[t.$style.ncPopover,n.popoverBaseClass],popperTriggers:s.popperTriggers,popperHideTriggers:s.popperHideTriggers,popperShowTriggers:s.popperShowTriggers,theme:i.theme,triggers:s.internalTriggers,hideTriggers:s.hideTriggers,showTriggers:s.showTriggers,onApplyShow:s.afterShow,onApplyHide:s.afterHide},{popper:kt(l=>[Zt(t.$slots,"default",Vu(Ra(l)))]),default:kt(()=>[ot(r,{shown:o.internalShown,popupRole:n.popupRole},{default:kt(l=>[Zt(t.$slots,"trigger",Vu(Ra(l)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const GE={$style:HE},Lf=Ie(JE,[["render",WE],["__cssModules",GE]]),qE=Symbol.for("NcActions:isSemanticMenu"),KE=Symbol.for("NcActions:closeMenu"),XE={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},YE=["aria-hidden","aria-label"],ZE=["fill","width","height"],QE={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},ME={key:0};function tA(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",QE,[n.title?(O(),J("title",ME,L(n.title),1)):_t("",!0)])],8,ZE))],16,YE)}const eA=Ie(XE,[["render",tA]]);wr(xw);function Im(t){return Array.isArray(t)&&t.some(e=>{if(e===null)return!1;if(typeof e=="object"){const n=e;if(n.type===Se||n.type===At&&!Im(n.children)||n.type===br&&!n.children.trim())return!1}return!0})}const nA=".focusable",iA={name:"NcActions",components:{NcButton:si,NcPopover:Lf},provide(){return{[qE]:ht(()=>this.actionsMenuSemanticType==="menu"),[KE]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:We("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(t){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(t)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(t){return["small","normal","large"].includes(t)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:Qo()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(t){t!==this.opened&&(this.opened=t)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){g2(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(t){return t?.type?.name},isValidSingleAction(t){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(t))},isAction(t){return this.getActionName(t)?.startsWith?.("NcAction")},isIconUrl(t){try{return!!new URL(t,t.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(t){t?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(t=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:t}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,t&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(nA)},onKeydown(t){if(t.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}t.preventDefault();const e=this.getFocusableMenuItemElements(),n=[...e].indexOf(document.activeElement);if(n===-1)return;const i=t.shiftKey?n-1:n+1;(i<0||i===e.length)&&this.closeMenu(!0),this.focusIndex=i,this.focusAction();return}this.config.withArrowNavigation&&(t.key==="ArrowUp"&&this.focusPreviousAction(t),t.key==="ArrowDown"&&this.focusNextAction(t),t.key==="PageUp"&&this.focusFirstAction(t),t.key==="PageDown"&&this.focusLastAction(t)),this.handleEscapePressed(t)},onTriggerKeydown(t){t.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(t){t.key==="Escape"&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector("li.active");t&&t.classList.remove("active")},focusAction(){const t=this.getFocusableMenuItemElements()[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest("li.action");t.focus(),e&&e.classList.add("active")}},focusPreviousAction(t){this.opened&&(this.focusIndex===0?this.focusLastAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.getFocusableMenuItemElements().length-1;this.focusIndex===e?this.focusFirstAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){if(this.opened){this.preventIfEvent(t);const e=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=e>-1?e:0,this.focusAction()}},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit("focus",t)},onBlur(t){this.$emit("blur",t),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(t){this.$emit("click",t)}},render(){const t=[],e=(p,y)=>{p.forEach(m=>{if(this.isAction(m)){y.push(m);return}m.type===At&&e(m.children,y)})};if(e(this.$slots.default?.(),t),t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const i=n.slice(0,this.inline),o=t.filter(p=>!i.includes(p)),s=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=o.some(p=>r.includes(this.getActionName(p))),c=o.some(p=>s.includes(this.getActionName(p))),u=o.some(p=>a.includes(this.getActionName(p)));l?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":u?this.actionsMenuSemanticType="navigation":t.filter(p=>this.getActionName(p).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=p=>{const y=p?.props?.icon,m=p?.children?.icon?.()?.[0]??(this.isIconUrl(y)?Ne("img",{class:"action-item__menutoggle__icon",src:y,alt:""}):Ne("span",{class:["icon",y]})),x=p?.children?.default?.()?.[0]?.children?.trim(),b=this.forceName?x:"";let A=p?.props?.title;this.forceName||A||(A=x);const R={...p?.props??{}},S=["submit","reset"].includes(R.type)?R.modelValue:"button";return delete R.modelValue,delete R.type,Ne(si,ee(R,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":p?.props?.["aria-label"]||x,title:A,disabled:this.disabled||p?.props?.disabled,pressed:p?.props?.modelValue,size:this.size,type:S,wide:this.wide,variant:this.variant||(b?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":p?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>b,icon:()=>m})},f=p=>{const y=Im(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?Ne("span",{class:["icon",this.defaultIcon]}):Ne(eA,{size:20}),m=`${this.randomId}-trigger`;return Ne(Lf,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterClose:this.onClosed},{trigger:()=>Ne(si,{id:m,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>y,default:()=>this.menuName}),default:()=>Ne("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[Ne("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":m,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[p])])})};return t.length===1&&n.length===1&&!this.forceMenu?d(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),i.length>0&&this.inline>0?Ne("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...i.map(d),o.length>0?Ne("div",{class:["action-item",{"action-item--open":this.opened}]},[f(o)]):null]):Ne("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[f(t)]))}},oA=Ie(iA,[["__scopeId","data-v-23e5cae7"]]),sA=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),rA=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),aA=/^[a-zA-Z0-9]$/,lA=/^[^\x20-\x7F]$/;function uA(t,e){return!(t.target instanceof HTMLElement)||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.target.isContentEditable?!0:e.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Df(t,e){return n=>{if((sA?n.metaKey:n.ctrlKey)===!!e.ctrl){if(n.altKey!==!!e.alt||e.shift!==void 0&&n.shiftKey!==!!e.shift||uA(n,e))return;e.prevent&&n.preventDefault(),e.stop&&n.stopPropagation(),t(n)}}}function Nf(t,e=()=>{},n={}){if(rA)return()=>{};const i=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const c=l===l.toLowerCase(),u=a.key===a.key.toLowerCase();if(c!==u)return!1}return aA.test(l)&&lA.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},o=a=>typeof t=="function"?t(a):typeof t=="string"?i(a,t):Array.isArray(t)?t.some(l=>i(a,l)):!0,s=Gh(o,Df(e,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Gh(o,Df(e,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{s(),r()}}function cA(t=document.body){const e=window.getComputedStyle(t).getPropertyValue("--background-invert-if-dark");return e!==void 0?e==="invert(100%)":!1}cA();const dA=ge(zm());window.addEventListener("resize",()=>{dA.value=zm()});function zm(){return window.outerHeight===window.screen.height}const Mc=1024,Hm=Mc/2,Ja=t=>document.documentElement.clientWidth{hA.value=Ja(Mc),fA.value=Ja(Hm)},{passive:!0});function Of(t){return!t.parent||"vapor"in t||"vapor"in t.parent||t.parent.subTree!==t.vnode?null:t.parent}function pA(t){const e=[t];let n=Of(t);for(;n;)e.push(n),n=Of(n);return e}function gA(){const t=Gn();if(!t)throw new Error("useScopeId must be called within a setup context");const e=pA(t).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(e.map(n=>[n,""]))}wr(Ew,Cw);const mA=["aria-labelledby","aria-describedby"],vA=["data-theme-light","data-theme-dark"],yA=["id"],bA={class:"icons-menu"},_A=["title"],wA=["id"],xA={class:"modal-container__content"},EA=Rt({inheritAttrs:!1,__name:"NcModal",props:Wo({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:Wo(["next","previous","close","update:show"],["update:show"]),setup(t,{emit:e}){Al(V=>({v046d2bb2:b.value,v71f7c020:y.value}));const n=Uc(t,"show"),i=t,o=e,s=gA(),r=Qo(),a=qu("mask");let l;Wn(()=>q()),Ke(()=>i.additionalTrapElements,V=>{l&&l.updateContainerElements([a.value,...V])});const{isActive:c,pause:u,resume:d}=dx(A,to(()=>i.slideshowDelay),{immediate:!1}),f=ge(0),p=ge(!1);ig(()=>{p.value&&!i.slideshowPaused?d():c.value&&u()});const y=ht(()=>`${i.slideshowDelay}ms`),{stop:m}=bx(a,{onSwipeEnd:S});Wn(m),Nf("Escape",()=>{er().at(-1)===l&&j()},{allowInModal:!0}),Nf(["ArrowLeft","ArrowRight"],V=>{document.activeElement&&!a.value.contains(document.activeElement)||(V.key==="ArrowLeft"!==Ha?R():A())},{allowInModal:!0});const x=wl(),b=ht(()=>{let V=0;return i.hasNext&&i.enableSlideshow&&V++,!i.noClose&&i.closeButtonOutside&&V++,x.actions&&V++,V});Oi(()=>{!i.name&&i.labelId});function A(V){if(!i.hasNext){p.value=!1;return}V&&c.value&&N(),o("next",V)}function R(V){i.hasPrevious&&(V&&c.value&&N(),o("previous",V))}function S(V,et){if(!i.disableSwipe){if(et!=="left"&&et!=="right")return;et==="left"!==Ha?A(V):R(V)}}function N(){u(),d(),f.value++}function j(V){i.noClose||(n.value=!1,setTimeout(()=>{o("close",V)},300))}function U(V){i.closeOnClickOutside&&j(V)}async function H(){if(l)return;await yr();const V={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:er(),escapeDeactivates:!1,setReturnFocus:i.setReturnFocus};l=gm([a.value,...i.additionalTrapElements],V),l.activate()}function q(){l&&(l?.deactivate(),l=void 0)}return(V,et)=>(O(),Ct(Oy,{disabled:t.container===null,to:t.container},[ot(ls,{name:"fade",appear:"",onAfterEnter:H,onBeforeLeave:q},{default:kt(()=>[_s(w("div",ee({...V.$attrs,...E(s)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":t.dark||t.closeButtonOutside||t.hasPrevious||t.hasNext,"modal-mask--light":t.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":t.labelId||`modal-name-${E(r)}`,"aria-describedby":"modal-description-"+E(r),tabindex:"-1"}),[ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[w("div",{class:"modal-header","data-theme-light":t.lightBackdrop,"data-theme-dark":!t.lightBackdrop},[t.name.trim()!==""?(O(),J("h2",{key:0,id:"modal-name-"+E(r),class:"modal-header__name"},L(t.name),9,yA)):_t("",!0),w("div",bA,[t.hasNext&&t.enableSlideshow?(O(),J("button",{key:0,class:Yt(["play-pause-icons",{"play-pause-icons--paused":t.slideshowPaused}]),title:E(c)?E(We)("Pause slideshow"):E(We)("Start slideshow"),type:"button",onClick:et[0]||(et[0]=T=>p.value=!p.value)},[ot(Vn,{class:"play-pause-icons__icon",inline:"",name:E(c)?E(We)("Pause slideshow"):E(We)("Start slideshow"),path:E(c)?E(Iw):E(zw)},null,8,["name","path"]),E(c)?(O(),J("svg",{key:`${E(r)}-animation-${f.value}`,class:"progress-ring",height:"50",width:"50"},[...et[1]||(et[1]=[w("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):_t("",!0)],10,_A)):_t("",!0),ot(oA,{class:"header-actions",inline:t.inlineActions},{default:kt(()=>[Zt(V.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!t.noClose&&t.closeButtonOutside?(O(),Ct(si,{key:1,"aria-label":E(We)("Close"),class:"header-close",variant:"tertiary",onClick:j},{icon:kt(()=>[ot(Vn,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):_t("",!0)])],8,vA)]),_:3}),ot(ls,{name:`modal-${t.outTransition?"out":"in"}`,appear:""},{default:kt(()=>[_s(w("div",{class:Yt(["modal-wrapper",[`modal-wrapper--${t.size}`,{"modal-wrapper--spread-navigation":t.spreadNavigation}]]),onMousedown:o_(U,["self"])},[ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[_s(ot(si,{"aria-label":E(We)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:R},{icon:kt(()=>[ot(Vn,{directional:"",path:E(Bw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasPrevious]])]),_:1}),w("div",{id:"modal-description-"+E(r),class:"modal-container"},[w("div",xA,[Zt(V.$slots,"default",{},void 0,!0)]),!t.noClose&&!t.closeButtonOutside?(O(),Ct(si,{key:0,"aria-label":E(We)("Close"),class:"modal-container__close",variant:"tertiary",onClick:j},{icon:kt(()=>[ot(Vn,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):_t("",!0)],8,wA),ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[_s(ot(si,{"aria-label":E(We)("Next"),class:"next",variant:"tertiary-no-background",onClick:A},{icon:kt(()=>[ot(Vn,{directional:"",path:E(Fw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasNext]])]),_:1})],34),[[jr,n.value]])]),_:3},8,["name"])],16,mA),[[jr,n.value]])]),_:3})],8,["disabled","to"]))}}),AA=Ie(EA,[["__scopeId","data-v-3c357e2d"]]),SA=["id","textContent"],CA=["aria-label","aria-labelledby"],TA={class:"dialog__text"},kA={class:"dialog__actions"},RA=Rt({__name:"NcDialog",props:Wo({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Wo(["closing","reset","submit"],["update:open"]),setup(t,{emit:e}){const n=Uc(t,"open"),i=t,o=e,s=wl(),r=qu("wrapper"),{width:a}=yx(r,{width:900,height:0}),l=ht(()=>a.value<876),c=ht(()=>s?.navigation!==void 0),u=Qo(),d=ht(()=>i.navigationAriaLabel||void 0),f=ht(()=>{if(!i.navigationAriaLabel)return i.navigationAriaLabelledby||u}),p=qu("dialogElement"),y=ht(()=>i.isForm&&!c.value?"form":"div"),m=ht(()=>y.value!=="form"?{}:{submit(N){N.preventDefault(),o("submit",N)},reset(N){N.preventDefault(),o("reset",N)}}),x=ge(!0);function b(N,j){N.type==="submit"&&y.value==="form"&&"reportValidity"in p.value&&!p.value.reportValidity()||(A(j),window.setTimeout(()=>R(),300))}function A(N){x.value=!1,o("closing",N)}function R(){x.value=!0,n.value=!1}const S=ht(()=>({noClose:i.noClose,container:i.container===void 0?"body":i.container,labelId:u,size:i.size,show:n.value&&x.value,outTransition:i.outTransition,closeOnClickOutside:i.closeOnClickOutside,additionalTrapElements:i.additionalTrapElements}));return(N,j)=>n.value?(O(),Ct(E(AA),ee({key:0,class:"dialog__modal",disableSwipe:""},S.value,{onClose:R,"onUpdate:show":j[0]||(j[0]=U=>A())}),{default:kt(()=>[w("h2",{id:E(u),class:"dialog__name",textContent:L(t.name)},null,8,SA),(O(),Ct(_l(y.value),ee({ref:"dialogElement",class:["dialog",t.dialogClasses]},qy(m.value)),{default:kt(()=>[w("div",{ref:"wrapper",class:Yt(["dialog__wrapper",[{"dialog__wrapper--collapsed":l.value}]])},[c.value?(O(),J("nav",{key:0,class:Yt(["dialog__navigation",t.navigationClasses]),"aria-label":d.value,"aria-labelledby":f.value},[Zt(N.$slots,"navigation",{isCollapsed:l.value},void 0,!0)],10,CA)):_t("",!0),w("div",{class:Yt(["dialog__content",t.contentClasses])},[Zt(N.$slots,"default",{},()=>[w("p",TA,L(t.message),1)],!0)],2)],2),w("div",kA,[Zt(N.$slots,"actions",{},()=>[(O(!0),J(At,null,$i(t.buttons,(U,H)=>(O(),Ct(E(Ux),ee({key:H},{ref_for:!0},U,{onClick:(q,V)=>b(U,V)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):_t("",!0)}}),PA=Ie(RA,[["__scopeId","data-v-24e91b99"]]),LA=["title"],DA=Rt({__name:"JobStatusIndicator",props:{status:{},dotOnly:{type:Boolean}},setup(t){const e=t,n=ht(()=>{switch(e.status){case"SUCCEEDED":return I("serverinfo","Succeeded");case"FAILED":return I("serverinfo","Failed");case"CRASHED":return I("serverinfo","Crashed");default:return I("serverinfo","Running")}});return(i,o)=>(O(),J("span",{class:Yt(["job-status",`job-status--${t.status.toLowerCase()}`]),title:t.dotOnly?n.value:void 0},[o[0]||(o[0]=w("span",{class:"job-status__dot","aria-hidden":"true"},null,-1)),w("span",{class:Yt(t.dotOnly&&"hidden-visually")},L(n.value),3)],10,LA))}}),Jm=Qt(DA,[["__scopeId","data-v-0e5a1326"]]);function _n(t){const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&i(O(),Ct(E(PA),{name:E(Wa)(t.run.className),size:"normal",onClosing:i[0]||(i[0]=o=>n.$emit("close"))},{default:kt(()=>[w("dl",NA,[w("dt",null,L(E(I)("serverinfo","Class")),1),w("dd",OA,L(t.run.className),1),w("dt",null,L(E(I)("serverinfo","Status")),1),w("dd",null,[ot(Jm,{status:t.run.status},null,8,["status"])]),w("dt",null,L(E(I)("serverinfo","Started")),1),w("dd",null,[ot(E(Gc),{timestamp:t.run.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),w("dt",null,L(E(I)("serverinfo","Duration")),1),w("dd",null,L(E(Ga)(t.run.duration)),1),w("dt",null,L(E(I)("serverinfo","Peak memory")),1),w("dd",null,L(E(ed)(t.run.memoryPeak)),1),w("dt",null,L(E(I)("serverinfo","Run ID")),1),w("dd",null,L(t.run.runId),1),w("dt",null,L(E(I)("serverinfo","Server ID")),1),w("dd",null,L(t.run.serverId),1),w("dt",null,L(E(I)("serverinfo","Process ID")),1),w("dd",null,L(t.run.pid),1)])]),_:1},8,["name"]))}}),BA=Qt($A,[["__scopeId","data-v-c21cb020"]]),FA={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jA=["aria-hidden","aria-label"],UA=["fill","width","height"],VA={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"},IA={key:0};function zA(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon information-outline-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",VA,[n.title?(O(),J("title",IA,L(n.title),1)):_t("",!0)])],8,UA))],16,jA)}const HA=Qt(FA,[["render",zA]]),JA={class:"server-info-table"},WA={class:"status-cell"},GA={class:"hidden-visually"},qA={class:"when-cell"},KA={class:"duration-cell"},XA={class:"memory-cell"},YA={class:"info-cell"},ZA={class:"hidden-visually"},QA={class:"status-cell"},MA=["title"],tS={class:"info-cell"},eS=Rt({__name:"JobRunsTable",props:{runs:{}},emits:["select"],setup(t){const e={dateStyle:"short",timeStyle:"medium"};function n(i){return I("serverinfo","Details about {job} from {time}",{job:Wa(i.className),time:new Date(i.startedAt*1e3).toLocaleString(Mg(),e)})}return(i,o)=>(O(),J("div",JA,[w("table",null,[w("thead",null,[w("tr",null,[w("th",WA,[w("span",GA,L(E(I)("serverinfo","Status")),1)]),w("th",null,L(E(I)("serverinfo","Job")),1),w("th",qA,L(E(I)("serverinfo","When")),1),w("th",KA,L(E(I)("serverinfo","Duration")),1),w("th",XA,L(E(I)("serverinfo","Peak memory")),1),w("th",YA,[w("span",ZA,L(E(I)("serverinfo","Details")),1)])])]),w("tbody",null,[(O(!0),J(At,null,$i(t.runs,s=>(O(),J("tr",{key:s.runId},[w("td",QA,[ot(Jm,{status:s.status,dotOnly:""},null,8,["status"])]),w("td",{title:s.className},L(E(Wa)(s.className)),9,MA),w("td",null,[ot(E(Gc),{timestamp:s.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),w("td",null,L(E(Ga)(s.duration)),1),w("td",null,L(E(ed)(s.memoryPeak)),1),w("td",tS,[ot(E(si),{variant:"tertiary",size:"small","aria-label":n(s),title:n(s),onClick:r=>i.$emit("select",s)},{icon:kt(()=>[ot(HA,{size:20})]),_:1},8,["aria-label","title","onClick"])])]))),128))])])]))}}),$f=Qt(eS,[["__scopeId","data-v-10f09a63"]]),nS={class:"server-info-table"},iS={class:"job-cell"},oS={class:"count-cell"},sS={class:"count-cell"},rS={class:"count-cell"},aS={class:"memory-cell"},lS=["title"],uS={class:"count-cell"},cS={class:"count-cell"},dS={class:"count-cell"},hS={class:"memory-cell"},fS=Rt({__name:"SlowJobsTable",props:{jobs:{}},setup(t){return(e,n)=>(O(),J("div",nS,[w("table",null,[w("thead",null,[w("tr",null,[w("th",iS,L(E(I)("serverinfo","Job")),1),w("th",oS,L(E(I)("serverinfo","Runs")),1),w("th",sS,L(E(I)("serverinfo","Average")),1),w("th",rS,L(E(I)("serverinfo","Longest")),1),w("th",aS,L(E(I)("serverinfo","Peak memory")),1)])]),w("tbody",null,[(O(!0),J(At,null,$i(t.jobs,i=>(O(),J("tr",{key:i.className},[w("td",{class:"job-cell",title:i.className},L(E(Wa)(i.className)),9,lS),w("td",uS,L(i.runs),1),w("td",cS,L(E(Ga)(i.avgDuration)),1),w("td",dS,L(E(Ga)(i.maxDuration)),1),w("td",hS,L(E(ed)(i.memoryPeak)),1)]))),128))])])]))}}),pS=Qt(fS,[["__scopeId","data-v-452808c1"]]),gS={class:"stat-tile"},mS={class:"stat-tile__label"},vS={key:0,class:"hidden-visually"},yS=Rt({__name:"StatTile",props:{label:{},value:{},status:{}},setup(t){const e=t,n=ht(()=>{switch(e.status){case"warning":return I("serverinfo","Warning");case"critical":return I("serverinfo","Critical");default:return""}});return(i,o)=>(O(),J("div",gS,[w("div",mS,L(t.label),1),w("div",{class:Yt(["stat-tile__value",t.status&&`stat-tile__value--${t.status}`])},[Zt(i.$slots,"default",{},()=>[Dt(L(t.value),1)],!0),n.value?(O(),J("span",vS,L(n.value),1)):_t("",!0)],2)]))}}),tn=Qt(yS,[["__scopeId","data-v-4a64fa3b"]]),bS={class:"section background-jobs"},_S={class:"row row--tiles"},wS=Rt({__name:"BackgroundJobsSection",props:{cron:{},jobs:{}},setup(t){const e=t,n=ge(null);function i(a){n.value={...a}}const o=ht(()=>e.cron.lastRun>0?Math.max(0,e.cron.now-e.cron.lastRun):-1),s=ht(()=>{const a=o.value;return a<0?"critical":e.cron.mode==="cron"?a>3600?"critical":a>900?"warning":"ok":a>7200?"critical":a>3600?"warning":"ok"}),r=ht(()=>{switch(e.cron.mode){case"cron":return I("serverinfo","System cron");case"webcron":return I("serverinfo","Webcron");default:return I("serverinfo","AJAX (not recommended)")}});return(a,l)=>(O(),J("div",bS,[ot(Xe,{icon:rx,title:E(I)("serverinfo","Background jobs")},null,8,["title"]),w("div",_S,[ot(tn,{label:E(I)("serverinfo","Mode"),value:r.value,status:t.cron.mode==="ajax"?"warning":void 0},null,8,["label","value","status"]),ot(tn,{label:E(I)("serverinfo","Last run"),status:s.value},{default:kt(()=>[t.cron.lastRun>0?(O(),Ct(E(Gc),{key:0,timestamp:t.cron.lastRun*1e3},null,8,["timestamp"])):(O(),J(At,{key:1},[Dt(L(E(I)("serverinfo","Never")),1)],64))]),_:1},8,["label","status"])]),w("h3",null,L(E(ic)("serverinfo","Latest failures (last %n day)","Latest failures (last %n days)",t.jobs.retentionDays)),1),t.jobs.failures.length===0?(O(),Ct(E(au),{key:0,type:"success"},{default:kt(()=>[Dt(L(E(ic)("serverinfo","No background job failed in the last %n day.","No background job failed in the last %n days.",t.jobs.retentionDays)),1)]),_:1})):(O(),Ct($f,{key:1,runs:t.jobs.failures,onSelect:i},null,8,["runs"])),w("h3",null,L(E(I)("serverinfo","Latest runs")),1),t.jobs.recent.length===0?(O(),Ct(E(au),{key:2,type:"info"},{default:kt(()=>[Dt(L(E(I)("serverinfo","No background job has run yet.")),1)]),_:1})):(O(),Ct($f,{key:3,runs:t.jobs.recent,onSelect:i},null,8,["runs"])),w("h3",null,L(E(I)("serverinfo","Slowest jobs")),1),t.jobs.slowest.length===0?(O(),Ct(E(au),{key:4,type:"info"},{default:kt(()=>[Dt(L(E(I)("serverinfo","The slow jobs statistics are not available yet. They are collected by a background job and appear after its next run.")),1)]),_:1})):(O(),Ct(pS,{key:5,jobs:t.jobs.slowest},null,8,["jobs"])),n.value?(O(),Ct(BA,{key:6,run:n.value,onClose:l[0]||(l[0]=c=>n.value=null)},null,8,["run"])):_t("",!0)]))}}),xS=Qt(wS,[["__scopeId","data-v-612ee243"]]);function xr(t){return t+.5|0}const Ei=(t,e,n)=>Math.max(Math.min(t,n),e);function Ss(t){return Ei(xr(t*2.55),0,255)}function Pi(t){return Ei(xr(t*255),0,255)}function ei(t){return Ei(xr(t/2.55)/100,0,1)}function Bf(t){return Ei(xr(t*100),0,100)}const dn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},bc=[..."0123456789ABCDEF"],ES=t=>bc[t&15],AS=t=>bc[(t&240)>>4]+bc[t&15],Hr=t=>(t&240)>>4===(t&15),SS=t=>Hr(t.r)&&Hr(t.g)&&Hr(t.b)&&Hr(t.a);function CS(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&dn[t[1]]*17,g:255&dn[t[2]]*17,b:255&dn[t[3]]*17,a:e===5?dn[t[4]]*17:255}:(e===7||e===9)&&(n={r:dn[t[1]]<<4|dn[t[2]],g:dn[t[3]]<<4|dn[t[4]],b:dn[t[5]]<<4|dn[t[6]],a:e===9?dn[t[7]]<<4|dn[t[8]]:255})),n}const TS=(t,e)=>t<255?e(t):"";function kS(t){var e=SS(t)?ES:AS;return t?"#"+e(t.r)+e(t.g)+e(t.b)+TS(t.a,e):void 0}const RS=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Gm(t,e,n){const i=e*Math.min(n,1-n),o=(s,r=(s+t/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function PS(t,e,n){const i=(o,s=(o+t/60)%6)=>n-n*e*Math.max(Math.min(s,4-s,1),0);return[i(5),i(3),i(1)]}function LS(t,e,n){const i=Gm(t,1,.5);let o;for(e+n>1&&(o=1/(e+n),e*=o,n*=o),o=0;o<3;o++)i[o]*=1-e-n,i[o]+=e;return i}function DS(t,e,n,i,o){return t===o?(e-n)/i+(e.5?c/(2-o-s):c/(o+s),a=DS(e,n,i,c,o),a=a*60+.5),[a|0,l||0,r]}function id(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Pi)}function od(t,e,n){return id(Gm,t,e,n)}function NS(t,e,n){return id(LS,t,e,n)}function OS(t,e,n){return id(PS,t,e,n)}function qm(t){return(t%360+360)%360}function $S(t){const e=RS.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?Ss(+e[5]):Pi(+e[5]));const o=qm(+e[2]),s=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=NS(o,s,r):e[1]==="hsv"?i=OS(o,s,r):i=od(o,s,r),{r:i[0],g:i[1],b:i[2],a:n}}function BS(t,e){var n=nd(t);n[0]=qm(n[0]+e),n=od(n),t.r=n[0],t.g=n[1],t.b=n[2]}function FS(t){if(!t)return;const e=nd(t),n=e[0],i=Bf(e[1]),o=Bf(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${o}%, ${ei(t.a)})`:`hsl(${n}, ${i}%, ${o}%)`}const Ff={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},jf={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function jS(){const t={},e=Object.keys(jf),n=Object.keys(Ff);let i,o,s,r,a;for(i=0;i>16&255,s>>8&255,s&255]}return t}let Jr;function US(t){Jr||(Jr=jS(),Jr.transparent=[0,0,0,0]);const e=Jr[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const VS=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function IS(t){const e=VS.exec(t);let n=255,i,o,s;if(e){if(e[7]!==i){const r=+e[7];n=e[8]?Ss(r):Ei(r*255,0,255)}return i=+e[1],o=+e[3],s=+e[5],i=255&(e[2]?Ss(i):Ei(i,0,255)),o=255&(e[4]?Ss(o):Ei(o,0,255)),s=255&(e[6]?Ss(s):Ei(s,0,255)),{r:i,g:o,b:s,a:n}}}function zS(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${ei(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const wu=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,Po=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function HS(t,e,n){const i=Po(ei(t.r)),o=Po(ei(t.g)),s=Po(ei(t.b));return{r:Pi(wu(i+n*(Po(ei(e.r))-i))),g:Pi(wu(o+n*(Po(ei(e.g))-o))),b:Pi(wu(s+n*(Po(ei(e.b))-s))),a:t.a+n*(e.a-t.a)}}function Wr(t,e,n){if(t){let i=nd(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=od(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function Km(t,e){return t&&Object.assign(e||{},t)}function Uf(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Pi(t[3]))):(e=Km(t,{r:0,g:0,b:0,a:1}),e.a=Pi(e.a)),e}function JS(t){return t.charAt(0)==="r"?IS(t):$S(t)}class ar{constructor(e){if(e instanceof ar)return e;const n=typeof e;let i;n==="object"?i=Uf(e):n==="string"&&(i=CS(e)||US(e)||JS(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Km(this._rgb);return e&&(e.a=ei(e.a)),e}set rgb(e){this._rgb=Uf(e)}rgbString(){return this._valid?zS(this._rgb):void 0}hexString(){return this._valid?kS(this._rgb):void 0}hslString(){return this._valid?FS(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,o=e.rgb;let s;const r=n===s?.5:n,a=2*r-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-c,i.r=255&c*i.r+s*o.r+.5,i.g=255&c*i.g+s*o.g+.5,i.b=255&c*i.b+s*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=HS(this._rgb,e._rgb,n)),this}clone(){return new ar(this.rgb)}alpha(e){return this._rgb.a=Pi(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=xr(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Wr(this._rgb,2,e),this}darken(e){return Wr(this._rgb,2,-e),this}saturate(e){return Wr(this._rgb,1,e),this}desaturate(e){return Wr(this._rgb,1,-e),this}rotate(e){return BS(this._rgb,e),this}}function Yn(){}const WS=(()=>{let t=0;return()=>t++})();function oe(t){return t==null}function Ae(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Vt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ve(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Dn(t,e){return Ve(t)?t:e}function Ot(t,e){return typeof t>"u"?e:t}const GS=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,Xm=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function re(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Mt(t,e,n,i){let o,s,r;if(Ae(t))for(s=t.length,o=0;ot,x:t=>t.x,y:t=>t.y};function XS(t){const e=t.split("."),n=[];let i="";for(const o of e)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function YS(t){const e=XS(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function ur(t,e){return(Vf[e]||(Vf[e]=YS(e)))(t)}function sd(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Xa=t=>typeof t<"u",Ni=t=>typeof t=="function",If=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function ZS(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const te=Math.PI,de=2*te,QS=de+te,Ya=Number.POSITIVE_INFINITY,MS=te/180,we=te/2,Ji=te/4,zf=te*2/3,Zm=Math.log10,Go=Math.sign;function Vs(t,e,n){return Math.abs(t-e)o-s).pop(),e}function e4(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function cr(t){return!e4(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function n4(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function i4(t,e,n){let i,o,s;for(i=0,o=t.length;il&&c=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function rd(t,e,n){n=n||(r=>t[r]1;)s=o+i>>1,n(s)?o=s:i=s;return{lo:o,hi:i}}const oo=(t,e,n,i)=>rd(t,n,i?o=>{const s=t[o][e];return st[o][e]rd(t,n,i=>t[i][e]>=n);function l4(t,e,n){let i=0,o=t.length;for(;ii&&t[o-1]>n;)o--;return i>0||o{const i="_onData"+sd(n),o=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...s){const r=o.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...s)}),r}})})}function Wf(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),!(i.length>0)&&(Mm.forEach(s=>{delete t[s]}),delete t._chartjs)}function c4(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const t1=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function e1(t,e){let n=[],i=!1;return function(...o){n=o,i||(i=!0,t1.call(window,()=>{i=!1,t.apply(e,n)}))}}function d4(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const n1=t=>t==="start"?"left":t==="end"?"right":"center",sn=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,h4=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function f4(t,e,n){const i=e.length;let o=0,s=i;if(t._sorted){const{iScale:r,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=r.axis,{min:d,max:f,minDefined:p,maxDefined:y}=r.getUserBounds();if(p){if(o=Math.min(oo(l,u,d).lo,n?i:oo(e,u,r.getPixelForValue(d)).lo),c){const m=l.slice(0,o+1).reverse().findIndex(x=>!oe(x[a.axis]));o-=Math.max(0,m)}o=qe(o,0,i-1)}if(y){let m=Math.max(oo(l,r.axis,f,!0).hi+1,n?0:oo(e,u,r.getPixelForValue(f),!0).hi+1);if(c){const x=l.slice(m-1).findIndex(b=>!oe(b[a.axis]));m+=Math.max(0,x)}s=qe(m,o,i)-o}else s=i-o}return{start:o,count:s}}function p4(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,o={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=o,!0;const s=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,o),s}const Gr=t=>t===0||t===1,Gf=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*de/n)),qf=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*de/n)+1,Is={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*we)+1,easeOutSine:t=>Math.sin(t*we),easeInOutSine:t=>-.5*(Math.cos(te*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>Gr(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Gr(t)?t:Gf(t,.075,.3),easeOutElastic:t=>Gr(t)?t:qf(t,.075,.3),easeInOutElastic(t){return Gr(t)?t:t<.5?.5*Gf(t*2,.1125,.45):.5+.5*qf(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Is.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Is.easeInBounce(t*2)*.5:Is.easeOutBounce(t*2-1)*.5+.5};function ad(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function Kf(t){return ad(t)?t:new ar(t)}function xu(t){return ad(t)?t:new ar(t).saturate(.5).darken(.1).hexString()}const g4=["x","y","borderWidth","radius","tension"],m4=["color","borderColor","backgroundColor"];function v4(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:m4},numbers:{type:"number",properties:g4}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function y4(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Xf=new Map;function b4(t,e){e=e||{};const n=t+JSON.stringify(e);let i=Xf.get(n);return i||(i=new Intl.NumberFormat(t,e),Xf.set(n,i)),i}function ld(t,e,n){return b4(e,n).format(t)}const _4={values(t){return Ae(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let o,s=t;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),s=w4(t,n)}const r=Zm(Math.abs(s)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ld(t,i,l)}};function w4(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var i1={formatters:_4};function x4(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:i1.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const po=Object.create(null),wc=Object.create(null);function zs(t,e){if(!e)return t;const n=e.split(".");for(let i=0,o=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>xu(o.backgroundColor),this.hoverBorderColor=(i,o)=>xu(o.borderColor),this.hoverColor=(i,o)=>xu(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Eu(this,e,n)}get(e){return zs(this,e)}describe(e,n){return Eu(wc,e,n)}override(e,n){return Eu(po,e,n)}route(e,n,i,o){const s=zs(this,e),r=zs(this,i),a="_"+n;Object.defineProperties(s,{[a]:{value:s[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[o];return Vt(l)?Object.assign({},c,l):Ot(l,c)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var pe=new E4({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[v4,y4,x4]);function A4(t){return!t||oe(t.size)||oe(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Yf(t,e,n,i,o){let s=e[o];return s||(s=e[o]=t.measureText(o).width,n.push(o)),s>i&&(i=s),i}function Wi(t,e,n){const i=t.currentDevicePixelRatio,o=n!==0?Math.max(n/2,.5):0;return Math.round((e-o)*i)/i+o}function Zf(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function xc(t,e,n,i){o1(t,e,n,i,null)}function o1(t,e,n,i,o){let s,r,a,l,c,u,d,f;const p=e.pointStyle,y=e.rotation,m=e.radius;let x=(y||0)*MS;if(p&&typeof p=="object"&&(s=p.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(x),t.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),t.restore();return}if(!(isNaN(m)||m<=0)){switch(t.beginPath(),p){default:o?t.ellipse(n,i,o/2,m,0,0,de):t.arc(n,i,m,0,de),t.closePath();break;case"triangle":u=o?o/2:m,t.moveTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),t.closePath();break;case"rectRounded":c=m*.516,l=m-c,r=Math.cos(x+Ji)*l,d=Math.cos(x+Ji)*(o?o/2-c:l),a=Math.sin(x+Ji)*l,f=Math.sin(x+Ji)*(o?o/2-c:l),t.arc(n-d,i-a,c,x-te,x-we),t.arc(n+f,i-r,c,x-we,x),t.arc(n+d,i+a,c,x,x+we),t.arc(n-f,i+r,c,x+we,x+te),t.closePath();break;case"rect":if(!y){l=Math.SQRT1_2*m,u=o?o/2:l,t.rect(n-u,i-l,2*u,2*l);break}x+=Ji;case"rectRot":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+f,i-r),t.lineTo(n+d,i+a),t.lineTo(n-f,i+r),t.closePath();break;case"crossRot":x+=Ji;case"cross":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"star":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r),x+=Ji,d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"line":r=o?o/2:Math.cos(x)*m,a=Math.sin(x)*m,t.moveTo(n-r,i-a),t.lineTo(n+r,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(x)*(o?o/2:m),i+Math.sin(x)*m);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function hr(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&s.strokeColor!=="";let l,c;for(t.save(),t.font=o.string,T4(t,s),l=0;l+t||0;function ud(t,e){const n={},i=Vt(e),o=i?Object.keys(e):e,s=Vt(t)?i?r=>Ot(t[r],t[e[r]]):r=>t[r]:()=>t;for(const r of o)n[r]=N4(s(r));return n}function O4(t){return ud(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Hs(t){return ud(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Cn(t){const e=O4(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Me(t,e){t=t||{},e=e||pe.font;let n=Ot(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Ot(t.style,e.style);i&&!(""+i).match(L4)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:Ot(t.family,e.family),lineHeight:D4(Ot(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Ot(t.weight,e.weight),string:""};return o.string=A4(o),o}function qr(t,e,n,i){let o,s,r;for(o=0,s=t.length;on&&a===0?0:a+l;return{min:r(i,-Math.abs(s)),max:r(o,s)}}function bo(t,e){return Object.assign(Object.create(t),e)}function cd(t,e=[""],n,i,o=()=>t[0]){const s=n||t;typeof i>"u"&&(i=l1("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:i,_getTarget:o,override:a=>cd([a,...t],e,s,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return r1(a,l,()=>H4(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return Mf(a).includes(l)},ownKeys(a){return Mf(a)},set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function qo(t,e,n,i){const o={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:s1(t,i),setContext:s=>qo(t,s,n,i),override:s=>qo(t.override(s),e,n,i)};return new Proxy(o,{deleteProperty(s,r){return delete s[r],delete t[r],!0},get(s,r,a){return r1(s,r,()=>F4(s,r,a))},getOwnPropertyDescriptor(s,r){return s._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(s,r,a){return t[r]=a,delete s[r],!0}})}function s1(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:o=e.allKeys}=t;return{allKeys:o,scriptable:n,indexable:i,isScriptable:Ni(n)?n:()=>n,isIndexable:Ni(i)?i:()=>i}}const B4=(t,e)=>t?t+sd(e):e,dd=(t,e)=>Vt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function r1(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function F4(t,e,n){const{_proxy:i,_context:o,_subProxy:s,_descriptors:r}=t;let a=i[e];return Ni(a)&&r.isScriptable(e)&&(a=j4(e,a,t,n)),Ae(a)&&a.length&&(a=U4(e,a,t,r.isIndexable)),dd(e,a)&&(a=qo(a,o,s&&s[e],r)),a}function j4(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,r||i);return a.delete(t),dd(t,l)&&(l=hd(o._scopes,o,t,l)),l}function U4(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_descriptors:a}=n;if(typeof s.index<"u"&&i(t))return e[s.index%e.length];if(Vt(e[0])){const l=e,c=o._scopes.filter(u=>u!==l);e=[];for(const u of l){const d=hd(c,o,t,u);e.push(qo(d,s,r&&r[t],a))}}return e}function a1(t,e,n){return Ni(t)?t(e,n):t}const V4=(t,e)=>t===!0?e:typeof t=="string"?ur(e,t):void 0;function I4(t,e,n,i,o){for(const s of e){const r=V4(n,s);if(r){t.add(r);const a=a1(r._fallback,n,o);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function hd(t,e,n,i){const o=e._rootScopes,s=a1(e._fallback,n,i),r=[...t,...o],a=new Set;a.add(i);let l=Qf(a,r,n,s||n,i);return l===null||typeof s<"u"&&s!==n&&(l=Qf(a,r,s,l,i),l===null)?!1:cd(Array.from(a),[""],o,s,()=>z4(e,n,i))}function Qf(t,e,n,i,o){for(;n;)n=I4(t,e,n,i,o);return n}function z4(t,e,n){const i=t._getTarget();e in i||(i[e]={});const o=i[e];return Ae(o)&&Vt(n)?n:o||{}}function H4(t,e,n,i){let o;for(const s of e)if(o=l1(B4(s,t),n),typeof o<"u")return dd(t,o)?hd(n,i,t,o):o}function l1(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function Mf(t){let e=t._keys;return e||(e=t._keys=J4(t._scopes)),e}function J4(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(o=>!o.startsWith("_")))e.add(i);return Array.from(e)}const W4=Number.EPSILON||1e-14,Ko=(t,e)=>et==="x"?"y":"x";function G4(t,e,n,i){const o=t.skip?e:t,s=e,r=n.skip?e:n,a=_c(s,o),l=_c(r,s);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const d=i*c,f=i*u;return{previous:{x:s.x-d*(r.x-o.x),y:s.y-d*(r.y-o.y)},next:{x:s.x+f*(r.x-o.x),y:s.y+f*(r.y-o.y)}}}function q4(t,e,n){const i=t.length;let o,s,r,a,l,c=Ko(t,0);for(let u=0;u!c.skip)),e.cubicInterpolationMode==="monotone")X4(t,o);else{let c=i?t[t.length-1]:t[0];for(s=0,r=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function Q4(t,e){return Pl(t).getPropertyValue(e)}const M4=["top","right","bottom","left"];function co(t,e,n){const i={};n=n?"-"+n:"";for(let o=0;o<4;o++){const s=M4[o];i[s]=parseFloat(t[e+"-"+s+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const tC=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function eC(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:o,offsetY:s}=i;let r=!1,a,l;if(tC(o,s,t.target))a=o,l=s;else{const c=e.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function Ki(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,o=Pl(n),s=o.boxSizing==="border-box",r=co(o,"padding"),a=co(o,"border","width"),{x:l,y:c,box:u}=eC(t,n),d=r.left+(u&&a.left),f=r.top+(u&&a.top);let{width:p,height:y}=e;return s&&(p-=r.width+a.width,y-=r.height+a.height),{x:Math.round((l-d)/p*n.width/i),y:Math.round((c-f)/y*n.height/i)}}function nC(t,e,n){let i,o;if(e===void 0||n===void 0){const s=t&&pd(t);if(!s)e=t.clientWidth,n=t.clientHeight;else{const r=s.getBoundingClientRect(),a=Pl(s),l=co(a,"border","width"),c=co(a,"padding");e=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Qa(a.maxWidth,s,"clientWidth"),o=Qa(a.maxHeight,s,"clientHeight")}}return{width:e,height:n,maxWidth:i||Ya,maxHeight:o||Ya}}const Ai=t=>Math.round(t*10)/10;function iC(t,e,n,i){const o=Pl(t),s=co(o,"margin"),r=Qa(o.maxWidth,t,"clientWidth")||Ya,a=Qa(o.maxHeight,t,"clientHeight")||Ya,l=nC(t,e,n);let{width:c,height:u}=l;if(o.boxSizing==="content-box"){const d=co(o,"border","width"),f=co(o,"padding");c-=f.width+d.width,u-=f.height+d.height}return c=Math.max(0,c-s.width),u=Math.max(0,i?c/i:u-s.height),c=Ai(Math.min(c,r,l.maxWidth)),u=Ai(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Ai(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&u>l.height&&(u=l.height,c=Ai(Math.floor(u*i))),{width:c,height:u}}function tp(t,e,n){const i=e||1,o=Ai(t.height*i),s=Ai(t.width*i);t.height=Ai(t.height),t.width=Ai(t.width);const r=t.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==s?(t.currentDevicePixelRatio=i,r.height=o,r.width=s,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const oC=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fd()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function ep(t,e){const n=Q4(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Xi(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function sC(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function rC(t,e,n,i){const o={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},r=Xi(t,o,n),a=Xi(o,s,n),l=Xi(s,e,n),c=Xi(r,a,n),u=Xi(a,l,n);return Xi(c,u,n)}const aC=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},lC=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Ho(t,e,n){return t?aC(e,n):lC()}function c1(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function d1(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function h1(t){return t==="angle"?{between:dr,compare:s4,normalize:rn}:{between:io,compare:(e,n)=>e-n,normalize:e=>e}}function np({start:t,end:e,count:n,loop:i,style:o}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:o}}function uC(t,e,n){const{property:i,start:o,end:s}=n,{between:r,normalize:a}=h1(i),l=e.length;let{start:c,end:u,loop:d}=t,f,p;if(d){for(c+=l,u+=l,f=0,p=l;fl(o,R,b)&&a(o,R)!==0,N=()=>a(s,b)===0||l(s,R,b),j=()=>m||S(),U=()=>!m||N();for(let H=u,q=u;H<=d;++H)A=e[H%r],!A.skip&&(b=c(A[i]),b!==R&&(m=l(b,o,s),x===null&&j()&&(x=a(b,o)===0?H:q),x!==null&&U()&&(y.push(np({start:x,end:H,loop:f,count:r,style:p})),x=null),q=H,R=b));return x!==null&&y.push(np({start:x,end:d,loop:f,count:r,style:p})),y}function p1(t,e){const n=[],i=t.segments;for(let o=0;oo&&t[s%e].skip;)s--;return s%=e,{start:o,end:s}}function dC(t,e,n,i){const o=t.length,s=[];let r=e,a=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%o];c.skip||c.stop?a.skip||(i=!1,s.push({start:e%o,end:(l-1)%o,loop:i}),e=r=c.stop?l:null):(r=l,a.skip&&(e=l)),a=c}return r!==null&&s.push({start:e%o,end:r%o,loop:i}),s}function hC(t,e){const n=t.points,i=t.options.spanGaps,o=n.length;if(!o)return[];const s=!!t._loop,{start:r,end:a}=cC(n,o,s,i);if(i===!0)return ip(t,[{start:r,end:a,loop:s}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=t1.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const s=i.items;let r=s.length-1,a=!1,l;for(;r>=0;--r)l=s[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(s[r]=s[s.length-1],s.pop());a&&(o.draw(),this._notify(o,i,e,"progress")),s.length||(i.running=!1,this._notify(o,i,e,"complete"),i.initial=!1),n+=s.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Zn=new mC;const sp="transparent",vC={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=Kf(t||sp),o=i.valid&&Kf(e||sp);return o&&o.valid?o.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class yC{constructor(e,n,i,o){const s=n[i];o=qr([e.to,o,s,e.from]);const r=qr([e.from,s,o]);this._active=!0,this._fn=e.fn||vC[e.type||typeof r],this._easing=Is[e.easing]||Is.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const o=this._target[this._prop],s=i-this._start,r=this._duration-s;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=qr([e.to,n,o,e.from]),this._from=qr([e.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,o=this._prop,s=this._from,r=this._loop,a=this._to;let l;if(this._active=s!==a&&(r||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let o=0;o{const s=e[o];if(!Vt(s))return;const r={};for(const a of n)r[a]=s[a];(Ae(s.properties)&&s.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,r)})})}_animateOptions(e,n){const i=n.options,o=_C(e,i);if(!o)return[];const s=this._createAnimations(o,i);return i.$shared&&bC(e.options.$animations,i).then(()=>{e.options=i},()=>{}),s}_createAnimations(e,n){const i=this._properties,o=[],s=e.$animations||(e.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){o.push(...this._animateOptions(e,n));continue}const u=n[c];let d=s[c];const f=i.get(c);if(d)if(f&&d.active()){d.update(f,u,a);continue}else d.cancel();if(!f||!f.duration){e[c]=u;continue}s[c]=d=new yC(f,e,c,u),o.push(d)}return o}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Zn.add(this._chart,i),!0}}function bC(t,e){const n=[],i=Object.keys(e);for(let o=0;o0||!n&&s<0)return o.index}return null}function up(t,e){const{chart:n,_cachedMeta:i}=t,o=n._stacks||(n._stacks={}),{iScale:s,vScale:r,index:a}=i,l=s.axis,c=r.axis,u=AC(s,r,i),d=e.length;let f;for(let p=0;pn[i].axis===e).shift()}function TC(t,e){return bo(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function kC(t,e,n){return bo(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function ps(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const o of e){const s=o._stacks;if(!s||s[i]===void 0||s[i][n]===void 0)return;delete s[i][n],s[i]._visualValues!==void 0&&s[i]._visualValues[n]!==void 0&&delete s[i]._visualValues[n]}}}const Cu=t=>t==="reset"||t==="none",cp=(t,e)=>e?t:Object.assign({},t),RC=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:v1(n,!0),values:null};class gd{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Au(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&ps(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),o=(d,f,p,y)=>d==="x"?f:d==="r"?y:p,s=n.xAxisID=Ot(i.xAxisID,Su(e,"x")),r=n.yAxisID=Ot(i.yAxisID,Su(e,"y")),a=n.rAxisID=Ot(i.rAxisID,Su(e,"r")),l=n.indexAxis,c=n.iAxisID=o(l,s,r,a),u=n.vAxisID=o(l,r,s,a);n.xScale=this.getScaleForId(s),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&Wf(this._data,this),e._stacked&&ps(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(Vt(n)){const o=this._cachedMeta;this._data=EC(n,o)}else if(i!==n){if(i){Wf(i,this);const o=this._cachedMeta;ps(o),o._parsed=[]}n&&Object.isExtensible(n)&&u4(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let o=!1;this._dataCheck();const s=n._stacked;n._stacked=Au(n.vScale,n),n.stack!==i.stack&&(o=!0,ps(n),n.stack=i.stack),this._resyncElements(e),(o||s!==n._stacked)&&(up(this,n._parsed),n._stacked=Au(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:o}=this,{iScale:s,_stacked:r}=i,a=s.axis;let l=e===0&&n===o.length?!0:i._sorted,c=e>0&&i._parsed[e-1],u,d,f;if(this._parsing===!1)i._parsed=o,i._sorted=!0,f=o;else{Ae(o[e])?f=this.parseArrayData(i,o,e,n):Vt(o[e])?f=this.parseObjectData(i,o,e,n):f=this.parsePrimitiveData(i,o,e,n);const p=()=>d[a]===null||c&&d[a]m||d=0;--f)if(!y()){this.updateRangeFromParsed(c,e,p,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let o,s,r;for(o=0,s=n.length;o=0&&ethis.getContext(i,o,n),m=c.resolveNamedOptions(f,p,y,d);return m.$shared&&(m.$shared=l,s[r]=Object.freeze(cp(m,l))),m}_resolveAnimations(e,n,i){const o=this.chart,s=this._cachedDataOpts,r=`animation-${n}`,a=s[r];if(a)return a;let l;if(o.options.animation!==!1){const u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,n),f=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(f,this.getContext(e,i,n))}const c=new m1(o,l&&l.animations);return l&&l._cacheable&&(s[r]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Cu(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),o=this._sharedOptions,s=this.getSharedOptions(i),r=this.includeOptions(n,s)||s!==o;return this.updateSharedOptions(s,n,i),{sharedOptions:s,includeOptions:r}}updateElement(e,n,i,o){Cu(o)?Object.assign(e,i):this._resolveAnimations(n,o).update(e,i)}updateSharedOptions(e,n,i){e&&!Cu(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,o){e.active=o;const s=this.getStyle(n,o);this._resolveAnimations(n,i,o).update(e,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const o=i.length,s=n.length,r=Math.min(s,o);r&&this.parse(0,r),s>o?this._insertElements(o,s-o,e):s{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(s),a=e;adr(R,a,l,!0)?1:Math.max(S,S*n,N,N*n),y=(R,S,N)=>dr(R,a,l,!0)?-1:Math.min(S,S*n,N,N*n),m=p(0,c,d),x=p(we,u,f),b=y(te,c,d),A=y(te+we,u,f);i=(m-b)/2,o=(x-A)/2,s=-(m+b)/2,r=-(x+A)/2}return{ratioX:i,ratioY:o,offsetX:s,offsetY:r}}class LC extends gd{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,c)=>{const u=e.getDatasetMeta(0).controller.getStyle(c);return{text:l,fillStyle:u.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(c),lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:u.borderWidth,strokeStyle:u.borderColor,textAlign:o,pointStyle:i,borderRadius:r&&(a||u.borderRadius),index:c}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=i;else{let s=l=>+i[l];if(Vt(i[e])){const{key:l="value"}=this._parsing;s=c=>+ur(i[c],l)}let r,a;for(r=e,a=e+n;r0&&!isNaN(e)?de*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,o=i.data.labels||[],s=ld(n._parsed[e],i.options.locale);return{label:o[e]||"",value:s}}getMaxBorderWidth(e){let n=0;const i=this.chart;let o,s,r,a,l;if(!e){for(o=0,s=i.data.datasets.length;o0&&this.getParsed(n-1);for(let N=0;N=A){U.skip=!0;continue}const H=this.getParsed(N),q=oe(H[p]),V=U[f]=r.getPixelForValue(H[f],N),et=U[p]=s||q?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,H,l):H[p],N);U.skip=isNaN(V)||isNaN(et)||q,U.stop=N>0&&Math.abs(H[f]-S[f])>x,m&&(U.parsed=H,U.raw=c.data[N]),d&&(U.options=u||this.resolveDataElementOptions(N,j.active?"active":o)),b||this.updateElement(j,N,U,o),S=H}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,o=e.data||[];if(!o.length)return i;const s=o[0].size(this.resolveDataElementOptions(0)),r=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(i,s,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function Gi(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class vd{static override(e){Object.assign(vd.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return Gi()}parse(){return Gi()}format(){return Gi()}add(){return Gi()}diff(){return Gi()}startOf(){return Gi()}endOf(){return Gi()}}var DC={_date:vd};function NC(t,e,n,i){const{controller:o,data:s,_sorted:r}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&r&&s.length){const c=a._reversePixels?a4:oo;if(i){if(o._sharedOptions){const u=s[0],d=typeof u.getRange=="function"&&u.getRange(e);if(d){const f=c(s,e,n-d),p=c(s,e,n+d);return{lo:f.lo,hi:p.hi}}}}else{const u=c(s,e,n);if(l){const{vScale:d}=o._cachedMeta,{_parsed:f}=t,p=f.slice(0,u.lo+1).reverse().findIndex(m=>!oe(m[d.axis]));u.lo-=Math.max(0,p);const y=f.slice(u.hi).findIndex(m=>!oe(m[d.axis]));u.hi+=Math.max(0,y)}return u}}return{lo:0,hi:s.length-1}}function Ll(t,e,n,i,o){const s=t.getSortedVisibleDatasetMetas(),r=n[e];for(let a=0,l=s.length;a{l[r]&&l[r](e[n],o)&&(s.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(e.x,e.y,o))}),i&&!a?[]:s}var FC={modes:{index(t,e,n,i){const o=Ki(e,t),s=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?Tu(t,o,s,i,r):ku(t,o,s,!1,i,r),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(t,e,n,i){const o=Ki(e,t),s=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?Tu(t,o,s,i,r):ku(t,o,s,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;un.pos===e)}function hp(t,e){return t.filter(n=>y1.indexOf(n.pos)===-1&&n.box.axis===e)}function ms(t,e){return t.sort((n,i)=>{const o=e?i:n,s=e?n:i;return o.weight===s.weight?o.index-s.index:o.weight-s.weight})}function jC(t){const e=[];let n,i,o,s,r,a;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=ms(gs(e,"left"),!0),o=ms(gs(e,"right")),s=ms(gs(e,"top"),!0),r=ms(gs(e,"bottom")),a=hp(e,"x"),l=hp(e,"y");return{fullSize:n,leftAndTop:i.concat(s),rightAndBottom:o.concat(l).concat(r).concat(a),chartArea:gs(e,"chartArea"),vertical:i.concat(o).concat(l),horizontal:s.concat(r).concat(a)}}function fp(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function b1(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function zC(t,e,n,i){const{pos:o,box:s}=n,r=t.maxPadding;if(!Vt(o)){n.size&&(t[o]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?s.height:s.width),n.size=d.size/d.count,t[o]+=n.size}s.getPadding&&b1(r,s.getPadding());const a=Math.max(0,e.outerWidth-fp(r,t,"left","right")),l=Math.max(0,e.outerHeight-fp(r,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:c,other:u}:{same:u,other:c}}function HC(t){const e=t.maxPadding;function n(i){const o=Math.max(e[i]-t[i],0);return t[i]+=o,o}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function JC(t,e){const n=e.maxPadding;function i(o){const s={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{s[r]=Math.max(e[r],n[r])}),s}return i(t?["left","right"]:["top","bottom"])}function Cs(t,e,n,i){const o=[];let s,r,a,l,c,u;for(s=0,r=t.length,c=0;s{typeof m.beforeLayout=="function"&&m.beforeLayout()});const u=l.reduce((m,x)=>x.box.options&&x.box.options.display===!1?m:m+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:s,availableHeight:r,vBoxMaxWidth:s/2/u,hBoxMaxHeight:r/2}),f=Object.assign({},o);b1(f,Cn(i));const p=Object.assign({maxPadding:f,w:s,h:r,x:o.left,y:o.top},o),y=VC(l.concat(c),d);Cs(a.fullSize,p,d,y),Cs(l,p,d,y),Cs(c,p,d,y)&&Cs(l,p,d,y),HC(p),pp(a.leftAndTop,p,d,y),p.x+=p.w,p.y+=p.h,pp(a.rightAndBottom,p,d,y),t.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Mt(a.chartArea,m=>{const x=m.box;Object.assign(x,t.chartArea),x.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class _1{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,o){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,o?Math.floor(n/o):i)}}isAttached(e){return!0}updateConfig(e){}}class WC extends _1{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const pa="$chartjs",GC={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},gp=t=>t===null||t==="";function qC(t,e){const n=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[pa]={initial:{height:i,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",gp(o)){const s=ep(t,"width");s!==void 0&&(t.width=s)}if(gp(i))if(t.style.height==="")t.height=t.width/(e||2);else{const s=ep(t,"height");s!==void 0&&(t.height=s)}return t}const w1=oC?{passive:!0}:!1;function KC(t,e,n){t&&t.addEventListener(e,n,w1)}function XC(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,w1)}function YC(t,e){const n=GC[t.type]||t.type,{x:i,y:o}=Ki(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function Ma(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function ZC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Ma(a.addedNodes,i),r=r&&!Ma(a.removedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function QC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Ma(a.removedNodes,i),r=r&&!Ma(a.addedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const fr=new Map;let mp=0;function x1(){const t=window.devicePixelRatio;t!==mp&&(mp=t,fr.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function MC(t,e){fr.size||window.addEventListener("resize",x1),fr.set(t,e)}function tT(t){fr.delete(t),fr.size||window.removeEventListener("resize",x1)}function eT(t,e,n){const i=t.canvas,o=i&&pd(i);if(!o)return;const s=e1((a,l)=>{const c=o.clientWidth;n(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||s(c,u)});return r.observe(o),MC(t,s),r}function Ru(t,e,n){n&&n.disconnect(),e==="resize"&&tT(t)}function nT(t,e,n){const i=t.canvas,o=e1(s=>{t.ctx!==null&&n(YC(s,t))},t);return KC(i,e,o),o}class iT extends _1{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(qC(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[pa])return!1;const i=n[pa].initial;["height","width"].forEach(s=>{const r=i[s];oe(r)?n.removeAttribute(s):n.setAttribute(s,r)});const o=i.style||{};return Object.keys(o).forEach(s=>{n.style[s]=o[s]}),n.width=n.width,delete n[pa],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const o=e.$proxies||(e.$proxies={}),s={attach:ZC,detach:QC,resize:eT}[n]||nT;o[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),o=i[n];o&&(({attach:Ru,detach:Ru,resize:Ru}[n]||XC)(e,n,o),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,o){return iC(e,n,i,o)}isAttached(e){const n=e&&pd(e);return!!(n&&n.isConnected)}}function oT(t){return!fd()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?WC:iT}let _o=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return cr(this.x)&&cr(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(o=>{i[o]=n[o]&&n[o].active()?n[o]._to:this[o]}),i}};function sT(t,e){const n=t.options.ticks,i=rT(t),o=Math.min(n.maxTicksLimit||i,i),s=n.major.enabled?lT(e):[],r=s.length,a=s[0],l=s[r-1],c=[];if(r>o)return uT(e,c,s,r/o),c;const u=aT(s,e,o);if(r>0){let d,f;const p=r>1?Math.round((l-a)/(r-1)):null;for(Zr(e,c,u,oe(p)?0:a-p,a),d=0,f=r-1;do)return l}return Math.max(o,1)}function lT(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,vp=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,yp=(t,e)=>Math.min(e||t,t);function bp(t,e){const n=[],i=t.length/e,o=t.length;let s=0;for(;sr+a)))return l}function fT(t,e){Mt(t,n=>{const i=n.gc,o=i.length/2;let s;if(o>e){for(s=0;si?i:n,i=o&&n>i?n:i,{min:Dn(n,Dn(i,n)),max:Dn(i,Dn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){re(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:o,grace:s,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$4(this,s,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||i<=1||!this.isHorizontal()){this.labelRotation=o;return}const u=this._getLabelSizes(),d=u.widest.width,f=u.highest.height,p=qe(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/i:p/(i-1),d+6>a&&(a=p/(i-(e.offset?.5:1)),l=this.maxHeight-vs(e.grid)-n.padding-_p(e.title,this.chart.options.font),c=Math.sqrt(d*d+f*f),r=o4(Math.min(Math.asin(qe((u.highest.height+6)/a,-1,1)),Math.asin(qe(l/c,-1,1))-Math.asin(qe(f/c,-1,1)))),r=Math.max(o,Math.min(s,r))),this.labelRotation=r}afterCalculateLabelRotation(){re(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){re(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:o,grid:s}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=_p(o,n.options.font);if(a?(e.width=this.maxWidth,e.height=vs(s)+l):(e.height=this.maxHeight,e.width=vs(s)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:d,highest:f}=this._getLabelSizes(),p=i.padding*2,y=li(this.labelRotation),m=Math.cos(y),x=Math.sin(y);if(a){const b=i.mirror?0:x*d.width+m*f.height;e.height=Math.min(this.maxHeight,e.height+b+p)}else{const b=i.mirror?0:m*d.width+x*f.height;e.width=Math.min(this.maxWidth,e.width+b+p)}this._calculatePadding(c,u,x,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,o){const{ticks:{align:s,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?c?(f=o*e.width,p=i*n.height):(f=i*e.height,p=o*n.width):s==="start"?p=n.width:s==="end"?f=e.width:s!=="inner"&&(f=e.width/2,p=n.width/2),this.paddingLeft=Math.max((f-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((p-d+r)*this.width/(this.width-d),0)}else{let u=n.height/2,d=e.height/2;s==="start"?(u=0,d=e.height):s==="end"&&(u=n.height,d=0),this.paddingTop=u+r,this.paddingBottom=d+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){re(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:r[q]||0,height:a[q]||0});return{first:H(0),last:H(n-1),widest:H(j),highest:H(U),widths:r,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return r4(this._alignToPixels?Wi(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*o?a/i:l/o:l*o0}_computeGridLineItems(e){const n=this.axis,i=this.chart,o=this.options,{grid:s,position:r,border:a}=o,l=s.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=vs(s),f=[],p=a.setContext(this.getContext()),y=p.display?p.width:0,m=y/2,x=function(M){return Wi(i,M,y)};let b,A,R,S,N,j,U,H,q,V,et,T;if(r==="top")b=x(this.bottom),j=this.bottom-d,H=b-m,V=x(e.top)+m,T=e.bottom;else if(r==="bottom")b=x(this.top),V=e.top,T=x(e.bottom)-m,j=b+m,H=this.top+d;else if(r==="left")b=x(this.right),N=this.right-d,U=b-m,q=x(e.left)+m,et=e.right;else if(r==="right")b=x(this.left),q=e.left,et=x(e.right)-m,N=b+m,U=this.left+d;else if(n==="x"){if(r==="center")b=x((e.top+e.bottom)/2+.5);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];b=x(this.chart.scales[M].getPixelForValue(Z))}V=e.top,T=e.bottom,j=b+m,H=j+d}else if(n==="y"){if(r==="center")b=x((e.left+e.right)/2);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];b=x(this.chart.scales[M].getPixelForValue(Z))}N=b-m,U=N-d,q=e.left,et=e.right}const F=Ot(o.ticks.maxTicksLimit,u),Q=Math.max(1,Math.ceil(u/F));for(A=0;A0&&(Et-=Pt/2);break}xt={left:Et,top:$t,width:Pt+gt.width,height:Gt+gt.height,color:M.backdropColor}}x.push({label:S,font:q,textOffset:T,options:{rotation:m,color:rt,strokeColor:lt,strokeWidth:ft,textAlign:pt,textBaseline:F,translation:[N,j],backdrop:xt}})}return x}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-li(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:o,padding:s}}=this.options,r=this._getLabelSizes(),a=e+s,l=r.widest.width;let c,u;return n==="left"?o?(u=this.right+s,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u=this.left)):n==="right"?o?(u=this.left+s,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:o,width:s,height:r}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,o,s,r),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(o=>o.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,r;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(s=0,r=o.length;s{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let s,r;for(s=0,r=n.length;s{const i=n.split("."),o=i.pop(),s=[t].concat(i).join("."),r=e[n].split("."),a=r.pop(),l=r.join(".");pe.route(s,o,l,a)})}function _T(t){return"id"in t&&"defaults"in t}class wT{constructor(){this.controllers=new Qr(gd,"datasets",!0),this.elements=new Qr(_o,"elements"),this.plugins=new Qr(Object,"plugins"),this.scales=new Qr(Mo,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(o=>{const s=i||this._getRegistryForType(o);i||s.isForType(o)||s===this.plugins&&o.id?this._exec(e,s,o):Mt(o,r=>{const a=i||this._getRegistryForType(r);this._exec(e,a,r)})})}_exec(e,n,i){const o=sd(e);re(i["before"+o],[],i),n[e](i),re(i["after"+o],[],i)}_getRegistryForType(e){for(let n=0;ns.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(o(n,i),e,"stop"),this._notify(o(i,n),e,"start")}}function ET(t){const e={},n=[],i=Object.keys($n.plugins.items);for(let s=0;s1&&wp(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function xp(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function PT(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return xp(t,"x",n[0])||xp(t,"y",n[0])}return{}}function LT(t,e){const n=po[t.type]||{scales:{}},i=e.scales||{},o=Ac(t.type,e),s=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!Vt(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=Sc(r,a,PT(r,t),pe.scales[a.type]),c=kT(l,o),u=n.scales||{};s[r]=Us(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(r=>{const a=r.type||t.type,l=r.indexAxis||Ac(a,e),c=(po[a]||{}).scales||{};Object.keys(c).forEach(u=>{const d=TT(u,l),f=r[d+"AxisID"]||d;s[f]=s[f]||Object.create(null),Us(s[f],[{axis:d},i[f],c[u]])})}),Object.keys(s).forEach(r=>{const a=s[r];Us(a,[pe.scales[a.type],pe.scale])}),s}function E1(t){const e=t.options||(t.options={});e.plugins=Ot(e.plugins,{}),e.scales=LT(t,e)}function A1(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function DT(t){return t=t||{},t.data=A1(t.data),E1(t),t}const Ep=new Map,S1=new Set;function Mr(t,e){let n=Ep.get(t);return n||(n=e(),Ep.set(t,n),S1.add(n)),n}const ys=(t,e,n)=>{const i=ur(e,n);i!==void 0&&t.add(i)};class NT{constructor(e){this._config=DT(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=A1(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),E1(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Mr(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Mr(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Mr(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Mr(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let o=i.get(e);return(!o||n)&&(o=new Map,i.set(e,o)),o}getOptionScopes(e,n,i){const{options:o,type:s}=this,r=this._cachedScopes(e,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(u=>{e&&(l.add(e),u.forEach(d=>ys(l,e,d))),u.forEach(d=>ys(l,o,d)),u.forEach(d=>ys(l,po[s]||{},d)),u.forEach(d=>ys(l,pe,d)),u.forEach(d=>ys(l,wc,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),S1.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,po[n]||{},pe.datasets[n]||{},{type:n},pe,wc]}resolveNamedOptions(e,n,i,o=[""]){const s={$shared:!0},{resolver:r,subPrefixes:a}=Ap(this._resolverCache,e,o);let l=r;if($T(r,n)){s.$shared=!1,i=Ni(i)?i():i;const c=this.createResolver(e,i,a);l=qo(r,i,c)}for(const c of n)s[c]=l[c];return s}createResolver(e,n,i=[""],o){const{resolver:s}=Ap(this._resolverCache,e,i);return Vt(n)?qo(s,n,void 0,o):s}}function Ap(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const o=n.join();let s=i.get(o);return s||(s={resolver:cd(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(o,s)),s}const OT=t=>Vt(t)&&Object.getOwnPropertyNames(t).some(e=>Ni(t[e]));function $T(t,e){const{isScriptable:n,isIndexable:i}=s1(t);for(const o of e){const s=n(o),r=i(o),a=(r||s)&&t[o];if(s&&(Ni(a)||OT(a))||r&&Ae(a))return!0}return!1}var BT="4.5.1";const FT=["top","bottom","left","right","chartArea"];function Sp(t,e){return t==="top"||t==="bottom"||FT.indexOf(t)===-1&&e==="x"}function Cp(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Tp(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),re(n&&n.onComplete,[t],e)}function jT(t){const e=t.chart,n=e.options.animation;re(n&&n.onProgress,[t],e)}function C1(t){return fd()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ga={},kp=t=>{const e=C1(t);return Object.values(ga).filter(n=>n.canvas===e).pop()};function UT(t,e,n){const i=Object.keys(t);for(const o of i){const s=+o;if(s>=e){const r=t[o];delete t[o],(n>0||s>e)&&(t[s+n]=r)}}}function VT(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let go=class{static defaults=pe;static instances=ga;static overrides=po;static registry=$n;static version=BT;static getChart=kp;static register(...t){$n.add(...t),Rp()}static unregister(...t){$n.remove(...t),Rp()}constructor(t,e){const n=this.config=new NT(e),i=C1(t),o=kp(i);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||oT(i)),this.platform.updateConfig(n);const r=this.platform.acquireContext(i,s.aspectRatio),a=r&&r.canvas,l=a&&a.height,c=a&&a.width;if(this.id=WS(),this.ctx=r,this.canvas=a,this.width=c,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new xT,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=d4(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],ga[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}Zn.listen(this,"complete",Tp),Zn.listen(this,"progress",jT),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:o}=this;return oe(t)?e&&o?o:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return $n}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():tp(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Zf(this.canvas,this.ctx),this}stop(){return Zn.stop(this),this}resize(t,e){Zn.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(i,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,tp(this,r,!0)&&(this.notifyPlugins("resize",{size:s}),re(n.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};Mt(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((s,r)=>(s[r]=!1,s),{});let o=[];e&&(o=o.concat(Object.keys(e).map(s=>{const r=e[s],a=Sc(s,r),l=a==="r",c=a==="x";return{options:r,dposition:l?"chartArea":c?"bottom":"left",dtype:l?"radialLinear":c?"category":"linear"}}))),Mt(o,s=>{const r=s.options,a=r.id,l=Sc(a,r),c=Ot(r.type,s.dtype);(r.position===void 0||Sp(r.position,l)!==Sp(s.dposition))&&(r.position=s.dposition),i[a]=!0;let u=null;if(a in n&&n[a].type===c)u=n[a];else{const d=$n.getScale(c);u=new d({id:a,type:c,ctx:this.ctx,chart:this}),n[u.id]=u}u.init(r,t)}),Mt(i,(s,r)=>{s||delete n[r]}),Mt(n,s=>{Si.configure(this,s,s.options),Si.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,o)=>i.index-o.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(o=>o===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,c=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Cp("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Mt(this.scales,t=>{Si.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!If(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:o}of e){const s=n==="_removeElements"?-o:o;UT(t,i,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=o=>new Set(t.filter(s=>s[0]===o).map((s,r)=>r+","+s.splice(1).join(","))),i=n(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Si.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],Mt(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,o)=>{i._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=g1(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&kl(e,i),t.controller.draw(),i&&Rl(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return hr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const o=FC.modes[e];return typeof o=="function"?o(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(o=>o&&o._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=bo(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",o=this.getDatasetMeta(t),s=o.controller._resolveAnimations(void 0,i);Xa(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),s.update(o,{visible:n}),this.update(r=>r.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Zn.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,s),t[o]=s},i=(o,s,r)=>{o.offsetX=s,o.offsetY=r,this._eventHandler(o)};Mt(this.options.events,o=>n(o,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},o=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const r=()=>{i("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",s)};s=()=>{this.attached=!1,i("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():s()}unbindEvents(){Mt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Mt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let o,s,r,a;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+i+"DatasetHoverStyle"]()),r=0,a=t.length;r{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[o],index:o}});!qa(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,o=(a,l)=>a.filter(c=>!l.some(u=>c.datasetIndex===u.datasetIndex&&c.index===u.index)),s=o(e,t),r=n?t:o(t,e);s.length&&this.updateHoverStyle(s,i.mode,!1),r.length&&i.mode&&this.updateHoverStyle(r,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:o}=this,s=e,r=this._getActiveElements(t,i,n,s),a=ZS(t),l=VT(t,this._lastEvent,n,a);n&&(this._lastEvent=null,re(o.onHover,[t,r,this],this),a&&re(o.onClick,[t,r,this],this));const c=!qa(r,i);return(c||e)&&(this._active=r,this._updateHoverStyles(r,i,e)),this._lastEvent=l,c}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,i)}};function Rp(){return Mt(go.instances,t=>t._plugins.invalidate())}function IT(t,e,n){const{startAngle:i,x:o,y:s,outerRadius:r,innerRadius:a,options:l}=e,{borderWidth:c,borderJoinStyle:u}=l,d=Math.min(c/r,rn(i-n));if(t.beginPath(),t.arc(o,s,r-c/2,i+d/2,n-d/2),a>0){const f=Math.min(c/a,rn(i-n));t.arc(o,s,a+c/2,n-f/2,i+f/2,!0)}else{const f=Math.min(c/2,r*rn(i-n));if(u==="round")t.arc(o,s,f,n-te/2,i+te/2,!0);else if(u==="bevel"){const p=2*f*f,y=-p*Math.cos(n+te/2)+o,m=-p*Math.sin(n+te/2)+s,x=p*Math.cos(i+te/2)+o,b=p*Math.sin(i+te/2)+s;t.lineTo(y,m),t.lineTo(x,b)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function zT(t,e,n){const{startAngle:i,pixelMargin:o,x:s,y:r,outerRadius:a,innerRadius:l}=e;let c=o/a;t.beginPath(),t.arc(s,r,a,i-c,n+c),l>o?(c=o/l,t.arc(s,r,l,n+c,i-c,!0)):t.arc(s,r,o,n+we,i-we),t.closePath(),t.clip()}function HT(t){return ud(t,["outerStart","outerEnd","innerStart","innerEnd"])}function JT(t,e,n,i){const o=HT(t.options.borderRadius),s=(n-e)/2,r=Math.min(s,i*e/2),a=l=>{const c=(n-Math.min(s,l))*i/2;return qe(l,0,Math.min(s,c))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:qe(o.innerStart,0,r),innerEnd:qe(o.innerEnd,0,r)}}function Lo(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function tl(t,e,n,i,o,s){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:u}=e,d=Math.max(e.outerRadius+i+n-c,0),f=u>0?u+i+n+c:0;let p=0;const y=o-l;if(i){const M=u>0?u-i:0,Z=d>0?d-i:0,rt=(M+Z)/2,lt=rt!==0?y*rt/(rt+i):y;p=(y-lt)/2}const m=Math.max(.001,y*d-n/te)/d,x=(y-m)/2,b=l+x+p,A=o-x-p,{outerStart:R,outerEnd:S,innerStart:N,innerEnd:j}=JT(e,f,d,A-b),U=d-R,H=d-S,q=b+R/U,V=A-S/H,et=f+N,T=f+j,F=b+N/et,Q=A-j/T;if(t.beginPath(),s){const M=(q+V)/2;if(t.arc(r,a,d,q,M),t.arc(r,a,d,M,V),S>0){const ft=Lo(H,V,r,a);t.arc(ft.x,ft.y,S,V,A+we)}const Z=Lo(T,A,r,a);if(t.lineTo(Z.x,Z.y),j>0){const ft=Lo(T,Q,r,a);t.arc(ft.x,ft.y,j,A+we,Q+Math.PI)}const rt=(A-j/f+(b+N/f))/2;if(t.arc(r,a,f,A-j/f,rt,!0),t.arc(r,a,f,rt,b+N/f,!0),N>0){const ft=Lo(et,F,r,a);t.arc(ft.x,ft.y,N,F+Math.PI,b-we)}const lt=Lo(U,b,r,a);if(t.lineTo(lt.x,lt.y),R>0){const ft=Lo(U,q,r,a);t.arc(ft.x,ft.y,R,b-we,q)}}else{t.moveTo(r,a);const M=Math.cos(q)*d+r,Z=Math.sin(q)*d+a;t.lineTo(M,Z);const rt=Math.cos(V)*d+r,lt=Math.sin(V)*d+a;t.lineTo(rt,lt)}t.closePath()}function WT(t,e,n,i,o){const{fullCircles:s,startAngle:r,circumference:a}=e;let l=e.endAngle;if(s){tl(t,e,n,i,l,o);for(let c=0;c=te&&p===0&&u!=="miter"&&IT(t,e,m),s||(tl(t,e,n,i,m,o),t.stroke())}class qT extends _o{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const o=this.getProps(["x","y"],i),{angle:s,distance:r}=Qm(o,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:c,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),f=(this.options.spacing+this.options.borderWidth)/2,p=Ot(d,l-a),y=dr(s,a,l)&&a!==l,m=p>=de||y,x=io(r,c+f,u+f);return m&&x}getCenterPoint(e){const{x:n,y:i,startAngle:o,endAngle:s,innerRadius:r,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:c}=this.options,u=(o+s)/2,d=(r+a+c+l)/2;return{x:n+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,o=(n.offset||0)/4,s=(n.spacing||0)/2,r=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>de?Math.floor(i/de):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*o,Math.sin(a)*o);const l=1-Math.sin(Math.min(te,i||0)),c=o*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,WT(e,this,c,s,r),GT(e,this,c,s,r),e.restore()}}function T1(t,e,n=e){t.lineCap=Ot(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ot(n.borderDash,e.borderDash)),t.lineDashOffset=Ot(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ot(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ot(n.borderWidth,e.borderWidth),t.strokeStyle=Ot(n.borderColor,e.borderColor)}function KT(t,e,n){t.lineTo(n.x,n.y)}function XT(t){return t.stepped?S4:t.tension||t.cubicInterpolationMode==="monotone"?C4:KT}function k1(t,e,n={}){const i=t.length,{start:o=0,end:s=i-1}=n,{start:r,end:a}=e,l=Math.max(o,r),c=Math.min(s,a),u=oa&&s>a;return{count:i,start:l,loop:e.loop,ilen:c(r+(c?a-S:S))%s,R=()=>{m!==x&&(t.lineTo(u,x),t.lineTo(u,m),t.lineTo(u,b))};for(l&&(p=o[A(0)],t.moveTo(p.x,p.y)),f=0;f<=a;++f){if(p=o[A(f)],p.skip)continue;const S=p.x,N=p.y,j=S|0;j===y?(Nx&&(x=N),u=(d*u+S)/++d):(R(),t.lineTo(S,N),y=j,d=0,m=x=N),b=N}R()}function Cc(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?ZT:YT}function QT(t){return t.stepped?sC:t.tension||t.cubicInterpolationMode==="monotone"?rC:Xi}function MT(t,e,n,i){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,i)&&o.closePath()),T1(t,e.options),t.stroke(o)}function t3(t,e,n,i){const{segments:o,options:s}=e,r=Cc(e);for(const a of o)T1(t,s,a.style),t.beginPath(),r(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const e3=typeof Path2D=="function";function n3(t,e,n,i){e3&&!e.options.segment?MT(t,e,n,i):t3(t,e,n,i)}class Er extends _o{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const o=i.spanGaps?this._loop:this._fullLoop;Z4(this._points,i,e,o,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=hC(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,o=e[n],s=this.points,r=p1(this,{property:n,start:o,end:o});if(!r.length)return;const a=[],l=QT(i);let c,u;for(c=0,u=r.length;c{a=Dl(r,a,o);const l=o[r],c=o[a];i!==null?(s.push({x:l.x,y:i}),s.push({x:c.x,y:i})):n!==null&&(s.push({x:n,y:l.y}),s.push({x:n,y:c.y}))}),s}function Dl(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Lp(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function P1(t,e){let n=[],i=!1;return Ae(t)?(i=!0,n=t):n=o3(t,e),n.length?new Er({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function Dp(t){return t&&t.fill!==!1}function s3(t,e,n){let i=t[e].fill;const o=[e];let s;if(!n)return i;for(;i!==!1&&o.indexOf(i)===-1;){if(!Ve(i))return i;if(s=t[i],!s)return!1;if(s.visible)return i;o.push(i),i=s.fill}return!1}function r3(t,e,n){const i=c3(t);if(Vt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return Ve(o)&&Math.floor(o)===o?a3(i[0],e,o,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function a3(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function l3(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:Vt(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function u3(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:Vt(t)?i=t.value:i=e.getBaseValue(),i}function c3(t){const e=t.options,n=e.fill;let i=Ot(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function d3(t){const{scale:e,index:n,line:i}=t,o=[],s=i.segments,r=i.points,a=h3(e,n);a.push(P1({x:null,y:e.bottom},i));for(let l=0;l=0;--r){const a=o[r].$filler;a&&(a.line.updateControlPoints(s,a.axis),i&&a.fill&&Pu(t.ctx,a,s))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const s=i[o].$filler;Dp(s)&&Pu(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!Dp(i)||n.drawTime!=="beforeDatasetDraw"||Pu(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Bp=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},x3=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Fp extends _o{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=re(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,o)=>e.sort(i,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,o=Me(i.font),s=o.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Bp(i,s);let c,u;n.font=o.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(r,s,a,l)+10):(u=this.maxHeight,c=this._fitCols(r,o,a,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(u,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,o){const{ctx:s,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=o+a;let d=e;s.textAlign="left",s.textBaseline="middle";let f=-1,p=-u;return this.legendItems.forEach((y,m)=>{const x=i+n/2+s.measureText(y.text).width;(m===0||c[c.length-1]+x+2*a>r)&&(d+=u,c[c.length-(m>0?0:1)]=0,p+=u,f++),l[m]={left:0,top:p,row:f,width:x,height:o},c[c.length-1]+=x+a}),d}_fitCols(e,n,i,o){const{ctx:s,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=r-e;let d=a,f=0,p=0,y=0,m=0;return this.legendItems.forEach((x,b)=>{const{itemWidth:A,itemHeight:R}=E3(i,n,s,x,o);b>0&&p+R+2*a>u&&(d+=f+a,c.push({width:f,height:p}),y+=f+a,m++,f=p=0),l[b]={left:y,top:p,col:m,width:A,height:R},f=Math.max(f,A),p+=R+a}),d+=f,c.push({width:f,height:p}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:o},rtl:s}}=this,r=Ho(s,this.left,this.width);if(this.isHorizontal()){let a=0,l=sn(i,this.left+o,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=sn(i,this.left+o,this.right-this.lineWidths[a])),c.top+=this.top+e+o,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+o}else{let a=0,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+o,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;kl(e,this),this._draw(),Rl(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:o}=this,{align:s,labels:r}=e,a=pe.color,l=Ho(e.rtl,this.left,this.width),c=Me(r.font),{padding:u}=r,d=c.size,f=d/2;let p;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=c.string;const{boxWidth:y,boxHeight:m,itemHeight:x}=Bp(r,d),b=function(j,U,H){if(isNaN(y)||y<=0||isNaN(m)||m<0)return;o.save();const q=Ot(H.lineWidth,1);if(o.fillStyle=Ot(H.fillStyle,a),o.lineCap=Ot(H.lineCap,"butt"),o.lineDashOffset=Ot(H.lineDashOffset,0),o.lineJoin=Ot(H.lineJoin,"miter"),o.lineWidth=q,o.strokeStyle=Ot(H.strokeStyle,a),o.setLineDash(Ot(H.lineDash,[])),r.usePointStyle){const V={radius:m*Math.SQRT2/2,pointStyle:H.pointStyle,rotation:H.rotation,borderWidth:q},et=l.xPlus(j,y/2),T=U+f;o1(o,V,et,T,r.pointStyleWidth&&y)}else{const V=U+Math.max((d-m)/2,0),et=l.leftForLtr(j,y),T=Hs(H.borderRadius);o.beginPath(),Object.values(T).some(F=>F!==0)?Ec(o,{x:et,y:V,w:y,h:m,radius:T}):o.rect(et,V,y,m),o.fill(),q!==0&&o.stroke()}o.restore()},A=function(j,U,H){Za(o,H.text,j,U+x/2,c,{strikethrough:H.hidden,textAlign:l.textAlign(H.textAlign)})},R=this.isHorizontal(),S=this._computeTitleHeight();R?p={x:sn(s,this.left+u,this.right-i[0]),y:this.top+u+S,line:0}:p={x:this.left+u,y:sn(s,this.top+S+u,this.bottom-n[0].height),line:0},c1(this.ctx,e.textDirection);const N=x+u;this.legendItems.forEach((j,U)=>{o.strokeStyle=j.fontColor,o.fillStyle=j.fontColor;const H=o.measureText(j.text).width,q=l.textAlign(j.textAlign||(j.textAlign=r.textAlign)),V=y+f+H;let et=p.x,T=p.y;l.setWidth(this.width),R?U>0&&et+V+u>this.right&&(T=p.y+=N,p.line++,et=p.x=sn(s,this.left+u,this.right-i[p.line])):U>0&&T+N>this.bottom&&(et=p.x=et+n[p.line].width+u,p.line++,T=p.y=sn(s,this.top+S+u,this.bottom-n[p.line].height));const F=l.x(et);if(b(F,T,j),et=h4(q,et+y+f,R?et+V:this.right,e.rtl),A(l.x(et),T,j),R)p.x+=V+u;else if(typeof j.text!="string"){const Q=c.lineHeight;p.y+=N1(j,Q)+u}else p.y+=N}),d1(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=Me(n.font),o=Cn(n.padding);if(!n.display)return;const s=Ho(e.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=o.top+l;let u,d=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),u=this.top+c,d=sn(e.align,d,this.right-f);else{const y=this.columnSizes.reduce((m,x)=>Math.max(m,x.height),0);u=c+sn(e.align,this.top,this.bottom-y-e.labels.padding-this._computeTitleHeight())}const p=sn(a,d,d+f);r.textAlign=s.textAlign(n1(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,Za(r,n.text,p,u,i)}_computeTitleHeight(){const e=this.options.title,n=Me(e.font),i=Cn(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,o,s;if(io(e,this.left,this.right)&&io(n,this.top,this.bottom)){for(s=this.legendHitBoxes,i=0;is.length>r.length?s:r)),e+n.size/2+i.measureText(o).width}function S3(t,e,n){let i=t;return typeof e.text!="string"&&(i=N1(e,n)),i}function N1(t,e){const n=t.text?t.text.length:0;return e*n}function C3(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var T3={id:"legend",_element:Fp,start(t,e,n){const i=t.legend=new Fp({ctx:t.ctx,options:n,chart:t});Si.configure(t,i,n),Si.addBox(t,i)},stop(t){Si.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Si.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,o=n.chart;o.isDatasetVisible(i)?(o.hide(i),e.hidden=!0):(o.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),u=Cn(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:s,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:o||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const Ts={average(t){if(!t.length)return!1;let e,n,i=new Set,o=0,s=0;for(e=0,n=t.length;er+a)/i.size,y:o/s}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,o=Number.POSITIVE_INFINITY,s,r,a;for(s=0,r=t.length;s-1?t.split(` `):t}function k3(t,e){const{element:n,datasetIndex:i,index:o}=e,s=t.getDatasetMeta(i).controller,{label:r,value:a}=s.getLabelAndValue(o);return{chart:t,label:r,parsed:s.getParsed(o),raw:t.data.datasets[i].data[o],formattedValue:a,dataset:s.getDataset(),dataIndex:o,datasetIndex:i,element:n}}function jp(t,e){const n=t.chart.ctx,{body:i,footer:o,title:s}=t,{boxWidth:r,boxHeight:a}=e,l=Me(e.bodyFont),c=Me(e.titleFont),u=Me(e.footerFont),d=s.length,f=o.length,p=i.length,y=Cn(e.padding);let m=y.height,x=0,b=i.reduce((S,N)=>S+N.before.length+N.lines.length+N.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*c.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){const S=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=p*S+(b-p)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*u.lineHeight+(f-1)*e.footerSpacing);let A=0;const R=function(S){x=Math.max(x,n.measureText(S).width+A)};return n.save(),n.font=c.string,Mt(t.title,R),n.font=l.string,Mt(t.beforeBody.concat(t.afterBody),R),A=e.displayColors?r+2+e.boxPadding:0,Mt(i,S=>{Mt(S.before,R),Mt(S.lines,R),Mt(S.after,R)}),A=0,n.font=u.string,Mt(t.footer,R),n.restore(),x+=y.width,{width:x,height:m}}function R3(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function P3(t,e,n,i){const{x:o,width:s}=i,r=n.caretSize+n.caretPadding;if(t==="left"&&o+s+r>e.width||t==="right"&&o-s-r<0)return!0}function L3(t,e,n,i){const{x:o,width:s}=n,{width:r,chartArea:{left:a,right:l}}=t;let c="center";return i==="center"?c=o<=(a+l)/2?"left":"right":o<=s/2?c="left":o>=r-s/2&&(c="right"),P3(c,t,e,n)&&(c="center"),c}function Up(t,e,n){const i=n.yAlign||e.yAlign||R3(t,n);return{xAlign:n.xAlign||e.xAlign||L3(t,e,n,i),yAlign:i}}function D3(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function N3(t,e,n){let{y:i,height:o}=t;return e==="top"?i+=n:e==="bottom"?i-=o+n:i-=o/2,i}function Vp(t,e,n,i){const{caretSize:o,caretPadding:s,cornerRadius:r}=t,{xAlign:a,yAlign:l}=n,c=o+s,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=Hs(r);let y=D3(e,a);const m=N3(e,l,c);return l==="center"?a==="left"?y+=c:a==="right"&&(y-=c):a==="left"?y-=Math.max(u,f)+o:a==="right"&&(y+=Math.max(d,p)+o),{x:qe(y,0,i.width-e.width),y:qe(m,0,i.height-e.height)}}function ta(t,e,n){const i=Cn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function Ip(t){return Nn([],Qn(t))}function O3(t,e,n){return bo(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function zp(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const O1={beforeTitle:Yn,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?O1[e].call(n,i):o}class Hp extends _o{static positioners=Ts;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),o=i.enabled&&n.options.animation&&i.animations,s=new m1(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=O3(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,o=Ye(i,"beforeTitle",this,e),s=Ye(i,"title",this,e),r=Ye(i,"afterTitle",this,e);let a=[];return a=Nn(a,Qn(o)),a=Nn(a,Qn(s)),a=Nn(a,Qn(r)),a}getBeforeBody(e,n){return Ip(Ye(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,o=[];return Mt(e,s=>{const r={before:[],lines:[],after:[]},a=zp(i,s);Nn(r.before,Qn(Ye(a,"beforeLabel",this,s))),Nn(r.lines,Ye(a,"label",this,s)),Nn(r.after,Qn(Ye(a,"afterLabel",this,s))),o.push(r)}),o}getAfterBody(e,n){return Ip(Ye(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,o=Ye(i,"beforeFooter",this,e),s=Ye(i,"footer",this,e),r=Ye(i,"afterFooter",this,e);let a=[];return a=Nn(a,Qn(o)),a=Nn(a,Qn(s)),a=Nn(a,Qn(r)),a}_createItems(e){const n=this._active,i=this.chart.data,o=[],s=[],r=[];let a=[],l,c;for(l=0,c=n.length;le.filter(u,d,f,i))),e.itemSort&&(a=a.sort((u,d)=>e.itemSort(u,d,i))),Mt(a,u=>{const d=zp(e.callbacks,u);o.push(Ye(d,"labelColor",this,u)),s.push(Ye(d,"labelPointStyle",this,u)),r.push(Ye(d,"labelTextColor",this,u))}),this.labelColors=o,this.labelPointStyles=s,this.labelTextColors=r,this.dataPoints=a,a}update(e,n){const i=this.options.setContext(this.getContext()),o=this._active;let s,r=[];if(!o.length)this.opacity!==0&&(s={opacity:0});else{const a=Ts[i.position].call(this,o,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=jp(this,i),c=Object.assign({},a,l),u=Up(this.chart,i,c),d=Vp(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,s={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,s&&this._resolveAnimations().update(this,s),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,o){const s=this.getCaretPosition(e,i,o);n.lineTo(s.x1,s.y1),n.lineTo(s.x2,s.y2),n.lineTo(s.x3,s.y3)}getCaretPosition(e,n,i){const{xAlign:o,yAlign:s}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=Hs(a),{x:f,y:p}=e,{width:y,height:m}=n;let x,b,A,R,S,N;return s==="center"?(S=p+m/2,o==="left"?(x=f,b=x-r,R=S+r,N=S-r):(x=f+y,b=x+r,R=S-r,N=S+r),A=x):(o==="left"?b=f+Math.max(l,u)+r:o==="right"?b=f+y-Math.max(c,d)-r:b=this.caretX,s==="top"?(R=p,S=R-r,x=b-r,A=b+r):(R=p+m,S=R+r,x=b+r,A=b-r),N=R),{x1:x,x2:b,x3:A,y1:R,y2:S,y3:N}}drawTitle(e,n,i){const o=this.title,s=o.length;let r,a,l;if(s){const c=Ho(i.rtl,this.x,this.width);for(e.x=ta(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=Me(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;lA!==0)?(e.beginPath(),e.fillStyle=s.multiKeyBackground,Ec(e,{x:m,y,w:c,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=r.backgroundColor,e.beginPath(),Ec(e,{x,y:y+1,w:c-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=s.multiKeyBackground,e.fillRect(m,y,c,l),e.strokeRect(m,y,c,l),e.fillStyle=r.backgroundColor,e.fillRect(x,y+1,c-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:o}=this,{bodySpacing:s,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=Me(i.bodyFont);let f=d.lineHeight,p=0;const y=Ho(i.rtl,this.x,this.width),m=function(H){n.fillText(H,y.x(e.x+p),e.y+f/2),e.y+=f+s},x=y.textAlign(r);let b,A,R,S,N,j,U;for(n.textAlign=r,n.textBaseline="middle",n.font=d.string,e.x=ta(this,x,i),n.fillStyle=i.bodyColor,Mt(this.beforeBody,m),p=a&&x!=="right"?r==="center"?c/2+u:c+2+u:0,S=0,j=o.length;S0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,o=i&&i.x,s=i&&i.y;if(o||s){const r=Ts[e.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=jp(this,e),l=Object.assign({},r,this._size),c=Up(n,e,l),u=Vp(e,l,c,n);(o._to!==u.x||s._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},s={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=Cn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(e.save(),e.globalAlpha=i,this.drawBackground(s,e,o,n),c1(e,n.textDirection),s.y+=r.top,this.drawTitle(s,e,n),this.drawBody(s,e,n),this.drawFooter(s,e,n),d1(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,o=e.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),s=!qa(i,o),r=this._positionChanged(o,n);(s||r)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,s=this._active||[],r=this._getActiveElements(e,s,n,i),a=this._positionChanged(r,e),l=n||!qa(r,s)||a;return l&&(this._active=r,(o.enabled||o.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,o){const s=this.options;if(e.type==="mouseout")return[];if(!o)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(e,s.mode,s,i);return s.reverse&&r.reverse(),r}_positionChanged(e,n){const{caretX:i,caretY:o,options:s}=this,r=Ts[s.position].call(this,e,n);return r!==!1&&(i!==r.x||o!==r.y)}}var yd={id:"tooltip",_element:Hp,positioners:Ts,afterInit(t,e,n){n&&(t.tooltip=new Hp({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:O1},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const $3=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function B3(t,e,n,i){const o=t.indexOf(e);if(o===-1)return $3(t,e,n,i);const s=t.lastIndexOf(e);return o!==s?n:o}const F3=(t,e)=>t===null?null:qe(Math.round(t),0,e);function Jp(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function j3(t,e){const n=[],{bounds:i,step:o,min:s,max:r,precision:a,count:l,maxTicks:c,maxDigits:u,includeBounds:d}=t,f=o||1,p=c-1,{min:y,max:m}=e,x=!oe(s),b=!oe(r),A=!oe(l),R=(m-y)/(u+1);let S=Hf((m-y)/p/f)*f,N,j,U,H;if(S<1e-14&&!x&&!b)return[{value:y},{value:m}];H=Math.ceil(m/S)-Math.floor(y/S),H>p&&(S=Hf(H*S/p/f)*f),oe(a)||(N=Math.pow(10,a),S=Math.ceil(S*N)/N),i==="ticks"?(j=Math.floor(y/S)*S,U=Math.ceil(m/S)*S):(j=y,U=m),x&&b&&o&&n4((r-s)/o,S/1e3)?(H=Math.round(Math.min((r-s)/S,c)),S=(r-s)/H,j=s,U=r):A?(j=x?s:j,U=b?r:U,H=l-1,S=(U-j)/H):(H=(U-j)/S,Vs(H,Math.round(H),S/1e3)?H=Math.round(H):H=Math.ceil(H));const q=Math.max(Jf(S),Jf(j));N=Math.pow(10,oe(a)?q:a),j=Math.round(j*N)/N,U=Math.round(U*N)/N;let V=0;for(x&&(d&&j!==s?(n.push({value:s}),jr)break;n.push({value:et})}return b&&d&&U!==r?n.length&&Vs(n[n.length-1].value,r,Wp(r,R,t))?n[n.length-1].value=r:n.push({value:r}):(!b||U===r)&&n.push({value:U}),n}function Wp(t,e,{horizontal:n,minRotation:i}){const o=li(i),s=(n?Math.sin(o):Math.cos(o))||.001,r=.75*e*(""+t).length;return Math.min(e/s,r)}class U3 extends Mo{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return oe(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:o,max:s}=this;const r=l=>o=n?o:l,a=l=>s=i?s:l;if(e){const l=Go(o),c=Go(s);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(o===s){let l=s===0?1:Math.abs(s*.05);a(s+l),e||r(o-l)}this.min=o,this.max=s}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,o;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const o={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},s=this._range||this,r=j3(o,s);return e.bounds==="ticks"&&i4(r,this,"value"),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const o=(i-n)/Math.max(e.length-1,1)/2;n-=o,i+=o}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return ld(e,this.chart.options.locale,this.options.ticks.format)}}class B1 extends U3{static id="linear";static defaults={ticks:{callback:i1.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ve(e)?e:0,this.max=Ve(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=li(this.options.ticks.minRotation),o=(e?Math.sin(i):Math.cos(i))||.001,s=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,s.lineHeight/o))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Nl={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Qe=Object.keys(Nl);function Gp(t,e){return t-e}function qp(t,e){if(oe(e))return null;const n=t._adapter,{parser:i,round:o,isoWeekday:s}=t._parseOpts;let r=e;return typeof i=="function"&&(r=i(r)),Ve(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(o&&(r=o==="week"&&(cr(s)||s===!0)?n.startOf(r,"isoWeek",s):n.startOf(r,o)),+r)}function Kp(t,e,n,i){const o=Qe.length;for(let s=Qe.indexOf(t);s=Qe.indexOf(n);s--){const r=Qe[s];if(Nl[r].common&&t._adapter.diff(o,i,r)>=e-1)return r}return Qe[n?Qe.indexOf(n):0]}function I3(t){for(let e=Qe.indexOf(t)+1,n=Qe.length;e=e?n[i]:n[o];t[s]=!0}}function z3(t,e,n,i){const o=t._adapter,s=+o.startOf(e[0].value,i),r=e[e.length-1].value;let a,l;for(a=s;a<=r;a=+o.add(a,1,i))l=n[a],l>=0&&(e[l].major=!0);return e}function Yp(t,e,n){const i=[],o={},s=e.length;let r,a;for(r=0;r+e.value))}initOffsets(e=[]){let n=0,i=0,o,s;this.options.offset&&e.length&&(o=this.getDecimalForValue(e[0]),e.length===1?n=1-o:n=(this.getDecimalForValue(e[1])-o)/2,s=this.getDecimalForValue(e[e.length-1]),e.length===1?i=s:i=(s-this.getDecimalForValue(e[e.length-2]))/2);const r=e.length<3?.5:.25;n=qe(n,0,r),i=qe(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,o=this.options,s=o.time,r=s.unit||Kp(s.minUnit,n,i,this._getLabelCapacity(n)),a=Ot(o.ticks.stepSize,1),l=r==="week"?s.isoWeekday:!1,c=cr(l)||l===!0,u={};let d=n,f,p;if(c&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,c?"day":r),e.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const y=o.ticks.source==="data"&&this.getDataTimestamps();for(f=d,p=0;f+m)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const i=this.options.time.displayFormats,o=this._unit,s=n||i[o];return this._adapter.format(e,s)}_tickFormatFunction(e,n,i,o){const s=this.options,r=s.ticks.callback;if(r)return re(r,[e,n,i],this);const a=s.time.displayFormats,l=this._unit,c=this._majorUnit,u=l&&a[l],d=c&&a[c],f=i[n],p=c&&d&&f&&f.major;return this._adapter.format(e,o||(p?d:u))}generateTickLabels(e){let n,i,o;for(n=0,i=e.length;n0?a:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,i=o.length;n=t[i].pos&&e<=t[o].pos&&({lo:i,hi:o}=oo(t,"pos",e)),{pos:s,time:a}=t[i],{pos:r,time:l}=t[o]):(e>=t[i].time&&e<=t[o].time&&({lo:i,hi:o}=oo(t,"time",e)),{time:s,pos:a}=t[i],{time:r,pos:l}=t[o]);const c=r-s;return c?a+(l-a)*(e-s)/c:a}class iO extends Zp{static id="timeseries";static defaults=Zp.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=ea(n,this.min),this._tableRange=ea(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,o=[],s=[];let r,a,l,c,u;for(r=0,a=e.length;r=n&&c<=i&&o.push(c);if(o.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=o.length;ro-s)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(ea(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return ea(this._table,i*this._tableRange+this._minPos,!0)}}const F1={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},H3={ariaLabel:{type:String},ariaDescribedby:{type:String}},J3={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...F1,...H3},W3=zg[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Do(t){return Zo(t)?jt(t):t}function G3(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Zo(e)?new Proxy(t,{}):t}function q3(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function j1(t,e){t.labels=e}function U1(t,e,n){const i=[];t.datasets=e.map(o=>{const s=t.datasets.find(r=>r[n]===o[n]);return!s||!o.data||i.includes(s)?{...o}:(i.push(s),Object.assign(s,o),s)})}function K3(t,e){const n={labels:[],datasets:[]};return j1(n,t.labels),U1(n,t.datasets,e),n}const X3=Rt({props:J3,setup(t,e){let{expose:n,slots:i}=e;const o=ge(null),s=Jn(null);n({chart:s});const r=()=>{if(!o.value)return;const{type:c,data:u,options:d,plugins:f,datasetIdKey:p}=t,y=K3(u,p),m=G3(y,u);s.value=new go(o.value,{type:c,data:m,options:{...d},plugins:f})},a=()=>{const c=jt(s.value);c&&(t.destroyDelay>0?setTimeout(()=>{c.destroy(),s.value=null},t.destroyDelay):(c.destroy(),s.value=null))},l=c=>{c.update(t.updateMode)};return Oi(r),Wn(a),Ke([()=>t.options,()=>t.data],(c,u)=>{let[d,f]=c,[p,y]=u;const m=jt(s.value);if(!m)return;let x=!1;if(d){const b=Do(d),A=Do(p);b&&b!==A&&(q3(m,b),x=!0)}if(f){const b=Do(f.labels),A=Do(y.labels),R=Do(f.datasets),S=Do(y.datasets);b!==A&&(j1(m.config.data,b),x=!0),R&&R!==S&&(U1(m.config.data,R,t.datasetIdKey),x=!0)}x&&yr(()=>{l(m)})},{deep:!0}),()=>Ne("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:o},[Ne("p",{},[i.default?i.default():""])])}});function Y3(t,e){return go.register(e),Rt({props:F1,setup(n,i){let{expose:o}=i;const s=Jn(null),r=a=>{s.value=a?.chart};return o({chart:s}),()=>Ne(X3,W3({ref:r},{type:t,...n}))}})}const V1=Y3("line",md),Z3={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Q3=["aria-hidden","aria-label"],M3=["fill","width","height"],tk={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},ek={key:0};function nk(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",tk,[n.title?(O(),J("title",ek,L(n.title),1)):_t("",!0)])],8,M3))],16,Q3)}const ik=Qt(Z3,[["render",nk]]),ok={key:0},sk={class:"row row--tiles"},rk={id:"cpuSection",class:"infobox"},ak={class:"chart-wrapper"},Qp=60,lk=Rt({__name:"CpuChartSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},tick:{}},setup(t){const e=t;go.register($1,D1,B1,md,Er,R1,yd);function n(){return"rgb(148, 148, 148)"}const i={borderColor:n(),backgroundColor:Wm(td(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},o=Jn({labels:Array(Qp).fill(""),datasets:[{...i,data:Array(Qp).fill(null)}]}),s={animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{min:0,max:100,ticks:{color:n(),callback:a=>a+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:a=>a.parsed.y.toFixed(1)+" %"}}}},r=ht(()=>e.cpuload===!1||e.cpunum<=0?null:{usage:(e.cpuload[0]/e.cpunum*100).toFixed(1),loads:e.cpuload.map(a=>a.toFixed(2)).join(" / ")});return Ke(()=>e.tick,()=>{const a=e.cpuload;if(a===!1||e.cpunum<=0||a.length===0)return;const l=[...o.value.labels.slice(1),new Date().toLocaleTimeString()],c=[...o.value.datasets[0].data.slice(1),a[0]/e.cpunum*100];o.value={labels:l,datasets:[{...i,data:c}]}}),(a,l)=>(O(),J(At,null,[ot(Xe,{icon:ik,title:E(I)("serverinfo","Load")},null,8,["title"]),r.value?(O(),J(At,{key:1},[w("div",sk,[ot(tn,{label:E(I)("serverinfo","Current usage"),value:`${r.value.usage} %`},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Threads"),value:t.cpunum},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Load average"),value:r.value.loads},null,8,["label","value"])]),w("div",rk,[w("div",ak,[ot(E(V1),{data:o.value,options:s},null,8,["data"])])])],64)):(O(),J("p",ok,[w("em",null,L(E(I)("serverinfo","CPU info not available")),1)]))],64))}}),uk=Qt(lk,[["__scopeId","data-v-6950f64f"]]),ck={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dk=["aria-hidden","aria-label"],hk=["fill","width","height"],fk={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},pk={key:0};function gk(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",fk,[n.title?(O(),J("title",pk,L(n.title),1)):_t("",!0)])],8,hk))],16,dk)}const mk=Qt(ck,[["render",gk]]),vk={class:"server-info-table"},yk={class:"info"},bk={class:"info"},_k={class:"info"},wk=Rt({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,n)=>(O(),J(At,null,[ot(Xe,{icon:mk,title:E(I)("serverinfo","Database")},null,8,["title"]),w("div",vk,[w("table",null,[w("tbody",null,[w("tr",null,[w("td",null,L(E(I)("serverinfo","Type:")),1),w("td",yk,L(t.database.type),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Version:")),1),w("td",bk,L(t.database.version),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Size:")),1),w("td",_k,L(E(rr)(t.database.size)),1)])])])])],64))}}),xk={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ek=["aria-hidden","aria-label"],Ak=["fill","width","height"],Sk={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},Ck={key:0};function Tk(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",Sk,[n.title?(O(),J("title",Ck,L(n.title),1)):_t("",!0)])],8,Ak))],16,Ek)}const kk=Qt(xk,[["render",Tk]]),Rk={class:"section disk-status"},Pk={class:"row row--tiles"},Lk={class:"row row--cards"},Dk={class:"diskchart-container"},Nk=["aria-label"],Ok={class:"diskinfo-container"},$k=["title"],Bk={class:"diskinfo"},Fk={class:"diskinfo__row"},jk={class:"info"},Uk={class:"diskinfo__row"},Vk={class:"info"},Ik={class:"diskinfo__row"},zk={class:"info"},Hk={class:"diskinfo__row"},Jk={class:"info-color-label--available"},Wk={class:"info"},Gk={class:"diskinfo__row"},qk={class:"info-color-label--used"},Kk={class:"info"},Xk=Rt({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;go.register(qT,LC,yd);const n=[],i=[];function o(l){return l.split("/").pop()??l}function s(l){return I("serverinfo","{used} of {total} used",{used:_n(l.used),total:_n(l.used+l.available)})}function r(l){const c=Number.parseFloat(l);return Number.isNaN(c)?l:Math.round(c)+"%"}function a(l,c){return{id:"centerLabel",afterDatasetsDraw(u){const{ctx:d,chartArea:f}=u,p=Math.round((f.right-f.left)*.24);d.save(),d.fillStyle=c,d.font=`bold ${p}px ${getComputedStyle(u.canvas).fontFamily}`,d.textAlign="center",d.textBaseline="middle",d.fillText(l,(f.left+f.right)/2,(f.top+f.bottom)/2),d.restore()}}}return Oi(()=>{const l=td(),c=yc("--color-border-maxcontrast","rgb(148, 148, 148)"),u=yc("--color-main-text","#222222");e.disks.forEach((d,f)=>{const p=n[f];p&&i.push(new go(p,{type:"doughnut",data:{labels:[I("serverinfo","Used"),I("serverinfo","Available")],datasets:[{backgroundColor:[l,c],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[d.used,d.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:y=>`${y.label}: ${_n(y.parsed)}`}}}},plugins:[a(r(d.percent),u)]}))})}),Wn(()=>{i.forEach(l=>l.destroy()),i.length=0}),(l,c)=>(O(),J("div",Rk,[ot(Xe,{icon:kk,title:E(I)("serverinfo","Disk")},null,8,["title"]),w("div",Pk,[ot(tn,{label:E(I)("serverinfo","Files"),value:t.storage.num_files},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Storages"),value:t.storage.num_storages},null,8,["label","value"]),t.freespace!==null?(O(),Ct(tn,{key:0,label:E(I)("serverinfo","Free space"),value:E(rr)(t.freespace)},null,8,["label","value"])):_t("",!0)]),w("div",Lk,[(O(!0),J(At,null,$i(t.disks,(u,d)=>(O(),J("div",{key:u.device,class:"infobox text-center-mobile"},[w("div",Dk,[w("canvas",{ref_for:!0,ref:f=>{f&&(n[d]=f)},class:"DiskChart",role:"img","aria-label":s(u)},null,8,Nk)]),w("div",Ok,[w("h3",{title:u.device},L(o(u.device)),9,$k),w("dl",Bk,[w("div",Fk,[w("dt",null,L(E(I)("serverinfo","Mount:")),1),w("dd",jk,L(u.mount),1)]),w("div",Uk,[w("dt",null,L(E(I)("serverinfo","Filesystem:")),1),w("dd",Vk,L(u.fs),1)]),w("div",Ik,[w("dt",null,L(E(I)("serverinfo","Size:")),1),w("dd",zk,L(E(_n)(u.used+u.available)),1)]),w("div",Hk,[w("dt",Jk,L(E(I)("serverinfo","Available:")),1),w("dd",Wk,L(E(_n)(u.available)),1)]),w("div",Gk,[w("dt",qk,L(E(I)("serverinfo","Used:")),1),w("dd",Kk,L(u.percent)+" ("+L(E(_n)(u.used))+") ",1)])])])]))),128))])]))}}),Yk=Qt(Xk,[["__scopeId","data-v-d52cfcd6"]]),Zk={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Qk=["aria-hidden","aria-label"],Mk=["fill","width","height"],tR={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},eR={key:0};function nR(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",tR,[n.title?(O(),J("title",eR,L(n.title),1)):_t("",!0)])],8,Mk))],16,Qk)}const iR=Qt(Zk,[["render",nR]]),oR={key:0},sR={class:"row row--tiles"},rR={id:"memorySection",class:"infobox"},aR={class:"chart-wrapper"},Du=60,lR=Rt({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;go.register($1,D1,T3,B1,md,Er,R1,yd);const n=ht(()=>e.memTotal!=="N/A"&&e.memFree!=="N/A"),i=ht(()=>e.swapTotal!=="N/A"&&e.swapFree!=="N/A"&&e.swapTotal>0);function o(){return"rgb(148, 148, 148)"}const s={label:I("serverinfo","RAM usage"),borderColor:o(),backgroundColor:Wm(td(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},r={label:I("serverinfo","Swap usage"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=Jn({labels:Array(Du).fill(""),datasets:[{...s,data:Array(Du).fill(null)},{...r,data:Array(Du).fill(null)}]}),l=ge(1),c=ht(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:o(),callback:p=>p+" GB"},grid:{display:!1}}},plugins:{legend:{display:!0,position:"bottom",labels:{color:o(),filter:p=>i.value||p.datasetIndex===0}},tooltip:{callbacks:{label:p=>(p.dataset.label??"")+": "+p.parsed.y.toFixed(2)+" GB"}}}})),u=ht(()=>_n(e.memTotal)),d=ht(()=>_n(e.memTotal-e.memFree)),f=ht(()=>_n(e.swapTotal-e.swapFree));return Ke(()=>e.tick,()=>{if(!n.value)return;const p=e.memTotal/1024,y=i.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(p,y));const m=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],x=(e.memTotal-e.memFree)/1024,b=[...a.value.datasets[0].data.slice(1),x],A=i.value?(e.swapTotal-e.swapFree)/1024:null,R=[...a.value.datasets[1].data.slice(1),A];a.value={labels:m,datasets:[{...s,data:b},{...r,data:R}]}}),(p,y)=>(O(),J(At,null,[ot(Xe,{icon:iR,title:E(I)("serverinfo","Memory")},null,8,["title"]),n.value?(O(),J(At,{key:1},[w("div",sR,[ot(tn,{label:E(I)("serverinfo","Used"),value:d.value},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Total"),value:u.value},null,8,["label","value"]),i.value?(O(),Ct(tn,{key:0,label:E(I)("serverinfo","Swap used"),value:f.value},null,8,["label","value"])):_t("",!0)]),w("div",rR,[w("div",aR,[ot(E(V1),{data:a.value,options:c.value},null,8,["data","options"])])])],64)):(O(),J("p",oR,[w("em",null,L(E(I)("serverinfo","RAM info not available")),1)]))],64))}}),uR=Qt(lR,[["__scopeId","data-v-494041bc"]]),cR=Rt({__name:"NcFormBox",props:{row:{type:Boolean}},setup(t){const e=Mb();return ng(rm,{isInFormBox:!0,formBoxItemClass:e.ncFormBox__item}),(n,i)=>(O(),J("div",{class:Yt([n.$style.ncFormBox,t.row?n.$style.ncFormBox_row:n.$style.ncFormBox_col])},[Zt(n.$slots,"default",{itemClass:n.$style.ncFormBox__item})],2))}}),dR="_ncFormBox_s7kf-",hR="_ncFormBox_row_GzYuE",fR="_ncFormBox__item_691pI",pR="_ncFormBox_col_Lt4lg",gR={"material-design-icon":"_material-design-icon_JPsV1",ncFormBox:dR,ncFormBox_row:hR,ncFormBox__item:fR,ncFormBox_col:pR},mR={$style:gR},Nu=Ie(cR,[["__cssModules",mR]]),vR=["id"],yR=Rt({inheritAttrs:!1,__name:"NcFormBoxItem",props:{tag:{},label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},class:{default:()=>{}},itemClasses:{default:()=>{}}},emits:["click"],setup(t){const e=wl(),{formBoxItemClass:n}=am(),i=Qo(),o=()=>!!t.description||!!e.description;return(s,r)=>(O(),J("div",{class:Yt([t.class,s.$style.formBoxItem,E(n),{[s.$style.formBoxItem_inverted]:t.invertedAccent&&o(),[s.$style.formBoxItem_legacy]:E(qc)}])},[w("span",{class:Yt(s.$style.formBoxItem__content)},[(O(),Ct(_l(t.tag),ee({class:[s.$style.formBoxItem__element,t.itemClasses]},s.$attrs,{onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),{default:kt(()=>[Zt(s.$slots,"default",{descriptionId:E(i)},()=>[Dt(L(t.label||"⚠️ Label is missing"),1)])]),_:3},16,["class"])),o()?(O(),J("span",{key:0,id:E(i),class:Yt(s.$style.formBoxItem__description)},[Zt(s.$slots,"description",{},()=>[Dt(L(t.description),1)])],10,vR)):_t("",!0)],2),w("span",{class:Yt(s.$style.formBoxItem__icon)},[Zt(s.$slots,"icon",{descriptionId:E(i)},()=>[r[1]||(r[1]=Dt(" ⚠️ Icon is missing ",-1))])],2)],2))}}),bR="_formBoxItem_Gp-TA",_R="_formBoxItem__description_UqZJ1",wR="_formBoxItem_legacy_dP9aJ",xR="_formBoxItem_inverted_BU-i-",ER="_formBoxItem__element_jHCux",AR="_formBoxItem__content_UKovC",SR="_formBoxItem__icon_AvkP3",CR={"material-design-icon":"_material-design-icon_8BFGk",formBoxItem:bR,formBoxItem__description:_R,formBoxItem_legacy:wR,formBoxItem_inverted:xR,formBoxItem__element:ER,formBoxItem__content:AR,formBoxItem__icon:SR},TR={$style:CR},I1=Ie(yR,[["__cssModules",TR]]);function kR(t){const e=Jo(t),n=Ci(im,null)!==null,i=ht(()=>n&&e.to?"RouterLink":e.href?"a":"button"),o=ht(()=>i.value==="RouterLink"||i.value==="a"),s=ht(()=>i.value==="a"),r=ht(()=>i.value==="RouterLink"),a=ht(()=>i.value==="button"),l=ht(()=>{if(i.value==="RouterLink")return{to:e.to,activeClass:"active",...e.additionalAttrs?.("RouterLink")??{}};if(i.value==="a")return{href:e.href,target:e.target,download:e.download||void 0,rel:"nofollow noreferrer noopener",...e.additionalAttrs?.("a")??{}};if(i.value==="button")return{type:e.type||"button",disabled:e.disabled,...e.additionalAttrs?.("button")??{}}});return{tag:i,isLink:o,isHyperLink:s,isRouterLink:r,isButton:a,attrs:l}}const RR=Rt({__name:"NcFormBoxButton",props:{label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},to:{default:()=>{}},href:{default:()=>{}},target:{default:()=>{}},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t){const{tag:e,attrs:n,isLink:i}=kR({to:to(()=>t.to),href:to(()=>t.href),target:to(()=>t.target),disabled:to(()=>t.disabled)}),o=ht(()=>{if(i.value)return t.target==="_blank"?Vw:Nw});return(s,r)=>(O(),Ct(I1,ee({tag:E(e),itemClasses:["button-vue",s.$style.formBoxButton],invertedAccent:t.invertedAccent},E(n),{tabindex:"0",onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),jc({_:2},[s.$slots.default||t.label?{name:"default",fn:kt(()=>[Zt(s.$slots,"default",{},()=>[Dt(L(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:kt(()=>[Zt(s.$slots,"description",{},()=>[Dt(L(t.description),1)])]),key:"1"}:void 0,s.$slots.icon||o.value?{name:"icon",fn:kt(()=>[Zt(s.$slots,"icon",{},()=>[o.value?(O(),Ct(Vn,{key:0,path:o.value,inline:""},null,8,["path"])):_t("",!0)])]),key:"2"}:void 0]),1040,["tag","itemClasses","invertedAccent"]))}}),PR="_formBoxButton_E8Xfr",LR={"material-design-icon":"_material-design-icon_MaIxG",formBoxButton:PR},DR={$style:LR},NR=Ie(RR,[["__cssModules",DR]]);wr(Aw);const OR=2e3;function $R(t){const e=ge(!1),n=ht(()=>e.value?Ow:jw),i=ht(()=>e.value?We("Copied"):We("Copy to clipboard"));async function o(){if(e.value)return;const s=Fe(t);try{await navigator.clipboard.writeText(s)}catch{prompt("",s)}e.value=!0,setTimeout(()=>{e.value=!1},OR)}return{isCopied:e,copy:o,icon:n,altText:i}}const BR={class:"hidden-visually"},Ou=Rt({__name:"NcFormBoxCopyButton",props:{label:{default:()=>{}},value:{},disabled:{type:Boolean,default:!1}},emits:["copy"],setup(t,{emit:e}){const n=e,{isCopied:i,copy:o,icon:s,altText:r}=$R(()=>t.value);return fx(i,()=>n("copy")),(a,l)=>(O(),Ct(NR,{disabled:t.disabled,invertedAccent:"",onClick:E(o)},jc({description:kt(()=>[Dt(L(t.value),1)]),icon:kt(()=>[ot(Vn,{path:E(s),inline:""},null,8,["path"])]),_:2},[a.$slots.default||t.label?{name:"default",fn:kt(()=>[w("span",BR,L(E(r)),1),Zt(a.$slots,"default",{},()=>[Dt(L(t.label),1)])]),key:"0"}:void 0]),1032,["disabled","onClick"]))}}),FR=` val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (!pendingMount && shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n const child = children && children.length ? findNonCommentChild(children) : (\n // Keep explicit default-slot conditionals on the same transition path\n // as regular v-if branches, which render a comment placeholder.\n instance.subTree ? createCommentVNode() : void 0\n );\n if (!child) {\n return;\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n logMismatchError();\n }\n while (next) {\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate `)\n whose queued resource event still fires in page scope after we throw.\n Clobber-safe reads; a doomed clobbered node's own attributes are\n irrelevant while its non-clobbered descendants are reached and scrubbed. */\n _neutralizeSubtree(root);\n const childNodes = getChildNodes(root);\n if (childNodes) {\n const snapshot = [];\n arrayForEach(childNodes, child => {\n arrayPush(snapshot, child);\n });\n arrayForEach(snapshot, child => {\n try {\n remove(child);\n } catch (_) {\n /* Best-effort teardown; a still-attached child is handled below */\n }\n });\n }\n const attributes = getAttributes(root);\n if (attributes) {\n for (let i = attributes.length - 1; i >= 0; --i) {\n const attribute = attributes[i];\n const name = attribute && attribute.name;\n if (typeof name === 'string') {\n try {\n root.removeAttribute(name);\n } catch (_) {\n /* Clobbered removeAttribute — ignore (fail-closed best effort) */\n }\n }\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _stripDisallowedAttributes\n *\n * Removes every attribute the active configuration does not allow from a\n * single element, using the same allowlist as the main attribute pass (so\n * `on*` handlers go, but no `/^on/` blocklist is introduced). Used only to\n * neutralise nodes that are being discarded from an in-place tree.\n *\n * @param element the element to strip\n */\n const _stripDisallowedAttributes = function _stripDisallowedAttributes(element) {\n const attributes = getAttributes(element);\n if (!attributes) {\n return;\n }\n for (let i = attributes.length - 1; i >= 0; --i) {\n const attribute = attributes[i];\n const name = attribute && attribute.name;\n if (typeof name !== 'string' || ALLOWED_ATTR[transformCaseFunc(name)]) {\n continue;\n }\n try {\n element.removeAttribute(name);\n } catch (_) {\n /* Clobbered removeAttribute on a doomed node — ignore */\n }\n }\n };\n /**\n * _neutralizeSubtree\n *\n * Completes the audit-5 F1 fix across every removal path. The KEEP_CONTENT\n * move-hoist neutralises only disallowed-tag removals; clobber, mXSS-canary,\n * namespace, comment, processing-instruction and KEEP_CONTENT:false removals\n * all drop their subtree wholesale via `_forceRemove`. On the IN_PLACE path\n * those dropped nodes are detached from the caller's LIVE tree but a\n * handler-bearing original among them (an ``/`