diff --git a/out/renderer/assets/geist-mono-BzrJhchg.woff2 b/out/renderer/assets/geist-mono-BzrJhchg.woff2
deleted file mode 100644
index acf07fc..0000000
Binary files a/out/renderer/assets/geist-mono-BzrJhchg.woff2 and /dev/null differ
diff --git a/out/renderer/assets/geist-mono-OFKGen7b.woff b/out/renderer/assets/geist-mono-OFKGen7b.woff
deleted file mode 100644
index 5d71b23..0000000
Binary files a/out/renderer/assets/geist-mono-OFKGen7b.woff and /dev/null differ
diff --git a/out/renderer/assets/geist-mono-bold-Bz_UliG4.woff b/out/renderer/assets/geist-mono-bold-Bz_UliG4.woff
deleted file mode 100644
index ecaceab..0000000
Binary files a/out/renderer/assets/geist-mono-bold-Bz_UliG4.woff and /dev/null differ
diff --git a/out/renderer/assets/geist-mono-bold-CTLtpKvJ.woff2 b/out/renderer/assets/geist-mono-bold-CTLtpKvJ.woff2
deleted file mode 100644
index c44b8fd..0000000
Binary files a/out/renderer/assets/geist-mono-bold-CTLtpKvJ.woff2 and /dev/null differ
diff --git a/out/renderer/assets/index-D9ZUihqb.css b/out/renderer/assets/index-D9ZUihqb.css
deleted file mode 100644
index 1f96706..0000000
--- a/out/renderer/assets/index-D9ZUihqb.css
+++ /dev/null
@@ -1,1280 +0,0 @@
-@charset "UTF-8";
-/* Breakpoints */
-@keyframes flip-r {
- 50% {
- transform: translateX(100%);
- opacity: 0;
- }
- 51% {
- transform: translateX(-100%);
- opacity: 0;
- }
-}
-@keyframes flip-l {
- 50% {
- transform: translateX(-100%);
- opacity: 0;
- }
- 51% {
- transform: translateX(100%);
- opacity: 0;
- }
-}
-@keyframes flip-d {
- 50% {
- transform: translateY(100%);
- opacity: 0;
- }
- 51% {
- transform: translateY(-100%);
- opacity: 0;
- }
-}
-@keyframes flip-u {
- 50% {
- transform: translateY(-100%);
- opacity: 0;
- }
- 51% {
- transform: translateY(100%);
- opacity: 0;
- }
-}
-:root {
- --black: #181818;
- --white: #D5D5D5;
- --grey-100: #747474;
- --green: #87FF5B;
- --blue: #5B92FF;
-}
-
-:root .theme-light {
- --theme-bg: #D5D5D5;
- --theme-fg: #181818;
- --theme-accent: #87FF5B;
- --theme-link: #5B92FF;
-}
-:root .theme-dark {
- --theme-bg: #181818;
- --theme-fg: #D5D5D5;
- --theme-accent: #87FF5B;
- --theme-link: #5B92FF;
-}
-
-:root {
- --ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
- --ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
- --ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
- --ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- --ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
- --ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
- --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
- --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
- --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
- --ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
- --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
- --ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1);
- --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
- --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
- --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
- --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
- --ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
- --ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
- --ease-custom: cubic-bezier(0.315, 0.365, 0.23, 0.985);
-}
-
-/***
- The new CSS reset - version 1.9 (last updated 19.6.2023)
- GitHub page: https://github.com/elad2412/the-new-css-reset
-***/
-/*
- Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
- - The "symbol *" part is to solve Firefox SVG sprite bug
- - The "html" element is excluded, otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
- */
-*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
- all: unset;
- display: revert;
-}
-
-/* Preferred box-sizing value */
-*,
-*::before,
-*::after {
- box-sizing: border-box;
-}
-
-/* Reapply the pointer cursor for anchor tags */
-a,
-button {
- cursor: revert;
-}
-
-/* For images to not be able to exceed their container */
-img {
- max-inline-size: 100%;
- max-block-size: 100%;
-}
-
-/* removes spacing between cells in tables */
-table {
- border-collapse: collapse;
-}
-
-/* Safari - solving issue when using user-select:none on the
text input doesn't working */
-input,
-textarea {
- -webkit-user-select: auto;
-}
-
-/* revert the 'white-space' property for textarea elements on Safari */
-textarea {
- white-space: revert;
-}
-
-/* minimum style to allow to style meter element */
-meter {
- -webkit-appearance: revert;
- appearance: revert;
-}
-
-/* preformatted text - use only for this feature */
-:where(pre) {
- all: revert;
-}
-
-/* reset default text opacity of input placeholder */
-::placeholder {
- color: unset;
-}
-
-/* remove default dot (•) sign */
-::marker {
- content: initial;
-}
-
-/* fix the feature of 'hidden' attribute.
- display:revert; revert to element instead of attribute */
-:where([hidden]) {
- display: none;
-}
-
-/* revert for bug in Chromium browsers
- - fix for the content editable attribute will work properly.
- - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
-:where([contenteditable]:not([contenteditable=false])) {
- -moz-user-modify: read-write;
- -webkit-user-modify: read-write;
- overflow-wrap: break-word;
- -webkit-line-break: after-white-space;
- -webkit-user-select: auto;
-}
-
-/* apply back the draggable feature - exist only in Chromium and Safari */
-:where([draggable=true]) {
- -webkit-user-drag: element;
-}
-
-/* Revert Modal native behavior */
-:where(dialog:modal) {
- all: revert;
-}
-
-.menu {
- z-index: 10;
-}
-
-.full-width {
- width: 100vw;
- position: relative;
- left: 50%;
- right: 50%;
- margin-left: -50vw;
- margin-right: -50vw;
-}
-
-.overflow-hidden {
- overflow: hidden;
-}
-
-.relative {
- position: relative;
-}
-
-@media (min-width: 800px) {
- .mobile-only {
- display: none !important;
- }
-}
-
-@media (max-width: 799px) {
- .desktop-only {
- display: none !important;
- }
-}
-
-html:not(.has-scroll-smooth) .hide-on-native-scroll {
- display: none;
-}
-
-html.has-scroll-smooth .hide-on-smooth-scroll {
- display: none;
-}
-
-/*
- Font Weights:
- 100 - Thin
- 200 - Extra Light (Ultra Light)
- 300 - Light
- 400 - Normal
- 500 - Medium
- 600 - Semi Bold (Demi Bold)
- 700 - Bold
- 800 - Extra Bold (Ultra Bold)
- 900 - Black (Heavy)
-*/
-/* Leibniz Fraktur */
-@font-face {
- font-family: "Leibniz Fraktur";
- font-style: normal;
- font-weight: 400;
- src: url("./leibniz-fraktur-BqdMSuEI.woff2") format("woff2"), url("./leibniz-fraktur-CvnkUeBX.woff") format("woff");
-}
-/* Geist Mono */
-@font-face {
- font-family: "Geist Mono";
- font-style: normal;
- font-weight: 700;
- src: url("./geist-mono-bold-CTLtpKvJ.woff2") format("woff2"), url("./geist-mono-bold-Bz_UliG4.woff") format("woff");
-}
-@font-face {
- font-family: "Geist Mono";
- font-style: normal;
- font-weight: 400;
- src: url("./geist-mono-BzrJhchg.woff2") format("woff2"), url("./geist-mono-OFKGen7b.woff") format("woff");
-}
-:root {
- --font-display: 'Leibniz Fraktur', serif;
- --font-mono: 'Geist Mono', monospace;
-}
-
-:root {
- --layout-column-count: 5;
- --layout-column-gap: 5.6497175141vw;
- --layout-margin: 8.4745762712vw;
- --layout-width: calc(100vw - (2 * var(--layout-margin)));
- --layout-column-width: calc(
- (
- var(--layout-width) -
- (
- (var(--layout-column-count) - 1) *
- var(--layout-column-gap)
- )
- ) /
- var(--layout-column-count)
- );
-}
-
-.layout-block, .layout-grid {
- max-width: var(--layout-width);
- margin-left: auto;
- margin-right: auto;
- width: 100%;
-}
-
-.layout-block-inner, .layout-grid-inner {
- padding-left: var(--layout-margin);
- padding-right: var(--layout-margin);
- width: 100%;
-}
-
-.layout-grid {
- display: grid;
- grid-template-columns: repeat(var(--layout-column-count), minmax(0, 1fr));
- grid-gap: var(--layout-column-gap);
-}
-
-.layout-grid-inner {
- display: grid;
- grid-template-columns: repeat(var(--layout-column-count), minmax(0, 1fr));
- grid-gap: var(--layout-column-gap);
-}
-
-html,
-html * {
- scrollbar-width: none !important;
- -ms-overflow-style: none !important;
-}
-html::-webkit-scrollbar,
-html *::-webkit-scrollbar {
- width: 0 !important;
- height: 0 !important;
-}
-
-html.lenis {
- height: auto;
-}
-
-.lenis.lenis-smooth {
- scroll-behavior: auto;
-}
-
-.lenis.lenis-smooth [data-lenis-prevent] {
- overscroll-behavior: contain;
-}
-
-.lenis.lenis-stopped {
- overflow: hidden;
-}
-
-.lenis.lenis-scrolling iframe {
- pointer-events: none;
-}
-
-.fade-enter-active,
-.fade-leave-active {
- transition: opacity 400ms;
-}
-
-.fade-enter-from,
-.fade-leave-to {
- opacity: 0;
-}
-
-.quick-fade-enter-active,
-.quick-fade-leave-active {
- transition: opacity 100ms;
-}
-
-.quick-fade-enter-from,
-.quick-fade-leave-to {
- opacity: 0;
-}
-
-.slow-fade-enter-active,
-.slow-fade-leave-active {
- transition: opacity 600ms;
-}
-
-.slow-fade-enter-from,
-.slow-fade-leave-to {
- opacity: 0;
-}
-
-.slide-up-enter-active,
-.slide-up-leave-active {
- transition: transform 400ms var(--ease-out-quad);
-}
-
-.slide-up-enter-from,
-.slide-up-leave-to {
- transform: translateY(-100%);
-}
-
-.slide-left-enter-active,
-.slide-left-leave-active {
- transition: transform 400ms var(--ease-out-quad);
-}
-
-.slide-left-enter-from,
-.slide-left-leave-to {
- transform: translateX(-100%);
-}
-
-:root {
- font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
- background: var(--black);
- font-synthesis: none;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-body {
- margin: 0;
- min-height: 100vh;
-}
-
-.h1,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: var(--font-display);
- font-weight: 400;
- letter-spacing: -0.02em;
- line-height: 1.3;
- font-size: 8.4745762712vw;
-}
-.h1.mono,
-h1.mono,
-h2.mono,
-h3.mono,
-h4.mono,
-h5.mono,
-h6.mono {
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 6.2146892655vw;
-}
-
-.p,
-p,
-a,
-button,
-input,
-pre {
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-
-.bold {
- font-weight: 700;
-}
-
-#app {
- min-height: 100vh;
-}
-
-button {
- cursor: pointer;
-}
-
-::selection {
- color: var(--theme-bg);
- background: var(--theme-accent);
-}
-
-::-moz-selection {
- color: var(--theme-bg);
- background: var(--theme-accent);
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-.nav {
- padding-top: 2.5423728814vw;
- color: var(--grey-100);
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-.menu {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- background: var(--theme-bg);
- border-bottom: 1px solid var(--grey-100);
-}
-.menu .menu-wrap {
- display: flex;
- flex-direction: column;
- padding-top: 0.8474576271vw;
- padding-bottom: 2.8248587571vw;
-}
-.menu .menu-wrap .menu-item {
- display: block;
- padding: 4.5197740113vw 0;
- text-align: center;
-}
-.menu .menu-wrap .menu-item:not(:last-child) {
- border-bottom: 1px dashed currentColor;
-}
-.menu .menu-wrap .menu-item:hover {
- color: var(--theme-accent);
-}
-.menu.menu-enter-active, .menu.menu-leave-active {
- transition: transform 300ms var(--ease-out-expo);
-}
-.menu.menu-enter-from, .menu.menu-leave-to {
- transform: translateY(-100%);
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-.scroll-bar {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- width: 2.2598870056vw;
- will-change: transform;
- border-left: 1px solid var(--grey-100);
-}
-.scroll-bar .inner {
- height: 100%;
- position: relative;
-}
-.scroll-bar .inner .handle {
- width: 100%;
- height: 109.604519774vw;
- background: var(--grey-100);
- border-radius: 20px;
- position: absolute;
- right: 0;
- will-change: transform;
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-.container {
- min-height: calc(100 * var(--vh));
- max-width: 100vw;
- overflow-x: clip;
- background: var(--theme-bg);
- color: var(--theme-fg);
- transition: opacity 1000ms;
-}
-.container:not(.fonts-ready) {
- opacity: 0;
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-.category-row {
- display: grid;
- grid-template-columns: 7.3446327684vw 1fr auto;
- align-items: flex-start;
- width: 100%;
- position: relative;
- padding: 1.4124293785vw 0 4.2372881356vw;
- cursor: pointer;
-}
-.category-row .index {
- margin-top: 5.3672316384vw;
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-.category-row .title {
- display: block;
- width: 100%;
- display: -webkit-box;
- overflow: hidden;
- text-overflow: ellipsis;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 2;
-}
-@media (max-width: 799px) {
-.category-row .title {
- -webkit-line-clamp: 2;
-}
-}
-.category-row .category-input {
- display: block;
- width: 100%;
- font-family: var(--font-display);
- font-weight: 400;
- letter-spacing: -0.02em;
- line-height: 1.3;
- font-size: 8.4745762712vw;
-}
-.category-row .category-input:focus {
- outline: none;
-}
-.category-row .edit-button,
-.category-row .save-button {
- color: var(--grey-100);
- cursor: pointer;
- padding-right: 0.5em;
- padding-left: 0.5em;
- margin-top: 1.5em;
-}
-.category-row .edit-button {
- opacity: 0;
- pointer-events: none;
-}
-.category-row.editable:hover .edit-button {
- opacity: 1;
- pointer-events: auto;
-}
-.category-row::after {
- content: "----------------------------------------";
- position: absolute;
- bottom: 0;
- left: 0;
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-.category-row.router-link-exact-active, .category-row.editable {
- cursor: default;
-}
-.category-row:hover:not(.router-link-exact-active):not(.editable) {
- color: var(--theme-accent);
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-.note-row {
- grid-template-columns: auto 1fr;
- display: grid;
- gap: 5.6497175141vw;
- cursor: pointer;
-}
-.note-row .title {
- width: 44.9152542373vw;
- position: relative;
-}
-.note-row .title::after {
- content: "(open)";
- position: absolute;
- bottom: 0;
- right: 0;
- transform: translateX(100%);
- font-weight: 700;
- opacity: 0;
-}
-.note-row:hover {
- color: var(--theme-accent);
-}
-.note-row:hover .title::after {
- opacity: 1;
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-main.directory {
- padding-top: 5.0847457627vw;
-}
-main.directory .label {
- text-transform: uppercase;
- margin: 4.802259887vw 0 6.7796610169vw;
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-main.directory .notes {
- display: flex;
- flex-direction: column;
- gap: 3.9548022599vw;
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-main.editor {
- padding-top: 2.2598870056vw;
- padding-bottom: 5.6497175141vw;
-}
-main.editor h1 {
- font-weight: 700 !important;
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-main.editor h1:first-child {
- font-family: var(--font-mono);
- font-size: 3.3898305085vw;
- font-weight: 400 !important;
-}
-main.editor h1:first-child:first-child::first-letter {
- font-family: var(--font-display);
- font-size: 11.8644067797vw;
-}
-main.editor h1.is-editor-empty:first-child::before {
- color: var(--grey-100);
- content: attr(data-placeholder);
- pointer-events: none;
- font-family: var(--font-mono);
- font-size: 3.3898305085vw;
- font-weight: 400 !important;
-}
-main.editor h1.is-editor-empty:first-child::before:first-child::first-letter {
- font-family: var(--font-display);
- font-size: 11.8644067797vw;
-}
-main.editor p strong {
- font-weight: 700;
-}
-main.editor p em {
- font-style: italic;
-}
-main.editor hr::before {
- content: "----------------------------------------";
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-main.editor ul {
- list-style-type: disc;
-}
-main.editor ul li {
- display: list-item;
- margin-left: 1em;
-}
-main.editor ol {
- list-style-type: decimal;
-}
-main.editor ol li {
- display: list-item;
- margin-left: 1.5em;
-}
-main.editor ol li::marker {
- font-family: var(--font-mono);
- font-weight: 400;
- line-height: 1;
- font-size: 3.3898305085vw;
-}
-main.editor a {
- color: var(--theme-link);
- cursor: pointer;
-}
-main.editor code {
- border: 1px solid var(--grey-100);
- color: var(--theme-accent);
- padding: 0.2em;
- border-radius: 0.2em;
-}
-main.editor pre code {
- display: block;
- color: inherit;
- padding: 1em;
- /* Code styling */
-}
-main.editor pre code .hljs-comment,
-main.editor pre code .hljs-quote {
- color: #616161;
-}
-main.editor pre code .hljs-variable,
-main.editor pre code .hljs-template-variable,
-main.editor pre code .hljs-attribute,
-main.editor pre code .hljs-tag,
-main.editor pre code .hljs-name,
-main.editor pre code .hljs-regexp,
-main.editor pre code .hljs-link,
-main.editor pre code .hljs-name,
-main.editor pre code .hljs-selector-id,
-main.editor pre code .hljs-selector-class {
- color: #f98181;
-}
-main.editor pre code .hljs-number,
-main.editor pre code .hljs-meta,
-main.editor pre code .hljs-built_in,
-main.editor pre code .hljs-builtin-name,
-main.editor pre code .hljs-literal,
-main.editor pre code .hljs-type,
-main.editor pre code .hljs-params {
- color: #fbbc88;
-}
-main.editor pre code .hljs-string,
-main.editor pre code .hljs-symbol,
-main.editor pre code .hljs-bullet {
- color: #b9f18d;
-}
-main.editor pre code .hljs-title,
-main.editor pre code .hljs-section {
- color: #faf594;
-}
-main.editor pre code .hljs-keyword,
-main.editor pre code .hljs-selector-tag {
- color: #70cff8;
-}
-main.editor pre code .hljs-emphasis {
- font-style: italic;
-}
-main.editor pre code .hljs-strong {
- font-weight: 700;
-}
-main.editor blockquote {
- border-left: 4px solid var(--grey-100);
- padding-left: 0.5em;
-}
-main.editor s {
- position: relative;
-}
-main.editor s::after {
- content: " ";
- display: block;
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- height: 0.2824858757vw;
- background: currentColor;
-}
-main.editor mark {
- background: var(--theme-accent);
- color: var(--theme-bg);
- padding: 0.2em;
- border-radius: 0.2em;
-}
-main.editor .editor-wrap > div {
- display: flex;
- flex-direction: column;
- gap: 5.6497175141vw;
-}
-main.editor .editor-wrap > div:focus {
- outline: none;
-}
-main.editor .bubble-menu {
- display: flex;
- gap: 1.4124293785vw;
- border: 1px solid var(--grey-100);
- color: var(--grey-100);
- border-radius: 0.2em;
- background: var(--theme-bg);
-}
-main.editor .bubble-menu button {
- cursor: pointer;
- padding: 0.2em;
- border-radius: 0.2em;
-}
-main.editor .bubble-menu button:hover {
- background: var(--grey-100);
- color: var(--theme-bg);
-}
-main.editor .bubble-menu button.active {
- background: var(--theme-fg);
- color: var(--theme-bg);
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-main.category .back {
- display: block;
- opacity: 0.25;
- margin-top: 2.5423728814vw;
-}
-main.category .category-row {
- margin-top: 1.1299435028vw;
-}
-main.category .notes {
- display: flex;
- flex-direction: column;
- gap: 3.9548022599vw;
- margin-top: 2.5423728814vw;
-}
-main.category .new-note {
- display: block;
- margin: 14.1242937853vw auto 0;
-}/* Breakpoints */
-@keyframes flip-r {
-50% {
- transform: translateX(100%);
- opacity: 0;
-}
-51% {
- transform: translateX(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-l {
-50% {
- transform: translateX(-100%);
- opacity: 0;
-}
-51% {
- transform: translateX(100%);
- opacity: 0;
-}
-}
-@keyframes flip-d {
-50% {
- transform: translateY(100%);
- opacity: 0;
-}
-51% {
- transform: translateY(-100%);
- opacity: 0;
-}
-}
-@keyframes flip-u {
-50% {
- transform: translateY(-100%);
- opacity: 0;
-}
-51% {
- transform: translateY(100%);
- opacity: 0;
-}
-}
-main.instructions .back-link {
- opacity: 0.25;
- display: block;
- margin-top: 2.5423728814vw;
- margin-bottom: 3.9548022599vw;
-}
\ No newline at end of file
diff --git a/out/renderer/assets/index-DdUrngdf.js b/out/renderer/assets/index-DdUrngdf.js
deleted file mode 100644
index 307ad98..0000000
--- a/out/renderer/assets/index-DdUrngdf.js
+++ /dev/null
@@ -1,87797 +0,0 @@
-// @__NO_SIDE_EFFECTS__
-function makeMap(str) {
- const map2 = /* @__PURE__ */ Object.create(null);
- for (const key of str.split(",")) map2[key] = 1;
- return (val) => val in map2;
-}
-const EMPTY_OBJ = {};
-const EMPTY_ARR = [];
-const NOOP = () => {
-};
-const NO = () => false;
-const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
-(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
-const isModelListener = (key) => key.startsWith("onUpdate:");
-const extend = Object.assign;
-const remove = (arr, el) => {
- const i = arr.indexOf(el);
- if (i > -1) {
- arr.splice(i, 1);
- }
-};
-const hasOwnProperty$1 = Object.prototype.hasOwnProperty;
-const hasOwn = (val, key) => hasOwnProperty$1.call(val, key);
-const isArray$1 = Array.isArray;
-const isMap = (val) => toTypeString(val) === "[object Map]";
-const isSet = (val) => toTypeString(val) === "[object Set]";
-const isDate = (val) => toTypeString(val) === "[object Date]";
-const isFunction$2 = (val) => typeof val === "function";
-const isString = (val) => typeof val === "string";
-const isSymbol = (val) => typeof val === "symbol";
-const isObject$1 = (val) => val !== null && typeof val === "object";
-const isPromise = (val) => {
- return (isObject$1(val) || isFunction$2(val)) && isFunction$2(val.then) && isFunction$2(val.catch);
-};
-const objectToString = Object.prototype.toString;
-const toTypeString = (value) => objectToString.call(value);
-const toRawType = (value) => {
- return toTypeString(value).slice(8, -1);
-};
-const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]";
-const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
-const isReservedProp = /* @__PURE__ */ makeMap(
- // the leading comma is intentional so empty string "" is also included
- ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
-);
-const cacheStringFunction = (fn) => {
- const cache = /* @__PURE__ */ Object.create(null);
- return ((str) => {
- const hit = cache[str];
- return hit || (cache[str] = fn(str));
- });
-};
-const camelizeRE = /-\w/g;
-const camelize = cacheStringFunction(
- (str) => {
- return str.replace(camelizeRE, (c2) => c2.slice(1).toUpperCase());
- }
-);
-const hyphenateRE = /\B([A-Z])/g;
-const hyphenate = cacheStringFunction(
- (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
-);
-const capitalize = cacheStringFunction((str) => {
- return str.charAt(0).toUpperCase() + str.slice(1);
-});
-const toHandlerKey = cacheStringFunction(
- (str) => {
- const s = str ? `on${capitalize(str)}` : ``;
- return s;
- }
-);
-const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
-const invokeArrayFns = (fns, ...arg) => {
- for (let i = 0; i < fns.length; i++) {
- fns[i](...arg);
- }
-};
-const def = (obj, key, value, writable = false) => {
- Object.defineProperty(obj, key, {
- configurable: true,
- enumerable: false,
- writable,
- value
- });
-};
-const looseToNumber = (val) => {
- const n = parseFloat(val);
- return isNaN(n) ? val : n;
-};
-const toNumber = (val) => {
- const n = isString(val) ? Number(val) : NaN;
- return isNaN(n) ? val : n;
-};
-let _globalThis;
-const getGlobalThis = () => {
- return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
-};
-function normalizeStyle(value) {
- if (isArray$1(value)) {
- const res = {};
- for (let i = 0; i < value.length; i++) {
- const item = value[i];
- const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
- if (normalized) {
- for (const key in normalized) {
- res[key] = normalized[key];
- }
- }
- }
- return res;
- } else if (isString(value) || isObject$1(value)) {
- return value;
- }
-}
-const listDelimiterRE = /;(?![^(]*\))/g;
-const propertyDelimiterRE = /:([^]+)/;
-const styleCommentRE = /\/\*[^]*?\*\//g;
-function parseStringStyle(cssText) {
- const ret = {};
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
- if (item) {
- const tmp = item.split(propertyDelimiterRE);
- tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
- }
- });
- return ret;
-}
-function normalizeClass(value) {
- let res = "";
- if (isString(value)) {
- res = value;
- } else if (isArray$1(value)) {
- for (let i = 0; i < value.length; i++) {
- const normalized = normalizeClass(value[i]);
- if (normalized) {
- res += normalized + " ";
- }
- }
- } else if (isObject$1(value)) {
- for (const name in value) {
- if (value[name]) {
- res += name + " ";
- }
- }
- }
- return res.trim();
-}
-const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
-const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
-function includeBooleanAttr(value) {
- return !!value || value === "";
-}
-function looseCompareArrays(a, b) {
- if (a.length !== b.length) return false;
- let equal = true;
- for (let i = 0; equal && i < a.length; i++) {
- equal = looseEqual(a[i], b[i]);
- }
- return equal;
-}
-function looseEqual(a, b) {
- if (a === b) return true;
- let aValidType = isDate(a);
- let bValidType = isDate(b);
- if (aValidType || bValidType) {
- return aValidType && bValidType ? a.getTime() === b.getTime() : false;
- }
- aValidType = isSymbol(a);
- bValidType = isSymbol(b);
- if (aValidType || bValidType) {
- return a === b;
- }
- aValidType = isArray$1(a);
- bValidType = isArray$1(b);
- if (aValidType || bValidType) {
- return aValidType && bValidType ? looseCompareArrays(a, b) : false;
- }
- aValidType = isObject$1(a);
- bValidType = isObject$1(b);
- if (aValidType || bValidType) {
- if (!aValidType || !bValidType) {
- return false;
- }
- const aKeysCount = Object.keys(a).length;
- const bKeysCount = Object.keys(b).length;
- if (aKeysCount !== bKeysCount) {
- return false;
- }
- for (const key in a) {
- const aHasKey = a.hasOwnProperty(key);
- const bHasKey = b.hasOwnProperty(key);
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
- return false;
- }
- }
- }
- return String(a) === String(b);
-}
-const isRef$1 = (val) => {
- return !!(val && val["__v_isRef"] === true);
-};
-const toDisplayString = (val) => {
- return isString(val) ? val : val == null ? "" : isArray$1(val) || isObject$1(val) && (val.toString === objectToString || !isFunction$2(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);
-};
-const replacer = (_key, val) => {
- if (isRef$1(val)) {
- return replacer(_key, val.value);
- } else if (isMap(val)) {
- return {
- [`Map(${val.size})`]: [...val.entries()].reduce(
- (entries, [key, val2], i) => {
- entries[stringifySymbol(key, i) + " =>"] = val2;
- return entries;
- },
- {}
- )
- };
- } else if (isSet(val)) {
- return {
- [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))
- };
- } else if (isSymbol(val)) {
- return stringifySymbol(val);
- } else if (isObject$1(val) && !isArray$1(val) && !isPlainObject$1(val)) {
- return String(val);
- }
- return val;
-};
-const stringifySymbol = (v, i = "") => {
- var _a;
- return (
- // Symbol.description in es2019+ so we need to cast here to pass
- // the lib: es2016 check
- isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v
- );
-};
-let activeEffectScope;
-class EffectScope {
- // TODO isolatedDeclarations "__v_skip"
- constructor(detached = false) {
- this.detached = detached;
- this._active = true;
- this._on = 0;
- this.effects = [];
- this.cleanups = [];
- this._isPaused = false;
- this.__v_skip = true;
- this.parent = activeEffectScope;
- if (!detached && activeEffectScope) {
- this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
- this
- ) - 1;
- }
- }
- get active() {
- return this._active;
- }
- pause() {
- if (this._active) {
- this._isPaused = true;
- let i, l;
- if (this.scopes) {
- for (i = 0, l = this.scopes.length; i < l; i++) {
- this.scopes[i].pause();
- }
- }
- for (i = 0, l = this.effects.length; i < l; i++) {
- this.effects[i].pause();
- }
- }
- }
- /**
- * Resumes the effect scope, including all child scopes and effects.
- */
- resume() {
- if (this._active) {
- if (this._isPaused) {
- this._isPaused = false;
- let i, l;
- if (this.scopes) {
- for (i = 0, l = this.scopes.length; i < l; i++) {
- this.scopes[i].resume();
- }
- }
- for (i = 0, l = this.effects.length; i < l; i++) {
- this.effects[i].resume();
- }
- }
- }
- }
- run(fn) {
- if (this._active) {
- const currentEffectScope = activeEffectScope;
- try {
- activeEffectScope = this;
- return fn();
- } finally {
- activeEffectScope = currentEffectScope;
- }
- }
- }
- /**
- * This should only be called on non-detached scopes
- * @internal
- */
- on() {
- if (++this._on === 1) {
- this.prevScope = activeEffectScope;
- activeEffectScope = this;
- }
- }
- /**
- * This should only be called on non-detached scopes
- * @internal
- */
- off() {
- if (this._on > 0 && --this._on === 0) {
- activeEffectScope = this.prevScope;
- this.prevScope = void 0;
- }
- }
- stop(fromParent) {
- if (this._active) {
- this._active = false;
- let i, l;
- for (i = 0, l = this.effects.length; i < l; i++) {
- this.effects[i].stop();
- }
- this.effects.length = 0;
- for (i = 0, l = this.cleanups.length; i < l; i++) {
- this.cleanups[i]();
- }
- this.cleanups.length = 0;
- if (this.scopes) {
- for (i = 0, l = this.scopes.length; i < l; i++) {
- this.scopes[i].stop(true);
- }
- this.scopes.length = 0;
- }
- if (!this.detached && this.parent && !fromParent) {
- const last = this.parent.scopes.pop();
- if (last && last !== this) {
- this.parent.scopes[this.index] = last;
- last.index = this.index;
- }
- }
- this.parent = void 0;
- }
- }
-}
-function getCurrentScope() {
- return activeEffectScope;
-}
-function onScopeDispose(fn, failSilently = false) {
- if (activeEffectScope) {
- activeEffectScope.cleanups.push(fn);
- }
-}
-let activeSub;
-const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
-class ReactiveEffect {
- constructor(fn) {
- this.fn = fn;
- this.deps = void 0;
- this.depsTail = void 0;
- this.flags = 1 | 4;
- this.next = void 0;
- this.cleanup = void 0;
- this.scheduler = void 0;
- if (activeEffectScope && activeEffectScope.active) {
- activeEffectScope.effects.push(this);
- }
- }
- pause() {
- this.flags |= 64;
- }
- resume() {
- if (this.flags & 64) {
- this.flags &= -65;
- if (pausedQueueEffects.has(this)) {
- pausedQueueEffects.delete(this);
- this.trigger();
- }
- }
- }
- /**
- * @internal
- */
- notify() {
- if (this.flags & 2 && !(this.flags & 32)) {
- return;
- }
- if (!(this.flags & 8)) {
- batch(this);
- }
- }
- run() {
- if (!(this.flags & 1)) {
- return this.fn();
- }
- this.flags |= 2;
- cleanupEffect(this);
- prepareDeps(this);
- const prevEffect = activeSub;
- const prevShouldTrack = shouldTrack;
- activeSub = this;
- shouldTrack = true;
- try {
- return this.fn();
- } finally {
- cleanupDeps(this);
- activeSub = prevEffect;
- shouldTrack = prevShouldTrack;
- this.flags &= -3;
- }
- }
- stop() {
- if (this.flags & 1) {
- for (let link = this.deps; link; link = link.nextDep) {
- removeSub(link);
- }
- this.deps = this.depsTail = void 0;
- cleanupEffect(this);
- this.onStop && this.onStop();
- this.flags &= -2;
- }
- }
- trigger() {
- if (this.flags & 64) {
- pausedQueueEffects.add(this);
- } else if (this.scheduler) {
- this.scheduler();
- } else {
- this.runIfDirty();
- }
- }
- /**
- * @internal
- */
- runIfDirty() {
- if (isDirty(this)) {
- this.run();
- }
- }
- get dirty() {
- return isDirty(this);
- }
-}
-let batchDepth = 0;
-let batchedSub;
-let batchedComputed;
-function batch(sub, isComputed = false) {
- sub.flags |= 8;
- if (isComputed) {
- sub.next = batchedComputed;
- batchedComputed = sub;
- return;
- }
- sub.next = batchedSub;
- batchedSub = sub;
-}
-function startBatch() {
- batchDepth++;
-}
-function endBatch() {
- if (--batchDepth > 0) {
- return;
- }
- if (batchedComputed) {
- let e = batchedComputed;
- batchedComputed = void 0;
- while (e) {
- const next = e.next;
- e.next = void 0;
- e.flags &= -9;
- e = next;
- }
- }
- let error;
- while (batchedSub) {
- let e = batchedSub;
- batchedSub = void 0;
- while (e) {
- const next = e.next;
- e.next = void 0;
- e.flags &= -9;
- if (e.flags & 1) {
- try {
- ;
- e.trigger();
- } catch (err) {
- if (!error) error = err;
- }
- }
- e = next;
- }
- }
- if (error) throw error;
-}
-function prepareDeps(sub) {
- for (let link = sub.deps; link; link = link.nextDep) {
- link.version = -1;
- link.prevActiveLink = link.dep.activeLink;
- link.dep.activeLink = link;
- }
-}
-function cleanupDeps(sub) {
- let head;
- let tail = sub.depsTail;
- let link = tail;
- while (link) {
- const prev = link.prevDep;
- if (link.version === -1) {
- if (link === tail) tail = prev;
- removeSub(link);
- removeDep(link);
- } else {
- head = link;
- }
- link.dep.activeLink = link.prevActiveLink;
- link.prevActiveLink = void 0;
- link = prev;
- }
- sub.deps = head;
- sub.depsTail = tail;
-}
-function isDirty(sub) {
- for (let link = sub.deps; link; link = link.nextDep) {
- if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {
- return true;
- }
- }
- if (sub._dirty) {
- return true;
- }
- return false;
-}
-function refreshComputed(computed2) {
- if (computed2.flags & 4 && !(computed2.flags & 16)) {
- return;
- }
- computed2.flags &= -17;
- if (computed2.globalVersion === globalVersion) {
- return;
- }
- computed2.globalVersion = globalVersion;
- if (!computed2.isSSR && computed2.flags & 128 && (!computed2.deps && !computed2._dirty || !isDirty(computed2))) {
- return;
- }
- computed2.flags |= 2;
- const dep = computed2.dep;
- const prevSub = activeSub;
- const prevShouldTrack = shouldTrack;
- activeSub = computed2;
- shouldTrack = true;
- try {
- prepareDeps(computed2);
- const value = computed2.fn(computed2._value);
- if (dep.version === 0 || hasChanged(value, computed2._value)) {
- computed2.flags |= 128;
- computed2._value = value;
- dep.version++;
- }
- } catch (err) {
- dep.version++;
- throw err;
- } finally {
- activeSub = prevSub;
- shouldTrack = prevShouldTrack;
- cleanupDeps(computed2);
- computed2.flags &= -3;
- }
-}
-function removeSub(link, soft = false) {
- const { dep, prevSub, nextSub } = link;
- if (prevSub) {
- prevSub.nextSub = nextSub;
- link.prevSub = void 0;
- }
- if (nextSub) {
- nextSub.prevSub = prevSub;
- link.nextSub = void 0;
- }
- if (dep.subs === link) {
- dep.subs = prevSub;
- if (!prevSub && dep.computed) {
- dep.computed.flags &= -5;
- for (let l = dep.computed.deps; l; l = l.nextDep) {
- removeSub(l, true);
- }
- }
- }
- if (!soft && !--dep.sc && dep.map) {
- dep.map.delete(dep.key);
- }
-}
-function removeDep(link) {
- const { prevDep, nextDep } = link;
- if (prevDep) {
- prevDep.nextDep = nextDep;
- link.prevDep = void 0;
- }
- if (nextDep) {
- nextDep.prevDep = prevDep;
- link.nextDep = void 0;
- }
-}
-let shouldTrack = true;
-const trackStack = [];
-function pauseTracking() {
- trackStack.push(shouldTrack);
- shouldTrack = false;
-}
-function resetTracking() {
- const last = trackStack.pop();
- shouldTrack = last === void 0 ? true : last;
-}
-function cleanupEffect(e) {
- const { cleanup } = e;
- e.cleanup = void 0;
- if (cleanup) {
- const prevSub = activeSub;
- activeSub = void 0;
- try {
- cleanup();
- } finally {
- activeSub = prevSub;
- }
- }
-}
-let globalVersion = 0;
-let Link$1 = class Link {
- constructor(sub, dep) {
- this.sub = sub;
- this.dep = dep;
- this.version = dep.version;
- this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
- }
-};
-class Dep {
- // TODO isolatedDeclarations "__v_skip"
- constructor(computed2) {
- this.computed = computed2;
- this.version = 0;
- this.activeLink = void 0;
- this.subs = void 0;
- this.map = void 0;
- this.key = void 0;
- this.sc = 0;
- this.__v_skip = true;
- }
- track(debugInfo) {
- if (!activeSub || !shouldTrack || activeSub === this.computed) {
- return;
- }
- let link = this.activeLink;
- if (link === void 0 || link.sub !== activeSub) {
- link = this.activeLink = new Link$1(activeSub, this);
- if (!activeSub.deps) {
- activeSub.deps = activeSub.depsTail = link;
- } else {
- link.prevDep = activeSub.depsTail;
- activeSub.depsTail.nextDep = link;
- activeSub.depsTail = link;
- }
- addSub(link);
- } else if (link.version === -1) {
- link.version = this.version;
- if (link.nextDep) {
- const next = link.nextDep;
- next.prevDep = link.prevDep;
- if (link.prevDep) {
- link.prevDep.nextDep = next;
- }
- link.prevDep = activeSub.depsTail;
- link.nextDep = void 0;
- activeSub.depsTail.nextDep = link;
- activeSub.depsTail = link;
- if (activeSub.deps === link) {
- activeSub.deps = next;
- }
- }
- }
- return link;
- }
- trigger(debugInfo) {
- this.version++;
- globalVersion++;
- this.notify(debugInfo);
- }
- notify(debugInfo) {
- startBatch();
- try {
- if (false) ;
- for (let link = this.subs; link; link = link.prevSub) {
- if (link.sub.notify()) {
- ;
- link.sub.dep.notify();
- }
- }
- } finally {
- endBatch();
- }
- }
-}
-function addSub(link) {
- link.dep.sc++;
- if (link.sub.flags & 4) {
- const computed2 = link.dep.computed;
- if (computed2 && !link.dep.subs) {
- computed2.flags |= 4 | 16;
- for (let l = computed2.deps; l; l = l.nextDep) {
- addSub(l);
- }
- }
- const currentTail = link.dep.subs;
- if (currentTail !== link) {
- link.prevSub = currentTail;
- if (currentTail) currentTail.nextSub = link;
- }
- link.dep.subs = link;
- }
-}
-const targetMap = /* @__PURE__ */ new WeakMap();
-const ITERATE_KEY = /* @__PURE__ */ Symbol(
- ""
-);
-const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(
- ""
-);
-const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(
- ""
-);
-function track(target, type, key) {
- if (shouldTrack && activeSub) {
- let depsMap = targetMap.get(target);
- if (!depsMap) {
- targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
- }
- let dep = depsMap.get(key);
- if (!dep) {
- depsMap.set(key, dep = new Dep());
- dep.map = depsMap;
- dep.key = key;
- }
- {
- dep.track();
- }
- }
-}
-function trigger(target, type, key, newValue, oldValue, oldTarget) {
- const depsMap = targetMap.get(target);
- if (!depsMap) {
- globalVersion++;
- return;
- }
- const run3 = (dep) => {
- if (dep) {
- {
- dep.trigger();
- }
- }
- };
- startBatch();
- if (type === "clear") {
- depsMap.forEach(run3);
- } else {
- const targetIsArray = isArray$1(target);
- const isArrayIndex = targetIsArray && isIntegerKey(key);
- if (targetIsArray && key === "length") {
- const newLength = Number(newValue);
- depsMap.forEach((dep, key2) => {
- if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {
- run3(dep);
- }
- });
- } else {
- if (key !== void 0 || depsMap.has(void 0)) {
- run3(depsMap.get(key));
- }
- if (isArrayIndex) {
- run3(depsMap.get(ARRAY_ITERATE_KEY));
- }
- switch (type) {
- case "add":
- if (!targetIsArray) {
- run3(depsMap.get(ITERATE_KEY));
- if (isMap(target)) {
- run3(depsMap.get(MAP_KEY_ITERATE_KEY));
- }
- } else if (isArrayIndex) {
- run3(depsMap.get("length"));
- }
- break;
- case "delete":
- if (!targetIsArray) {
- run3(depsMap.get(ITERATE_KEY));
- if (isMap(target)) {
- run3(depsMap.get(MAP_KEY_ITERATE_KEY));
- }
- }
- break;
- case "set":
- if (isMap(target)) {
- run3(depsMap.get(ITERATE_KEY));
- }
- break;
- }
- }
- }
- endBatch();
-}
-function reactiveReadArray(array) {
- const raw = /* @__PURE__ */ toRaw(array);
- if (raw === array) return raw;
- track(raw, "iterate", ARRAY_ITERATE_KEY);
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
-}
-function shallowReadArray(arr) {
- track(arr = /* @__PURE__ */ toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
- return arr;
-}
-function toWrapped(target, item) {
- if (/* @__PURE__ */ isReadonly(target)) {
- return /* @__PURE__ */ isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);
- }
- return toReactive(item);
-}
-const arrayInstrumentations = {
- __proto__: null,
- [Symbol.iterator]() {
- return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));
- },
- concat(...args) {
- return reactiveReadArray(this).concat(
- ...args.map((x) => isArray$1(x) ? reactiveReadArray(x) : x)
- );
- },
- entries() {
- return iterator(this, "entries", (value) => {
- value[1] = toWrapped(this, value[1]);
- return value;
- });
- },
- every(fn, thisArg) {
- return apply$1(this, "every", fn, thisArg, void 0, arguments);
- },
- filter(fn, thisArg) {
- return apply$1(
- this,
- "filter",
- fn,
- thisArg,
- (v) => v.map((item) => toWrapped(this, item)),
- arguments
- );
- },
- find(fn, thisArg) {
- return apply$1(
- this,
- "find",
- fn,
- thisArg,
- (item) => toWrapped(this, item),
- arguments
- );
- },
- findIndex(fn, thisArg) {
- return apply$1(this, "findIndex", fn, thisArg, void 0, arguments);
- },
- findLast(fn, thisArg) {
- return apply$1(
- this,
- "findLast",
- fn,
- thisArg,
- (item) => toWrapped(this, item),
- arguments
- );
- },
- findLastIndex(fn, thisArg) {
- return apply$1(this, "findLastIndex", fn, thisArg, void 0, arguments);
- },
- // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement
- forEach(fn, thisArg) {
- return apply$1(this, "forEach", fn, thisArg, void 0, arguments);
- },
- includes(...args) {
- return searchProxy(this, "includes", args);
- },
- indexOf(...args) {
- return searchProxy(this, "indexOf", args);
- },
- join(separator) {
- return reactiveReadArray(this).join(separator);
- },
- // keys() iterator only reads `length`, no optimization required
- lastIndexOf(...args) {
- return searchProxy(this, "lastIndexOf", args);
- },
- map(fn, thisArg) {
- return apply$1(this, "map", fn, thisArg, void 0, arguments);
- },
- pop() {
- return noTracking(this, "pop");
- },
- push(...args) {
- return noTracking(this, "push", args);
- },
- reduce(fn, ...args) {
- return reduce(this, "reduce", fn, args);
- },
- reduceRight(fn, ...args) {
- return reduce(this, "reduceRight", fn, args);
- },
- shift() {
- return noTracking(this, "shift");
- },
- // slice could use ARRAY_ITERATE but also seems to beg for range tracking
- some(fn, thisArg) {
- return apply$1(this, "some", fn, thisArg, void 0, arguments);
- },
- splice(...args) {
- return noTracking(this, "splice", args);
- },
- toReversed() {
- return reactiveReadArray(this).toReversed();
- },
- toSorted(comparer) {
- return reactiveReadArray(this).toSorted(comparer);
- },
- toSpliced(...args) {
- return reactiveReadArray(this).toSpliced(...args);
- },
- unshift(...args) {
- return noTracking(this, "unshift", args);
- },
- values() {
- return iterator(this, "values", (item) => toWrapped(this, item));
- }
-};
-function iterator(self2, method, wrapValue) {
- const arr = shallowReadArray(self2);
- const iter = arr[method]();
- if (arr !== self2 && !/* @__PURE__ */ isShallow(self2)) {
- iter._next = iter.next;
- iter.next = () => {
- const result = iter._next();
- if (!result.done) {
- result.value = wrapValue(result.value);
- }
- return result;
- };
- }
- return iter;
-}
-const arrayProto = Array.prototype;
-function apply$1(self2, method, fn, thisArg, wrappedRetFn, args) {
- const arr = shallowReadArray(self2);
- const needsWrap = arr !== self2 && !/* @__PURE__ */ isShallow(self2);
- const methodFn = arr[method];
- if (methodFn !== arrayProto[method]) {
- const result2 = methodFn.apply(self2, args);
- return needsWrap ? toReactive(result2) : result2;
- }
- let wrappedFn = fn;
- if (arr !== self2) {
- if (needsWrap) {
- wrappedFn = function(item, index2) {
- return fn.call(this, toWrapped(self2, item), index2, self2);
- };
- } else if (fn.length > 2) {
- wrappedFn = function(item, index2) {
- return fn.call(this, item, index2, self2);
- };
- }
- }
- const result = methodFn.call(arr, wrappedFn, thisArg);
- return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;
-}
-function reduce(self2, method, fn, args) {
- const arr = shallowReadArray(self2);
- let wrappedFn = fn;
- if (arr !== self2) {
- if (!/* @__PURE__ */ isShallow(self2)) {
- wrappedFn = function(acc, item, index2) {
- return fn.call(this, acc, toWrapped(self2, item), index2, self2);
- };
- } else if (fn.length > 3) {
- wrappedFn = function(acc, item, index2) {
- return fn.call(this, acc, item, index2, self2);
- };
- }
- }
- return arr[method](wrappedFn, ...args);
-}
-function searchProxy(self2, method, args) {
- const arr = /* @__PURE__ */ toRaw(self2);
- track(arr, "iterate", ARRAY_ITERATE_KEY);
- const res = arr[method](...args);
- if ((res === -1 || res === false) && /* @__PURE__ */ isProxy(args[0])) {
- args[0] = /* @__PURE__ */ toRaw(args[0]);
- return arr[method](...args);
- }
- return res;
-}
-function noTracking(self2, method, args = []) {
- pauseTracking();
- startBatch();
- const res = (/* @__PURE__ */ toRaw(self2))[method].apply(self2, args);
- endBatch();
- resetTracking();
- return res;
-}
-const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
-const builtInSymbols = new Set(
- /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
-);
-function hasOwnProperty(key) {
- if (!isSymbol(key)) key = String(key);
- const obj = /* @__PURE__ */ toRaw(this);
- track(obj, "has", key);
- return obj.hasOwnProperty(key);
-}
-class BaseReactiveHandler {
- constructor(_isReadonly = false, _isShallow = false) {
- this._isReadonly = _isReadonly;
- this._isShallow = _isShallow;
- }
- get(target, key, receiver) {
- if (key === "__v_skip") return target["__v_skip"];
- const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
- if (key === "__v_isReactive") {
- return !isReadonly2;
- } else if (key === "__v_isReadonly") {
- return isReadonly2;
- } else if (key === "__v_isShallow") {
- return isShallow2;
- } else if (key === "__v_raw") {
- if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
- // this means the receiver is a user proxy of the reactive proxy
- Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
- return target;
- }
- return;
- }
- const targetIsArray = isArray$1(target);
- if (!isReadonly2) {
- let fn;
- if (targetIsArray && (fn = arrayInstrumentations[key])) {
- return fn;
- }
- if (key === "hasOwnProperty") {
- return hasOwnProperty;
- }
- }
- const res = Reflect.get(
- target,
- key,
- // if this is a proxy wrapping a ref, return methods using the raw ref
- // as receiver so that we don't have to call `toRaw` on the ref in all
- // its class methods
- /* @__PURE__ */ isRef(target) ? target : receiver
- );
- if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
- return res;
- }
- if (!isReadonly2) {
- track(target, "get", key);
- }
- if (isShallow2) {
- return res;
- }
- if (/* @__PURE__ */ isRef(res)) {
- const value = targetIsArray && isIntegerKey(key) ? res : res.value;
- return isReadonly2 && isObject$1(value) ? /* @__PURE__ */ readonly(value) : value;
- }
- if (isObject$1(res)) {
- return isReadonly2 ? /* @__PURE__ */ readonly(res) : /* @__PURE__ */ reactive(res);
- }
- return res;
- }
-}
-class MutableReactiveHandler extends BaseReactiveHandler {
- constructor(isShallow2 = false) {
- super(false, isShallow2);
- }
- set(target, key, value, receiver) {
- let oldValue = target[key];
- const isArrayWithIntegerKey = isArray$1(target) && isIntegerKey(key);
- if (!this._isShallow) {
- const isOldValueReadonly = /* @__PURE__ */ isReadonly(oldValue);
- if (!/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) {
- oldValue = /* @__PURE__ */ toRaw(oldValue);
- value = /* @__PURE__ */ toRaw(value);
- }
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
- if (isOldValueReadonly) {
- return true;
- } else {
- oldValue.value = value;
- return true;
- }
- }
- }
- const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
- const result = Reflect.set(
- target,
- key,
- value,
- /* @__PURE__ */ isRef(target) ? target : receiver
- );
- if (target === /* @__PURE__ */ toRaw(receiver)) {
- if (!hadKey) {
- trigger(target, "add", key, value);
- } else if (hasChanged(value, oldValue)) {
- trigger(target, "set", key, value);
- }
- }
- return result;
- }
- deleteProperty(target, key) {
- const hadKey = hasOwn(target, key);
- target[key];
- const result = Reflect.deleteProperty(target, key);
- if (result && hadKey) {
- trigger(target, "delete", key, void 0);
- }
- return result;
- }
- has(target, key) {
- const result = Reflect.has(target, key);
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
- track(target, "has", key);
- }
- return result;
- }
- ownKeys(target) {
- track(
- target,
- "iterate",
- isArray$1(target) ? "length" : ITERATE_KEY
- );
- return Reflect.ownKeys(target);
- }
-}
-class ReadonlyReactiveHandler extends BaseReactiveHandler {
- constructor(isShallow2 = false) {
- super(true, isShallow2);
- }
- set(target, key) {
- return true;
- }
- deleteProperty(target, key) {
- return true;
- }
-}
-const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
-const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
-const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
-const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
-const toShallow = (value) => value;
-const getProto = (v) => Reflect.getPrototypeOf(v);
-function createIterableMethod(method, isReadonly2, isShallow2) {
- return function(...args) {
- const target = this["__v_raw"];
- const rawTarget = /* @__PURE__ */ toRaw(target);
- const targetIsMap = isMap(rawTarget);
- const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
- const isKeyOnly = method === "keys" && targetIsMap;
- const innerIterator = target[method](...args);
- const wrap2 = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
- !isReadonly2 && track(
- rawTarget,
- "iterate",
- isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY
- );
- return extend(
- // inheriting all iterator properties
- Object.create(innerIterator),
- {
- // iterator protocol
- next() {
- const { value, done } = innerIterator.next();
- return done ? { value, done } : {
- value: isPair ? [wrap2(value[0]), wrap2(value[1])] : wrap2(value),
- done
- };
- }
- }
- );
- };
-}
-function createReadonlyMethod(type) {
- return function(...args) {
- return type === "delete" ? false : type === "clear" ? void 0 : this;
- };
-}
-function createInstrumentations(readonly2, shallow) {
- const instrumentations = {
- get(key) {
- const target = this["__v_raw"];
- const rawTarget = /* @__PURE__ */ toRaw(target);
- const rawKey = /* @__PURE__ */ toRaw(key);
- if (!readonly2) {
- if (hasChanged(key, rawKey)) {
- track(rawTarget, "get", key);
- }
- track(rawTarget, "get", rawKey);
- }
- const { has } = getProto(rawTarget);
- const wrap2 = shallow ? toShallow : readonly2 ? toReadonly : toReactive;
- if (has.call(rawTarget, key)) {
- return wrap2(target.get(key));
- } else if (has.call(rawTarget, rawKey)) {
- return wrap2(target.get(rawKey));
- } else if (target !== rawTarget) {
- target.get(key);
- }
- },
- get size() {
- const target = this["__v_raw"];
- !readonly2 && track(/* @__PURE__ */ toRaw(target), "iterate", ITERATE_KEY);
- return target.size;
- },
- has(key) {
- const target = this["__v_raw"];
- const rawTarget = /* @__PURE__ */ toRaw(target);
- const rawKey = /* @__PURE__ */ toRaw(key);
- if (!readonly2) {
- if (hasChanged(key, rawKey)) {
- track(rawTarget, "has", key);
- }
- track(rawTarget, "has", rawKey);
- }
- return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
- },
- forEach(callback, thisArg) {
- const observed = this;
- const target = observed["__v_raw"];
- const rawTarget = /* @__PURE__ */ toRaw(target);
- const wrap2 = shallow ? toShallow : readonly2 ? toReadonly : toReactive;
- !readonly2 && track(rawTarget, "iterate", ITERATE_KEY);
- return target.forEach((value, key) => {
- return callback.call(thisArg, wrap2(value), wrap2(key), observed);
- });
- }
- };
- extend(
- instrumentations,
- readonly2 ? {
- add: createReadonlyMethod("add"),
- set: createReadonlyMethod("set"),
- delete: createReadonlyMethod("delete"),
- clear: createReadonlyMethod("clear")
- } : {
- add(value) {
- if (!shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) {
- value = /* @__PURE__ */ toRaw(value);
- }
- const target = /* @__PURE__ */ toRaw(this);
- const proto = getProto(target);
- const hadKey = proto.has.call(target, value);
- if (!hadKey) {
- target.add(value);
- trigger(target, "add", value, value);
- }
- return this;
- },
- set(key, value) {
- if (!shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) {
- value = /* @__PURE__ */ toRaw(value);
- }
- const target = /* @__PURE__ */ toRaw(this);
- const { has, get: get2 } = getProto(target);
- let hadKey = has.call(target, key);
- if (!hadKey) {
- key = /* @__PURE__ */ toRaw(key);
- hadKey = has.call(target, key);
- }
- const oldValue = get2.call(target, key);
- target.set(key, value);
- if (!hadKey) {
- trigger(target, "add", key, value);
- } else if (hasChanged(value, oldValue)) {
- trigger(target, "set", key, value);
- }
- return this;
- },
- delete(key) {
- const target = /* @__PURE__ */ toRaw(this);
- const { has, get: get2 } = getProto(target);
- let hadKey = has.call(target, key);
- if (!hadKey) {
- key = /* @__PURE__ */ toRaw(key);
- hadKey = has.call(target, key);
- }
- get2 ? get2.call(target, key) : void 0;
- const result = target.delete(key);
- if (hadKey) {
- trigger(target, "delete", key, void 0);
- }
- return result;
- },
- clear() {
- const target = /* @__PURE__ */ toRaw(this);
- const hadItems = target.size !== 0;
- const result = target.clear();
- if (hadItems) {
- trigger(
- target,
- "clear",
- void 0,
- void 0
- );
- }
- return result;
- }
- }
- );
- const iteratorMethods = [
- "keys",
- "values",
- "entries",
- Symbol.iterator
- ];
- iteratorMethods.forEach((method) => {
- instrumentations[method] = createIterableMethod(method, readonly2, shallow);
- });
- return instrumentations;
-}
-function createInstrumentationGetter(isReadonly2, shallow) {
- const instrumentations = createInstrumentations(isReadonly2, shallow);
- return (target, key, receiver) => {
- if (key === "__v_isReactive") {
- return !isReadonly2;
- } else if (key === "__v_isReadonly") {
- return isReadonly2;
- } else if (key === "__v_raw") {
- return target;
- }
- return Reflect.get(
- hasOwn(instrumentations, key) && key in target ? instrumentations : target,
- key,
- receiver
- );
- };
-}
-const mutableCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(false, false)
-};
-const shallowCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(false, true)
-};
-const readonlyCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(true, false)
-};
-const shallowReadonlyCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(true, true)
-};
-const reactiveMap = /* @__PURE__ */ new WeakMap();
-const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
-const readonlyMap = /* @__PURE__ */ new WeakMap();
-const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
-function targetTypeMap(rawType) {
- switch (rawType) {
- case "Object":
- case "Array":
- return 1;
- case "Map":
- case "Set":
- case "WeakMap":
- case "WeakSet":
- return 2;
- default:
- return 0;
- }
-}
-function getTargetType(value) {
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
-}
-// @__NO_SIDE_EFFECTS__
-function reactive(target) {
- if (/* @__PURE__ */ isReadonly(target)) {
- return target;
- }
- return createReactiveObject(
- target,
- false,
- mutableHandlers,
- mutableCollectionHandlers,
- reactiveMap
- );
-}
-// @__NO_SIDE_EFFECTS__
-function shallowReactive(target) {
- return createReactiveObject(
- target,
- false,
- shallowReactiveHandlers,
- shallowCollectionHandlers,
- shallowReactiveMap
- );
-}
-// @__NO_SIDE_EFFECTS__
-function readonly(target) {
- return createReactiveObject(
- target,
- true,
- readonlyHandlers,
- readonlyCollectionHandlers,
- readonlyMap
- );
-}
-// @__NO_SIDE_EFFECTS__
-function shallowReadonly(target) {
- return createReactiveObject(
- target,
- true,
- shallowReadonlyHandlers,
- shallowReadonlyCollectionHandlers,
- shallowReadonlyMap
- );
-}
-function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
- if (!isObject$1(target)) {
- return target;
- }
- if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
- return target;
- }
- const targetType = getTargetType(target);
- if (targetType === 0) {
- return target;
- }
- const existingProxy = proxyMap.get(target);
- if (existingProxy) {
- return existingProxy;
- }
- const proxy = new Proxy(
- target,
- targetType === 2 ? collectionHandlers : baseHandlers
- );
- proxyMap.set(target, proxy);
- return proxy;
-}
-// @__NO_SIDE_EFFECTS__
-function isReactive(value) {
- if (/* @__PURE__ */ isReadonly(value)) {
- return /* @__PURE__ */ isReactive(value["__v_raw"]);
- }
- return !!(value && value["__v_isReactive"]);
-}
-// @__NO_SIDE_EFFECTS__
-function isReadonly(value) {
- return !!(value && value["__v_isReadonly"]);
-}
-// @__NO_SIDE_EFFECTS__
-function isShallow(value) {
- return !!(value && value["__v_isShallow"]);
-}
-// @__NO_SIDE_EFFECTS__
-function isProxy(value) {
- return value ? !!value["__v_raw"] : false;
-}
-// @__NO_SIDE_EFFECTS__
-function toRaw(observed) {
- const raw = observed && observed["__v_raw"];
- return raw ? /* @__PURE__ */ toRaw(raw) : observed;
-}
-function markRaw(value) {
- if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) {
- def(value, "__v_skip", true);
- }
- return value;
-}
-const toReactive = (value) => isObject$1(value) ? /* @__PURE__ */ reactive(value) : value;
-const toReadonly = (value) => isObject$1(value) ? /* @__PURE__ */ readonly(value) : value;
-// @__NO_SIDE_EFFECTS__
-function isRef(r2) {
- return r2 ? r2["__v_isRef"] === true : false;
-}
-// @__NO_SIDE_EFFECTS__
-function ref(value) {
- return createRef(value, false);
-}
-// @__NO_SIDE_EFFECTS__
-function shallowRef(value) {
- return createRef(value, true);
-}
-function createRef(rawValue, shallow) {
- if (/* @__PURE__ */ isRef(rawValue)) {
- return rawValue;
- }
- return new RefImpl(rawValue, shallow);
-}
-class RefImpl {
- constructor(value, isShallow2) {
- this.dep = new Dep();
- this["__v_isRef"] = true;
- this["__v_isShallow"] = false;
- this._rawValue = isShallow2 ? value : /* @__PURE__ */ toRaw(value);
- this._value = isShallow2 ? value : toReactive(value);
- this["__v_isShallow"] = isShallow2;
- }
- get value() {
- {
- this.dep.track();
- }
- return this._value;
- }
- set value(newValue) {
- const oldValue = this._rawValue;
- const useDirectValue = this["__v_isShallow"] || /* @__PURE__ */ isShallow(newValue) || /* @__PURE__ */ isReadonly(newValue);
- newValue = useDirectValue ? newValue : /* @__PURE__ */ toRaw(newValue);
- if (hasChanged(newValue, oldValue)) {
- this._rawValue = newValue;
- this._value = useDirectValue ? newValue : toReactive(newValue);
- {
- this.dep.trigger();
- }
- }
- }
-}
-function unref(ref2) {
- return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;
-}
-function toValue(source2) {
- return isFunction$2(source2) ? source2() : unref(source2);
-}
-const shallowUnwrapHandlers = {
- get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)),
- set: (target, key, value, receiver) => {
- const oldValue = target[key];
- if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
- oldValue.value = value;
- return true;
- } else {
- return Reflect.set(target, key, value, receiver);
- }
- }
-};
-function proxyRefs(objectWithRefs) {
- return /* @__PURE__ */ isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
-}
-class CustomRefImpl {
- constructor(factory) {
- this["__v_isRef"] = true;
- this._value = void 0;
- const dep = this.dep = new Dep();
- const { get: get2, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));
- this._get = get2;
- this._set = set;
- }
- get value() {
- return this._value = this._get();
- }
- set value(newVal) {
- this._set(newVal);
- }
-}
-function customRef(factory) {
- return new CustomRefImpl(factory);
-}
-class ComputedRefImpl {
- constructor(fn, setter, isSSR) {
- this.fn = fn;
- this.setter = setter;
- this._value = void 0;
- this.dep = new Dep(this);
- this.__v_isRef = true;
- this.deps = void 0;
- this.depsTail = void 0;
- this.flags = 16;
- this.globalVersion = globalVersion - 1;
- this.next = void 0;
- this.effect = this;
- this["__v_isReadonly"] = !setter;
- this.isSSR = isSSR;
- }
- /**
- * @internal
- */
- notify() {
- this.flags |= 16;
- if (!(this.flags & 8) && // avoid infinite self recursion
- activeSub !== this) {
- batch(this, true);
- return true;
- }
- }
- get value() {
- const link = this.dep.track();
- refreshComputed(this);
- if (link) {
- link.version = this.dep.version;
- }
- return this._value;
- }
- set value(newValue) {
- if (this.setter) {
- this.setter(newValue);
- }
- }
-}
-// @__NO_SIDE_EFFECTS__
-function computed$1(getterOrOptions, debugOptions, isSSR = false) {
- let getter;
- let setter;
- if (isFunction$2(getterOrOptions)) {
- getter = getterOrOptions;
- } else {
- getter = getterOrOptions.get;
- setter = getterOrOptions.set;
- }
- const cRef = new ComputedRefImpl(getter, setter, isSSR);
- return cRef;
-}
-const INITIAL_WATCHER_VALUE = {};
-const cleanupMap = /* @__PURE__ */ new WeakMap();
-let activeWatcher = void 0;
-function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {
- if (owner) {
- let cleanups = cleanupMap.get(owner);
- if (!cleanups) cleanupMap.set(owner, cleanups = []);
- cleanups.push(cleanupFn);
- }
-}
-function watch$1(source2, cb, options = EMPTY_OBJ) {
- const { immediate, deep, once, scheduler, augmentJob, call } = options;
- const reactiveGetter = (source22) => {
- if (deep) return source22;
- if (/* @__PURE__ */ isShallow(source22) || deep === false || deep === 0)
- return traverse(source22, 1);
- return traverse(source22);
- };
- let effect2;
- let getter;
- let cleanup;
- let boundCleanup;
- let forceTrigger = false;
- let isMultiSource = false;
- if (/* @__PURE__ */ isRef(source2)) {
- getter = () => source2.value;
- forceTrigger = /* @__PURE__ */ isShallow(source2);
- } else if (/* @__PURE__ */ isReactive(source2)) {
- getter = () => reactiveGetter(source2);
- forceTrigger = true;
- } else if (isArray$1(source2)) {
- isMultiSource = true;
- forceTrigger = source2.some((s) => /* @__PURE__ */ isReactive(s) || /* @__PURE__ */ isShallow(s));
- getter = () => source2.map((s) => {
- if (/* @__PURE__ */ isRef(s)) {
- return s.value;
- } else if (/* @__PURE__ */ isReactive(s)) {
- return reactiveGetter(s);
- } else if (isFunction$2(s)) {
- return call ? call(s, 2) : s();
- } else ;
- });
- } else if (isFunction$2(source2)) {
- if (cb) {
- getter = call ? () => call(source2, 2) : source2;
- } else {
- getter = () => {
- if (cleanup) {
- pauseTracking();
- try {
- cleanup();
- } finally {
- resetTracking();
- }
- }
- const currentEffect = activeWatcher;
- activeWatcher = effect2;
- try {
- return call ? call(source2, 3, [boundCleanup]) : source2(boundCleanup);
- } finally {
- activeWatcher = currentEffect;
- }
- };
- }
- } else {
- getter = NOOP;
- }
- if (cb && deep) {
- const baseGetter = getter;
- const depth = deep === true ? Infinity : deep;
- getter = () => traverse(baseGetter(), depth);
- }
- const scope = getCurrentScope();
- const watchHandle = () => {
- effect2.stop();
- if (scope && scope.active) {
- remove(scope.effects, effect2);
- }
- };
- if (once && cb) {
- const _cb = cb;
- cb = (...args) => {
- _cb(...args);
- watchHandle();
- };
- }
- let oldValue = isMultiSource ? new Array(source2.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
- const job = (immediateFirstRun) => {
- if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) {
- return;
- }
- if (cb) {
- const newValue = effect2.run();
- if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
- if (cleanup) {
- cleanup();
- }
- const currentWatcher = activeWatcher;
- activeWatcher = effect2;
- try {
- const args = [
- newValue,
- // pass undefined as the old value when it's changed for the first time
- oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
- boundCleanup
- ];
- oldValue = newValue;
- call ? call(cb, 3, args) : (
- // @ts-expect-error
- cb(...args)
- );
- } finally {
- activeWatcher = currentWatcher;
- }
- }
- } else {
- effect2.run();
- }
- };
- if (augmentJob) {
- augmentJob(job);
- }
- effect2 = new ReactiveEffect(getter);
- effect2.scheduler = scheduler ? () => scheduler(job, false) : job;
- boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2);
- cleanup = effect2.onStop = () => {
- const cleanups = cleanupMap.get(effect2);
- if (cleanups) {
- if (call) {
- call(cleanups, 4);
- } else {
- for (const cleanup2 of cleanups) cleanup2();
- }
- cleanupMap.delete(effect2);
- }
- };
- if (cb) {
- if (immediate) {
- job(true);
- } else {
- oldValue = effect2.run();
- }
- } else if (scheduler) {
- scheduler(job.bind(null, true), true);
- } else {
- effect2.run();
- }
- watchHandle.pause = effect2.pause.bind(effect2);
- watchHandle.resume = effect2.resume.bind(effect2);
- watchHandle.stop = watchHandle;
- return watchHandle;
-}
-function traverse(value, depth = Infinity, seen) {
- if (depth <= 0 || !isObject$1(value) || value["__v_skip"]) {
- return value;
- }
- seen = seen || /* @__PURE__ */ new Map();
- if ((seen.get(value) || 0) >= depth) {
- return value;
- }
- seen.set(value, depth);
- depth--;
- if (/* @__PURE__ */ isRef(value)) {
- traverse(value.value, depth, seen);
- } else if (isArray$1(value)) {
- for (let i = 0; i < value.length; i++) {
- traverse(value[i], depth, seen);
- }
- } else if (isSet(value) || isMap(value)) {
- value.forEach((v) => {
- traverse(v, depth, seen);
- });
- } else if (isPlainObject$1(value)) {
- for (const key in value) {
- traverse(value[key], depth, seen);
- }
- for (const key of Object.getOwnPropertySymbols(value)) {
- if (Object.prototype.propertyIsEnumerable.call(value, key)) {
- traverse(value[key], depth, seen);
- }
- }
- }
- return value;
-}
-const stack = [];
-let isWarning = false;
-function warn$1(msg, ...args) {
- if (isWarning) return;
- isWarning = true;
- pauseTracking();
- const instance = stack.length ? stack[stack.length - 1].component : null;
- const appWarnHandler = instance && instance.appContext.config.warnHandler;
- const trace = getComponentTrace();
- if (appWarnHandler) {
- callWithErrorHandling(
- appWarnHandler,
- instance,
- 11,
- [
- // eslint-disable-next-line no-restricted-syntax
- msg + args.map((a) => {
- var _a, _b;
- return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
- }).join(""),
- instance && instance.proxy,
- trace.map(
- ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
- ).join("\n"),
- trace
- ]
- );
- } else {
- const warnArgs = [`[Vue warn]: ${msg}`, ...args];
- if (trace.length && // avoid spamming console during tests
- true) {
- warnArgs.push(`
-`, ...formatTrace(trace));
- }
- console.warn(...warnArgs);
- }
- resetTracking();
- isWarning = false;
-}
-function getComponentTrace() {
- let currentVNode = stack[stack.length - 1];
- if (!currentVNode) {
- return [];
- }
- const normalizedStack = [];
- while (currentVNode) {
- const last = normalizedStack[0];
- if (last && last.vnode === currentVNode) {
- last.recurseCount++;
- } else {
- normalizedStack.push({
- vnode: currentVNode,
- recurseCount: 0
- });
- }
- const parentInstance = currentVNode.component && currentVNode.component.parent;
- currentVNode = parentInstance && parentInstance.vnode;
- }
- return normalizedStack;
-}
-function formatTrace(trace) {
- const logs = [];
- trace.forEach((entry, i) => {
- logs.push(...i === 0 ? [] : [`
-`], ...formatTraceEntry(entry));
- });
- return logs;
-}
-function formatTraceEntry({ vnode, recurseCount }) {
- const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
- const isRoot = vnode.component ? vnode.component.parent == null : false;
- const open = ` at <${formatComponentName(
- vnode.component,
- vnode.type,
- isRoot
- )}`;
- const close2 = `>` + postfix;
- return vnode.props ? [open, ...formatProps(vnode.props), close2] : [open + close2];
-}
-function formatProps(props) {
- const res = [];
- const keys2 = Object.keys(props);
- keys2.slice(0, 3).forEach((key) => {
- res.push(...formatProp(key, props[key]));
- });
- if (keys2.length > 3) {
- res.push(` ...`);
- }
- return res;
-}
-function formatProp(key, value, raw) {
- if (isString(value)) {
- value = JSON.stringify(value);
- return raw ? value : [`${key}=${value}`];
- } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
- return raw ? value : [`${key}=${value}`];
- } else if (/* @__PURE__ */ isRef(value)) {
- value = formatProp(key, /* @__PURE__ */ toRaw(value.value), true);
- return raw ? value : [`${key}=Ref<`, value, `>`];
- } else if (isFunction$2(value)) {
- return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
- } else {
- value = /* @__PURE__ */ toRaw(value);
- return raw ? value : [`${key}=`, value];
- }
-}
-function callWithErrorHandling(fn, instance, type, args) {
- try {
- return args ? fn(...args) : fn();
- } catch (err) {
- handleError(err, instance, type);
- }
-}
-function callWithAsyncErrorHandling(fn, instance, type, args) {
- if (isFunction$2(fn)) {
- const res = callWithErrorHandling(fn, instance, type, args);
- if (res && isPromise(res)) {
- res.catch((err) => {
- handleError(err, instance, type);
- });
- }
- return res;
- }
- if (isArray$1(fn)) {
- const values = [];
- for (let i = 0; i < fn.length; i++) {
- values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
- }
- return values;
- }
-}
-function handleError(err, instance, type, throwInDev = true) {
- const contextVNode = instance ? instance.vnode : null;
- const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;
- if (instance) {
- let cur = instance.parent;
- const exposedInstance = instance.proxy;
- const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`;
- while (cur) {
- const errorCapturedHooks = cur.ec;
- if (errorCapturedHooks) {
- for (let i = 0; i < errorCapturedHooks.length; i++) {
- if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
- return;
- }
- }
- }
- cur = cur.parent;
- }
- if (errorHandler) {
- pauseTracking();
- callWithErrorHandling(errorHandler, null, 10, [
- err,
- exposedInstance,
- errorInfo
- ]);
- resetTracking();
- return;
- }
- }
- logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);
-}
-function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {
- if (throwInProd) {
- throw err;
- } else {
- console.error(err);
- }
-}
-const queue = [];
-let flushIndex = -1;
-const pendingPostFlushCbs = [];
-let activePostFlushCbs = null;
-let postFlushIndex = 0;
-const resolvedPromise = /* @__PURE__ */ Promise.resolve();
-let currentFlushPromise = null;
-function nextTick(fn) {
- const p2 = currentFlushPromise || resolvedPromise;
- return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
-}
-function findInsertionIndex$1(id) {
- let start = flushIndex + 1;
- let end = queue.length;
- while (start < end) {
- const middle = start + end >>> 1;
- const middleJob = queue[middle];
- const middleJobId = getId(middleJob);
- if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {
- start = middle + 1;
- } else {
- end = middle;
- }
- }
- return start;
-}
-function queueJob(job) {
- if (!(job.flags & 1)) {
- const jobId = getId(job);
- const lastJob = queue[queue.length - 1];
- if (!lastJob || // fast path when the job id is larger than the tail
- !(job.flags & 2) && jobId >= getId(lastJob)) {
- queue.push(job);
- } else {
- queue.splice(findInsertionIndex$1(jobId), 0, job);
- }
- job.flags |= 1;
- queueFlush();
- }
-}
-function queueFlush() {
- if (!currentFlushPromise) {
- currentFlushPromise = resolvedPromise.then(flushJobs);
- }
-}
-function queuePostFlushCb(cb) {
- if (!isArray$1(cb)) {
- if (activePostFlushCbs && cb.id === -1) {
- activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);
- } else if (!(cb.flags & 1)) {
- pendingPostFlushCbs.push(cb);
- cb.flags |= 1;
- }
- } else {
- pendingPostFlushCbs.push(...cb);
- }
- queueFlush();
-}
-function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
- for (; i < queue.length; i++) {
- const cb = queue[i];
- if (cb && cb.flags & 2) {
- if (instance && cb.id !== instance.uid) {
- continue;
- }
- queue.splice(i, 1);
- i--;
- if (cb.flags & 4) {
- cb.flags &= -2;
- }
- cb();
- if (!(cb.flags & 4)) {
- cb.flags &= -2;
- }
- }
- }
-}
-function flushPostFlushCbs(seen) {
- if (pendingPostFlushCbs.length) {
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
- (a, b) => getId(a) - getId(b)
- );
- pendingPostFlushCbs.length = 0;
- if (activePostFlushCbs) {
- activePostFlushCbs.push(...deduped);
- return;
- }
- activePostFlushCbs = deduped;
- for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
- const cb = activePostFlushCbs[postFlushIndex];
- if (cb.flags & 4) {
- cb.flags &= -2;
- }
- if (!(cb.flags & 8)) cb();
- cb.flags &= -2;
- }
- activePostFlushCbs = null;
- postFlushIndex = 0;
- }
-}
-const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
-function flushJobs(seen) {
- try {
- for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
- const job = queue[flushIndex];
- if (job && !(job.flags & 8)) {
- if (false) ;
- if (job.flags & 4) {
- job.flags &= ~1;
- }
- callWithErrorHandling(
- job,
- job.i,
- job.i ? 15 : 14
- );
- if (!(job.flags & 4)) {
- job.flags &= ~1;
- }
- }
- }
- } finally {
- for (; flushIndex < queue.length; flushIndex++) {
- const job = queue[flushIndex];
- if (job) {
- job.flags &= -2;
- }
- }
- flushIndex = -1;
- queue.length = 0;
- flushPostFlushCbs();
- currentFlushPromise = null;
- if (queue.length || pendingPostFlushCbs.length) {
- flushJobs();
- }
- }
-}
-let currentRenderingInstance = null;
-let currentScopeId = null;
-function setCurrentRenderingInstance(instance) {
- const prev = currentRenderingInstance;
- currentRenderingInstance = instance;
- currentScopeId = instance && instance.type.__scopeId || null;
- return prev;
-}
-function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
- if (!ctx) return fn;
- if (fn._n) {
- return fn;
- }
- const renderFnWithContext = (...args) => {
- if (renderFnWithContext._d) {
- setBlockTracking(-1);
- }
- const prevInstance = setCurrentRenderingInstance(ctx);
- let res;
- try {
- res = fn(...args);
- } finally {
- setCurrentRenderingInstance(prevInstance);
- if (renderFnWithContext._d) {
- setBlockTracking(1);
- }
- }
- return res;
- };
- renderFnWithContext._n = true;
- renderFnWithContext._c = true;
- renderFnWithContext._d = true;
- return renderFnWithContext;
-}
-function withDirectives(vnode, directives) {
- if (currentRenderingInstance === null) {
- return vnode;
- }
- const instance = getComponentPublicInstance(currentRenderingInstance);
- const bindings = vnode.dirs || (vnode.dirs = []);
- for (let i = 0; i < directives.length; i++) {
- let [dir, value, arg, modifiers2 = EMPTY_OBJ] = directives[i];
- if (dir) {
- if (isFunction$2(dir)) {
- dir = {
- mounted: dir,
- updated: dir
- };
- }
- if (dir.deep) {
- traverse(value);
- }
- bindings.push({
- dir,
- instance,
- value,
- oldValue: void 0,
- arg,
- modifiers: modifiers2
- });
- }
- }
- return vnode;
-}
-function invokeDirectiveHook(vnode, prevVNode, instance, name) {
- const bindings = vnode.dirs;
- const oldBindings = prevVNode && prevVNode.dirs;
- for (let i = 0; i < bindings.length; i++) {
- const binding = bindings[i];
- if (oldBindings) {
- binding.oldValue = oldBindings[i].value;
- }
- let hook = binding.dir[name];
- if (hook) {
- pauseTracking();
- callWithAsyncErrorHandling(hook, instance, 8, [
- vnode.el,
- binding,
- vnode,
- prevVNode
- ]);
- resetTracking();
- }
- }
-}
-function provide(key, value) {
- if (currentInstance) {
- let provides = currentInstance.provides;
- const parentProvides = currentInstance.parent && currentInstance.parent.provides;
- if (parentProvides === provides) {
- provides = currentInstance.provides = Object.create(parentProvides);
- }
- provides[key] = value;
- }
-}
-function inject(key, defaultValue, treatDefaultAsFactory = false) {
- const instance = getCurrentInstance();
- if (instance || currentApp) {
- let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
- if (provides && key in provides) {
- return provides[key];
- } else if (arguments.length > 1) {
- return treatDefaultAsFactory && isFunction$2(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
- } else ;
- }
-}
-function hasInjectionContext() {
- return !!(getCurrentInstance() || currentApp);
-}
-const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx");
-const useSSRContext = () => {
- {
- const ctx = inject(ssrContextKey);
- return ctx;
- }
-};
-function watchEffect(effect2, options) {
- return doWatch(effect2, null, options);
-}
-function watch(source2, cb, options) {
- return doWatch(source2, cb, options);
-}
-function doWatch(source2, cb, options = EMPTY_OBJ) {
- const { immediate, deep, flush, once } = options;
- const baseWatchOptions = extend({}, options);
- const runsImmediately = cb && immediate || !cb && flush !== "post";
- let ssrCleanup;
- if (isInSSRComponentSetup) {
- if (flush === "sync") {
- const ctx = useSSRContext();
- ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
- } else if (!runsImmediately) {
- const watchStopHandle = () => {
- };
- watchStopHandle.stop = NOOP;
- watchStopHandle.resume = NOOP;
- watchStopHandle.pause = NOOP;
- return watchStopHandle;
- }
- }
- const instance = currentInstance;
- baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
- let isPre = false;
- if (flush === "post") {
- baseWatchOptions.scheduler = (job) => {
- queuePostRenderEffect(job, instance && instance.suspense);
- };
- } else if (flush !== "sync") {
- isPre = true;
- baseWatchOptions.scheduler = (job, isFirstRun) => {
- if (isFirstRun) {
- job();
- } else {
- queueJob(job);
- }
- };
- }
- baseWatchOptions.augmentJob = (job) => {
- if (cb) {
- job.flags |= 4;
- }
- if (isPre) {
- job.flags |= 2;
- if (instance) {
- job.id = instance.uid;
- job.i = instance;
- }
- }
- };
- const watchHandle = watch$1(source2, cb, baseWatchOptions);
- if (isInSSRComponentSetup) {
- if (ssrCleanup) {
- ssrCleanup.push(watchHandle);
- } else if (runsImmediately) {
- watchHandle();
- }
- }
- return watchHandle;
-}
-function instanceWatch(source2, value, options) {
- const publicThis = this.proxy;
- const getter = isString(source2) ? source2.includes(".") ? createPathGetter(publicThis, source2) : () => publicThis[source2] : source2.bind(publicThis, publicThis);
- let cb;
- if (isFunction$2(value)) {
- cb = value;
- } else {
- cb = value.handler;
- options = value;
- }
- const reset2 = setCurrentInstance(this);
- const res = doWatch(getter, cb.bind(publicThis), options);
- reset2();
- return res;
-}
-function createPathGetter(ctx, path) {
- const segments = path.split(".");
- return () => {
- let cur = ctx;
- for (let i = 0; i < segments.length && cur; i++) {
- cur = cur[segments[i]];
- }
- return cur;
- };
-}
-const TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
-const isTeleport = (type) => type.__isTeleport;
-const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb");
-const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
-function useTransitionState() {
- const state = {
- isMounted: false,
- isLeaving: false,
- isUnmounting: false,
- leavingVNodes: /* @__PURE__ */ new Map()
- };
- onMounted(() => {
- state.isMounted = true;
- });
- onBeforeUnmount(() => {
- state.isUnmounting = true;
- });
- return state;
-}
-const TransitionHookValidator = [Function, Array];
-const BaseTransitionPropsValidators = {
- mode: String,
- appear: Boolean,
- persisted: Boolean,
- // enter
- onBeforeEnter: TransitionHookValidator,
- onEnter: TransitionHookValidator,
- onAfterEnter: TransitionHookValidator,
- onEnterCancelled: TransitionHookValidator,
- // leave
- onBeforeLeave: TransitionHookValidator,
- onLeave: TransitionHookValidator,
- onAfterLeave: TransitionHookValidator,
- onLeaveCancelled: TransitionHookValidator,
- // appear
- onBeforeAppear: TransitionHookValidator,
- onAppear: TransitionHookValidator,
- onAfterAppear: TransitionHookValidator,
- onAppearCancelled: TransitionHookValidator
-};
-const recursiveGetSubtree = (instance) => {
- const subTree = instance.subTree;
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
-};
-const BaseTransitionImpl = {
- name: `BaseTransition`,
- props: BaseTransitionPropsValidators,
- setup(props, { slots }) {
- const instance = getCurrentInstance();
- const state = useTransitionState();
- return () => {
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
- if (!children || !children.length) {
- return;
- }
- const child = findNonCommentChild(children);
- const rawProps = /* @__PURE__ */ toRaw(props);
- const { mode } = rawProps;
- if (state.isLeaving) {
- return emptyPlaceholder(child);
- }
- const innerChild = getInnerChild$1(child);
- if (!innerChild) {
- return emptyPlaceholder(child);
- }
- let enterHooks = resolveTransitionHooks(
- innerChild,
- rawProps,
- state,
- instance,
- // #11061, ensure enterHooks is fresh after clone
- (hooks) => enterHooks = hooks
- );
- if (innerChild.type !== Comment) {
- setTransitionHooks(innerChild, enterHooks);
- }
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
- let leavingHooks = resolveTransitionHooks(
- oldInnerChild,
- rawProps,
- state,
- instance
- );
- setTransitionHooks(oldInnerChild, leavingHooks);
- if (mode === "out-in" && innerChild.type !== Comment) {
- state.isLeaving = true;
- leavingHooks.afterLeave = () => {
- state.isLeaving = false;
- if (!(instance.job.flags & 8)) {
- instance.update();
- }
- delete leavingHooks.afterLeave;
- oldInnerChild = void 0;
- };
- return emptyPlaceholder(child);
- } else if (mode === "in-out" && innerChild.type !== Comment) {
- leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
- const leavingVNodesCache = getLeavingNodesForType(
- state,
- oldInnerChild
- );
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
- el[leaveCbKey] = () => {
- earlyRemove();
- el[leaveCbKey] = void 0;
- delete enterHooks.delayedLeave;
- oldInnerChild = void 0;
- };
- enterHooks.delayedLeave = () => {
- delayedLeave();
- delete enterHooks.delayedLeave;
- oldInnerChild = void 0;
- };
- };
- } else {
- oldInnerChild = void 0;
- }
- } else if (oldInnerChild) {
- oldInnerChild = void 0;
- }
- return child;
- };
- }
-};
-function findNonCommentChild(children) {
- let child = children[0];
- if (children.length > 1) {
- for (const c2 of children) {
- if (c2.type !== Comment) {
- child = c2;
- break;
- }
- }
- }
- return child;
-}
-const BaseTransition = BaseTransitionImpl;
-function getLeavingNodesForType(state, vnode) {
- const { leavingVNodes } = state;
- let leavingVNodesCache = leavingVNodes.get(vnode.type);
- if (!leavingVNodesCache) {
- leavingVNodesCache = /* @__PURE__ */ Object.create(null);
- leavingVNodes.set(vnode.type, leavingVNodesCache);
- }
- return leavingVNodesCache;
-}
-function resolveTransitionHooks(vnode, props, state, instance, postClone) {
- const {
- appear,
- mode,
- persisted = false,
- onBeforeEnter,
- onEnter,
- onAfterEnter,
- onEnterCancelled,
- onBeforeLeave,
- onLeave,
- onAfterLeave,
- onLeaveCancelled,
- onBeforeAppear,
- onAppear,
- onAfterAppear,
- onAppearCancelled
- } = props;
- const key = String(vnode.key);
- const leavingVNodesCache = getLeavingNodesForType(state, vnode);
- const callHook2 = (hook, args) => {
- hook && callWithAsyncErrorHandling(
- hook,
- instance,
- 9,
- args
- );
- };
- const callAsyncHook = (hook, args) => {
- const done = args[1];
- callHook2(hook, args);
- if (isArray$1(hook)) {
- if (hook.every((hook2) => hook2.length <= 1)) done();
- } else if (hook.length <= 1) {
- done();
- }
- };
- const hooks = {
- mode,
- persisted,
- beforeEnter(el) {
- let hook = onBeforeEnter;
- if (!state.isMounted) {
- if (appear) {
- hook = onBeforeAppear || onBeforeEnter;
- } else {
- return;
- }
- }
- if (el[leaveCbKey]) {
- el[leaveCbKey](
- true
- /* cancelled */
- );
- }
- const leavingVNode = leavingVNodesCache[key];
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
- leavingVNode.el[leaveCbKey]();
- }
- callHook2(hook, [el]);
- },
- enter(el) {
- let hook = onEnter;
- let afterHook = onAfterEnter;
- let cancelHook = onEnterCancelled;
- if (!state.isMounted) {
- if (appear) {
- hook = onAppear || onEnter;
- afterHook = onAfterAppear || onAfterEnter;
- cancelHook = onAppearCancelled || onEnterCancelled;
- } else {
- return;
- }
- }
- let called = false;
- el[enterCbKey] = (cancelled) => {
- if (called) return;
- called = true;
- if (cancelled) {
- callHook2(cancelHook, [el]);
- } else {
- callHook2(afterHook, [el]);
- }
- if (hooks.delayedLeave) {
- hooks.delayedLeave();
- }
- el[enterCbKey] = void 0;
- };
- const done = el[enterCbKey].bind(null, false);
- if (hook) {
- callAsyncHook(hook, [el, done]);
- } else {
- done();
- }
- },
- leave(el, remove2) {
- const key2 = String(vnode.key);
- if (el[enterCbKey]) {
- el[enterCbKey](
- true
- /* cancelled */
- );
- }
- if (state.isUnmounting) {
- return remove2();
- }
- callHook2(onBeforeLeave, [el]);
- let called = false;
- el[leaveCbKey] = (cancelled) => {
- if (called) return;
- called = true;
- remove2();
- if (cancelled) {
- callHook2(onLeaveCancelled, [el]);
- } else {
- callHook2(onAfterLeave, [el]);
- }
- el[leaveCbKey] = void 0;
- if (leavingVNodesCache[key2] === vnode) {
- delete leavingVNodesCache[key2];
- }
- };
- const done = el[leaveCbKey].bind(null, false);
- leavingVNodesCache[key2] = vnode;
- if (onLeave) {
- callAsyncHook(onLeave, [el, done]);
- } else {
- done();
- }
- },
- clone(vnode2) {
- const hooks2 = resolveTransitionHooks(
- vnode2,
- props,
- state,
- instance,
- postClone
- );
- if (postClone) postClone(hooks2);
- return hooks2;
- }
- };
- return hooks;
-}
-function emptyPlaceholder(vnode) {
- if (isKeepAlive(vnode)) {
- vnode = cloneVNode(vnode);
- vnode.children = null;
- return vnode;
- }
-}
-function getInnerChild$1(vnode) {
- if (!isKeepAlive(vnode)) {
- if (isTeleport(vnode.type) && vnode.children) {
- return findNonCommentChild(vnode.children);
- }
- return vnode;
- }
- if (vnode.component) {
- return vnode.component.subTree;
- }
- const { shapeFlag, children } = vnode;
- if (children) {
- if (shapeFlag & 16) {
- return children[0];
- }
- if (shapeFlag & 32 && isFunction$2(children.default)) {
- return children.default();
- }
- }
-}
-function setTransitionHooks(vnode, hooks) {
- if (vnode.shapeFlag & 6 && vnode.component) {
- vnode.transition = hooks;
- setTransitionHooks(vnode.component.subTree, hooks);
- } else if (vnode.shapeFlag & 128) {
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
- } else {
- vnode.transition = hooks;
- }
-}
-function getTransitionRawChildren(children, keepComment = false, parentKey) {
- let ret = [];
- let keyedFragmentCount = 0;
- for (let i = 0; i < children.length; i++) {
- let child = children[i];
- const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);
- if (child.type === Fragment$1) {
- if (child.patchFlag & 128) keyedFragmentCount++;
- ret = ret.concat(
- getTransitionRawChildren(child.children, keepComment, key)
- );
- } else if (keepComment || child.type !== Comment) {
- ret.push(key != null ? cloneVNode(child, { key }) : child);
- }
- }
- if (keyedFragmentCount > 1) {
- for (let i = 0; i < ret.length; i++) {
- ret[i].patchFlag = -2;
- }
- }
- return ret;
-}
-// @__NO_SIDE_EFFECTS__
-function defineComponent(options, extraOptions) {
- return isFunction$2(options) ? (
- // #8236: extend call and options.name access are considered side-effects
- // by Rollup, so we have to wrap it in a pure-annotated IIFE.
- /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()
- ) : options;
-}
-function markAsyncBoundary(instance) {
- instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0];
-}
-function isTemplateRefKey(refs, key) {
- let desc;
- return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
-}
-const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
-function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
- if (isArray$1(rawRef)) {
- rawRef.forEach(
- (r2, i) => setRef(
- r2,
- oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef),
- parentSuspense,
- vnode,
- isUnmount
- )
- );
- return;
- }
- if (isAsyncWrapper(vnode) && !isUnmount) {
- if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {
- setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
- }
- return;
- }
- const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
- const value = isUnmount ? null : refValue;
- const { i: owner, r: ref3 } = rawRef;
- const oldRef = oldRawRef && oldRawRef.r;
- const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
- const setupState = owner.setupState;
- const rawSetupState = /* @__PURE__ */ toRaw(setupState);
- const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {
- if (isTemplateRefKey(refs, key)) {
- return false;
- }
- return hasOwn(rawSetupState, key);
- };
- const canSetRef = (ref22, key) => {
- if (key && isTemplateRefKey(refs, key)) {
- return false;
- }
- return true;
- };
- if (oldRef != null && oldRef !== ref3) {
- invalidatePendingSetRef(oldRawRef);
- if (isString(oldRef)) {
- refs[oldRef] = null;
- if (canSetSetupRef(oldRef)) {
- setupState[oldRef] = null;
- }
- } else if (/* @__PURE__ */ isRef(oldRef)) {
- const oldRawRefAtom = oldRawRef;
- if (canSetRef(oldRef, oldRawRefAtom.k)) {
- oldRef.value = null;
- }
- if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
- }
- }
- if (isFunction$2(ref3)) {
- callWithErrorHandling(ref3, owner, 12, [value, refs]);
- } else {
- const _isString = isString(ref3);
- const _isRef = /* @__PURE__ */ isRef(ref3);
- if (_isString || _isRef) {
- const doSet = () => {
- if (rawRef.f) {
- const existing = _isString ? canSetSetupRef(ref3) ? setupState[ref3] : refs[ref3] : canSetRef() || !rawRef.k ? ref3.value : refs[rawRef.k];
- if (isUnmount) {
- isArray$1(existing) && remove(existing, refValue);
- } else {
- if (!isArray$1(existing)) {
- if (_isString) {
- refs[ref3] = [refValue];
- if (canSetSetupRef(ref3)) {
- setupState[ref3] = refs[ref3];
- }
- } else {
- const newVal = [refValue];
- if (canSetRef(ref3, rawRef.k)) {
- ref3.value = newVal;
- }
- if (rawRef.k) refs[rawRef.k] = newVal;
- }
- } else if (!existing.includes(refValue)) {
- existing.push(refValue);
- }
- }
- } else if (_isString) {
- refs[ref3] = value;
- if (canSetSetupRef(ref3)) {
- setupState[ref3] = value;
- }
- } else if (_isRef) {
- if (canSetRef(ref3, rawRef.k)) {
- ref3.value = value;
- }
- if (rawRef.k) refs[rawRef.k] = value;
- } else ;
- };
- if (value) {
- const job = () => {
- doSet();
- pendingSetRefMap.delete(rawRef);
- };
- job.id = -1;
- pendingSetRefMap.set(rawRef, job);
- queuePostRenderEffect(job, parentSuspense);
- } else {
- invalidatePendingSetRef(rawRef);
- doSet();
- }
- }
- }
-}
-function invalidatePendingSetRef(rawRef) {
- const pendingSetRef = pendingSetRefMap.get(rawRef);
- if (pendingSetRef) {
- pendingSetRef.flags |= 8;
- pendingSetRefMap.delete(rawRef);
- }
-}
-getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));
-getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));
-const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
-const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
-function onActivated(hook, target) {
- registerKeepAliveHook(hook, "a", target);
-}
-function onDeactivated(hook, target) {
- registerKeepAliveHook(hook, "da", target);
-}
-function registerKeepAliveHook(hook, type, target = currentInstance) {
- const wrappedHook = hook.__wdc || (hook.__wdc = () => {
- let current = target;
- while (current) {
- if (current.isDeactivated) {
- return;
- }
- current = current.parent;
- }
- return hook();
- });
- injectHook(type, wrappedHook, target);
- if (target) {
- let current = target.parent;
- while (current && current.parent) {
- if (isKeepAlive(current.parent.vnode)) {
- injectToKeepAliveRoot(wrappedHook, type, target, current);
- }
- current = current.parent;
- }
- }
-}
-function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
- const injected = injectHook(
- type,
- hook,
- keepAliveRoot,
- true
- /* prepend */
- );
- onUnmounted(() => {
- remove(keepAliveRoot[type], injected);
- }, target);
-}
-function injectHook(type, hook, target = currentInstance, prepend2 = false) {
- if (target) {
- const hooks = target[type] || (target[type] = []);
- const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
- pauseTracking();
- const reset2 = setCurrentInstance(target);
- const res = callWithAsyncErrorHandling(hook, target, type, args);
- reset2();
- resetTracking();
- return res;
- });
- if (prepend2) {
- hooks.unshift(wrappedHook);
- } else {
- hooks.push(wrappedHook);
- }
- return wrappedHook;
- }
-}
-const createHook = (lifecycle) => (hook, target = currentInstance) => {
- if (!isInSSRComponentSetup || lifecycle === "sp") {
- injectHook(lifecycle, (...args) => hook(...args), target);
- }
-};
-const onBeforeMount = createHook("bm");
-const onMounted = createHook("m");
-const onBeforeUpdate = createHook(
- "bu"
-);
-const onUpdated = createHook("u");
-const onBeforeUnmount = createHook(
- "bum"
-);
-const onUnmounted = createHook("um");
-const onServerPrefetch = createHook(
- "sp"
-);
-const onRenderTriggered = createHook("rtg");
-const onRenderTracked = createHook("rtc");
-function onErrorCaptured(hook, target = currentInstance) {
- injectHook("ec", hook, target);
-}
-const COMPONENTS = "components";
-function resolveComponent(name, maybeSelfReference) {
- return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
-}
-const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc");
-function resolveDynamicComponent(component) {
- if (isString(component)) {
- return resolveAsset(COMPONENTS, component, false) || component;
- } else {
- return component || NULL_DYNAMIC_COMPONENT;
- }
-}
-function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
- const instance = currentRenderingInstance || currentInstance;
- if (instance) {
- const Component = instance.type;
- {
- const selfName = getComponentName(
- Component,
- false
- );
- if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
- return Component;
- }
- }
- const res = (
- // local registration
- // check instance[type] first which is resolved for options API
- resolve(instance[type] || Component[type], name) || // global registration
- resolve(instance.appContext[type], name)
- );
- if (!res && maybeSelfReference) {
- return Component;
- }
- return res;
- }
-}
-function resolve(registry, name) {
- return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
-}
-function renderList(source2, renderItem, cache, index2) {
- let ret;
- const cached = cache;
- const sourceIsArray = isArray$1(source2);
- if (sourceIsArray || isString(source2)) {
- const sourceIsReactiveArray = sourceIsArray && /* @__PURE__ */ isReactive(source2);
- let needsWrap = false;
- let isReadonlySource = false;
- if (sourceIsReactiveArray) {
- needsWrap = !/* @__PURE__ */ isShallow(source2);
- isReadonlySource = /* @__PURE__ */ isReadonly(source2);
- source2 = shallowReadArray(source2);
- }
- ret = new Array(source2.length);
- for (let i = 0, l = source2.length; i < l; i++) {
- ret[i] = renderItem(
- needsWrap ? isReadonlySource ? toReadonly(toReactive(source2[i])) : toReactive(source2[i]) : source2[i],
- i,
- void 0,
- cached
- );
- }
- } else if (typeof source2 === "number") {
- ret = new Array(source2);
- for (let i = 0; i < source2; i++) {
- ret[i] = renderItem(i + 1, i, void 0, cached);
- }
- } else if (isObject$1(source2)) {
- if (source2[Symbol.iterator]) {
- ret = Array.from(
- source2,
- (item, i) => renderItem(item, i, void 0, cached)
- );
- } else {
- const keys2 = Object.keys(source2);
- ret = new Array(keys2.length);
- for (let i = 0, l = keys2.length; i < l; i++) {
- const key = keys2[i];
- ret[i] = renderItem(source2[key], key, i, cached);
- }
- }
- } else {
- ret = [];
- }
- return ret;
-}
-const getPublicInstance = (i) => {
- if (!i) return null;
- if (isStatefulComponent(i)) return getComponentPublicInstance(i);
- return getPublicInstance(i.parent);
-};
-const publicPropertiesMap = (
- // Move PURE marker to new line to workaround compiler discarding it
- // due to type annotation
- /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
- $: (i) => i,
- $el: (i) => i.vnode.el,
- $data: (i) => i.data,
- $props: (i) => i.props,
- $attrs: (i) => i.attrs,
- $slots: (i) => i.slots,
- $refs: (i) => i.refs,
- $parent: (i) => getPublicInstance(i.parent),
- $root: (i) => getPublicInstance(i.root),
- $host: (i) => i.ce,
- $emit: (i) => i.emit,
- $options: (i) => resolveMergedOptions(i),
- $forceUpdate: (i) => i.f || (i.f = () => {
- queueJob(i.update);
- }),
- $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
- $watch: (i) => instanceWatch.bind(i)
- })
-);
-const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
-const PublicInstanceProxyHandlers = {
- get({ _: instance }, key) {
- if (key === "__v_skip") {
- return true;
- }
- const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
- if (key[0] !== "$") {
- const n = accessCache[key];
- if (n !== void 0) {
- switch (n) {
- case 1:
- return setupState[key];
- case 2:
- return data[key];
- case 4:
- return ctx[key];
- case 3:
- return props[key];
- }
- } else if (hasSetupBinding(setupState, key)) {
- accessCache[key] = 1;
- return setupState[key];
- } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
- accessCache[key] = 2;
- return data[key];
- } else if (hasOwn(props, key)) {
- accessCache[key] = 3;
- return props[key];
- } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
- accessCache[key] = 4;
- return ctx[key];
- } else if (shouldCacheAccess) {
- accessCache[key] = 0;
- }
- }
- const publicGetter = publicPropertiesMap[key];
- let cssModule, globalProperties;
- if (publicGetter) {
- if (key === "$attrs") {
- track(instance.attrs, "get", "");
- }
- return publicGetter(instance);
- } else if (
- // css module (injected by vue-loader)
- (cssModule = type.__cssModules) && (cssModule = cssModule[key])
- ) {
- return cssModule;
- } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
- accessCache[key] = 4;
- return ctx[key];
- } else if (
- // global properties
- globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)
- ) {
- {
- return globalProperties[key];
- }
- } else ;
- },
- set({ _: instance }, key, value) {
- const { data, setupState, ctx } = instance;
- if (hasSetupBinding(setupState, key)) {
- setupState[key] = value;
- return true;
- } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
- data[key] = value;
- return true;
- } else if (hasOwn(instance.props, key)) {
- return false;
- }
- if (key[0] === "$" && key.slice(1) in instance) {
- return false;
- } else {
- {
- ctx[key] = value;
- }
- }
- return true;
- },
- has({
- _: { data, setupState, accessCache, ctx, appContext, props, type }
- }, key) {
- let cssModules;
- return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
- },
- defineProperty(target, key, descriptor) {
- if (descriptor.get != null) {
- target._.accessCache[key] = 0;
- } else if (hasOwn(descriptor, "value")) {
- this.set(target, key, descriptor.value, null);
- }
- return Reflect.defineProperty(target, key, descriptor);
- }
-};
-function normalizePropsOrEmits(props) {
- return isArray$1(props) ? props.reduce(
- (normalized, p2) => (normalized[p2] = null, normalized),
- {}
- ) : props;
-}
-let shouldCacheAccess = true;
-function applyOptions(instance) {
- const options = resolveMergedOptions(instance);
- const publicThis = instance.proxy;
- const ctx = instance.ctx;
- shouldCacheAccess = false;
- if (options.beforeCreate) {
- callHook$1(options.beforeCreate, instance, "bc");
- }
- const {
- // state
- data: dataOptions,
- computed: computedOptions,
- methods,
- watch: watchOptions,
- provide: provideOptions,
- inject: injectOptions,
- // lifecycle
- created,
- beforeMount,
- mounted,
- beforeUpdate,
- updated,
- activated,
- deactivated,
- beforeDestroy,
- beforeUnmount,
- destroyed,
- unmounted,
- render,
- renderTracked,
- renderTriggered,
- errorCaptured,
- serverPrefetch,
- // public API
- expose,
- inheritAttrs,
- // assets
- components,
- directives,
- filters
- } = options;
- const checkDuplicateProperties = null;
- if (injectOptions) {
- resolveInjections(injectOptions, ctx, checkDuplicateProperties);
- }
- if (methods) {
- for (const key in methods) {
- const methodHandler = methods[key];
- if (isFunction$2(methodHandler)) {
- {
- ctx[key] = methodHandler.bind(publicThis);
- }
- }
- }
- }
- if (dataOptions) {
- const data = dataOptions.call(publicThis, publicThis);
- if (!isObject$1(data)) ;
- else {
- instance.data = /* @__PURE__ */ reactive(data);
- }
- }
- shouldCacheAccess = true;
- if (computedOptions) {
- for (const key in computedOptions) {
- const opt = computedOptions[key];
- const get2 = isFunction$2(opt) ? opt.bind(publicThis, publicThis) : isFunction$2(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
- const set = !isFunction$2(opt) && isFunction$2(opt.set) ? opt.set.bind(publicThis) : NOOP;
- const c2 = computed({
- get: get2,
- set
- });
- Object.defineProperty(ctx, key, {
- enumerable: true,
- configurable: true,
- get: () => c2.value,
- set: (v) => c2.value = v
- });
- }
- }
- if (watchOptions) {
- for (const key in watchOptions) {
- createWatcher(watchOptions[key], ctx, publicThis, key);
- }
- }
- if (provideOptions) {
- const provides = isFunction$2(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
- Reflect.ownKeys(provides).forEach((key) => {
- provide(key, provides[key]);
- });
- }
- if (created) {
- callHook$1(created, instance, "c");
- }
- function registerLifecycleHook(register, hook) {
- if (isArray$1(hook)) {
- hook.forEach((_hook) => register(_hook.bind(publicThis)));
- } else if (hook) {
- register(hook.bind(publicThis));
- }
- }
- registerLifecycleHook(onBeforeMount, beforeMount);
- registerLifecycleHook(onMounted, mounted);
- registerLifecycleHook(onBeforeUpdate, beforeUpdate);
- registerLifecycleHook(onUpdated, updated);
- registerLifecycleHook(onActivated, activated);
- registerLifecycleHook(onDeactivated, deactivated);
- registerLifecycleHook(onErrorCaptured, errorCaptured);
- registerLifecycleHook(onRenderTracked, renderTracked);
- registerLifecycleHook(onRenderTriggered, renderTriggered);
- registerLifecycleHook(onBeforeUnmount, beforeUnmount);
- registerLifecycleHook(onUnmounted, unmounted);
- registerLifecycleHook(onServerPrefetch, serverPrefetch);
- if (isArray$1(expose)) {
- if (expose.length) {
- const exposed = instance.exposed || (instance.exposed = {});
- expose.forEach((key) => {
- Object.defineProperty(exposed, key, {
- get: () => publicThis[key],
- set: (val) => publicThis[key] = val,
- enumerable: true
- });
- });
- } else if (!instance.exposed) {
- instance.exposed = {};
- }
- }
- if (render && instance.render === NOOP) {
- instance.render = render;
- }
- if (inheritAttrs != null) {
- instance.inheritAttrs = inheritAttrs;
- }
- if (components) instance.components = components;
- if (directives) instance.directives = directives;
- if (serverPrefetch) {
- markAsyncBoundary(instance);
- }
-}
-function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {
- if (isArray$1(injectOptions)) {
- injectOptions = normalizeInject(injectOptions);
- }
- for (const key in injectOptions) {
- const opt = injectOptions[key];
- let injected;
- if (isObject$1(opt)) {
- if ("default" in opt) {
- injected = inject(
- opt.from || key,
- opt.default,
- true
- );
- } else {
- injected = inject(opt.from || key);
- }
- } else {
- injected = inject(opt);
- }
- if (/* @__PURE__ */ isRef(injected)) {
- Object.defineProperty(ctx, key, {
- enumerable: true,
- configurable: true,
- get: () => injected.value,
- set: (v) => injected.value = v
- });
- } else {
- ctx[key] = injected;
- }
- }
-}
-function callHook$1(hook, instance, type) {
- callWithAsyncErrorHandling(
- isArray$1(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy),
- instance,
- type
- );
-}
-function createWatcher(raw, ctx, publicThis, key) {
- let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
- if (isString(raw)) {
- const handler = ctx[raw];
- if (isFunction$2(handler)) {
- {
- watch(getter, handler);
- }
- }
- } else if (isFunction$2(raw)) {
- {
- watch(getter, raw.bind(publicThis));
- }
- } else if (isObject$1(raw)) {
- if (isArray$1(raw)) {
- raw.forEach((r2) => createWatcher(r2, ctx, publicThis, key));
- } else {
- const handler = isFunction$2(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
- if (isFunction$2(handler)) {
- watch(getter, handler, raw);
- }
- }
- } else ;
-}
-function resolveMergedOptions(instance) {
- const base2 = instance.type;
- const { mixins, extends: extendsOptions } = base2;
- const {
- mixins: globalMixins,
- optionsCache: cache,
- config: { optionMergeStrategies }
- } = instance.appContext;
- const cached = cache.get(base2);
- let resolved;
- if (cached) {
- resolved = cached;
- } else if (!globalMixins.length && !mixins && !extendsOptions) {
- {
- resolved = base2;
- }
- } else {
- resolved = {};
- if (globalMixins.length) {
- globalMixins.forEach(
- (m) => mergeOptions$1(resolved, m, optionMergeStrategies, true)
- );
- }
- mergeOptions$1(resolved, base2, optionMergeStrategies);
- }
- if (isObject$1(base2)) {
- cache.set(base2, resolved);
- }
- return resolved;
-}
-function mergeOptions$1(to, from2, strats, asMixin = false) {
- const { mixins, extends: extendsOptions } = from2;
- if (extendsOptions) {
- mergeOptions$1(to, extendsOptions, strats, true);
- }
- if (mixins) {
- mixins.forEach(
- (m) => mergeOptions$1(to, m, strats, true)
- );
- }
- for (const key in from2) {
- if (asMixin && key === "expose") ;
- else {
- const strat = internalOptionMergeStrats[key] || strats && strats[key];
- to[key] = strat ? strat(to[key], from2[key]) : from2[key];
- }
- }
- return to;
-}
-const internalOptionMergeStrats = {
- data: mergeDataFn,
- props: mergeEmitsOrPropsOptions,
- emits: mergeEmitsOrPropsOptions,
- // objects
- methods: mergeObjectOptions,
- computed: mergeObjectOptions,
- // lifecycle
- beforeCreate: mergeAsArray,
- created: mergeAsArray,
- beforeMount: mergeAsArray,
- mounted: mergeAsArray,
- beforeUpdate: mergeAsArray,
- updated: mergeAsArray,
- beforeDestroy: mergeAsArray,
- beforeUnmount: mergeAsArray,
- destroyed: mergeAsArray,
- unmounted: mergeAsArray,
- activated: mergeAsArray,
- deactivated: mergeAsArray,
- errorCaptured: mergeAsArray,
- serverPrefetch: mergeAsArray,
- // assets
- components: mergeObjectOptions,
- directives: mergeObjectOptions,
- // watch
- watch: mergeWatchOptions,
- // provide / inject
- provide: mergeDataFn,
- inject: mergeInject
-};
-function mergeDataFn(to, from2) {
- if (!from2) {
- return to;
- }
- if (!to) {
- return from2;
- }
- return function mergedDataFn() {
- return extend(
- isFunction$2(to) ? to.call(this, this) : to,
- isFunction$2(from2) ? from2.call(this, this) : from2
- );
- };
-}
-function mergeInject(to, from2) {
- return mergeObjectOptions(normalizeInject(to), normalizeInject(from2));
-}
-function normalizeInject(raw) {
- if (isArray$1(raw)) {
- const res = {};
- for (let i = 0; i < raw.length; i++) {
- res[raw[i]] = raw[i];
- }
- return res;
- }
- return raw;
-}
-function mergeAsArray(to, from2) {
- return to ? [...new Set([].concat(to, from2))] : from2;
-}
-function mergeObjectOptions(to, from2) {
- return to ? extend(/* @__PURE__ */ Object.create(null), to, from2) : from2;
-}
-function mergeEmitsOrPropsOptions(to, from2) {
- if (to) {
- if (isArray$1(to) && isArray$1(from2)) {
- return [.../* @__PURE__ */ new Set([...to, ...from2])];
- }
- return extend(
- /* @__PURE__ */ Object.create(null),
- normalizePropsOrEmits(to),
- normalizePropsOrEmits(from2 != null ? from2 : {})
- );
- } else {
- return from2;
- }
-}
-function mergeWatchOptions(to, from2) {
- if (!to) return from2;
- if (!from2) return to;
- const merged = extend(/* @__PURE__ */ Object.create(null), to);
- for (const key in from2) {
- merged[key] = mergeAsArray(to[key], from2[key]);
- }
- return merged;
-}
-function createAppContext() {
- return {
- app: null,
- config: {
- isNativeTag: NO,
- performance: false,
- globalProperties: {},
- optionMergeStrategies: {},
- errorHandler: void 0,
- warnHandler: void 0,
- compilerOptions: {}
- },
- mixins: [],
- components: {},
- directives: {},
- provides: /* @__PURE__ */ Object.create(null),
- optionsCache: /* @__PURE__ */ new WeakMap(),
- propsCache: /* @__PURE__ */ new WeakMap(),
- emitsCache: /* @__PURE__ */ new WeakMap()
- };
-}
-let uid$1 = 0;
-function createAppAPI(render, hydrate) {
- return function createApp2(rootComponent, rootProps = null) {
- if (!isFunction$2(rootComponent)) {
- rootComponent = extend({}, rootComponent);
- }
- if (rootProps != null && !isObject$1(rootProps)) {
- rootProps = null;
- }
- const context = createAppContext();
- const installedPlugins = /* @__PURE__ */ new WeakSet();
- const pluginCleanupFns = [];
- let isMounted = false;
- const app2 = context.app = {
- _uid: uid$1++,
- _component: rootComponent,
- _props: rootProps,
- _container: null,
- _context: context,
- _instance: null,
- version: version$1,
- get config() {
- return context.config;
- },
- set config(v) {
- },
- use(plugin, ...options) {
- if (installedPlugins.has(plugin)) ;
- else if (plugin && isFunction$2(plugin.install)) {
- installedPlugins.add(plugin);
- plugin.install(app2, ...options);
- } else if (isFunction$2(plugin)) {
- installedPlugins.add(plugin);
- plugin(app2, ...options);
- } else ;
- return app2;
- },
- mixin(mixin) {
- {
- if (!context.mixins.includes(mixin)) {
- context.mixins.push(mixin);
- }
- }
- return app2;
- },
- component(name, component) {
- if (!component) {
- return context.components[name];
- }
- context.components[name] = component;
- return app2;
- },
- directive(name, directive) {
- if (!directive) {
- return context.directives[name];
- }
- context.directives[name] = directive;
- return app2;
- },
- mount(rootContainer, isHydrate, namespace) {
- if (!isMounted) {
- const vnode = app2._ceVNode || createVNode(rootComponent, rootProps);
- vnode.appContext = context;
- if (namespace === true) {
- namespace = "svg";
- } else if (namespace === false) {
- namespace = void 0;
- }
- {
- render(vnode, rootContainer, namespace);
- }
- isMounted = true;
- app2._container = rootContainer;
- rootContainer.__vue_app__ = app2;
- return getComponentPublicInstance(vnode.component);
- }
- },
- onUnmount(cleanupFn) {
- pluginCleanupFns.push(cleanupFn);
- },
- unmount() {
- if (isMounted) {
- callWithAsyncErrorHandling(
- pluginCleanupFns,
- app2._instance,
- 16
- );
- render(null, app2._container);
- delete app2._container.__vue_app__;
- }
- },
- provide(key, value) {
- context.provides[key] = value;
- return app2;
- },
- runWithContext(fn) {
- const lastApp = currentApp;
- currentApp = app2;
- try {
- return fn();
- } finally {
- currentApp = lastApp;
- }
- }
- };
- return app2;
- };
-}
-let currentApp = null;
-const getModelModifiers = (props, modelName) => {
- return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];
-};
-function emit(instance, event, ...rawArgs) {
- if (instance.isUnmounted) return;
- const props = instance.vnode.props || EMPTY_OBJ;
- let args = rawArgs;
- const isModelListener2 = event.startsWith("update:");
- const modifiers2 = isModelListener2 && getModelModifiers(props, event.slice(7));
- if (modifiers2) {
- if (modifiers2.trim) {
- args = rawArgs.map((a) => isString(a) ? a.trim() : a);
- }
- if (modifiers2.number) {
- args = rawArgs.map(looseToNumber);
- }
- }
- let handlerName;
- let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
- props[handlerName = toHandlerKey(camelize(event))];
- if (!handler && isModelListener2) {
- handler = props[handlerName = toHandlerKey(hyphenate(event))];
- }
- if (handler) {
- callWithAsyncErrorHandling(
- handler,
- instance,
- 6,
- args
- );
- }
- const onceHandler = props[handlerName + `Once`];
- if (onceHandler) {
- if (!instance.emitted) {
- instance.emitted = {};
- } else if (instance.emitted[handlerName]) {
- return;
- }
- instance.emitted[handlerName] = true;
- callWithAsyncErrorHandling(
- onceHandler,
- instance,
- 6,
- args
- );
- }
-}
-const mixinEmitsCache = /* @__PURE__ */ new WeakMap();
-function normalizeEmitsOptions(comp, appContext, asMixin = false) {
- const cache = asMixin ? mixinEmitsCache : appContext.emitsCache;
- const cached = cache.get(comp);
- if (cached !== void 0) {
- return cached;
- }
- const raw = comp.emits;
- let normalized = {};
- let hasExtends = false;
- if (!isFunction$2(comp)) {
- const extendEmits = (raw2) => {
- const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
- if (normalizedFromExtend) {
- hasExtends = true;
- extend(normalized, normalizedFromExtend);
- }
- };
- if (!asMixin && appContext.mixins.length) {
- appContext.mixins.forEach(extendEmits);
- }
- if (comp.extends) {
- extendEmits(comp.extends);
- }
- if (comp.mixins) {
- comp.mixins.forEach(extendEmits);
- }
- }
- if (!raw && !hasExtends) {
- if (isObject$1(comp)) {
- cache.set(comp, null);
- }
- return null;
- }
- if (isArray$1(raw)) {
- raw.forEach((key) => normalized[key] = null);
- } else {
- extend(normalized, raw);
- }
- if (isObject$1(comp)) {
- cache.set(comp, normalized);
- }
- return normalized;
-}
-function isEmitListener(options, key) {
- if (!options || !isOn(key)) {
- return false;
- }
- key = key.slice(2).replace(/Once$/, "");
- return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
-}
-function markAttrsAccessed() {
-}
-function renderComponentRoot(instance) {
- const {
- type: Component,
- vnode,
- proxy,
- withProxy,
- propsOptions: [propsOptions],
- slots,
- attrs,
- emit: emit2,
- render,
- renderCache,
- props,
- data,
- setupState,
- ctx,
- inheritAttrs
- } = instance;
- const prev = setCurrentRenderingInstance(instance);
- let result;
- let fallthroughAttrs;
- try {
- if (vnode.shapeFlag & 4) {
- const proxyToUse = withProxy || proxy;
- const thisProxy = false ? new Proxy(proxyToUse, {
- get(target, key, receiver) {
- warn$1(
- `Property '${String(
- key
- )}' was accessed via 'this'. Avoid using 'this' in templates.`
- );
- return Reflect.get(target, key, receiver);
- }
- }) : proxyToUse;
- result = normalizeVNode(
- render.call(
- thisProxy,
- proxyToUse,
- renderCache,
- false ? /* @__PURE__ */ shallowReadonly(props) : props,
- setupState,
- data,
- ctx
- )
- );
- fallthroughAttrs = attrs;
- } else {
- const render2 = Component;
- if (false) ;
- result = normalizeVNode(
- render2.length > 1 ? render2(
- false ? /* @__PURE__ */ shallowReadonly(props) : props,
- false ? {
- get attrs() {
- markAttrsAccessed();
- return /* @__PURE__ */ shallowReadonly(attrs);
- },
- slots,
- emit: emit2
- } : { attrs, slots, emit: emit2 }
- ) : render2(
- false ? /* @__PURE__ */ shallowReadonly(props) : props,
- null
- )
- );
- fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
- }
- } catch (err) {
- blockStack.length = 0;
- handleError(err, instance, 1);
- result = createVNode(Comment);
- }
- let root = result;
- if (fallthroughAttrs && inheritAttrs !== false) {
- const keys2 = Object.keys(fallthroughAttrs);
- const { shapeFlag } = root;
- if (keys2.length) {
- if (shapeFlag & (1 | 6)) {
- if (propsOptions && keys2.some(isModelListener)) {
- fallthroughAttrs = filterModelListeners(
- fallthroughAttrs,
- propsOptions
- );
- }
- root = cloneVNode(root, fallthroughAttrs, false, true);
- }
- }
- }
- if (vnode.dirs) {
- root = cloneVNode(root, null, false, true);
- root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
- }
- if (vnode.transition) {
- setTransitionHooks(root, vnode.transition);
- }
- {
- result = root;
- }
- setCurrentRenderingInstance(prev);
- return result;
-}
-const getFunctionalFallthrough = (attrs) => {
- let res;
- for (const key in attrs) {
- if (key === "class" || key === "style" || isOn(key)) {
- (res || (res = {}))[key] = attrs[key];
- }
- }
- return res;
-};
-const filterModelListeners = (attrs, props) => {
- const res = {};
- for (const key in attrs) {
- if (!isModelListener(key) || !(key.slice(9) in props)) {
- res[key] = attrs[key];
- }
- }
- return res;
-};
-function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
- const { props: prevProps, children: prevChildren, component } = prevVNode;
- const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
- const emits = component.emitsOptions;
- if (nextVNode.dirs || nextVNode.transition) {
- return true;
- }
- if (optimized && patchFlag >= 0) {
- if (patchFlag & 1024) {
- return true;
- }
- if (patchFlag & 16) {
- if (!prevProps) {
- return !!nextProps;
- }
- return hasPropsChanged(prevProps, nextProps, emits);
- } else if (patchFlag & 8) {
- const dynamicProps = nextVNode.dynamicProps;
- for (let i = 0; i < dynamicProps.length; i++) {
- const key = dynamicProps[i];
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
- return true;
- }
- }
- }
- } else {
- if (prevChildren || nextChildren) {
- if (!nextChildren || !nextChildren.$stable) {
- return true;
- }
- }
- if (prevProps === nextProps) {
- return false;
- }
- if (!prevProps) {
- return !!nextProps;
- }
- if (!nextProps) {
- return true;
- }
- return hasPropsChanged(prevProps, nextProps, emits);
- }
- return false;
-}
-function hasPropsChanged(prevProps, nextProps, emitsOptions) {
- const nextKeys = Object.keys(nextProps);
- if (nextKeys.length !== Object.keys(prevProps).length) {
- return true;
- }
- for (let i = 0; i < nextKeys.length; i++) {
- const key = nextKeys[i];
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
- return true;
- }
- }
- return false;
-}
-function hasPropValueChanged(nextProps, prevProps, key) {
- const nextProp = nextProps[key];
- const prevProp = prevProps[key];
- if (key === "style" && isObject$1(nextProp) && isObject$1(prevProp)) {
- return !looseEqual(nextProp, prevProp);
- }
- return nextProp !== prevProp;
-}
-function updateHOCHostEl({ vnode, parent }, el) {
- while (parent) {
- const root = parent.subTree;
- if (root.suspense && root.suspense.activeBranch === vnode) {
- root.el = vnode.el;
- }
- if (root === vnode) {
- (vnode = parent.vnode).el = el;
- parent = parent.parent;
- } else {
- break;
- }
- }
-}
-const internalObjectProto = {};
-const createInternalObject = () => Object.create(internalObjectProto);
-const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
-function initProps(instance, rawProps, isStateful, isSSR = false) {
- const props = {};
- const attrs = createInternalObject();
- instance.propsDefaults = /* @__PURE__ */ Object.create(null);
- setFullProps(instance, rawProps, props, attrs);
- for (const key in instance.propsOptions[0]) {
- if (!(key in props)) {
- props[key] = void 0;
- }
- }
- if (isStateful) {
- instance.props = isSSR ? props : /* @__PURE__ */ shallowReactive(props);
- } else {
- if (!instance.type.props) {
- instance.props = attrs;
- } else {
- instance.props = props;
- }
- }
- instance.attrs = attrs;
-}
-function updateProps(instance, rawProps, rawPrevProps, optimized) {
- const {
- props,
- attrs,
- vnode: { patchFlag }
- } = instance;
- const rawCurrentProps = /* @__PURE__ */ toRaw(props);
- const [options] = instance.propsOptions;
- let hasAttrsChanged = false;
- if (
- // always force full diff in dev
- // - #1942 if hmr is enabled with sfc component
- // - vite#872 non-sfc component used by sfc component
- (optimized || patchFlag > 0) && !(patchFlag & 16)
- ) {
- if (patchFlag & 8) {
- const propsToUpdate = instance.vnode.dynamicProps;
- for (let i = 0; i < propsToUpdate.length; i++) {
- let key = propsToUpdate[i];
- if (isEmitListener(instance.emitsOptions, key)) {
- continue;
- }
- const value = rawProps[key];
- if (options) {
- if (hasOwn(attrs, key)) {
- if (value !== attrs[key]) {
- attrs[key] = value;
- hasAttrsChanged = true;
- }
- } else {
- const camelizedKey = camelize(key);
- props[camelizedKey] = resolvePropValue(
- options,
- rawCurrentProps,
- camelizedKey,
- value,
- instance,
- false
- );
- }
- } else {
- if (value !== attrs[key]) {
- attrs[key] = value;
- hasAttrsChanged = true;
- }
- }
- }
- }
- } else {
- if (setFullProps(instance, rawProps, props, attrs)) {
- hasAttrsChanged = true;
- }
- let kebabKey;
- for (const key in rawCurrentProps) {
- if (!rawProps || // for camelCase
- !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case
- // and converted to camelCase (#955)
- ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
- if (options) {
- if (rawPrevProps && // for camelCase
- (rawPrevProps[key] !== void 0 || // for kebab-case
- rawPrevProps[kebabKey] !== void 0)) {
- props[key] = resolvePropValue(
- options,
- rawCurrentProps,
- key,
- void 0,
- instance,
- true
- );
- }
- } else {
- delete props[key];
- }
- }
- }
- if (attrs !== rawCurrentProps) {
- for (const key in attrs) {
- if (!rawProps || !hasOwn(rawProps, key) && true) {
- delete attrs[key];
- hasAttrsChanged = true;
- }
- }
- }
- }
- if (hasAttrsChanged) {
- trigger(instance.attrs, "set", "");
- }
-}
-function setFullProps(instance, rawProps, props, attrs) {
- const [options, needCastKeys] = instance.propsOptions;
- let hasAttrsChanged = false;
- let rawCastValues;
- if (rawProps) {
- for (let key in rawProps) {
- if (isReservedProp(key)) {
- continue;
- }
- const value = rawProps[key];
- let camelKey;
- if (options && hasOwn(options, camelKey = camelize(key))) {
- if (!needCastKeys || !needCastKeys.includes(camelKey)) {
- props[camelKey] = value;
- } else {
- (rawCastValues || (rawCastValues = {}))[camelKey] = value;
- }
- } else if (!isEmitListener(instance.emitsOptions, key)) {
- if (!(key in attrs) || value !== attrs[key]) {
- attrs[key] = value;
- hasAttrsChanged = true;
- }
- }
- }
- }
- if (needCastKeys) {
- const rawCurrentProps = /* @__PURE__ */ toRaw(props);
- const castValues = rawCastValues || EMPTY_OBJ;
- for (let i = 0; i < needCastKeys.length; i++) {
- const key = needCastKeys[i];
- props[key] = resolvePropValue(
- options,
- rawCurrentProps,
- key,
- castValues[key],
- instance,
- !hasOwn(castValues, key)
- );
- }
- }
- return hasAttrsChanged;
-}
-function resolvePropValue(options, props, key, value, instance, isAbsent) {
- const opt = options[key];
- if (opt != null) {
- const hasDefault = hasOwn(opt, "default");
- if (hasDefault && value === void 0) {
- const defaultValue = opt.default;
- if (opt.type !== Function && !opt.skipFactory && isFunction$2(defaultValue)) {
- const { propsDefaults } = instance;
- if (key in propsDefaults) {
- value = propsDefaults[key];
- } else {
- const reset2 = setCurrentInstance(instance);
- value = propsDefaults[key] = defaultValue.call(
- null,
- props
- );
- reset2();
- }
- } else {
- value = defaultValue;
- }
- if (instance.ce) {
- instance.ce._setProp(key, value);
- }
- }
- if (opt[
- 0
- /* shouldCast */
- ]) {
- if (isAbsent && !hasDefault) {
- value = false;
- } else if (opt[
- 1
- /* shouldCastTrue */
- ] && (value === "" || value === hyphenate(key))) {
- value = true;
- }
- }
- }
- return value;
-}
-const mixinPropsCache = /* @__PURE__ */ new WeakMap();
-function normalizePropsOptions(comp, appContext, asMixin = false) {
- const cache = asMixin ? mixinPropsCache : appContext.propsCache;
- const cached = cache.get(comp);
- if (cached) {
- return cached;
- }
- const raw = comp.props;
- const normalized = {};
- const needCastKeys = [];
- let hasExtends = false;
- if (!isFunction$2(comp)) {
- const extendProps = (raw2) => {
- hasExtends = true;
- const [props, keys2] = normalizePropsOptions(raw2, appContext, true);
- extend(normalized, props);
- if (keys2) needCastKeys.push(...keys2);
- };
- if (!asMixin && appContext.mixins.length) {
- appContext.mixins.forEach(extendProps);
- }
- if (comp.extends) {
- extendProps(comp.extends);
- }
- if (comp.mixins) {
- comp.mixins.forEach(extendProps);
- }
- }
- if (!raw && !hasExtends) {
- if (isObject$1(comp)) {
- cache.set(comp, EMPTY_ARR);
- }
- return EMPTY_ARR;
- }
- if (isArray$1(raw)) {
- for (let i = 0; i < raw.length; i++) {
- const normalizedKey = camelize(raw[i]);
- if (validatePropName(normalizedKey)) {
- normalized[normalizedKey] = EMPTY_OBJ;
- }
- }
- } else if (raw) {
- for (const key in raw) {
- const normalizedKey = camelize(key);
- if (validatePropName(normalizedKey)) {
- const opt = raw[key];
- const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$2(opt) ? { type: opt } : extend({}, opt);
- const propType = prop.type;
- let shouldCast = false;
- let shouldCastTrue = true;
- if (isArray$1(propType)) {
- for (let index2 = 0; index2 < propType.length; ++index2) {
- const type = propType[index2];
- const typeName = isFunction$2(type) && type.name;
- if (typeName === "Boolean") {
- shouldCast = true;
- break;
- } else if (typeName === "String") {
- shouldCastTrue = false;
- }
- }
- } else {
- shouldCast = isFunction$2(propType) && propType.name === "Boolean";
- }
- prop[
- 0
- /* shouldCast */
- ] = shouldCast;
- prop[
- 1
- /* shouldCastTrue */
- ] = shouldCastTrue;
- if (shouldCast || hasOwn(prop, "default")) {
- needCastKeys.push(normalizedKey);
- }
- }
- }
- }
- const res = [normalized, needCastKeys];
- if (isObject$1(comp)) {
- cache.set(comp, res);
- }
- return res;
-}
-function validatePropName(key) {
- if (key[0] !== "$" && !isReservedProp(key)) {
- return true;
- }
- return false;
-}
-const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
-const normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
-const normalizeSlot$1 = (key, rawSlot, ctx) => {
- if (rawSlot._n) {
- return rawSlot;
- }
- const normalized = withCtx((...args) => {
- if (false) ;
- return normalizeSlotValue(rawSlot(...args));
- }, ctx);
- normalized._c = false;
- return normalized;
-};
-const normalizeObjectSlots = (rawSlots, slots, instance) => {
- const ctx = rawSlots._ctx;
- for (const key in rawSlots) {
- if (isInternalKey(key)) continue;
- const value = rawSlots[key];
- if (isFunction$2(value)) {
- slots[key] = normalizeSlot$1(key, value, ctx);
- } else if (value != null) {
- const normalized = normalizeSlotValue(value);
- slots[key] = () => normalized;
- }
- }
-};
-const normalizeVNodeSlots = (instance, children) => {
- const normalized = normalizeSlotValue(children);
- instance.slots.default = () => normalized;
-};
-const assignSlots = (slots, children, optimized) => {
- for (const key in children) {
- if (optimized || !isInternalKey(key)) {
- slots[key] = children[key];
- }
- }
-};
-const initSlots = (instance, children, optimized) => {
- const slots = instance.slots = createInternalObject();
- if (instance.vnode.shapeFlag & 32) {
- const type = children._;
- if (type) {
- assignSlots(slots, children, optimized);
- if (optimized) {
- def(slots, "_", type, true);
- }
- } else {
- normalizeObjectSlots(children, slots);
- }
- } else if (children) {
- normalizeVNodeSlots(instance, children);
- }
-};
-const updateSlots = (instance, children, optimized) => {
- const { vnode, slots } = instance;
- let needDeletionCheck = true;
- let deletionComparisonTarget = EMPTY_OBJ;
- if (vnode.shapeFlag & 32) {
- const type = children._;
- if (type) {
- if (optimized && type === 1) {
- needDeletionCheck = false;
- } else {
- assignSlots(slots, children, optimized);
- }
- } else {
- needDeletionCheck = !children.$stable;
- normalizeObjectSlots(children, slots);
- }
- deletionComparisonTarget = children;
- } else if (children) {
- normalizeVNodeSlots(instance, children);
- deletionComparisonTarget = { default: 1 };
- }
- if (needDeletionCheck) {
- for (const key in slots) {
- if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
- delete slots[key];
- }
- }
- }
-};
-const queuePostRenderEffect = queueEffectWithSuspense;
-function createRenderer(options) {
- return baseCreateRenderer(options);
-}
-function baseCreateRenderer(options, createHydrationFns) {
- const target = getGlobalThis();
- target.__VUE__ = true;
- const {
- insert: hostInsert,
- remove: hostRemove,
- patchProp: hostPatchProp,
- createElement: hostCreateElement,
- createText: hostCreateText,
- createComment: hostCreateComment,
- setText: hostSetText,
- setElementText: hostSetElementText,
- parentNode: hostParentNode,
- nextSibling: hostNextSibling,
- setScopeId: hostSetScopeId = NOOP,
- insertStaticContent: hostInsertStaticContent
- } = options;
- const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {
- if (n1 === n2) {
- return;
- }
- if (n1 && !isSameVNodeType(n1, n2)) {
- anchor = getNextHostNode(n1);
- unmount(n1, parentComponent, parentSuspense, true);
- n1 = null;
- }
- if (n2.patchFlag === -2) {
- optimized = false;
- n2.dynamicChildren = null;
- }
- const { type, ref: ref3, shapeFlag } = n2;
- switch (type) {
- case Text$2:
- processText(n1, n2, container, anchor);
- break;
- case Comment:
- processCommentNode(n1, n2, container, anchor);
- break;
- case Static:
- if (n1 == null) {
- mountStaticNode(n2, container, anchor, namespace);
- }
- break;
- case Fragment$1:
- processFragment(
- n1,
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- break;
- default:
- if (shapeFlag & 1) {
- processElement(
- n1,
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else if (shapeFlag & 6) {
- processComponent(
- n1,
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else if (shapeFlag & 64) {
- type.process(
- n1,
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized,
- internals
- );
- } else if (shapeFlag & 128) {
- type.process(
- n1,
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized,
- internals
- );
- } else ;
- }
- if (ref3 != null && parentComponent) {
- setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
- } else if (ref3 == null && n1 && n1.ref != null) {
- setRef(n1.ref, null, parentSuspense, n1, true);
- }
- };
- const processText = (n1, n2, container, anchor) => {
- if (n1 == null) {
- hostInsert(
- n2.el = hostCreateText(n2.children),
- container,
- anchor
- );
- } else {
- const el = n2.el = n1.el;
- if (n2.children !== n1.children) {
- hostSetText(el, n2.children);
- }
- }
- };
- const processCommentNode = (n1, n2, container, anchor) => {
- if (n1 == null) {
- hostInsert(
- n2.el = hostCreateComment(n2.children || ""),
- container,
- anchor
- );
- } else {
- n2.el = n1.el;
- }
- };
- const mountStaticNode = (n2, container, anchor, namespace) => {
- [n2.el, n2.anchor] = hostInsertStaticContent(
- n2.children,
- container,
- anchor,
- namespace,
- n2.el,
- n2.anchor
- );
- };
- const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
- let next;
- while (el && el !== anchor) {
- next = hostNextSibling(el);
- hostInsert(el, container, nextSibling);
- el = next;
- }
- hostInsert(anchor, container, nextSibling);
- };
- const removeStaticNode = ({ el, anchor }) => {
- let next;
- while (el && el !== anchor) {
- next = hostNextSibling(el);
- hostRemove(el);
- el = next;
- }
- hostRemove(anchor);
- };
- const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- if (n2.type === "svg") {
- namespace = "svg";
- } else if (n2.type === "math") {
- namespace = "mathml";
- }
- if (n1 == null) {
- mountElement(
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else {
- const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
- try {
- if (customElement) {
- customElement._beginPatch();
- }
- patchElement(
- n1,
- n2,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } finally {
- if (customElement) {
- customElement._endPatch();
- }
- }
- }
- };
- const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- let el;
- let vnodeHook;
- const { props, shapeFlag, transition, dirs } = vnode;
- el = vnode.el = hostCreateElement(
- vnode.type,
- namespace,
- props && props.is,
- props
- );
- if (shapeFlag & 8) {
- hostSetElementText(el, vnode.children);
- } else if (shapeFlag & 16) {
- mountChildren(
- vnode.children,
- el,
- null,
- parentComponent,
- parentSuspense,
- resolveChildrenNamespace(vnode, namespace),
- slotScopeIds,
- optimized
- );
- }
- if (dirs) {
- invokeDirectiveHook(vnode, null, parentComponent, "created");
- }
- setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
- if (props) {
- for (const key in props) {
- if (key !== "value" && !isReservedProp(key)) {
- hostPatchProp(el, key, null, props[key], namespace, parentComponent);
- }
- }
- if ("value" in props) {
- hostPatchProp(el, "value", null, props.value, namespace);
- }
- if (vnodeHook = props.onVnodeBeforeMount) {
- invokeVNodeHook(vnodeHook, parentComponent, vnode);
- }
- }
- if (dirs) {
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
- }
- const needCallTransitionHooks = needTransition(parentSuspense, transition);
- if (needCallTransitionHooks) {
- transition.beforeEnter(el);
- }
- hostInsert(el, container, anchor);
- if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
- queuePostRenderEffect(() => {
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
- needCallTransitionHooks && transition.enter(el);
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
- }, parentSuspense);
- }
- };
- const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
- if (scopeId) {
- hostSetScopeId(el, scopeId);
- }
- if (slotScopeIds) {
- for (let i = 0; i < slotScopeIds.length; i++) {
- hostSetScopeId(el, slotScopeIds[i]);
- }
- }
- if (parentComponent) {
- let subTree = parentComponent.subTree;
- if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {
- const parentVNode = parentComponent.vnode;
- setScopeId(
- el,
- parentVNode,
- parentVNode.scopeId,
- parentVNode.slotScopeIds,
- parentComponent.parent
- );
- }
- }
- };
- const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
- for (let i = start; i < children.length; i++) {
- const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
- patch(
- null,
- child,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- }
- };
- const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- const el = n2.el = n1.el;
- let { patchFlag, dynamicChildren, dirs } = n2;
- patchFlag |= n1.patchFlag & 16;
- const oldProps = n1.props || EMPTY_OBJ;
- const newProps = n2.props || EMPTY_OBJ;
- let vnodeHook;
- parentComponent && toggleRecurse(parentComponent, false);
- if (vnodeHook = newProps.onVnodeBeforeUpdate) {
- invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
- }
- if (dirs) {
- invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
- }
- parentComponent && toggleRecurse(parentComponent, true);
- if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {
- hostSetElementText(el, "");
- }
- if (dynamicChildren) {
- patchBlockChildren(
- n1.dynamicChildren,
- dynamicChildren,
- el,
- parentComponent,
- parentSuspense,
- resolveChildrenNamespace(n2, namespace),
- slotScopeIds
- );
- } else if (!optimized) {
- patchChildren(
- n1,
- n2,
- el,
- null,
- parentComponent,
- parentSuspense,
- resolveChildrenNamespace(n2, namespace),
- slotScopeIds,
- false
- );
- }
- if (patchFlag > 0) {
- if (patchFlag & 16) {
- patchProps(el, oldProps, newProps, parentComponent, namespace);
- } else {
- if (patchFlag & 2) {
- if (oldProps.class !== newProps.class) {
- hostPatchProp(el, "class", null, newProps.class, namespace);
- }
- }
- if (patchFlag & 4) {
- hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
- }
- if (patchFlag & 8) {
- const propsToUpdate = n2.dynamicProps;
- for (let i = 0; i < propsToUpdate.length; i++) {
- const key = propsToUpdate[i];
- const prev = oldProps[key];
- const next = newProps[key];
- if (next !== prev || key === "value") {
- hostPatchProp(el, key, prev, next, namespace, parentComponent);
- }
- }
- }
- }
- if (patchFlag & 1) {
- if (n1.children !== n2.children) {
- hostSetElementText(el, n2.children);
- }
- }
- } else if (!optimized && dynamicChildren == null) {
- patchProps(el, oldProps, newProps, parentComponent, namespace);
- }
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
- queuePostRenderEffect(() => {
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
- dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
- }, parentSuspense);
- }
- };
- const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
- for (let i = 0; i < newChildren.length; i++) {
- const oldVNode = oldChildren[i];
- const newVNode = newChildren[i];
- const container = (
- // oldVNode may be an errored async setup() component inside Suspense
- // which will not have a mounted element
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
- // of the Fragment itself so it can move its children.
- (oldVNode.type === Fragment$1 || // - In the case of different nodes, there is going to be a replacement
- // which also requires the correct parent container
- !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
- // In other cases, the parent container is not actually used so we
- // just pass the block element here to avoid a DOM parentNode call.
- fallbackContainer
- )
- );
- patch(
- oldVNode,
- newVNode,
- container,
- null,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- true
- );
- }
- };
- const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
- if (oldProps !== newProps) {
- if (oldProps !== EMPTY_OBJ) {
- for (const key in oldProps) {
- if (!isReservedProp(key) && !(key in newProps)) {
- hostPatchProp(
- el,
- key,
- oldProps[key],
- null,
- namespace,
- parentComponent
- );
- }
- }
- }
- for (const key in newProps) {
- if (isReservedProp(key)) continue;
- const next = newProps[key];
- const prev = oldProps[key];
- if (next !== prev && key !== "value") {
- hostPatchProp(el, key, prev, next, namespace, parentComponent);
- }
- }
- if ("value" in newProps) {
- hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
- }
- }
- };
- const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
- const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
- let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
- if (fragmentSlotScopeIds) {
- slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
- }
- if (n1 == null) {
- hostInsert(fragmentStartAnchor, container, anchor);
- hostInsert(fragmentEndAnchor, container, anchor);
- mountChildren(
- // #10007
- // such fragment like `<>>` will be compiled into
- // a fragment which doesn't have a children.
- // In this case fallback to an empty array
- n2.children || [],
- container,
- fragmentEndAnchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else {
- if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
- // of renderSlot() with no valid children
- n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {
- patchBlockChildren(
- n1.dynamicChildren,
- dynamicChildren,
- container,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds
- );
- if (
- // #2080 if the stable fragment has a key, it's a that may
- // get moved around. Make sure all root level vnodes inherit el.
- // #2134 or if it's a component root, it may also get moved around
- // as the component is being moved.
- n2.key != null || parentComponent && n2 === parentComponent.subTree
- ) {
- traverseStaticChildren(
- n1,
- n2,
- true
- /* shallow */
- );
- }
- } else {
- patchChildren(
- n1,
- n2,
- container,
- fragmentEndAnchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- }
- }
- };
- const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- n2.slotScopeIds = slotScopeIds;
- if (n1 == null) {
- if (n2.shapeFlag & 512) {
- parentComponent.ctx.activate(
- n2,
- container,
- anchor,
- namespace,
- optimized
- );
- } else {
- mountComponent(
- n2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- optimized
- );
- }
- } else {
- updateComponent(n1, n2, optimized);
- }
- };
- const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
- const instance = initialVNode.component = createComponentInstance(
- initialVNode,
- parentComponent,
- parentSuspense
- );
- if (isKeepAlive(initialVNode)) {
- instance.ctx.renderer = internals;
- }
- {
- setupComponent(instance, false, optimized);
- }
- if (instance.asyncDep) {
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
- if (!initialVNode.el) {
- const placeholder = instance.subTree = createVNode(Comment);
- processCommentNode(null, placeholder, container, anchor);
- initialVNode.placeholder = placeholder.el;
- }
- } else {
- setupRenderEffect(
- instance,
- initialVNode,
- container,
- anchor,
- parentSuspense,
- namespace,
- optimized
- );
- }
- };
- const updateComponent = (n1, n2, optimized) => {
- const instance = n2.component = n1.component;
- if (shouldUpdateComponent(n1, n2, optimized)) {
- if (instance.asyncDep && !instance.asyncResolved) {
- updateComponentPreRender(instance, n2, optimized);
- return;
- } else {
- instance.next = n2;
- instance.update();
- }
- } else {
- n2.el = n1.el;
- instance.vnode = n2;
- }
- };
- const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
- const componentUpdateFn = () => {
- if (!instance.isMounted) {
- let vnodeHook;
- const { el, props } = initialVNode;
- const { bm, m, parent, root, type } = instance;
- const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
- toggleRecurse(instance, false);
- if (bm) {
- invokeArrayFns(bm);
- }
- if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {
- invokeVNodeHook(vnodeHook, parent, initialVNode);
- }
- toggleRecurse(instance, true);
- {
- if (root.ce && root.ce._hasShadowRoot()) {
- root.ce._injectChildStyle(type);
- }
- const subTree = instance.subTree = renderComponentRoot(instance);
- patch(
- null,
- subTree,
- container,
- anchor,
- instance,
- parentSuspense,
- namespace
- );
- initialVNode.el = subTree.el;
- }
- if (m) {
- queuePostRenderEffect(m, parentSuspense);
- }
- if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {
- const scopedInitialVNode = initialVNode;
- queuePostRenderEffect(
- () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),
- parentSuspense
- );
- }
- if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {
- instance.a && queuePostRenderEffect(instance.a, parentSuspense);
- }
- instance.isMounted = true;
- initialVNode = container = anchor = null;
- } else {
- let { next, bu, u, parent, vnode } = instance;
- {
- const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
- if (nonHydratedAsyncRoot) {
- if (next) {
- next.el = vnode.el;
- updateComponentPreRender(instance, next, optimized);
- }
- nonHydratedAsyncRoot.asyncDep.then(() => {
- queuePostRenderEffect(() => {
- if (!instance.isUnmounted) update();
- }, parentSuspense);
- });
- return;
- }
- }
- let originNext = next;
- let vnodeHook;
- toggleRecurse(instance, false);
- if (next) {
- next.el = vnode.el;
- updateComponentPreRender(instance, next, optimized);
- } else {
- next = vnode;
- }
- if (bu) {
- invokeArrayFns(bu);
- }
- if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {
- invokeVNodeHook(vnodeHook, parent, next, vnode);
- }
- toggleRecurse(instance, true);
- const nextTree = renderComponentRoot(instance);
- const prevTree = instance.subTree;
- instance.subTree = nextTree;
- patch(
- prevTree,
- nextTree,
- // parent may have changed if it's in a teleport
- hostParentNode(prevTree.el),
- // anchor may have changed if it's in a fragment
- getNextHostNode(prevTree),
- instance,
- parentSuspense,
- namespace
- );
- next.el = nextTree.el;
- if (originNext === null) {
- updateHOCHostEl(instance, nextTree.el);
- }
- if (u) {
- queuePostRenderEffect(u, parentSuspense);
- }
- if (vnodeHook = next.props && next.props.onVnodeUpdated) {
- queuePostRenderEffect(
- () => invokeVNodeHook(vnodeHook, parent, next, vnode),
- parentSuspense
- );
- }
- }
- };
- instance.scope.on();
- const effect2 = instance.effect = new ReactiveEffect(componentUpdateFn);
- instance.scope.off();
- const update = instance.update = effect2.run.bind(effect2);
- const job = instance.job = effect2.runIfDirty.bind(effect2);
- job.i = instance;
- job.id = instance.uid;
- effect2.scheduler = () => queueJob(job);
- toggleRecurse(instance, true);
- update();
- };
- const updateComponentPreRender = (instance, nextVNode, optimized) => {
- nextVNode.component = instance;
- const prevProps = instance.vnode.props;
- instance.vnode = nextVNode;
- instance.next = null;
- updateProps(instance, nextVNode.props, prevProps, optimized);
- updateSlots(instance, nextVNode.children, optimized);
- pauseTracking();
- flushPreFlushCbs(instance);
- resetTracking();
- };
- const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
- const c1 = n1 && n1.children;
- const prevShapeFlag = n1 ? n1.shapeFlag : 0;
- const c2 = n2.children;
- const { patchFlag, shapeFlag } = n2;
- if (patchFlag > 0) {
- if (patchFlag & 128) {
- patchKeyedChildren(
- c1,
- c2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- return;
- } else if (patchFlag & 256) {
- patchUnkeyedChildren(
- c1,
- c2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- return;
- }
- }
- if (shapeFlag & 8) {
- if (prevShapeFlag & 16) {
- unmountChildren(c1, parentComponent, parentSuspense);
- }
- if (c2 !== c1) {
- hostSetElementText(container, c2);
- }
- } else {
- if (prevShapeFlag & 16) {
- if (shapeFlag & 16) {
- patchKeyedChildren(
- c1,
- c2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else {
- unmountChildren(c1, parentComponent, parentSuspense, true);
- }
- } else {
- if (prevShapeFlag & 8) {
- hostSetElementText(container, "");
- }
- if (shapeFlag & 16) {
- mountChildren(
- c2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- }
- }
- }
- };
- const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- c1 = c1 || EMPTY_ARR;
- c2 = c2 || EMPTY_ARR;
- const oldLength = c1.length;
- const newLength = c2.length;
- const commonLength = Math.min(oldLength, newLength);
- let i;
- for (i = 0; i < commonLength; i++) {
- const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
- patch(
- c1[i],
- nextChild,
- container,
- null,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- }
- if (oldLength > newLength) {
- unmountChildren(
- c1,
- parentComponent,
- parentSuspense,
- true,
- false,
- commonLength
- );
- } else {
- mountChildren(
- c2,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized,
- commonLength
- );
- }
- };
- const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
- let i = 0;
- const l2 = c2.length;
- let e1 = c1.length - 1;
- let e2 = l2 - 1;
- while (i <= e1 && i <= e2) {
- const n1 = c1[i];
- const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
- if (isSameVNodeType(n1, n2)) {
- patch(
- n1,
- n2,
- container,
- null,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else {
- break;
- }
- i++;
- }
- while (i <= e1 && i <= e2) {
- const n1 = c1[e1];
- const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);
- if (isSameVNodeType(n1, n2)) {
- patch(
- n1,
- n2,
- container,
- null,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else {
- break;
- }
- e1--;
- e2--;
- }
- if (i > e1) {
- if (i <= e2) {
- const nextPos = e2 + 1;
- const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
- while (i <= e2) {
- patch(
- null,
- c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- i++;
- }
- }
- } else if (i > e2) {
- while (i <= e1) {
- unmount(c1[i], parentComponent, parentSuspense, true);
- i++;
- }
- } else {
- const s1 = i;
- const s2 = i;
- const keyToNewIndexMap = /* @__PURE__ */ new Map();
- for (i = s2; i <= e2; i++) {
- const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
- if (nextChild.key != null) {
- keyToNewIndexMap.set(nextChild.key, i);
- }
- }
- let j;
- let patched = 0;
- const toBePatched = e2 - s2 + 1;
- let moved = false;
- let maxNewIndexSoFar = 0;
- const newIndexToOldIndexMap = new Array(toBePatched);
- for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;
- for (i = s1; i <= e1; i++) {
- const prevChild = c1[i];
- if (patched >= toBePatched) {
- unmount(prevChild, parentComponent, parentSuspense, true);
- continue;
- }
- let newIndex;
- if (prevChild.key != null) {
- newIndex = keyToNewIndexMap.get(prevChild.key);
- } else {
- for (j = s2; j <= e2; j++) {
- if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
- newIndex = j;
- break;
- }
- }
- }
- if (newIndex === void 0) {
- unmount(prevChild, parentComponent, parentSuspense, true);
- } else {
- newIndexToOldIndexMap[newIndex - s2] = i + 1;
- if (newIndex >= maxNewIndexSoFar) {
- maxNewIndexSoFar = newIndex;
- } else {
- moved = true;
- }
- patch(
- prevChild,
- c2[newIndex],
- container,
- null,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- patched++;
- }
- }
- const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;
- j = increasingNewIndexSequence.length - 1;
- for (i = toBePatched - 1; i >= 0; i--) {
- const nextIndex = s2 + i;
- const nextChild = c2[nextIndex];
- const anchorVNode = c2[nextIndex + 1];
- const anchor = nextIndex + 1 < l2 ? (
- // #13559, #14173 fallback to el placeholder for unresolved async component
- anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)
- ) : parentAnchor;
- if (newIndexToOldIndexMap[i] === 0) {
- patch(
- null,
- nextChild,
- container,
- anchor,
- parentComponent,
- parentSuspense,
- namespace,
- slotScopeIds,
- optimized
- );
- } else if (moved) {
- if (j < 0 || i !== increasingNewIndexSequence[j]) {
- move(nextChild, container, anchor, 2);
- } else {
- j--;
- }
- }
- }
- }
- };
- const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
- const { el, type, transition, children, shapeFlag } = vnode;
- if (shapeFlag & 6) {
- move(vnode.component.subTree, container, anchor, moveType);
- return;
- }
- if (shapeFlag & 128) {
- vnode.suspense.move(container, anchor, moveType);
- return;
- }
- if (shapeFlag & 64) {
- type.move(vnode, container, anchor, internals);
- return;
- }
- if (type === Fragment$1) {
- hostInsert(el, container, anchor);
- for (let i = 0; i < children.length; i++) {
- move(children[i], container, anchor, moveType);
- }
- hostInsert(vnode.anchor, container, anchor);
- return;
- }
- if (type === Static) {
- moveStaticNode(vnode, container, anchor);
- return;
- }
- const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
- if (needTransition2) {
- if (moveType === 0) {
- transition.beforeEnter(el);
- hostInsert(el, container, anchor);
- queuePostRenderEffect(() => transition.enter(el), parentSuspense);
- } else {
- const { leave, delayLeave, afterLeave } = transition;
- const remove22 = () => {
- if (vnode.ctx.isUnmounted) {
- hostRemove(el);
- } else {
- hostInsert(el, container, anchor);
- }
- };
- const performLeave = () => {
- if (el._isLeaving) {
- el[leaveCbKey](
- true
- /* cancelled */
- );
- }
- leave(el, () => {
- remove22();
- afterLeave && afterLeave();
- });
- };
- if (delayLeave) {
- delayLeave(el, remove22, performLeave);
- } else {
- performLeave();
- }
- }
- } else {
- hostInsert(el, container, anchor);
- }
- };
- const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
- const {
- type,
- props,
- ref: ref3,
- children,
- dynamicChildren,
- shapeFlag,
- patchFlag,
- dirs,
- cacheIndex
- } = vnode;
- if (patchFlag === -2) {
- optimized = false;
- }
- if (ref3 != null) {
- pauseTracking();
- setRef(ref3, null, parentSuspense, vnode, true);
- resetTracking();
- }
- if (cacheIndex != null) {
- parentComponent.renderCache[cacheIndex] = void 0;
- }
- if (shapeFlag & 256) {
- parentComponent.ctx.deactivate(vnode);
- return;
- }
- const shouldInvokeDirs = shapeFlag & 1 && dirs;
- const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
- let vnodeHook;
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {
- invokeVNodeHook(vnodeHook, parentComponent, vnode);
- }
- if (shapeFlag & 6) {
- unmountComponent(vnode.component, parentSuspense, doRemove);
- } else {
- if (shapeFlag & 128) {
- vnode.suspense.unmount(parentSuspense, doRemove);
- return;
- }
- if (shouldInvokeDirs) {
- invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
- }
- if (shapeFlag & 64) {
- vnode.type.remove(
- vnode,
- parentComponent,
- parentSuspense,
- internals,
- doRemove
- );
- } else if (dynamicChildren && // #5154
- // when v-once is used inside a block, setBlockTracking(-1) marks the
- // parent block with hasOnce: true
- // so that it doesn't take the fast path during unmount - otherwise
- // components nested in v-once are never unmounted.
- !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments
- (type !== Fragment$1 || patchFlag > 0 && patchFlag & 64)) {
- unmountChildren(
- dynamicChildren,
- parentComponent,
- parentSuspense,
- false,
- true
- );
- } else if (type === Fragment$1 && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {
- unmountChildren(children, parentComponent, parentSuspense);
- }
- if (doRemove) {
- remove2(vnode);
- }
- }
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {
- queuePostRenderEffect(() => {
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
- shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
- }, parentSuspense);
- }
- };
- const remove2 = (vnode) => {
- const { type, el, anchor, transition } = vnode;
- if (type === Fragment$1) {
- {
- removeFragment(el, anchor);
- }
- return;
- }
- if (type === Static) {
- removeStaticNode(vnode);
- return;
- }
- const performRemove = () => {
- hostRemove(el);
- if (transition && !transition.persisted && transition.afterLeave) {
- transition.afterLeave();
- }
- };
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
- const { leave, delayLeave } = transition;
- const performLeave = () => leave(el, performRemove);
- if (delayLeave) {
- delayLeave(vnode.el, performRemove, performLeave);
- } else {
- performLeave();
- }
- } else {
- performRemove();
- }
- };
- const removeFragment = (cur, end) => {
- let next;
- while (cur !== end) {
- next = hostNextSibling(cur);
- hostRemove(cur);
- cur = next;
- }
- hostRemove(end);
- };
- const unmountComponent = (instance, parentSuspense, doRemove) => {
- const { bum, scope, job, subTree, um, m, a } = instance;
- invalidateMount(m);
- invalidateMount(a);
- if (bum) {
- invokeArrayFns(bum);
- }
- scope.stop();
- if (job) {
- job.flags |= 8;
- unmount(subTree, instance, parentSuspense, doRemove);
- }
- if (um) {
- queuePostRenderEffect(um, parentSuspense);
- }
- queuePostRenderEffect(() => {
- instance.isUnmounted = true;
- }, parentSuspense);
- };
- const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
- for (let i = start; i < children.length; i++) {
- unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
- }
- };
- const getNextHostNode = (vnode) => {
- if (vnode.shapeFlag & 6) {
- return getNextHostNode(vnode.component.subTree);
- }
- if (vnode.shapeFlag & 128) {
- return vnode.suspense.next();
- }
- const el = hostNextSibling(vnode.anchor || vnode.el);
- const teleportEnd = el && el[TeleportEndKey];
- return teleportEnd ? hostNextSibling(teleportEnd) : el;
- };
- let isFlushing = false;
- const render = (vnode, container, namespace) => {
- let instance;
- if (vnode == null) {
- if (container._vnode) {
- unmount(container._vnode, null, null, true);
- instance = container._vnode.component;
- }
- } else {
- patch(
- container._vnode || null,
- vnode,
- container,
- null,
- null,
- null,
- namespace
- );
- }
- container._vnode = vnode;
- if (!isFlushing) {
- isFlushing = true;
- flushPreFlushCbs(instance);
- flushPostFlushCbs();
- isFlushing = false;
- }
- };
- const internals = {
- p: patch,
- um: unmount,
- m: move,
- r: remove2,
- mt: mountComponent,
- mc: mountChildren,
- pc: patchChildren,
- pbc: patchBlockChildren,
- n: getNextHostNode,
- o: options
- };
- let hydrate;
- return {
- render,
- hydrate,
- createApp: createAppAPI(render)
- };
-}
-function resolveChildrenNamespace({ type, props }, currentNamespace) {
- return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
-}
-function toggleRecurse({ effect: effect2, job }, allowed) {
- if (allowed) {
- effect2.flags |= 32;
- job.flags |= 4;
- } else {
- effect2.flags &= -33;
- job.flags &= -5;
- }
-}
-function needTransition(parentSuspense, transition) {
- return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
-}
-function traverseStaticChildren(n1, n2, shallow = false) {
- const ch1 = n1.children;
- const ch2 = n2.children;
- if (isArray$1(ch1) && isArray$1(ch2)) {
- for (let i = 0; i < ch1.length; i++) {
- const c1 = ch1[i];
- let c2 = ch2[i];
- if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
- if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
- c2 = ch2[i] = cloneIfMounted(ch2[i]);
- c2.el = c1.el;
- }
- if (!shallow && c2.patchFlag !== -2)
- traverseStaticChildren(c1, c2);
- }
- if (c2.type === Text$2) {
- if (c2.patchFlag === -1) {
- c2 = ch2[i] = cloneIfMounted(c2);
- }
- c2.el = c1.el;
- }
- if (c2.type === Comment && !c2.el) {
- c2.el = c1.el;
- }
- }
- }
-}
-function getSequence(arr) {
- const p2 = arr.slice();
- const result = [0];
- let i, j, u, v, c2;
- const len = arr.length;
- for (i = 0; i < len; i++) {
- const arrI = arr[i];
- if (arrI !== 0) {
- j = result[result.length - 1];
- if (arr[j] < arrI) {
- p2[i] = j;
- result.push(i);
- continue;
- }
- u = 0;
- v = result.length - 1;
- while (u < v) {
- c2 = u + v >> 1;
- if (arr[result[c2]] < arrI) {
- u = c2 + 1;
- } else {
- v = c2;
- }
- }
- if (arrI < arr[result[u]]) {
- if (u > 0) {
- p2[i] = result[u - 1];
- }
- result[u] = i;
- }
- }
- }
- u = result.length;
- v = result[u - 1];
- while (u-- > 0) {
- result[u] = v;
- v = p2[v];
- }
- return result;
-}
-function locateNonHydratedAsyncRoot(instance) {
- const subComponent = instance.subTree.component;
- if (subComponent) {
- if (subComponent.asyncDep && !subComponent.asyncResolved) {
- return subComponent;
- } else {
- return locateNonHydratedAsyncRoot(subComponent);
- }
- }
-}
-function invalidateMount(hooks) {
- if (hooks) {
- for (let i = 0; i < hooks.length; i++)
- hooks[i].flags |= 8;
- }
-}
-function resolveAsyncComponentPlaceholder(anchorVnode) {
- if (anchorVnode.placeholder) {
- return anchorVnode.placeholder;
- }
- const instance = anchorVnode.component;
- if (instance) {
- return resolveAsyncComponentPlaceholder(instance.subTree);
- }
- return null;
-}
-const isSuspense = (type) => type.__isSuspense;
-function queueEffectWithSuspense(fn, suspense) {
- if (suspense && suspense.pendingBranch) {
- if (isArray$1(fn)) {
- suspense.effects.push(...fn);
- } else {
- suspense.effects.push(fn);
- }
- } else {
- queuePostFlushCb(fn);
- }
-}
-const Fragment$1 = /* @__PURE__ */ Symbol.for("v-fgt");
-const Text$2 = /* @__PURE__ */ Symbol.for("v-txt");
-const Comment = /* @__PURE__ */ Symbol.for("v-cmt");
-const Static = /* @__PURE__ */ Symbol.for("v-stc");
-const blockStack = [];
-let currentBlock = null;
-function openBlock(disableTracking = false) {
- blockStack.push(currentBlock = disableTracking ? null : []);
-}
-function closeBlock() {
- blockStack.pop();
- currentBlock = blockStack[blockStack.length - 1] || null;
-}
-let isBlockTreeEnabled = 1;
-function setBlockTracking(value, inVOnce = false) {
- isBlockTreeEnabled += value;
- if (value < 0 && currentBlock && inVOnce) {
- currentBlock.hasOnce = true;
- }
-}
-function setupBlock(vnode) {
- vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;
- closeBlock();
- if (isBlockTreeEnabled > 0 && currentBlock) {
- currentBlock.push(vnode);
- }
- return vnode;
-}
-function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
- return setupBlock(
- createBaseVNode(
- type,
- props,
- children,
- patchFlag,
- dynamicProps,
- shapeFlag,
- true
- )
- );
-}
-function createBlock(type, props, children, patchFlag, dynamicProps) {
- return setupBlock(
- createVNode(
- type,
- props,
- children,
- patchFlag,
- dynamicProps,
- true
- )
- );
-}
-function isVNode(value) {
- return value ? value.__v_isVNode === true : false;
-}
-function isSameVNodeType(n1, n2) {
- return n1.type === n2.type && n1.key === n2.key;
-}
-const normalizeKey = ({ key }) => key != null ? key : null;
-const normalizeRef = ({
- ref: ref3,
- ref_key,
- ref_for
-}) => {
- if (typeof ref3 === "number") {
- ref3 = "" + ref3;
- }
- return ref3 != null ? isString(ref3) || /* @__PURE__ */ isRef(ref3) || isFunction$2(ref3) ? { i: currentRenderingInstance, r: ref3, k: ref_key, f: !!ref_for } : ref3 : null;
-};
-function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment$1 ? 0 : 1, isBlockNode2 = false, needFullChildrenNormalization = false) {
- const vnode = {
- __v_isVNode: true,
- __v_skip: true,
- type,
- props,
- key: props && normalizeKey(props),
- ref: props && normalizeRef(props),
- scopeId: currentScopeId,
- slotScopeIds: null,
- children,
- component: null,
- suspense: null,
- ssContent: null,
- ssFallback: null,
- dirs: null,
- transition: null,
- el: null,
- anchor: null,
- target: null,
- targetStart: null,
- targetAnchor: null,
- staticCount: 0,
- shapeFlag,
- patchFlag,
- dynamicProps,
- dynamicChildren: null,
- appContext: null,
- ctx: currentRenderingInstance
- };
- if (needFullChildrenNormalization) {
- normalizeChildren(vnode, children);
- if (shapeFlag & 128) {
- type.normalize(vnode);
- }
- } else if (children) {
- vnode.shapeFlag |= isString(children) ? 8 : 16;
- }
- if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
- !isBlockNode2 && // has current parent block
- currentBlock && // presence of a patch flag indicates this node needs patching on updates.
- // component nodes also should always be patched, because even if the
- // component doesn't need to update, it needs to persist the instance on to
- // the next vnode so that it can be properly unmounted later.
- (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
- // vnode should not be considered dynamic due to handler caching.
- vnode.patchFlag !== 32) {
- currentBlock.push(vnode);
- }
- return vnode;
-}
-const createVNode = _createVNode;
-function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode2 = false) {
- if (!type || type === NULL_DYNAMIC_COMPONENT) {
- type = Comment;
- }
- if (isVNode(type)) {
- const cloned = cloneVNode(
- type,
- props,
- true
- /* mergeRef: true */
- );
- if (children) {
- normalizeChildren(cloned, children);
- }
- if (isBlockTreeEnabled > 0 && !isBlockNode2 && currentBlock) {
- if (cloned.shapeFlag & 6) {
- currentBlock[currentBlock.indexOf(type)] = cloned;
- } else {
- currentBlock.push(cloned);
- }
- }
- cloned.patchFlag = -2;
- return cloned;
- }
- if (isClassComponent(type)) {
- type = type.__vccOpts;
- }
- if (props) {
- props = guardReactiveProps(props);
- let { class: klass, style: style2 } = props;
- if (klass && !isString(klass)) {
- props.class = normalizeClass(klass);
- }
- if (isObject$1(style2)) {
- if (/* @__PURE__ */ isProxy(style2) && !isArray$1(style2)) {
- style2 = extend({}, style2);
- }
- props.style = normalizeStyle(style2);
- }
- }
- const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$1(type) ? 4 : isFunction$2(type) ? 2 : 0;
- return createBaseVNode(
- type,
- props,
- children,
- patchFlag,
- dynamicProps,
- shapeFlag,
- isBlockNode2,
- true
- );
-}
-function guardReactiveProps(props) {
- if (!props) return null;
- return /* @__PURE__ */ isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
-}
-function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
- const { props, ref: ref3, patchFlag, children, transition } = vnode;
- const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
- const cloned = {
- __v_isVNode: true,
- __v_skip: true,
- type: vnode.type,
- props: mergedProps,
- key: mergedProps && normalizeKey(mergedProps),
- ref: extraProps && extraProps.ref ? (
- // #2078 in the case of
- // if the vnode itself already has a ref, cloneVNode will need to merge
- // the refs so the single vnode can be set on multiple refs
- mergeRef && ref3 ? isArray$1(ref3) ? ref3.concat(normalizeRef(extraProps)) : [ref3, normalizeRef(extraProps)] : normalizeRef(extraProps)
- ) : ref3,
- scopeId: vnode.scopeId,
- slotScopeIds: vnode.slotScopeIds,
- children,
- target: vnode.target,
- targetStart: vnode.targetStart,
- targetAnchor: vnode.targetAnchor,
- staticCount: vnode.staticCount,
- shapeFlag: vnode.shapeFlag,
- // if the vnode is cloned with extra props, we can no longer assume its
- // existing patch flag to be reliable and need to add the FULL_PROPS flag.
- // note: preserve flag for fragments since they use the flag for children
- // fast paths only.
- patchFlag: extraProps && vnode.type !== Fragment$1 ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
- dynamicProps: vnode.dynamicProps,
- dynamicChildren: vnode.dynamicChildren,
- appContext: vnode.appContext,
- dirs: vnode.dirs,
- transition,
- // These should technically only be non-null on mounted VNodes. However,
- // they *should* be copied for kept-alive vnodes. So we just always copy
- // them since them being non-null during a mount doesn't affect the logic as
- // they will simply be overwritten.
- component: vnode.component,
- suspense: vnode.suspense,
- ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
- ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
- placeholder: vnode.placeholder,
- el: vnode.el,
- anchor: vnode.anchor,
- ctx: vnode.ctx,
- ce: vnode.ce
- };
- if (transition && cloneTransition) {
- setTransitionHooks(
- cloned,
- transition.clone(cloned)
- );
- }
- return cloned;
-}
-function createTextVNode(text = " ", flag = 0) {
- return createVNode(Text$2, null, text, flag);
-}
-function createCommentVNode(text = "", asBlock = false) {
- return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);
-}
-function normalizeVNode(child) {
- if (child == null || typeof child === "boolean") {
- return createVNode(Comment);
- } else if (isArray$1(child)) {
- return createVNode(
- Fragment$1,
- null,
- // #3666, avoid reference pollution when reusing vnode
- child.slice()
- );
- } else if (isVNode(child)) {
- return cloneIfMounted(child);
- } else {
- return createVNode(Text$2, null, String(child));
- }
-}
-function cloneIfMounted(child) {
- return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
-}
-function normalizeChildren(vnode, children) {
- let type = 0;
- const { shapeFlag } = vnode;
- if (children == null) {
- children = null;
- } else if (isArray$1(children)) {
- type = 16;
- } else if (typeof children === "object") {
- if (shapeFlag & (1 | 64)) {
- const slot = children.default;
- if (slot) {
- slot._c && (slot._d = false);
- normalizeChildren(vnode, slot());
- slot._c && (slot._d = true);
- }
- return;
- } else {
- type = 32;
- const slotFlag = children._;
- if (!slotFlag && !isInternalObject(children)) {
- children._ctx = currentRenderingInstance;
- } else if (slotFlag === 3 && currentRenderingInstance) {
- if (currentRenderingInstance.slots._ === 1) {
- children._ = 1;
- } else {
- children._ = 2;
- vnode.patchFlag |= 1024;
- }
- }
- }
- } else if (isFunction$2(children)) {
- children = { default: children, _ctx: currentRenderingInstance };
- type = 32;
- } else {
- children = String(children);
- if (shapeFlag & 64) {
- type = 16;
- children = [createTextVNode(children)];
- } else {
- type = 8;
- }
- }
- vnode.children = children;
- vnode.shapeFlag |= type;
-}
-function mergeProps(...args) {
- const ret = {};
- for (let i = 0; i < args.length; i++) {
- const toMerge = args[i];
- for (const key in toMerge) {
- if (key === "class") {
- if (ret.class !== toMerge.class) {
- ret.class = normalizeClass([ret.class, toMerge.class]);
- }
- } else if (key === "style") {
- ret.style = normalizeStyle([ret.style, toMerge.style]);
- } else if (isOn(key)) {
- const existing = ret[key];
- const incoming = toMerge[key];
- if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {
- ret[key] = existing ? [].concat(existing, incoming) : incoming;
- }
- } else if (key !== "") {
- ret[key] = toMerge[key];
- }
- }
- }
- return ret;
-}
-function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
- callWithAsyncErrorHandling(hook, instance, 7, [
- vnode,
- prevVNode
- ]);
-}
-const emptyAppContext = createAppContext();
-let uid = 0;
-function createComponentInstance(vnode, parent, suspense) {
- const type = vnode.type;
- const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
- const instance = {
- uid: uid++,
- vnode,
- type,
- parent,
- appContext,
- root: null,
- // to be immediately set
- next: null,
- subTree: null,
- // will be set synchronously right after creation
- effect: null,
- update: null,
- // will be set synchronously right after creation
- job: null,
- scope: new EffectScope(
- true
- /* detached */
- ),
- render: null,
- proxy: null,
- exposed: null,
- exposeProxy: null,
- withProxy: null,
- provides: parent ? parent.provides : Object.create(appContext.provides),
- ids: parent ? parent.ids : ["", 0, 0],
- accessCache: null,
- renderCache: [],
- // local resolved assets
- components: null,
- directives: null,
- // resolved props and emits options
- propsOptions: normalizePropsOptions(type, appContext),
- emitsOptions: normalizeEmitsOptions(type, appContext),
- // emit
- emit: null,
- // to be set immediately
- emitted: null,
- // props default value
- propsDefaults: EMPTY_OBJ,
- // inheritAttrs
- inheritAttrs: type.inheritAttrs,
- // state
- ctx: EMPTY_OBJ,
- data: EMPTY_OBJ,
- props: EMPTY_OBJ,
- attrs: EMPTY_OBJ,
- slots: EMPTY_OBJ,
- refs: EMPTY_OBJ,
- setupState: EMPTY_OBJ,
- setupContext: null,
- // suspense related
- suspense,
- suspenseId: suspense ? suspense.pendingId : 0,
- asyncDep: null,
- asyncResolved: false,
- // lifecycle hooks
- // not using enums here because it results in computed properties
- isMounted: false,
- isUnmounted: false,
- isDeactivated: false,
- bc: null,
- c: null,
- bm: null,
- m: null,
- bu: null,
- u: null,
- um: null,
- bum: null,
- da: null,
- a: null,
- rtg: null,
- rtc: null,
- ec: null,
- sp: null
- };
- {
- instance.ctx = { _: instance };
- }
- instance.root = parent ? parent.root : instance;
- instance.emit = emit.bind(null, instance);
- if (vnode.ce) {
- vnode.ce(instance);
- }
- return instance;
-}
-let currentInstance = null;
-const getCurrentInstance = () => currentInstance || currentRenderingInstance;
-let internalSetCurrentInstance;
-let setInSSRSetupState;
-{
- const g = getGlobalThis();
- const registerGlobalSetter = (key, setter) => {
- let setters;
- if (!(setters = g[key])) setters = g[key] = [];
- setters.push(setter);
- return (v) => {
- if (setters.length > 1) setters.forEach((set) => set(v));
- else setters[0](v);
- };
- };
- internalSetCurrentInstance = registerGlobalSetter(
- `__VUE_INSTANCE_SETTERS__`,
- (v) => currentInstance = v
- );
- setInSSRSetupState = registerGlobalSetter(
- `__VUE_SSR_SETTERS__`,
- (v) => isInSSRComponentSetup = v
- );
-}
-const setCurrentInstance = (instance) => {
- const prev = currentInstance;
- internalSetCurrentInstance(instance);
- instance.scope.on();
- return () => {
- instance.scope.off();
- internalSetCurrentInstance(prev);
- };
-};
-const unsetCurrentInstance = () => {
- currentInstance && currentInstance.scope.off();
- internalSetCurrentInstance(null);
-};
-function isStatefulComponent(instance) {
- return instance.vnode.shapeFlag & 4;
-}
-let isInSSRComponentSetup = false;
-function setupComponent(instance, isSSR = false, optimized = false) {
- isSSR && setInSSRSetupState(isSSR);
- const { props, children } = instance.vnode;
- const isStateful = isStatefulComponent(instance);
- initProps(instance, props, isStateful, isSSR);
- initSlots(instance, children, optimized || isSSR);
- const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
- isSSR && setInSSRSetupState(false);
- return setupResult;
-}
-function setupStatefulComponent(instance, isSSR) {
- const Component = instance.type;
- instance.accessCache = /* @__PURE__ */ Object.create(null);
- instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);
- const { setup } = Component;
- if (setup) {
- pauseTracking();
- const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
- const reset2 = setCurrentInstance(instance);
- const setupResult = callWithErrorHandling(
- setup,
- instance,
- 0,
- [
- instance.props,
- setupContext
- ]
- );
- const isAsyncSetup = isPromise(setupResult);
- resetTracking();
- reset2();
- if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
- markAsyncBoundary(instance);
- }
- if (isAsyncSetup) {
- setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
- if (isSSR) {
- return setupResult.then((resolvedResult) => {
- handleSetupResult(instance, resolvedResult);
- }).catch((e) => {
- handleError(e, instance, 0);
- });
- } else {
- instance.asyncDep = setupResult;
- }
- } else {
- handleSetupResult(instance, setupResult);
- }
- } else {
- finishComponentSetup(instance);
- }
-}
-function handleSetupResult(instance, setupResult, isSSR) {
- if (isFunction$2(setupResult)) {
- if (instance.type.__ssrInlineRender) {
- instance.ssrRender = setupResult;
- } else {
- instance.render = setupResult;
- }
- } else if (isObject$1(setupResult)) {
- instance.setupState = proxyRefs(setupResult);
- } else ;
- finishComponentSetup(instance);
-}
-function finishComponentSetup(instance, isSSR, skipOptions) {
- const Component = instance.type;
- if (!instance.render) {
- instance.render = Component.render || NOOP;
- }
- {
- const reset2 = setCurrentInstance(instance);
- pauseTracking();
- try {
- applyOptions(instance);
- } finally {
- resetTracking();
- reset2();
- }
- }
-}
-const attrsProxyHandlers = {
- get(target, key) {
- track(target, "get", "");
- return target[key];
- }
-};
-function createSetupContext(instance) {
- const expose = (exposed) => {
- instance.exposed = exposed || {};
- };
- {
- return {
- attrs: new Proxy(instance.attrs, attrsProxyHandlers),
- slots: instance.slots,
- emit: instance.emit,
- expose
- };
- }
-}
-function getComponentPublicInstance(instance) {
- if (instance.exposed) {
- return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
- get(target, key) {
- if (key in target) {
- return target[key];
- } else if (key in publicPropertiesMap) {
- return publicPropertiesMap[key](instance);
- }
- },
- has(target, key) {
- return key in target || key in publicPropertiesMap;
- }
- }));
- } else {
- return instance.proxy;
- }
-}
-const classifyRE = /(?:^|[-_])\w/g;
-const classify = (str) => str.replace(classifyRE, (c2) => c2.toUpperCase()).replace(/[-_]/g, "");
-function getComponentName(Component, includeInferred = true) {
- return isFunction$2(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
-}
-function formatComponentName(instance, Component, isRoot = false) {
- let name = getComponentName(Component);
- if (!name && Component.__file) {
- const match = Component.__file.match(/([^/\\]+)\.\w+$/);
- if (match) {
- name = match[1];
- }
- }
- if (!name && instance) {
- const inferFromRegistry = (registry) => {
- for (const key in registry) {
- if (registry[key] === Component) {
- return key;
- }
- }
- };
- name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(
- instance.parent.type.components
- ) || inferFromRegistry(instance.appContext.components);
- }
- return name ? classify(name) : isRoot ? `App` : `Anonymous`;
-}
-function isClassComponent(value) {
- return isFunction$2(value) && "__vccOpts" in value;
-}
-const computed = (getterOrOptions, debugOptions) => {
- const c2 = /* @__PURE__ */ computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
- return c2;
-};
-function h$1(type, propsOrChildren, children) {
- try {
- setBlockTracking(-1);
- const l = arguments.length;
- if (l === 2) {
- if (isObject$1(propsOrChildren) && !isArray$1(propsOrChildren)) {
- if (isVNode(propsOrChildren)) {
- return createVNode(type, null, [propsOrChildren]);
- }
- return createVNode(type, propsOrChildren);
- } else {
- return createVNode(type, null, propsOrChildren);
- }
- } else {
- if (l > 3) {
- children = Array.prototype.slice.call(arguments, 2);
- } else if (l === 3 && isVNode(children)) {
- children = [children];
- }
- return createVNode(type, propsOrChildren, children);
- }
- } finally {
- setBlockTracking(1);
- }
-}
-const version$1 = "3.5.28";
-let policy = void 0;
-const tt$1 = typeof window !== "undefined" && window.trustedTypes;
-if (tt$1) {
- try {
- policy = /* @__PURE__ */ tt$1.createPolicy("vue", {
- createHTML: (val) => val
- });
- } catch (e) {
- }
-}
-const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
-const svgNS = "http://www.w3.org/2000/svg";
-const mathmlNS = "http://www.w3.org/1998/Math/MathML";
-const doc$2 = typeof document !== "undefined" ? document : null;
-const templateContainer = doc$2 && /* @__PURE__ */ doc$2.createElement("template");
-const nodeOps = {
- insert: (child, parent, anchor) => {
- parent.insertBefore(child, anchor || null);
- },
- remove: (child) => {
- const parent = child.parentNode;
- if (parent) {
- parent.removeChild(child);
- }
- },
- createElement: (tag, namespace, is, props) => {
- const el = namespace === "svg" ? doc$2.createElementNS(svgNS, tag) : namespace === "mathml" ? doc$2.createElementNS(mathmlNS, tag) : is ? doc$2.createElement(tag, { is }) : doc$2.createElement(tag);
- if (tag === "select" && props && props.multiple != null) {
- el.setAttribute("multiple", props.multiple);
- }
- return el;
- },
- createText: (text) => doc$2.createTextNode(text),
- createComment: (text) => doc$2.createComment(text),
- setText: (node, text) => {
- node.nodeValue = text;
- },
- setElementText: (el, text) => {
- el.textContent = text;
- },
- parentNode: (node) => node.parentNode,
- nextSibling: (node) => node.nextSibling,
- querySelector: (selector) => doc$2.querySelector(selector),
- setScopeId(el, id) {
- el.setAttribute(id, "");
- },
- // __UNSAFE__
- // Reason: innerHTML.
- // Static content here can only come from compiled templates.
- // As long as the user only uses trusted templates, this is safe.
- insertStaticContent(content, parent, anchor, namespace, start, end) {
- const before = anchor ? anchor.previousSibling : parent.lastChild;
- if (start && (start === end || start.nextSibling)) {
- while (true) {
- parent.insertBefore(start.cloneNode(true), anchor);
- if (start === end || !(start = start.nextSibling)) break;
- }
- } else {
- templateContainer.innerHTML = unsafeToTrustedHTML(
- namespace === "svg" ? `` : namespace === "mathml" ? `` : content
- );
- const template = templateContainer.content;
- if (namespace === "svg" || namespace === "mathml") {
- const wrapper = template.firstChild;
- while (wrapper.firstChild) {
- template.appendChild(wrapper.firstChild);
- }
- template.removeChild(wrapper);
- }
- parent.insertBefore(template, anchor);
- }
- return [
- // first
- before ? before.nextSibling : parent.firstChild,
- // last
- anchor ? anchor.previousSibling : parent.lastChild
- ];
- }
-};
-const TRANSITION = "transition";
-const ANIMATION = "animation";
-const vtcKey = /* @__PURE__ */ Symbol("_vtc");
-const DOMTransitionPropsValidators = {
- name: String,
- type: String,
- css: {
- type: Boolean,
- default: true
- },
- duration: [String, Number, Object],
- enterFromClass: String,
- enterActiveClass: String,
- enterToClass: String,
- appearFromClass: String,
- appearActiveClass: String,
- appearToClass: String,
- leaveFromClass: String,
- leaveActiveClass: String,
- leaveToClass: String
-};
-const TransitionPropsValidators = /* @__PURE__ */ extend(
- {},
- BaseTransitionPropsValidators,
- DOMTransitionPropsValidators
-);
-const decorate$1 = (t) => {
- t.displayName = "Transition";
- t.props = TransitionPropsValidators;
- return t;
-};
-const Transition = /* @__PURE__ */ decorate$1(
- (props, { slots }) => h$1(BaseTransition, resolveTransitionProps(props), slots)
-);
-const callHook = (hook, args = []) => {
- if (isArray$1(hook)) {
- hook.forEach((h2) => h2(...args));
- } else if (hook) {
- hook(...args);
- }
-};
-const hasExplicitCallback = (hook) => {
- return hook ? isArray$1(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
-};
-function resolveTransitionProps(rawProps) {
- const baseProps = {};
- for (const key in rawProps) {
- if (!(key in DOMTransitionPropsValidators)) {
- baseProps[key] = rawProps[key];
- }
- }
- if (rawProps.css === false) {
- return baseProps;
- }
- const {
- name = "v",
- type,
- duration,
- enterFromClass = `${name}-enter-from`,
- enterActiveClass = `${name}-enter-active`,
- enterToClass = `${name}-enter-to`,
- appearFromClass = enterFromClass,
- appearActiveClass = enterActiveClass,
- appearToClass = enterToClass,
- leaveFromClass = `${name}-leave-from`,
- leaveActiveClass = `${name}-leave-active`,
- leaveToClass = `${name}-leave-to`
- } = rawProps;
- const durations = normalizeDuration(duration);
- const enterDuration = durations && durations[0];
- const leaveDuration = durations && durations[1];
- const {
- onBeforeEnter,
- onEnter,
- onEnterCancelled,
- onLeave,
- onLeaveCancelled,
- onBeforeAppear = onBeforeEnter,
- onAppear = onEnter,
- onAppearCancelled = onEnterCancelled
- } = baseProps;
- const finishEnter = (el, isAppear, done, isCancelled) => {
- el._enterCancelled = isCancelled;
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
- done && done();
- };
- const finishLeave = (el, done) => {
- el._isLeaving = false;
- removeTransitionClass(el, leaveFromClass);
- removeTransitionClass(el, leaveToClass);
- removeTransitionClass(el, leaveActiveClass);
- done && done();
- };
- const makeEnterHook = (isAppear) => {
- return (el, done) => {
- const hook = isAppear ? onAppear : onEnter;
- const resolve2 = () => finishEnter(el, isAppear, done);
- callHook(hook, [el, resolve2]);
- nextFrame(() => {
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
- if (!hasExplicitCallback(hook)) {
- whenTransitionEnds(el, type, enterDuration, resolve2);
- }
- });
- };
- };
- return extend(baseProps, {
- onBeforeEnter(el) {
- callHook(onBeforeEnter, [el]);
- addTransitionClass(el, enterFromClass);
- addTransitionClass(el, enterActiveClass);
- },
- onBeforeAppear(el) {
- callHook(onBeforeAppear, [el]);
- addTransitionClass(el, appearFromClass);
- addTransitionClass(el, appearActiveClass);
- },
- onEnter: makeEnterHook(false),
- onAppear: makeEnterHook(true),
- onLeave(el, done) {
- el._isLeaving = true;
- const resolve2 = () => finishLeave(el, done);
- addTransitionClass(el, leaveFromClass);
- if (!el._enterCancelled) {
- forceReflow(el);
- addTransitionClass(el, leaveActiveClass);
- } else {
- addTransitionClass(el, leaveActiveClass);
- forceReflow(el);
- }
- nextFrame(() => {
- if (!el._isLeaving) {
- return;
- }
- removeTransitionClass(el, leaveFromClass);
- addTransitionClass(el, leaveToClass);
- if (!hasExplicitCallback(onLeave)) {
- whenTransitionEnds(el, type, leaveDuration, resolve2);
- }
- });
- callHook(onLeave, [el, resolve2]);
- },
- onEnterCancelled(el) {
- finishEnter(el, false, void 0, true);
- callHook(onEnterCancelled, [el]);
- },
- onAppearCancelled(el) {
- finishEnter(el, true, void 0, true);
- callHook(onAppearCancelled, [el]);
- },
- onLeaveCancelled(el) {
- finishLeave(el);
- callHook(onLeaveCancelled, [el]);
- }
- });
-}
-function normalizeDuration(duration) {
- if (duration == null) {
- return null;
- } else if (isObject$1(duration)) {
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
- } else {
- const n = NumberOf(duration);
- return [n, n];
- }
-}
-function NumberOf(val) {
- const res = toNumber(val);
- return res;
-}
-function addTransitionClass(el, cls) {
- cls.split(/\s+/).forEach((c2) => c2 && el.classList.add(c2));
- (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
-}
-function removeTransitionClass(el, cls) {
- cls.split(/\s+/).forEach((c2) => c2 && el.classList.remove(c2));
- const _vtc = el[vtcKey];
- if (_vtc) {
- _vtc.delete(cls);
- if (!_vtc.size) {
- el[vtcKey] = void 0;
- }
- }
-}
-function nextFrame(cb) {
- requestAnimationFrame(() => {
- requestAnimationFrame(cb);
- });
-}
-let endId = 0;
-function whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) {
- const id = el._endId = ++endId;
- const resolveIfNotStale = () => {
- if (id === el._endId) {
- resolve2();
- }
- };
- if (explicitTimeout != null) {
- return setTimeout(resolveIfNotStale, explicitTimeout);
- }
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
- if (!type) {
- return resolve2();
- }
- const endEvent = type + "end";
- let ended = 0;
- const end = () => {
- el.removeEventListener(endEvent, onEnd);
- resolveIfNotStale();
- };
- const onEnd = (e) => {
- if (e.target === el && ++ended >= propCount) {
- end();
- }
- };
- setTimeout(() => {
- if (ended < propCount) {
- end();
- }
- }, timeout + 1);
- el.addEventListener(endEvent, onEnd);
-}
-function getTransitionInfo(el, expectedType) {
- const styles = window.getComputedStyle(el);
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
- const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
- const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
- const animationTimeout = getTimeout(animationDelays, animationDurations);
- let type = null;
- let timeout = 0;
- let propCount = 0;
- if (expectedType === TRANSITION) {
- if (transitionTimeout > 0) {
- type = TRANSITION;
- timeout = transitionTimeout;
- propCount = transitionDurations.length;
- }
- } else if (expectedType === ANIMATION) {
- if (animationTimeout > 0) {
- type = ANIMATION;
- timeout = animationTimeout;
- propCount = animationDurations.length;
- }
- } else {
- timeout = Math.max(transitionTimeout, animationTimeout);
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
- propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
- }
- const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test(
- getStyleProperties(`${TRANSITION}Property`).toString()
- );
- return {
- type,
- timeout,
- propCount,
- hasTransform
- };
-}
-function getTimeout(delays, durations) {
- while (delays.length < durations.length) {
- delays = delays.concat(delays);
- }
- return Math.max(...durations.map((d2, i) => toMs(d2) + toMs(delays[i])));
-}
-function toMs(s) {
- if (s === "auto") return 0;
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
-}
-function forceReflow(el) {
- const targetDocument = el ? el.ownerDocument : document;
- return targetDocument.body.offsetHeight;
-}
-function patchClass(el, value, isSVG) {
- const transitionClasses = el[vtcKey];
- if (transitionClasses) {
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
- }
- if (value == null) {
- el.removeAttribute("class");
- } else if (isSVG) {
- el.setAttribute("class", value);
- } else {
- el.className = value;
- }
-}
-const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
-const vShowHidden = /* @__PURE__ */ Symbol("_vsh");
-const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("");
-const displayRE = /(?:^|;)\s*display\s*:/;
-function patchStyle(el, prev, next) {
- const style2 = el.style;
- const isCssString = isString(next);
- let hasControlledDisplay = false;
- if (next && !isCssString) {
- if (prev) {
- if (!isString(prev)) {
- for (const key in prev) {
- if (next[key] == null) {
- setStyle(style2, key, "");
- }
- }
- } else {
- for (const prevStyle of prev.split(";")) {
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
- if (next[key] == null) {
- setStyle(style2, key, "");
- }
- }
- }
- }
- for (const key in next) {
- if (key === "display") {
- hasControlledDisplay = true;
- }
- setStyle(style2, key, next[key]);
- }
- } else {
- if (isCssString) {
- if (prev !== next) {
- const cssVarText = style2[CSS_VAR_TEXT];
- if (cssVarText) {
- next += ";" + cssVarText;
- }
- style2.cssText = next;
- hasControlledDisplay = displayRE.test(next);
- }
- } else if (prev) {
- el.removeAttribute("style");
- }
- }
- if (vShowOriginalDisplay in el) {
- el[vShowOriginalDisplay] = hasControlledDisplay ? style2.display : "";
- if (el[vShowHidden]) {
- style2.display = "none";
- }
- }
-}
-const importantRE = /\s*!important$/;
-function setStyle(style2, name, val) {
- if (isArray$1(val)) {
- val.forEach((v) => setStyle(style2, name, v));
- } else {
- if (val == null) val = "";
- if (name.startsWith("--")) {
- style2.setProperty(name, val);
- } else {
- const prefixed = autoPrefix(style2, name);
- if (importantRE.test(val)) {
- style2.setProperty(
- hyphenate(prefixed),
- val.replace(importantRE, ""),
- "important"
- );
- } else {
- style2[prefixed] = val;
- }
- }
- }
-}
-const prefixes = ["Webkit", "Moz", "ms"];
-const prefixCache = {};
-function autoPrefix(style2, rawName) {
- const cached = prefixCache[rawName];
- if (cached) {
- return cached;
- }
- let name = camelize(rawName);
- if (name !== "filter" && name in style2) {
- return prefixCache[rawName] = name;
- }
- name = capitalize(name);
- for (let i = 0; i < prefixes.length; i++) {
- const prefixed = prefixes[i] + name;
- if (prefixed in style2) {
- return prefixCache[rawName] = prefixed;
- }
- }
- return rawName;
-}
-const xlinkNS = "http://www.w3.org/1999/xlink";
-function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
- if (isSVG && key.startsWith("xlink:")) {
- if (value == null) {
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
- } else {
- el.setAttributeNS(xlinkNS, key, value);
- }
- } else {
- if (value == null || isBoolean && !includeBooleanAttr(value)) {
- el.removeAttribute(key);
- } else {
- el.setAttribute(
- key,
- isBoolean ? "" : isSymbol(value) ? String(value) : value
- );
- }
- }
-}
-function patchDOMProp(el, key, value, parentComponent, attrName) {
- if (key === "innerHTML" || key === "textContent") {
- if (value != null) {
- el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
- }
- return;
- }
- const tag = el.tagName;
- if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
- !tag.includes("-")) {
- const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
- const newValue = value == null ? (
- // #11647: value should be set as empty string for null and undefined,
- // but should be set as 'on'.
- el.type === "checkbox" ? "on" : ""
- ) : String(value);
- if (oldValue !== newValue || !("_value" in el)) {
- el.value = newValue;
- }
- if (value == null) {
- el.removeAttribute(key);
- }
- el._value = value;
- return;
- }
- let needRemove = false;
- if (value === "" || value == null) {
- const type = typeof el[key];
- if (type === "boolean") {
- value = includeBooleanAttr(value);
- } else if (value == null && type === "string") {
- value = "";
- needRemove = true;
- } else if (type === "number") {
- value = 0;
- needRemove = true;
- }
- }
- try {
- el[key] = value;
- } catch (e) {
- }
- needRemove && el.removeAttribute(attrName || key);
-}
-function addEventListener(el, event, handler, options) {
- el.addEventListener(event, handler, options);
-}
-function removeEventListener(el, event, handler, options) {
- el.removeEventListener(event, handler, options);
-}
-const veiKey = /* @__PURE__ */ Symbol("_vei");
-function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
- const invokers = el[veiKey] || (el[veiKey] = {});
- const existingInvoker = invokers[rawName];
- if (nextValue && existingInvoker) {
- existingInvoker.value = nextValue;
- } else {
- const [name, options] = parseName(rawName);
- if (nextValue) {
- const invoker = invokers[rawName] = createInvoker(
- nextValue,
- instance
- );
- addEventListener(el, name, invoker, options);
- } else if (existingInvoker) {
- removeEventListener(el, name, existingInvoker, options);
- invokers[rawName] = void 0;
- }
- }
-}
-const optionsModifierRE = /(?:Once|Passive|Capture)$/;
-function parseName(name) {
- let options;
- if (optionsModifierRE.test(name)) {
- options = {};
- let m;
- while (m = name.match(optionsModifierRE)) {
- name = name.slice(0, name.length - m[0].length);
- options[m[0].toLowerCase()] = true;
- }
- }
- const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
- return [event, options];
-}
-let cachedNow = 0;
-const p = /* @__PURE__ */ Promise.resolve();
-const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
-function createInvoker(initialValue, instance) {
- const invoker = (e) => {
- if (!e._vts) {
- e._vts = Date.now();
- } else if (e._vts <= invoker.attached) {
- return;
- }
- callWithAsyncErrorHandling(
- patchStopImmediatePropagation(e, invoker.value),
- instance,
- 5,
- [e]
- );
- };
- invoker.value = initialValue;
- invoker.attached = getNow();
- return invoker;
-}
-function patchStopImmediatePropagation(e, value) {
- if (isArray$1(value)) {
- const originalStop = e.stopImmediatePropagation;
- e.stopImmediatePropagation = () => {
- originalStop.call(e);
- e._stopped = true;
- };
- return value.map(
- (fn) => (e2) => !e2._stopped && fn && fn(e2)
- );
- } else {
- return value;
- }
-}
-const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
-key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
-const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
- const isSVG = namespace === "svg";
- if (key === "class") {
- patchClass(el, nextValue, isSVG);
- } else if (key === "style") {
- patchStyle(el, prevValue, nextValue);
- } else if (isOn(key)) {
- if (!isModelListener(key)) {
- patchEvent(el, key, prevValue, nextValue, parentComponent);
- }
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
- patchDOMProp(el, key, nextValue);
- if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
- patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
- }
- } else if (
- // #11081 force set props for possible async custom element
- el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))
- ) {
- patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
- } else {
- if (key === "true-value") {
- el._trueValue = nextValue;
- } else if (key === "false-value") {
- el._falseValue = nextValue;
- }
- patchAttr(el, key, nextValue, isSVG);
- }
-};
-function shouldSetAsProp(el, key, value, isSVG) {
- if (isSVG) {
- if (key === "innerHTML" || key === "textContent") {
- return true;
- }
- if (key in el && isNativeOn(key) && isFunction$2(value)) {
- return true;
- }
- return false;
- }
- if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
- return false;
- }
- if (key === "sandbox" && el.tagName === "IFRAME") {
- return false;
- }
- if (key === "form") {
- return false;
- }
- if (key === "list" && el.tagName === "INPUT") {
- return false;
- }
- if (key === "type" && el.tagName === "TEXTAREA") {
- return false;
- }
- if (key === "width" || key === "height") {
- const tag = el.tagName;
- if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") {
- return false;
- }
- }
- if (isNativeOn(key) && isString(value)) {
- return false;
- }
- return key in el;
-}
-const getModelAssigner = (vnode) => {
- const fn = vnode.props["onUpdate:modelValue"] || false;
- return isArray$1(fn) ? (value) => invokeArrayFns(fn, value) : fn;
-};
-function onCompositionStart(e) {
- e.target.composing = true;
-}
-function onCompositionEnd(e) {
- const target = e.target;
- if (target.composing) {
- target.composing = false;
- target.dispatchEvent(new Event("input"));
- }
-}
-const assignKey = /* @__PURE__ */ Symbol("_assign");
-function castValue(value, trim, number) {
- if (trim) value = value.trim();
- if (number) value = looseToNumber(value);
- return value;
-}
-const vModelText = {
- created(el, { modifiers: { lazy, trim, number } }, vnode) {
- el[assignKey] = getModelAssigner(vnode);
- const castToNumber = number || vnode.props && vnode.props.type === "number";
- addEventListener(el, lazy ? "change" : "input", (e) => {
- if (e.target.composing) return;
- el[assignKey](castValue(el.value, trim, castToNumber));
- });
- if (trim || castToNumber) {
- addEventListener(el, "change", () => {
- el.value = castValue(el.value, trim, castToNumber);
- });
- }
- if (!lazy) {
- addEventListener(el, "compositionstart", onCompositionStart);
- addEventListener(el, "compositionend", onCompositionEnd);
- addEventListener(el, "change", onCompositionEnd);
- }
- },
- // set value on mounted so it's after min/max for type="range"
- mounted(el, { value }) {
- el.value = value == null ? "" : value;
- },
- beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
- el[assignKey] = getModelAssigner(vnode);
- if (el.composing) return;
- const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
- const newValue = value == null ? "" : value;
- if (elValue === newValue) {
- return;
- }
- if (document.activeElement === el && el.type !== "range") {
- if (lazy && value === oldValue) {
- return;
- }
- if (trim && el.value.trim() === newValue) {
- return;
- }
- }
- el.value = newValue;
- }
-};
-const systemModifiers = ["ctrl", "shift", "alt", "meta"];
-const modifierGuards = {
- stop: (e) => e.stopPropagation(),
- prevent: (e) => e.preventDefault(),
- self: (e) => e.target !== e.currentTarget,
- ctrl: (e) => !e.ctrlKey,
- shift: (e) => !e.shiftKey,
- alt: (e) => !e.altKey,
- meta: (e) => !e.metaKey,
- left: (e) => "button" in e && e.button !== 0,
- middle: (e) => "button" in e && e.button !== 1,
- right: (e) => "button" in e && e.button !== 2,
- exact: (e, modifiers2) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers2.includes(m))
-};
-const withModifiers = (fn, modifiers2) => {
- if (!fn) return fn;
- const cache = fn._withMods || (fn._withMods = {});
- const cacheKey = modifiers2.join(".");
- return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
- for (let i = 0; i < modifiers2.length; i++) {
- const guard = modifierGuards[modifiers2[i]];
- if (guard && guard(event, modifiers2)) return;
- }
- return fn(event, ...args);
- }));
-};
-const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
-let renderer;
-function ensureRenderer() {
- return renderer || (renderer = createRenderer(rendererOptions));
-}
-const createApp = ((...args) => {
- const app2 = ensureRenderer().createApp(...args);
- const { mount } = app2;
- app2.mount = (containerOrSelector) => {
- const container = normalizeContainer(containerOrSelector);
- if (!container) return;
- const component = app2._component;
- if (!isFunction$2(component) && !component.render && !component.template) {
- component.template = container.innerHTML;
- }
- if (container.nodeType === 1) {
- container.textContent = "";
- }
- const proxy = mount(container, false, resolveRootNamespace(container));
- if (container instanceof Element) {
- container.removeAttribute("v-cloak");
- container.setAttribute("data-v-app", "");
- }
- return proxy;
- };
- return app2;
-});
-function resolveRootNamespace(container) {
- if (container instanceof SVGElement) {
- return "svg";
- }
- if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
- return "mathml";
- }
-}
-function normalizeContainer(container) {
- if (isString(container)) {
- const res = document.querySelector(container);
- return res;
- }
- return container;
-}
-var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
-function getDefaultExportFromCjs(x) {
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
-}
-var dist = {};
-var fontfaceobserver_standalone = { exports: {} };
-var hasRequiredFontfaceobserver_standalone;
-function requireFontfaceobserver_standalone() {
- if (hasRequiredFontfaceobserver_standalone) return fontfaceobserver_standalone.exports;
- hasRequiredFontfaceobserver_standalone = 1;
- (function(module) {
- (function() {
- function p2(a, c2) {
- document.addEventListener ? a.addEventListener("scroll", c2, false) : a.attachEvent("scroll", c2);
- }
- function u(a) {
- document.body ? a() : document.addEventListener ? document.addEventListener("DOMContentLoaded", function b() {
- document.removeEventListener("DOMContentLoaded", b);
- a();
- }) : document.attachEvent("onreadystatechange", function g() {
- if ("interactive" == document.readyState || "complete" == document.readyState) document.detachEvent("onreadystatechange", g), a();
- });
- }
- function w(a) {
- this.g = document.createElement("div");
- this.g.setAttribute("aria-hidden", "true");
- this.g.appendChild(document.createTextNode(a));
- this.h = document.createElement("span");
- this.i = document.createElement("span");
- this.m = document.createElement("span");
- this.j = document.createElement("span");
- this.l = -1;
- this.h.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";
- this.i.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";
- this.j.style.cssText = "max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";
- this.m.style.cssText = "display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";
- this.h.appendChild(this.m);
- this.i.appendChild(this.j);
- this.g.appendChild(this.h);
- this.g.appendChild(this.i);
- }
- function x(a, c2) {
- a.g.style.cssText = "max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:" + c2 + ";";
- }
- function B(a) {
- var c2 = a.g.offsetWidth, b = c2 + 100;
- a.j.style.width = b + "px";
- a.i.scrollLeft = b;
- a.h.scrollLeft = a.h.scrollWidth + 100;
- return a.l !== c2 ? (a.l = c2, true) : false;
- }
- function C(a, c2) {
- function b() {
- var e = g;
- B(e) && null !== e.g.parentNode && c2(e.l);
- }
- var g = a;
- p2(a.h, b);
- p2(a.i, b);
- B(a);
- }
- function D(a, c2, b) {
- c2 = c2 || {};
- b = b || window;
- this.family = a;
- this.style = c2.style || "normal";
- this.weight = c2.weight || "normal";
- this.stretch = c2.stretch || "normal";
- this.context = b;
- }
- var E = null, F = null, G = null, H = null;
- function I(a) {
- null === F && (M(a) && /Apple/.test(window.navigator.vendor) ? (a = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent), F = !!a && 603 > parseInt(a[1], 10)) : F = false);
- return F;
- }
- function M(a) {
- null === H && (H = !!a.document.fonts);
- return H;
- }
- function N(a, c2) {
- var b = a.style, g = a.weight;
- if (null === G) {
- var e = document.createElement("div");
- try {
- e.style.font = "condensed 100px sans-serif";
- } catch (q2) {
- }
- G = "" !== e.style.font;
- }
- return [b, g, G ? a.stretch : "", "100px", c2].join(" ");
- }
- D.prototype.load = function(a, c2) {
- var b = this, g = a || "BESbswy", e = 0, q2 = c2 || 3e3, J = (/* @__PURE__ */ new Date()).getTime();
- return new Promise(function(K, L) {
- if (M(b.context) && !I(b.context)) {
- var O = new Promise(function(r2, t) {
- function h2() {
- (/* @__PURE__ */ new Date()).getTime() - J >= q2 ? t(Error("" + q2 + "ms timeout exceeded")) : b.context.document.fonts.load(N(b, '"' + b.family + '"'), g).then(function(n) {
- 1 <= n.length ? r2() : setTimeout(h2, 25);
- }, t);
- }
- h2();
- }), P = new Promise(function(r2, t) {
- e = setTimeout(function() {
- t(Error("" + q2 + "ms timeout exceeded"));
- }, q2);
- });
- Promise.race([P, O]).then(function() {
- clearTimeout(e);
- K(b);
- }, L);
- } else u(function() {
- function r2() {
- var d2;
- if (d2 = -1 != k && -1 != l || -1 != k && -1 != m || -1 != l && -1 != m) (d2 = k != l && k != m && l != m) || (null === E && (d2 = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent), E = !!d2 && (536 > parseInt(d2[1], 10) || 536 === parseInt(d2[1], 10) && 11 >= parseInt(d2[2], 10))), d2 = E && (k == y && l == y && m == y || k == z && l == z && m == z || k == A && l == A && m == A)), d2 = !d2;
- d2 && (null !== f.parentNode && f.parentNode.removeChild(f), clearTimeout(e), K(b));
- }
- function t() {
- if ((/* @__PURE__ */ new Date()).getTime() - J >= q2) null !== f.parentNode && f.parentNode.removeChild(f), L(Error("" + q2 + "ms timeout exceeded"));
- else {
- var d2 = b.context.document.hidden;
- if (true === d2 || void 0 === d2) k = h2.g.offsetWidth, l = n.g.offsetWidth, m = v.g.offsetWidth, r2();
- e = setTimeout(t, 50);
- }
- }
- var h2 = new w(g), n = new w(g), v = new w(g), k = -1, l = -1, m = -1, y = -1, z = -1, A = -1, f = document.createElement("div");
- f.dir = "ltr";
- x(h2, N(b, "sans-serif"));
- x(n, N(b, "serif"));
- x(v, N(b, "monospace"));
- f.appendChild(h2.g);
- f.appendChild(n.g);
- f.appendChild(v.g);
- b.context.document.body.appendChild(f);
- y = h2.g.offsetWidth;
- z = n.g.offsetWidth;
- A = v.g.offsetWidth;
- t();
- C(h2, function(d2) {
- k = d2;
- r2();
- });
- x(h2, N(b, '"' + b.family + '",sans-serif'));
- C(n, function(d2) {
- l = d2;
- r2();
- });
- x(n, N(b, '"' + b.family + '",serif'));
- C(v, function(d2) {
- m = d2;
- r2();
- });
- x(v, N(b, '"' + b.family + '",monospace'));
- });
- });
- };
- module.exports = D;
- })();
- })(fontfaceobserver_standalone);
- return fontfaceobserver_standalone.exports;
-}
-var _freeGlobal;
-var hasRequired_freeGlobal;
-function require_freeGlobal() {
- if (hasRequired_freeGlobal) return _freeGlobal;
- hasRequired_freeGlobal = 1;
- var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
- _freeGlobal = freeGlobal;
- return _freeGlobal;
-}
-var _root;
-var hasRequired_root;
-function require_root() {
- if (hasRequired_root) return _root;
- hasRequired_root = 1;
- var freeGlobal = require_freeGlobal();
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
- var root = freeGlobal || freeSelf || Function("return this")();
- _root = root;
- return _root;
-}
-var _Symbol;
-var hasRequired_Symbol;
-function require_Symbol() {
- if (hasRequired_Symbol) return _Symbol;
- hasRequired_Symbol = 1;
- var root = require_root();
- var Symbol2 = root.Symbol;
- _Symbol = Symbol2;
- return _Symbol;
-}
-var _getRawTag;
-var hasRequired_getRawTag;
-function require_getRawTag() {
- if (hasRequired_getRawTag) return _getRawTag;
- hasRequired_getRawTag = 1;
- var Symbol2 = require_Symbol();
- var objectProto = Object.prototype;
- var hasOwnProperty2 = objectProto.hasOwnProperty;
- var nativeObjectToString = objectProto.toString;
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
- function getRawTag(value) {
- var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag];
- try {
- value[symToStringTag] = void 0;
- var unmasked = true;
- } catch (e) {
- }
- var result = nativeObjectToString.call(value);
- if (unmasked) {
- if (isOwn) {
- value[symToStringTag] = tag;
- } else {
- delete value[symToStringTag];
- }
- }
- return result;
- }
- _getRawTag = getRawTag;
- return _getRawTag;
-}
-var _objectToString;
-var hasRequired_objectToString;
-function require_objectToString() {
- if (hasRequired_objectToString) return _objectToString;
- hasRequired_objectToString = 1;
- var objectProto = Object.prototype;
- var nativeObjectToString = objectProto.toString;
- function objectToString2(value) {
- return nativeObjectToString.call(value);
- }
- _objectToString = objectToString2;
- return _objectToString;
-}
-var _baseGetTag;
-var hasRequired_baseGetTag;
-function require_baseGetTag() {
- if (hasRequired_baseGetTag) return _baseGetTag;
- hasRequired_baseGetTag = 1;
- var Symbol2 = require_Symbol(), getRawTag = require_getRawTag(), objectToString2 = require_objectToString();
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
- var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
- function baseGetTag(value) {
- if (value == null) {
- return value === void 0 ? undefinedTag : nullTag;
- }
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString2(value);
- }
- _baseGetTag = baseGetTag;
- return _baseGetTag;
-}
-var isObject_1;
-var hasRequiredIsObject;
-function requireIsObject() {
- if (hasRequiredIsObject) return isObject_1;
- hasRequiredIsObject = 1;
- function isObject2(value) {
- var type = typeof value;
- return value != null && (type == "object" || type == "function");
- }
- isObject_1 = isObject2;
- return isObject_1;
-}
-var isFunction_1;
-var hasRequiredIsFunction;
-function requireIsFunction() {
- if (hasRequiredIsFunction) return isFunction_1;
- hasRequiredIsFunction = 1;
- var baseGetTag = require_baseGetTag(), isObject2 = requireIsObject();
- var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
- function isFunction2(value) {
- if (!isObject2(value)) {
- return false;
- }
- var tag = baseGetTag(value);
- return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
- }
- isFunction_1 = isFunction2;
- return isFunction_1;
-}
-var _coreJsData;
-var hasRequired_coreJsData;
-function require_coreJsData() {
- if (hasRequired_coreJsData) return _coreJsData;
- hasRequired_coreJsData = 1;
- var root = require_root();
- var coreJsData = root["__core-js_shared__"];
- _coreJsData = coreJsData;
- return _coreJsData;
-}
-var _isMasked;
-var hasRequired_isMasked;
-function require_isMasked() {
- if (hasRequired_isMasked) return _isMasked;
- hasRequired_isMasked = 1;
- var coreJsData = require_coreJsData();
- var maskSrcKey = (function() {
- var uid2 = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
- return uid2 ? "Symbol(src)_1." + uid2 : "";
- })();
- function isMasked(func) {
- return !!maskSrcKey && maskSrcKey in func;
- }
- _isMasked = isMasked;
- return _isMasked;
-}
-var _toSource;
-var hasRequired_toSource;
-function require_toSource() {
- if (hasRequired_toSource) return _toSource;
- hasRequired_toSource = 1;
- var funcProto = Function.prototype;
- var funcToString = funcProto.toString;
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {
- }
- try {
- return func + "";
- } catch (e) {
- }
- }
- return "";
- }
- _toSource = toSource;
- return _toSource;
-}
-var _baseIsNative;
-var hasRequired_baseIsNative;
-function require_baseIsNative() {
- if (hasRequired_baseIsNative) return _baseIsNative;
- hasRequired_baseIsNative = 1;
- var isFunction2 = requireIsFunction(), isMasked = require_isMasked(), isObject2 = requireIsObject(), toSource = require_toSource();
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
- var funcProto = Function.prototype, objectProto = Object.prototype;
- var funcToString = funcProto.toString;
- var hasOwnProperty2 = objectProto.hasOwnProperty;
- var reIsNative = RegExp(
- "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
- );
- function baseIsNative(value) {
- if (!isObject2(value) || isMasked(value)) {
- return false;
- }
- var pattern = isFunction2(value) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
- _baseIsNative = baseIsNative;
- return _baseIsNative;
-}
-var _getValue;
-var hasRequired_getValue;
-function require_getValue() {
- if (hasRequired_getValue) return _getValue;
- hasRequired_getValue = 1;
- function getValue(object, key) {
- return object == null ? void 0 : object[key];
- }
- _getValue = getValue;
- return _getValue;
-}
-var _getNative;
-var hasRequired_getNative;
-function require_getNative() {
- if (hasRequired_getNative) return _getNative;
- hasRequired_getNative = 1;
- var baseIsNative = require_baseIsNative(), getValue = require_getValue();
- function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : void 0;
- }
- _getNative = getNative;
- return _getNative;
-}
-var _nativeCreate;
-var hasRequired_nativeCreate;
-function require_nativeCreate() {
- if (hasRequired_nativeCreate) return _nativeCreate;
- hasRequired_nativeCreate = 1;
- var getNative = require_getNative();
- var nativeCreate = getNative(Object, "create");
- _nativeCreate = nativeCreate;
- return _nativeCreate;
-}
-var _hashClear;
-var hasRequired_hashClear;
-function require_hashClear() {
- if (hasRequired_hashClear) return _hashClear;
- hasRequired_hashClear = 1;
- var nativeCreate = require_nativeCreate();
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- this.size = 0;
- }
- _hashClear = hashClear;
- return _hashClear;
-}
-var _hashDelete;
-var hasRequired_hashDelete;
-function require_hashDelete() {
- if (hasRequired_hashDelete) return _hashDelete;
- hasRequired_hashDelete = 1;
- function hashDelete(key) {
- var result = this.has(key) && delete this.__data__[key];
- this.size -= result ? 1 : 0;
- return result;
- }
- _hashDelete = hashDelete;
- return _hashDelete;
-}
-var _hashGet;
-var hasRequired_hashGet;
-function require_hashGet() {
- if (hasRequired_hashGet) return _hashGet;
- hasRequired_hashGet = 1;
- var nativeCreate = require_nativeCreate();
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- var objectProto = Object.prototype;
- var hasOwnProperty2 = objectProto.hasOwnProperty;
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? void 0 : result;
- }
- return hasOwnProperty2.call(data, key) ? data[key] : void 0;
- }
- _hashGet = hashGet;
- return _hashGet;
-}
-var _hashHas;
-var hasRequired_hashHas;
-function require_hashHas() {
- if (hasRequired_hashHas) return _hashHas;
- hasRequired_hashHas = 1;
- var nativeCreate = require_nativeCreate();
- var objectProto = Object.prototype;
- var hasOwnProperty2 = objectProto.hasOwnProperty;
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty2.call(data, key);
- }
- _hashHas = hashHas;
- return _hashHas;
-}
-var _hashSet;
-var hasRequired_hashSet;
-function require_hashSet() {
- if (hasRequired_hashSet) return _hashSet;
- hasRequired_hashSet = 1;
- var nativeCreate = require_nativeCreate();
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- function hashSet(key, value) {
- var data = this.__data__;
- this.size += this.has(key) ? 0 : 1;
- data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
- return this;
- }
- _hashSet = hashSet;
- return _hashSet;
-}
-var _Hash;
-var hasRequired_Hash;
-function require_Hash() {
- if (hasRequired_Hash) return _Hash;
- hasRequired_Hash = 1;
- var hashClear = require_hashClear(), hashDelete = require_hashDelete(), hashGet = require_hashGet(), hashHas = require_hashHas(), hashSet = require_hashSet();
- function Hash(entries) {
- var index2 = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index2 < length) {
- var entry = entries[index2];
- this.set(entry[0], entry[1]);
- }
- }
- Hash.prototype.clear = hashClear;
- Hash.prototype["delete"] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
- _Hash = Hash;
- return _Hash;
-}
-var _listCacheClear;
-var hasRequired_listCacheClear;
-function require_listCacheClear() {
- if (hasRequired_listCacheClear) return _listCacheClear;
- hasRequired_listCacheClear = 1;
- function listCacheClear() {
- this.__data__ = [];
- this.size = 0;
- }
- _listCacheClear = listCacheClear;
- return _listCacheClear;
-}
-var eq_1;
-var hasRequiredEq;
-function requireEq() {
- if (hasRequiredEq) return eq_1;
- hasRequiredEq = 1;
- function eq(value, other) {
- return value === other || value !== value && other !== other;
- }
- eq_1 = eq;
- return eq_1;
-}
-var _assocIndexOf;
-var hasRequired_assocIndexOf;
-function require_assocIndexOf() {
- if (hasRequired_assocIndexOf) return _assocIndexOf;
- hasRequired_assocIndexOf = 1;
- var eq = requireEq();
- function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
- }
- _assocIndexOf = assocIndexOf;
- return _assocIndexOf;
-}
-var _listCacheDelete;
-var hasRequired_listCacheDelete;
-function require_listCacheDelete() {
- if (hasRequired_listCacheDelete) return _listCacheDelete;
- hasRequired_listCacheDelete = 1;
- var assocIndexOf = require_assocIndexOf();
- var arrayProto2 = Array.prototype;
- var splice = arrayProto2.splice;
- function listCacheDelete(key) {
- var data = this.__data__, index2 = assocIndexOf(data, key);
- if (index2 < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index2 == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index2, 1);
- }
- --this.size;
- return true;
- }
- _listCacheDelete = listCacheDelete;
- return _listCacheDelete;
-}
-var _listCacheGet;
-var hasRequired_listCacheGet;
-function require_listCacheGet() {
- if (hasRequired_listCacheGet) return _listCacheGet;
- hasRequired_listCacheGet = 1;
- var assocIndexOf = require_assocIndexOf();
- function listCacheGet(key) {
- var data = this.__data__, index2 = assocIndexOf(data, key);
- return index2 < 0 ? void 0 : data[index2][1];
- }
- _listCacheGet = listCacheGet;
- return _listCacheGet;
-}
-var _listCacheHas;
-var hasRequired_listCacheHas;
-function require_listCacheHas() {
- if (hasRequired_listCacheHas) return _listCacheHas;
- hasRequired_listCacheHas = 1;
- var assocIndexOf = require_assocIndexOf();
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
- _listCacheHas = listCacheHas;
- return _listCacheHas;
-}
-var _listCacheSet;
-var hasRequired_listCacheSet;
-function require_listCacheSet() {
- if (hasRequired_listCacheSet) return _listCacheSet;
- hasRequired_listCacheSet = 1;
- var assocIndexOf = require_assocIndexOf();
- function listCacheSet(key, value) {
- var data = this.__data__, index2 = assocIndexOf(data, key);
- if (index2 < 0) {
- ++this.size;
- data.push([key, value]);
- } else {
- data[index2][1] = value;
- }
- return this;
- }
- _listCacheSet = listCacheSet;
- return _listCacheSet;
-}
-var _ListCache;
-var hasRequired_ListCache;
-function require_ListCache() {
- if (hasRequired_ListCache) return _ListCache;
- hasRequired_ListCache = 1;
- var listCacheClear = require_listCacheClear(), listCacheDelete = require_listCacheDelete(), listCacheGet = require_listCacheGet(), listCacheHas = require_listCacheHas(), listCacheSet = require_listCacheSet();
- function ListCache(entries) {
- var index2 = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index2 < length) {
- var entry = entries[index2];
- this.set(entry[0], entry[1]);
- }
- }
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype["delete"] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
- _ListCache = ListCache;
- return _ListCache;
-}
-var _Map;
-var hasRequired_Map;
-function require_Map() {
- if (hasRequired_Map) return _Map;
- hasRequired_Map = 1;
- var getNative = require_getNative(), root = require_root();
- var Map2 = getNative(root, "Map");
- _Map = Map2;
- return _Map;
-}
-var _mapCacheClear;
-var hasRequired_mapCacheClear;
-function require_mapCacheClear() {
- if (hasRequired_mapCacheClear) return _mapCacheClear;
- hasRequired_mapCacheClear = 1;
- var Hash = require_Hash(), ListCache = require_ListCache(), Map2 = require_Map();
- function mapCacheClear() {
- this.size = 0;
- this.__data__ = {
- "hash": new Hash(),
- "map": new (Map2 || ListCache)(),
- "string": new Hash()
- };
- }
- _mapCacheClear = mapCacheClear;
- return _mapCacheClear;
-}
-var _isKeyable;
-var hasRequired_isKeyable;
-function require_isKeyable() {
- if (hasRequired_isKeyable) return _isKeyable;
- hasRequired_isKeyable = 1;
- function isKeyable(value) {
- var type = typeof value;
- return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
- }
- _isKeyable = isKeyable;
- return _isKeyable;
-}
-var _getMapData;
-var hasRequired_getMapData;
-function require_getMapData() {
- if (hasRequired_getMapData) return _getMapData;
- hasRequired_getMapData = 1;
- var isKeyable = require_isKeyable();
- function getMapData(map2, key) {
- var data = map2.__data__;
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
- }
- _getMapData = getMapData;
- return _getMapData;
-}
-var _mapCacheDelete;
-var hasRequired_mapCacheDelete;
-function require_mapCacheDelete() {
- if (hasRequired_mapCacheDelete) return _mapCacheDelete;
- hasRequired_mapCacheDelete = 1;
- var getMapData = require_getMapData();
- function mapCacheDelete(key) {
- var result = getMapData(this, key)["delete"](key);
- this.size -= result ? 1 : 0;
- return result;
- }
- _mapCacheDelete = mapCacheDelete;
- return _mapCacheDelete;
-}
-var _mapCacheGet;
-var hasRequired_mapCacheGet;
-function require_mapCacheGet() {
- if (hasRequired_mapCacheGet) return _mapCacheGet;
- hasRequired_mapCacheGet = 1;
- var getMapData = require_getMapData();
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
- _mapCacheGet = mapCacheGet;
- return _mapCacheGet;
-}
-var _mapCacheHas;
-var hasRequired_mapCacheHas;
-function require_mapCacheHas() {
- if (hasRequired_mapCacheHas) return _mapCacheHas;
- hasRequired_mapCacheHas = 1;
- var getMapData = require_getMapData();
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
- _mapCacheHas = mapCacheHas;
- return _mapCacheHas;
-}
-var _mapCacheSet;
-var hasRequired_mapCacheSet;
-function require_mapCacheSet() {
- if (hasRequired_mapCacheSet) return _mapCacheSet;
- hasRequired_mapCacheSet = 1;
- var getMapData = require_getMapData();
- function mapCacheSet(key, value) {
- var data = getMapData(this, key), size2 = data.size;
- data.set(key, value);
- this.size += data.size == size2 ? 0 : 1;
- return this;
- }
- _mapCacheSet = mapCacheSet;
- return _mapCacheSet;
-}
-var _MapCache;
-var hasRequired_MapCache;
-function require_MapCache() {
- if (hasRequired_MapCache) return _MapCache;
- hasRequired_MapCache = 1;
- var mapCacheClear = require_mapCacheClear(), mapCacheDelete = require_mapCacheDelete(), mapCacheGet = require_mapCacheGet(), mapCacheHas = require_mapCacheHas(), mapCacheSet = require_mapCacheSet();
- function MapCache(entries) {
- var index2 = -1, length = entries == null ? 0 : entries.length;
- this.clear();
- while (++index2 < length) {
- var entry = entries[index2];
- this.set(entry[0], entry[1]);
- }
- }
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype["delete"] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
- _MapCache = MapCache;
- return _MapCache;
-}
-var _setCacheAdd;
-var hasRequired_setCacheAdd;
-function require_setCacheAdd() {
- if (hasRequired_setCacheAdd) return _setCacheAdd;
- hasRequired_setCacheAdd = 1;
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
- function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
- }
- _setCacheAdd = setCacheAdd;
- return _setCacheAdd;
-}
-var _setCacheHas;
-var hasRequired_setCacheHas;
-function require_setCacheHas() {
- if (hasRequired_setCacheHas) return _setCacheHas;
- hasRequired_setCacheHas = 1;
- function setCacheHas(value) {
- return this.__data__.has(value);
- }
- _setCacheHas = setCacheHas;
- return _setCacheHas;
-}
-var _SetCache;
-var hasRequired_SetCache;
-function require_SetCache() {
- if (hasRequired_SetCache) return _SetCache;
- hasRequired_SetCache = 1;
- var MapCache = require_MapCache(), setCacheAdd = require_setCacheAdd(), setCacheHas = require_setCacheHas();
- function SetCache(values) {
- var index2 = -1, length = values == null ? 0 : values.length;
- this.__data__ = new MapCache();
- while (++index2 < length) {
- this.add(values[index2]);
- }
- }
- SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
- SetCache.prototype.has = setCacheHas;
- _SetCache = SetCache;
- return _SetCache;
-}
-var _baseFindIndex;
-var hasRequired_baseFindIndex;
-function require_baseFindIndex() {
- if (hasRequired_baseFindIndex) return _baseFindIndex;
- hasRequired_baseFindIndex = 1;
- function baseFindIndex(array, predicate, fromIndex, fromRight) {
- var length = array.length, index2 = fromIndex + (fromRight ? 1 : -1);
- while (fromRight ? index2-- : ++index2 < length) {
- if (predicate(array[index2], index2, array)) {
- return index2;
- }
- }
- return -1;
- }
- _baseFindIndex = baseFindIndex;
- return _baseFindIndex;
-}
-var _baseIsNaN;
-var hasRequired_baseIsNaN;
-function require_baseIsNaN() {
- if (hasRequired_baseIsNaN) return _baseIsNaN;
- hasRequired_baseIsNaN = 1;
- function baseIsNaN(value) {
- return value !== value;
- }
- _baseIsNaN = baseIsNaN;
- return _baseIsNaN;
-}
-var _strictIndexOf;
-var hasRequired_strictIndexOf;
-function require_strictIndexOf() {
- if (hasRequired_strictIndexOf) return _strictIndexOf;
- hasRequired_strictIndexOf = 1;
- function strictIndexOf(array, value, fromIndex) {
- var index2 = fromIndex - 1, length = array.length;
- while (++index2 < length) {
- if (array[index2] === value) {
- return index2;
- }
- }
- return -1;
- }
- _strictIndexOf = strictIndexOf;
- return _strictIndexOf;
-}
-var _baseIndexOf;
-var hasRequired_baseIndexOf;
-function require_baseIndexOf() {
- if (hasRequired_baseIndexOf) return _baseIndexOf;
- hasRequired_baseIndexOf = 1;
- var baseFindIndex = require_baseFindIndex(), baseIsNaN = require_baseIsNaN(), strictIndexOf = require_strictIndexOf();
- function baseIndexOf(array, value, fromIndex) {
- return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
- }
- _baseIndexOf = baseIndexOf;
- return _baseIndexOf;
-}
-var _arrayIncludes;
-var hasRequired_arrayIncludes;
-function require_arrayIncludes() {
- if (hasRequired_arrayIncludes) return _arrayIncludes;
- hasRequired_arrayIncludes = 1;
- var baseIndexOf = require_baseIndexOf();
- function arrayIncludes(array, value) {
- var length = array == null ? 0 : array.length;
- return !!length && baseIndexOf(array, value, 0) > -1;
- }
- _arrayIncludes = arrayIncludes;
- return _arrayIncludes;
-}
-var _arrayIncludesWith;
-var hasRequired_arrayIncludesWith;
-function require_arrayIncludesWith() {
- if (hasRequired_arrayIncludesWith) return _arrayIncludesWith;
- hasRequired_arrayIncludesWith = 1;
- function arrayIncludesWith(array, value, comparator) {
- var index2 = -1, length = array == null ? 0 : array.length;
- while (++index2 < length) {
- if (comparator(value, array[index2])) {
- return true;
- }
- }
- return false;
- }
- _arrayIncludesWith = arrayIncludesWith;
- return _arrayIncludesWith;
-}
-var _cacheHas;
-var hasRequired_cacheHas;
-function require_cacheHas() {
- if (hasRequired_cacheHas) return _cacheHas;
- hasRequired_cacheHas = 1;
- function cacheHas(cache, key) {
- return cache.has(key);
- }
- _cacheHas = cacheHas;
- return _cacheHas;
-}
-var _Set;
-var hasRequired_Set;
-function require_Set() {
- if (hasRequired_Set) return _Set;
- hasRequired_Set = 1;
- var getNative = require_getNative(), root = require_root();
- var Set2 = getNative(root, "Set");
- _Set = Set2;
- return _Set;
-}
-var noop_1;
-var hasRequiredNoop;
-function requireNoop() {
- if (hasRequiredNoop) return noop_1;
- hasRequiredNoop = 1;
- function noop2() {
- }
- noop_1 = noop2;
- return noop_1;
-}
-var _setToArray;
-var hasRequired_setToArray;
-function require_setToArray() {
- if (hasRequired_setToArray) return _setToArray;
- hasRequired_setToArray = 1;
- function setToArray(set) {
- var index2 = -1, result = Array(set.size);
- set.forEach(function(value) {
- result[++index2] = value;
- });
- return result;
- }
- _setToArray = setToArray;
- return _setToArray;
-}
-var _createSet;
-var hasRequired_createSet;
-function require_createSet() {
- if (hasRequired_createSet) return _createSet;
- hasRequired_createSet = 1;
- var Set2 = require_Set(), noop2 = requireNoop(), setToArray = require_setToArray();
- var INFINITY = 1 / 0;
- var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop2 : function(values) {
- return new Set2(values);
- };
- _createSet = createSet;
- return _createSet;
-}
-var _baseUniq;
-var hasRequired_baseUniq;
-function require_baseUniq() {
- if (hasRequired_baseUniq) return _baseUniq;
- hasRequired_baseUniq = 1;
- var SetCache = require_SetCache(), arrayIncludes = require_arrayIncludes(), arrayIncludesWith = require_arrayIncludesWith(), cacheHas = require_cacheHas(), createSet = require_createSet(), setToArray = require_setToArray();
- var LARGE_ARRAY_SIZE = 200;
- function baseUniq(array, iteratee, comparator) {
- var index2 = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result;
- if (comparator) {
- isCommon = false;
- includes = arrayIncludesWith;
- } else if (length >= LARGE_ARRAY_SIZE) {
- var set = iteratee ? null : createSet(array);
- if (set) {
- return setToArray(set);
- }
- isCommon = false;
- includes = cacheHas;
- seen = new SetCache();
- } else {
- seen = iteratee ? [] : result;
- }
- outer:
- while (++index2 < length) {
- var value = array[index2], computed2 = iteratee ? iteratee(value) : value;
- value = comparator || value !== 0 ? value : 0;
- if (isCommon && computed2 === computed2) {
- var seenIndex = seen.length;
- while (seenIndex--) {
- if (seen[seenIndex] === computed2) {
- continue outer;
- }
- }
- if (iteratee) {
- seen.push(computed2);
- }
- result.push(value);
- } else if (!includes(seen, computed2, comparator)) {
- if (seen !== result) {
- seen.push(computed2);
- }
- result.push(value);
- }
- }
- return result;
- }
- _baseUniq = baseUniq;
- return _baseUniq;
-}
-var uniq_1;
-var hasRequiredUniq;
-function requireUniq() {
- if (hasRequiredUniq) return uniq_1;
- hasRequiredUniq = 1;
- var baseUniq = require_baseUniq();
- function uniq(array) {
- return array && array.length ? baseUniq(array) : [];
- }
- uniq_1 = uniq;
- return uniq_1;
-}
-var hasRequiredDist;
-function requireDist() {
- if (hasRequiredDist) return dist;
- hasRequiredDist = 1;
- (function(exports$1) {
- Object.defineProperty(exports$1, "__esModule", { value: true });
- exports$1["default"] = void 0;
- var _fontfaceobserver = _interopRequireDefault(requireFontfaceobserver_standalone());
- var _uniq2 = _interopRequireDefault(requireUniq());
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
- var resolveWeights = function resolveWeights2(font) {
- var declared = font.weights || [];
- var single = font.weight ? [font.weight] : [];
- var all = (0, _uniq2["default"])(declared.concat(single));
- return all.length ? all : [400];
- };
- var resolveStyles = function resolveStyles2(font) {
- var declared = font.styles || [];
- var single = font.style ? [font.style] : [];
- var all = (0, _uniq2["default"])(declared.concat(single));
- return all.length ? all : ["normal"];
- };
- var _default = function _default2(ops) {
- var fonts = Array.isArray(ops) ? ops : [ops];
- var families = [];
- fonts.forEach(function(font) {
- var weights = resolveWeights(font);
- var styles = resolveStyles(font);
- weights.forEach(function(weight) {
- styles.forEach(function(style2) {
- families.push({ name: font.name, weight, style: style2 });
- });
- });
- });
- return Promise.all(families.map(function(fam) {
- var font = new _fontfaceobserver["default"](fam.name, { weight: fam.weight, style: fam.style });
- return font.load();
- }));
- };
- exports$1["default"] = _default;
- })(dist);
- return dist;
-}
-var distExports = requireDist();
-const loadFonts = /* @__PURE__ */ getDefaultExportFromCjs(distExports);
-function tryOnScopeDispose(fn, failSilently) {
- if (getCurrentScope()) {
- onScopeDispose(fn, failSilently);
- return true;
- }
- return false;
-}
-const localProvidedStateMap = /* @__PURE__ */ new WeakMap();
-const injectLocal = /* @__NO_SIDE_EFFECTS__ */ (...args) => {
- var _getCurrentInstance;
- const key = args[0];
- const instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;
- const owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();
- if (owner == null && !hasInjectionContext()) throw new Error("injectLocal must be called in setup");
- if (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];
- return inject(...args);
-};
-const isClient$1 = typeof window !== "undefined" && typeof document !== "undefined";
-typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
-const notNullish = (val) => val != null;
-const toString = Object.prototype.toString;
-const isObject = (val) => toString.call(val) === "[object Object]";
-const noop$2 = () => {
-};
-function createFilterWrapper(filter, fn) {
- function wrapper(...args) {
- return new Promise((resolve2, reject) => {
- Promise.resolve(filter(() => fn.apply(this, args), {
- fn,
- thisArg: this,
- args
- })).then(resolve2).catch(reject);
- });
- }
- return wrapper;
-}
-function debounceFilter(ms, options = {}) {
- let timer;
- let maxTimer;
- let lastRejector = noop$2;
- const _clearTimeout = (timer$1) => {
- clearTimeout(timer$1);
- lastRejector();
- lastRejector = noop$2;
- };
- let lastInvoker;
- const filter = (invoke$1) => {
- const duration = toValue(ms);
- const maxDuration = toValue(options.maxWait);
- if (timer) _clearTimeout(timer);
- if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
- if (maxTimer) {
- _clearTimeout(maxTimer);
- maxTimer = void 0;
- }
- return Promise.resolve(invoke$1());
- }
- return new Promise((resolve2, reject) => {
- lastRejector = options.rejectOnCancel ? reject : resolve2;
- lastInvoker = invoke$1;
- if (maxDuration && !maxTimer) maxTimer = setTimeout(() => {
- if (timer) _clearTimeout(timer);
- maxTimer = void 0;
- resolve2(lastInvoker());
- }, maxDuration);
- timer = setTimeout(() => {
- if (maxTimer) _clearTimeout(maxTimer);
- maxTimer = void 0;
- resolve2(invoke$1());
- }, duration);
- });
- };
- return filter;
-}
-function throttleFilter(...args) {
- let lastExec = 0;
- let timer;
- let isLeading = true;
- let lastRejector = noop$2;
- let lastValue;
- let ms;
- let trailing;
- let leading;
- let rejectOnCancel;
- if (!/* @__PURE__ */ isRef(args[0]) && typeof args[0] === "object") ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);
- else [ms, trailing = true, leading = true, rejectOnCancel = false] = args;
- const clear = () => {
- if (timer) {
- clearTimeout(timer);
- timer = void 0;
- lastRejector();
- lastRejector = noop$2;
- }
- };
- const filter = (_invoke) => {
- const duration = toValue(ms);
- const elapsed = Date.now() - lastExec;
- const invoke$1 = () => {
- return lastValue = _invoke();
- };
- clear();
- if (duration <= 0) {
- lastExec = Date.now();
- return invoke$1();
- }
- if (elapsed > duration) {
- lastExec = Date.now();
- if (leading || !isLeading) invoke$1();
- } else if (trailing) lastValue = new Promise((resolve2, reject) => {
- lastRejector = rejectOnCancel ? reject : resolve2;
- timer = setTimeout(() => {
- lastExec = Date.now();
- isLeading = true;
- resolve2(invoke$1());
- clear();
- }, Math.max(0, duration - elapsed));
- });
- if (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);
- isLeading = false;
- return lastValue;
- };
- return filter;
-}
-function pxValue(px) {
- return px.endsWith("rem") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);
-}
-function toArray(value) {
- return Array.isArray(value) ? value : [value];
-}
-function getLifeCycleTarget(target) {
- return getCurrentInstance();
-}
-// @__NO_SIDE_EFFECTS__
-function useDebounceFn(fn, ms = 200, options = {}) {
- return createFilterWrapper(debounceFilter(ms, options), fn);
-}
-// @__NO_SIDE_EFFECTS__
-function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
- return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);
-}
-function tryOnMounted(fn, sync = true, target) {
- if (getLifeCycleTarget()) onMounted(fn, target);
- else if (sync) fn();
- else nextTick(fn);
-}
-function watchImmediate(source2, cb, options) {
- return watch(source2, cb, {
- ...options,
- immediate: true
- });
-}
-const defaultWindow = isClient$1 ? window : void 0;
-function unrefElement(elRef) {
- var _$el;
- const plain = toValue(elRef);
- return (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;
-}
-function useEventListener(...args) {
- const register = (el, event, listener, options) => {
- el.addEventListener(event, listener, options);
- return () => el.removeEventListener(event, listener, options);
- };
- const firstParamTargets = computed(() => {
- const test = toArray(toValue(args[0])).filter((e) => e != null);
- return test.every((e) => typeof e !== "string") ? test : void 0;
- });
- return watchImmediate(() => {
- var _firstParamTargets$va, _firstParamTargets$va2;
- return [
- (_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),
- toArray(toValue(firstParamTargets.value ? args[1] : args[0])),
- toArray(unref(firstParamTargets.value ? args[2] : args[1])),
- toValue(firstParamTargets.value ? args[3] : args[2])
- ];
- }, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {
- if (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;
- const optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;
- const cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));
- onCleanup(() => {
- cleanups.forEach((fn) => fn());
- });
- }, { flush: "post" });
-}
-function onClickOutside(target, handler, options = {}) {
- const { window: window$1 = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;
- if (!window$1) return controls ? {
- stop: noop$2,
- cancel: noop$2,
- trigger: noop$2
- } : noop$2;
- let shouldListen = true;
- const shouldIgnore = (event) => {
- return toValue(ignore).some((target$1) => {
- if (typeof target$1 === "string") return Array.from(window$1.document.querySelectorAll(target$1)).some((el) => el === event.target || event.composedPath().includes(el));
- else {
- const el = unrefElement(target$1);
- return el && (event.target === el || event.composedPath().includes(el));
- }
- });
- };
- function hasMultipleRoots(target$1) {
- const vm = toValue(target$1);
- return vm && vm.$.subTree.shapeFlag === 16;
- }
- function checkMultipleRoots(target$1, event) {
- const vm = toValue(target$1);
- const children = vm.$.subTree && vm.$.subTree.children;
- if (children == null || !Array.isArray(children)) return false;
- return children.some((child) => child.el === event.target || event.composedPath().includes(child.el));
- }
- const listener = (event) => {
- const el = unrefElement(target);
- if (event.target == null) return;
- if (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;
- if (!el || el === event.target || event.composedPath().includes(el)) return;
- if ("detail" in event && event.detail === 0) shouldListen = !shouldIgnore(event);
- if (!shouldListen) {
- shouldListen = true;
- return;
- }
- handler(event);
- };
- let isProcessingClick = false;
- const cleanup = [
- useEventListener(window$1, "click", (event) => {
- if (!isProcessingClick) {
- isProcessingClick = true;
- setTimeout(() => {
- isProcessingClick = false;
- }, 0);
- listener(event);
- }
- }, {
- passive: true,
- capture
- }),
- useEventListener(window$1, "pointerdown", (e) => {
- const el = unrefElement(target);
- shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));
- }, { passive: true }),
- detectIframe && useEventListener(window$1, "blur", (event) => {
- setTimeout(() => {
- var _window$document$acti;
- const el = unrefElement(target);
- if (((_window$document$acti = window$1.document.activeElement) === null || _window$document$acti === void 0 ? void 0 : _window$document$acti.tagName) === "IFRAME" && !(el === null || el === void 0 ? void 0 : el.contains(window$1.document.activeElement))) handler(event);
- }, 0);
- }, { passive: true })
- ].filter(Boolean);
- const stop = () => cleanup.forEach((fn) => fn());
- if (controls) return {
- stop,
- cancel: () => {
- shouldListen = false;
- },
- trigger: (event) => {
- shouldListen = true;
- listener(event);
- shouldListen = false;
- }
- };
- return stop;
-}
-// @__NO_SIDE_EFFECTS__
-function useMounted() {
- const isMounted = /* @__PURE__ */ shallowRef(false);
- const instance = getCurrentInstance();
- if (instance) onMounted(() => {
- isMounted.value = true;
- }, instance);
- return isMounted;
-}
-// @__NO_SIDE_EFFECTS__
-function useSupported(callback) {
- const isMounted = /* @__PURE__ */ useMounted();
- return computed(() => {
- isMounted.value;
- return Boolean(callback());
- });
-}
-function useMutationObserver(target, callback, options = {}) {
- const { window: window$1 = defaultWindow, ...mutationOptions } = options;
- let observer;
- const isSupported = /* @__PURE__ */ useSupported(() => window$1 && "MutationObserver" in window$1);
- const cleanup = () => {
- if (observer) {
- observer.disconnect();
- observer = void 0;
- }
- };
- const stopWatch = watch(computed(() => {
- const items = toArray(toValue(target)).map(unrefElement).filter(notNullish);
- return new Set(items);
- }), (newTargets) => {
- cleanup();
- if (isSupported.value && newTargets.size) {
- observer = new MutationObserver(callback);
- newTargets.forEach((el) => observer.observe(el, mutationOptions));
- }
- }, {
- immediate: true,
- flush: "post"
- });
- const takeRecords = () => {
- return observer === null || observer === void 0 ? void 0 : observer.takeRecords();
- };
- const stop = () => {
- stopWatch();
- cleanup();
- };
- tryOnScopeDispose(stop);
- return {
- isSupported,
- stop,
- takeRecords
- };
-}
-const ssrWidthSymbol = /* @__PURE__ */ Symbol("vueuse-ssr-width");
-// @__NO_SIDE_EFFECTS__
-function useSSRWidth() {
- const ssrWidth = hasInjectionContext() ? /* @__PURE__ */ injectLocal(ssrWidthSymbol, null) : null;
- return typeof ssrWidth === "number" ? ssrWidth : void 0;
-}
-function useMediaQuery(query, options = {}) {
- const { window: window$1 = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;
- const isSupported = /* @__PURE__ */ useSupported(() => window$1 && "matchMedia" in window$1 && typeof window$1.matchMedia === "function");
- const ssrSupport = /* @__PURE__ */ shallowRef(typeof ssrWidth === "number");
- const mediaQuery = /* @__PURE__ */ shallowRef();
- const matches2 = /* @__PURE__ */ shallowRef(false);
- const handler = (event) => {
- matches2.value = event.matches;
- };
- watchEffect(() => {
- if (ssrSupport.value) {
- ssrSupport.value = !isSupported.value;
- matches2.value = toValue(query).split(",").some((queryString) => {
- const not = queryString.includes("not all");
- const minWidth = queryString.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
- const maxWidth = queryString.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
- let res = Boolean(minWidth || maxWidth);
- if (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);
- if (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);
- return not ? !res : res;
- });
- return;
- }
- if (!isSupported.value) return;
- mediaQuery.value = window$1.matchMedia(toValue(query));
- matches2.value = mediaQuery.value.matches;
- });
- useEventListener(mediaQuery, "change", handler, { passive: true });
- return computed(() => matches2.value);
-}
-function useResizeObserver(target, callback, options = {}) {
- const { window: window$1 = defaultWindow, ...observerOptions } = options;
- let observer;
- const isSupported = /* @__PURE__ */ useSupported(() => window$1 && "ResizeObserver" in window$1);
- const cleanup = () => {
- if (observer) {
- observer.disconnect();
- observer = void 0;
- }
- };
- const stopWatch = watch(computed(() => {
- const _targets = toValue(target);
- return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
- }), (els) => {
- cleanup();
- if (isSupported.value && window$1) {
- observer = new ResizeObserver(callback);
- for (const _el of els) if (_el) observer.observe(_el, observerOptions);
- }
- }, {
- immediate: true,
- flush: "post"
- });
- const stop = () => {
- cleanup();
- stopWatch();
- };
- tryOnScopeDispose(stop);
- return {
- isSupported,
- stop
- };
-}
-function useElementSize(target, initialSize = {
- width: 0,
- height: 0
-}, options = {}) {
- const { window: window$1 = defaultWindow, box = "content-box" } = options;
- const isSVG = computed(() => {
- var _unrefElement;
- return (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes("svg");
- });
- const width = /* @__PURE__ */ shallowRef(initialSize.width);
- const height = /* @__PURE__ */ shallowRef(initialSize.height);
- const { stop: stop1 } = useResizeObserver(target, ([entry]) => {
- const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;
- if (window$1 && isSVG.value) {
- const $elem = unrefElement(target);
- if ($elem) {
- const rect = $elem.getBoundingClientRect();
- width.value = rect.width;
- height.value = rect.height;
- }
- } else if (boxSize) {
- const formatBoxSize = toArray(boxSize);
- width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);
- height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);
- } else {
- width.value = entry.contentRect.width;
- height.value = entry.contentRect.height;
- }
- }, options);
- tryOnMounted(() => {
- const ele = unrefElement(target);
- if (ele) {
- width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width;
- height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height;
- }
- });
- const stop2 = watch(() => unrefElement(target), (ele) => {
- width.value = ele ? initialSize.width : 0;
- height.value = ele ? initialSize.height : 0;
- });
- function stop() {
- stop1();
- stop2();
- }
- return {
- width,
- height,
- stop
- };
-}
-const ARRIVED_STATE_THRESHOLD_PIXELS = 1;
-function useScroll(element, options = {}) {
- const { throttle = 0, idle = 200, onStop = noop$2, onScroll = noop$2, offset: offset2 = {
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }, observe: _observe = { mutation: false }, eventListenerOptions = {
- capture: false,
- passive: true
- }, behavior = "auto", window: window$1 = defaultWindow, onError = (e) => {
- console.error(e);
- } } = options;
- const observe = typeof _observe === "boolean" ? { mutation: _observe } : _observe;
- const internalX = /* @__PURE__ */ shallowRef(0);
- const internalY = /* @__PURE__ */ shallowRef(0);
- const x = computed({
- get() {
- return internalX.value;
- },
- set(x$1) {
- scrollTo(x$1, void 0);
- }
- });
- const y = computed({
- get() {
- return internalY.value;
- },
- set(y$1) {
- scrollTo(void 0, y$1);
- }
- });
- function scrollTo(_x, _y) {
- var _ref, _toValue, _toValue2, _document;
- if (!window$1) return;
- const _element = toValue(element);
- if (!_element) return;
- (_ref = _element instanceof Document ? window$1.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({
- top: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,
- left: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,
- behavior: toValue(behavior)
- });
- const scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;
- if (x != null) internalX.value = scrollContainer.scrollLeft;
- if (y != null) internalY.value = scrollContainer.scrollTop;
- }
- const isScrolling = /* @__PURE__ */ shallowRef(false);
- const arrivedState = /* @__PURE__ */ reactive({
- left: true,
- right: false,
- top: true,
- bottom: false
- });
- const directions = /* @__PURE__ */ reactive({
- left: false,
- right: false,
- top: false,
- bottom: false
- });
- const onScrollEnd = (e) => {
- if (!isScrolling.value) return;
- isScrolling.value = false;
- directions.left = false;
- directions.right = false;
- directions.top = false;
- directions.bottom = false;
- onStop(e);
- };
- const onScrollEndDebounced = /* @__PURE__ */ useDebounceFn(onScrollEnd, throttle + idle);
- const setArrivedState = (target) => {
- var _document2;
- if (!window$1) return;
- const el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);
- const { display, flexDirection, direction } = window$1.getComputedStyle(el);
- const directionMultipler = direction === "rtl" ? -1 : 1;
- const scrollLeft = el.scrollLeft;
- directions.left = scrollLeft < internalX.value;
- directions.right = scrollLeft > internalX.value;
- const left = Math.abs(scrollLeft * directionMultipler) <= (offset2.left || 0);
- const right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset2.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
- if (display === "flex" && flexDirection === "row-reverse") {
- arrivedState.left = right;
- arrivedState.right = left;
- } else {
- arrivedState.left = left;
- arrivedState.right = right;
- }
- internalX.value = scrollLeft;
- let scrollTop = el.scrollTop;
- if (target === window$1.document && !scrollTop) scrollTop = window$1.document.body.scrollTop;
- directions.top = scrollTop < internalY.value;
- directions.bottom = scrollTop > internalY.value;
- const top = Math.abs(scrollTop) <= (offset2.top || 0);
- const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset2.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
- if (display === "flex" && flexDirection === "column-reverse") {
- arrivedState.top = bottom;
- arrivedState.bottom = top;
- } else {
- arrivedState.top = top;
- arrivedState.bottom = bottom;
- }
- internalY.value = scrollTop;
- };
- const onScrollHandler = (e) => {
- var _documentElement;
- if (!window$1) return;
- setArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);
- isScrolling.value = true;
- onScrollEndDebounced(e);
- onScroll(e);
- };
- useEventListener(element, "scroll", throttle ? /* @__PURE__ */ useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);
- tryOnMounted(() => {
- try {
- const _element = toValue(element);
- if (!_element) return;
- setArrivedState(_element);
- } catch (e) {
- onError(e);
- }
- });
- if ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window$1 && element !== document) useMutationObserver(element, () => {
- const _element = toValue(element);
- if (!_element) return;
- setArrivedState(_element);
- }, {
- attributes: true,
- childList: true,
- subtree: true
- });
- useEventListener(element, "scrollend", onScrollEnd, eventListenerOptions);
- return {
- x,
- y,
- isScrolling,
- arrivedState,
- directions,
- measure() {
- const _element = toValue(element);
- if (window$1 && _element) setArrivedState(_element);
- }
- };
-}
-function useWindowScroll(options = {}) {
- const { window: window$1 = defaultWindow, ...rest } = options;
- return useScroll(window$1, rest);
-}
-// @__NO_SIDE_EFFECTS__
-function useWindowSize(options = {}) {
- const { window: window$1 = defaultWindow, initialWidth = Number.POSITIVE_INFINITY, initialHeight = Number.POSITIVE_INFINITY, listenOrientation = true, includeScrollbar = true, type = "inner" } = options;
- const width = /* @__PURE__ */ shallowRef(initialWidth);
- const height = /* @__PURE__ */ shallowRef(initialHeight);
- const update = () => {
- if (window$1) if (type === "outer") {
- width.value = window$1.outerWidth;
- height.value = window$1.outerHeight;
- } else if (type === "visual" && window$1.visualViewport) {
- const { width: visualViewportWidth, height: visualViewportHeight, scale } = window$1.visualViewport;
- width.value = Math.round(visualViewportWidth * scale);
- height.value = Math.round(visualViewportHeight * scale);
- } else if (includeScrollbar) {
- width.value = window$1.innerWidth;
- height.value = window$1.innerHeight;
- } else {
- width.value = window$1.document.documentElement.clientWidth;
- height.value = window$1.document.documentElement.clientHeight;
- }
- };
- update();
- tryOnMounted(update);
- const listenerOptions = { passive: true };
- useEventListener("resize", update, listenerOptions);
- if (window$1 && type === "visual" && window$1.visualViewport) useEventListener(window$1.visualViewport, "resize", update, listenerOptions);
- if (listenOrientation) watch(useMediaQuery("(orientation: portrait)"), () => update());
- return {
- width,
- height
- };
-}
-const isBrowser = typeof document !== "undefined";
-function isRouteComponent(component) {
- return typeof component === "object" || "displayName" in component || "props" in component || "__vccOpts" in component;
-}
-function isESModule(obj) {
- return obj.__esModule || obj[Symbol.toStringTag] === "Module" || obj.default && isRouteComponent(obj.default);
-}
-const assign$1 = Object.assign;
-function applyToParams(fn, params) {
- const newParams = {};
- for (const key in params) {
- const value = params[key];
- newParams[key] = isArray(value) ? value.map(fn) : fn(value);
- }
- return newParams;
-}
-const noop$1 = () => {
-};
-const isArray = Array.isArray;
-function mergeOptions(defaults2, partialOptions) {
- const options = {};
- for (const key in defaults2) options[key] = key in partialOptions ? partialOptions[key] : defaults2[key];
- return options;
-}
-let ErrorTypes = /* @__PURE__ */ (function(ErrorTypes2) {
- ErrorTypes2[ErrorTypes2["MATCHER_NOT_FOUND"] = 1] = "MATCHER_NOT_FOUND";
- ErrorTypes2[ErrorTypes2["NAVIGATION_GUARD_REDIRECT"] = 2] = "NAVIGATION_GUARD_REDIRECT";
- ErrorTypes2[ErrorTypes2["NAVIGATION_ABORTED"] = 4] = "NAVIGATION_ABORTED";
- ErrorTypes2[ErrorTypes2["NAVIGATION_CANCELLED"] = 8] = "NAVIGATION_CANCELLED";
- ErrorTypes2[ErrorTypes2["NAVIGATION_DUPLICATED"] = 16] = "NAVIGATION_DUPLICATED";
- return ErrorTypes2;
-})({});
-const NavigationFailureSymbol = /* @__PURE__ */ Symbol("");
-({
- [ErrorTypes.MATCHER_NOT_FOUND]({ location: location2, currentLocation }) {
- return `No match for
- ${JSON.stringify(location2)}${currentLocation ? "\nwhile being at\n" + JSON.stringify(currentLocation) : ""}`;
- },
- [ErrorTypes.NAVIGATION_GUARD_REDIRECT]({ from: from2, to }) {
- return `Redirected from "${from2.fullPath}" to "${stringifyRoute(to)}" via a navigation guard.`;
- },
- [ErrorTypes.NAVIGATION_ABORTED]({ from: from2, to }) {
- return `Navigation aborted from "${from2.fullPath}" to "${to.fullPath}" via a navigation guard.`;
- },
- [ErrorTypes.NAVIGATION_CANCELLED]({ from: from2, to }) {
- return `Navigation cancelled from "${from2.fullPath}" to "${to.fullPath}" with a new navigation.`;
- },
- [ErrorTypes.NAVIGATION_DUPLICATED]({ from: from2, to }) {
- return `Avoided redundant navigation to current location: "${from2.fullPath}".`;
- }
-});
-function createRouterError(type, params) {
- return assign$1(/* @__PURE__ */ new Error(), {
- type,
- [NavigationFailureSymbol]: true
- }, params);
-}
-function isNavigationFailure(error, type) {
- return error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));
-}
-const propertiesToLog = [
- "params",
- "query",
- "hash"
-];
-function stringifyRoute(to) {
- if (typeof to === "string") return to;
- if (to.path != null) return to.path;
- const location2 = {};
- for (const key of propertiesToLog) if (key in to) location2[key] = to[key];
- return JSON.stringify(location2, null, 2);
-}
-const matchedRouteKey = /* @__PURE__ */ Symbol("");
-const viewDepthKey = /* @__PURE__ */ Symbol("");
-const routerKey = /* @__PURE__ */ Symbol("");
-const routeLocationKey = /* @__PURE__ */ Symbol("");
-const routerViewLocationKey = /* @__PURE__ */ Symbol("");
-function useRouter() {
- return inject(routerKey);
-}
-function useRoute(_name) {
- return inject(routeLocationKey);
-}
-const HASH_RE = /#/g;
-const AMPERSAND_RE = /&/g;
-const SLASH_RE = /\//g;
-const EQUAL_RE = /=/g;
-const IM_RE = /\?/g;
-const PLUS_RE = /\+/g;
-const ENC_BRACKET_OPEN_RE = /%5B/g;
-const ENC_BRACKET_CLOSE_RE = /%5D/g;
-const ENC_CARET_RE = /%5E/g;
-const ENC_BACKTICK_RE = /%60/g;
-const ENC_CURLY_OPEN_RE = /%7B/g;
-const ENC_PIPE_RE = /%7C/g;
-const ENC_CURLY_CLOSE_RE = /%7D/g;
-const ENC_SPACE_RE = /%20/g;
-function commonEncode(text) {
- return text == null ? "" : encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]");
-}
-function encodeHash(text) {
- return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
-}
-function encodeQueryValue(text) {
- return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
-}
-function encodeQueryKey(text) {
- return encodeQueryValue(text).replace(EQUAL_RE, "%3D");
-}
-function encodePath(text) {
- return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F");
-}
-function encodeParam(text) {
- return encodePath(text).replace(SLASH_RE, "%2F");
-}
-function decode(text) {
- if (text == null) return null;
- try {
- return decodeURIComponent("" + text);
- } catch (err) {
- }
- return "" + text;
-}
-const TRAILING_SLASH_RE = /\/$/;
-const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, "");
-function parseURL(parseQuery2, location2, currentLocation = "/") {
- let path, query = {}, searchString = "", hash = "";
- const hashPos = location2.indexOf("#");
- let searchPos = location2.indexOf("?");
- searchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;
- if (searchPos >= 0) {
- path = location2.slice(0, searchPos);
- searchString = location2.slice(searchPos, hashPos > 0 ? hashPos : location2.length);
- query = parseQuery2(searchString.slice(1));
- }
- if (hashPos >= 0) {
- path = path || location2.slice(0, hashPos);
- hash = location2.slice(hashPos, location2.length);
- }
- path = resolveRelativePath(path != null ? path : location2, currentLocation);
- return {
- fullPath: path + searchString + hash,
- path,
- query,
- hash: decode(hash)
- };
-}
-function stringifyURL(stringifyQuery2, location2) {
- const query = location2.query ? stringifyQuery2(location2.query) : "";
- return location2.path + (query && "?") + query + (location2.hash || "");
-}
-function stripBase(pathname, base2) {
- if (!base2 || !pathname.toLowerCase().startsWith(base2.toLowerCase())) return pathname;
- return pathname.slice(base2.length) || "/";
-}
-function isSameRouteLocation(stringifyQuery2, a, b) {
- const aLastIndex = a.matched.length - 1;
- const bLastIndex = b.matched.length - 1;
- return aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery2(a.query) === stringifyQuery2(b.query) && a.hash === b.hash;
-}
-function isSameRouteRecord(a, b) {
- return (a.aliasOf || a) === (b.aliasOf || b);
-}
-function isSameRouteLocationParams(a, b) {
- if (Object.keys(a).length !== Object.keys(b).length) return false;
- for (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;
- return true;
-}
-function isSameRouteLocationParamsValue(a, b) {
- return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());
-}
-function isEquivalentArray(a, b) {
- return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;
-}
-function resolveRelativePath(to, from2) {
- if (to.startsWith("/")) return to;
- if (!to) return from2;
- const fromSegments = from2.split("/");
- const toSegments = to.split("/");
- const lastToSegment = toSegments[toSegments.length - 1];
- if (lastToSegment === ".." || lastToSegment === ".") toSegments.push("");
- let position = fromSegments.length - 1;
- let toPosition;
- let segment;
- for (toPosition = 0; toPosition < toSegments.length; toPosition++) {
- segment = toSegments[toPosition];
- if (segment === ".") continue;
- if (segment === "..") {
- if (position > 1) position--;
- } else break;
- }
- return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition).join("/");
-}
-const START_LOCATION_NORMALIZED = {
- path: "/",
- name: void 0,
- params: {},
- query: {},
- hash: "",
- fullPath: "/",
- matched: [],
- meta: {},
- redirectedFrom: void 0
-};
-let NavigationType = /* @__PURE__ */ (function(NavigationType2) {
- NavigationType2["pop"] = "pop";
- NavigationType2["push"] = "push";
- return NavigationType2;
-})({});
-let NavigationDirection = /* @__PURE__ */ (function(NavigationDirection2) {
- NavigationDirection2["back"] = "back";
- NavigationDirection2["forward"] = "forward";
- NavigationDirection2["unknown"] = "";
- return NavigationDirection2;
-})({});
-function normalizeBase(base2) {
- if (!base2) if (isBrowser) {
- const baseEl = document.querySelector("base");
- base2 = baseEl && baseEl.getAttribute("href") || "/";
- base2 = base2.replace(/^\w+:\/\/[^\/]+/, "");
- } else base2 = "/";
- if (base2[0] !== "/" && base2[0] !== "#") base2 = "/" + base2;
- return removeTrailingSlash(base2);
-}
-const BEFORE_HASH_RE = /^[^#]+#/;
-function createHref(base2, location2) {
- return base2.replace(BEFORE_HASH_RE, "#") + location2;
-}
-function getElementPosition(el, offset2) {
- const docRect = document.documentElement.getBoundingClientRect();
- const elRect = el.getBoundingClientRect();
- return {
- behavior: offset2.behavior,
- left: elRect.left - docRect.left - (offset2.left || 0),
- top: elRect.top - docRect.top - (offset2.top || 0)
- };
-}
-const computeScrollPosition = () => ({
- left: window.scrollX,
- top: window.scrollY
-});
-function scrollToPosition(position) {
- let scrollToOptions;
- if ("el" in position) {
- const positionEl = position.el;
- const isIdSelector = typeof positionEl === "string" && positionEl.startsWith("#");
- const el = typeof positionEl === "string" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;
- if (!el) {
- return;
- }
- scrollToOptions = getElementPosition(el, position);
- } else scrollToOptions = position;
- if ("scrollBehavior" in document.documentElement.style) window.scrollTo(scrollToOptions);
- else window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);
-}
-function getScrollKey(path, delta) {
- return (history.state ? history.state.position - delta : -1) + path;
-}
-const scrollPositions = /* @__PURE__ */ new Map();
-function saveScrollPosition(key, scrollPosition) {
- scrollPositions.set(key, scrollPosition);
-}
-function getSavedScrollPosition(key) {
- const scroll = scrollPositions.get(key);
- scrollPositions.delete(key);
- return scroll;
-}
-function isRouteLocation(route) {
- return typeof route === "string" || route && typeof route === "object";
-}
-function isRouteName(name) {
- return typeof name === "string" || typeof name === "symbol";
-}
-function parseQuery(search) {
- const query = {};
- if (search === "" || search === "?") return query;
- const searchParams = (search[0] === "?" ? search.slice(1) : search).split("&");
- for (let i = 0; i < searchParams.length; ++i) {
- const searchParam = searchParams[i].replace(PLUS_RE, " ");
- const eqPos = searchParam.indexOf("=");
- const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));
- const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));
- if (key in query) {
- let currentValue = query[key];
- if (!isArray(currentValue)) currentValue = query[key] = [currentValue];
- currentValue.push(value);
- } else query[key] = value;
- }
- return query;
-}
-function stringifyQuery(query) {
- let search = "";
- for (let key in query) {
- const value = query[key];
- key = encodeQueryKey(key);
- if (value == null) {
- if (value !== void 0) search += (search.length ? "&" : "") + key;
- continue;
- }
- (isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value2) => {
- if (value2 !== void 0) {
- search += (search.length ? "&" : "") + key;
- if (value2 != null) search += "=" + value2;
- }
- });
- }
- return search;
-}
-function normalizeQuery(query) {
- const normalizedQuery = {};
- for (const key in query) {
- const value = query[key];
- if (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : "" + v) : value == null ? value : "" + value;
- }
- return normalizedQuery;
-}
-function useCallbacks() {
- let handlers2 = [];
- function add(handler) {
- handlers2.push(handler);
- return () => {
- const i = handlers2.indexOf(handler);
- if (i > -1) handlers2.splice(i, 1);
- };
- }
- function reset2() {
- handlers2 = [];
- }
- return {
- add,
- list: () => handlers2.slice(),
- reset: reset2
- };
-}
-function guardToPromiseFn(guard, to, from2, record, name, runWithContext = (fn) => fn()) {
- const enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);
- return () => new Promise((resolve2, reject) => {
- const next = (valid) => {
- if (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {
- from: from2,
- to
- }));
- else if (valid instanceof Error) reject(valid);
- else if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {
- from: to,
- to: valid
- }));
- else {
- if (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === "function") enterCallbackArray.push(valid);
- resolve2();
- }
- };
- const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from2, next));
- let guardCall = Promise.resolve(guardReturn);
- if (guard.length < 3) guardCall = guardCall.then(next);
- guardCall.catch((err) => reject(err));
- });
-}
-function extractComponentsGuards(matched, guardType, to, from2, runWithContext = (fn) => fn()) {
- const guards = [];
- for (const record of matched) {
- for (const name in record.components) {
- let rawComponent = record.components[name];
- if (guardType !== "beforeRouteEnter" && !record.instances[name]) continue;
- if (isRouteComponent(rawComponent)) {
- const guard = (rawComponent.__vccOpts || rawComponent)[guardType];
- guard && guards.push(guardToPromiseFn(guard, to, from2, record, name, runWithContext));
- } else {
- let componentPromise = rawComponent();
- guards.push(() => componentPromise.then((resolved) => {
- if (!resolved) throw new Error(`Couldn't resolve component "${name}" at "${record.path}"`);
- const resolvedComponent = isESModule(resolved) ? resolved.default : resolved;
- record.mods[name] = resolved;
- record.components[name] = resolvedComponent;
- const guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];
- return guard && guardToPromiseFn(guard, to, from2, record, name, runWithContext)();
- }));
- }
- }
- }
- return guards;
-}
-function extractChangingRecords(to, from2) {
- const leavingRecords = [];
- const updatingRecords = [];
- const enteringRecords = [];
- const len = Math.max(from2.matched.length, to.matched.length);
- for (let i = 0; i < len; i++) {
- const recordFrom = from2.matched[i];
- if (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);
- else leavingRecords.push(recordFrom);
- const recordTo = to.matched[i];
- if (recordTo) {
- if (!from2.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);
- }
- }
- return [
- leavingRecords,
- updatingRecords,
- enteringRecords
- ];
-}
-let createBaseLocation = () => location.protocol + "//" + location.host;
-function createCurrentLocation(base2, location2) {
- const { pathname, search, hash } = location2;
- const hashPos = base2.indexOf("#");
- if (hashPos > -1) {
- let slicePos = hash.includes(base2.slice(hashPos)) ? base2.slice(hashPos).length : 1;
- let pathFromHash = hash.slice(slicePos);
- if (pathFromHash[0] !== "/") pathFromHash = "/" + pathFromHash;
- return stripBase(pathFromHash, "");
- }
- return stripBase(pathname, base2) + search + hash;
-}
-function useHistoryListeners(base2, historyState, currentLocation, replace2) {
- let listeners = [];
- let teardowns = [];
- let pauseState = null;
- const popStateHandler = ({ state }) => {
- const to = createCurrentLocation(base2, location);
- const from2 = currentLocation.value;
- const fromState = historyState.value;
- let delta = 0;
- if (state) {
- currentLocation.value = to;
- historyState.value = state;
- if (pauseState && pauseState === from2) {
- pauseState = null;
- return;
- }
- delta = fromState ? state.position - fromState.position : 0;
- } else replace2(to);
- listeners.forEach((listener) => {
- listener(currentLocation.value, from2, {
- delta,
- type: NavigationType.pop,
- direction: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown
- });
- });
- };
- function pauseListeners() {
- pauseState = currentLocation.value;
- }
- function listen(callback) {
- listeners.push(callback);
- const teardown = () => {
- const index2 = listeners.indexOf(callback);
- if (index2 > -1) listeners.splice(index2, 1);
- };
- teardowns.push(teardown);
- return teardown;
- }
- function beforeUnloadListener() {
- if (document.visibilityState === "hidden") {
- const { history: history2 } = window;
- if (!history2.state) return;
- history2.replaceState(assign$1({}, history2.state, { scroll: computeScrollPosition() }), "");
- }
- }
- function destroy() {
- for (const teardown of teardowns) teardown();
- teardowns = [];
- window.removeEventListener("popstate", popStateHandler);
- window.removeEventListener("pagehide", beforeUnloadListener);
- document.removeEventListener("visibilitychange", beforeUnloadListener);
- }
- window.addEventListener("popstate", popStateHandler);
- window.addEventListener("pagehide", beforeUnloadListener);
- document.addEventListener("visibilitychange", beforeUnloadListener);
- return {
- pauseListeners,
- listen,
- destroy
- };
-}
-function buildState(back, current, forward, replaced = false, computeScroll = false) {
- return {
- back,
- current,
- forward,
- replaced,
- position: window.history.length,
- scroll: computeScroll ? computeScrollPosition() : null
- };
-}
-function useHistoryStateNavigation(base2) {
- const { history: history2, location: location2 } = window;
- const currentLocation = { value: createCurrentLocation(base2, location2) };
- const historyState = { value: history2.state };
- if (!historyState.value) changeLocation(currentLocation.value, {
- back: null,
- current: currentLocation.value,
- forward: null,
- position: history2.length - 1,
- replaced: true,
- scroll: null
- }, true);
- function changeLocation(to, state, replace22) {
- const hashIndex = base2.indexOf("#");
- const url = hashIndex > -1 ? (location2.host && document.querySelector("base") ? base2 : base2.slice(hashIndex)) + to : createBaseLocation() + base2 + to;
- try {
- history2[replace22 ? "replaceState" : "pushState"](state, "", url);
- historyState.value = state;
- } catch (err) {
- console.error(err);
- location2[replace22 ? "replace" : "assign"](url);
- }
- }
- function replace2(to, data) {
- changeLocation(to, assign$1({}, history2.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);
- currentLocation.value = to;
- }
- function push(to, data) {
- const currentState = assign$1({}, historyState.value, history2.state, {
- forward: to,
- scroll: computeScrollPosition()
- });
- changeLocation(currentState.current, currentState, true);
- changeLocation(to, assign$1({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);
- currentLocation.value = to;
- }
- return {
- location: currentLocation,
- state: historyState,
- push,
- replace: replace2
- };
-}
-function createWebHistory(base2) {
- base2 = normalizeBase(base2);
- const historyNavigation = useHistoryStateNavigation(base2);
- const historyListeners = useHistoryListeners(base2, historyNavigation.state, historyNavigation.location, historyNavigation.replace);
- function go2(delta, triggerListeners = true) {
- if (!triggerListeners) historyListeners.pauseListeners();
- history.go(delta);
- }
- const routerHistory = assign$1({
- location: "",
- base: base2,
- go: go2,
- createHref: createHref.bind(null, base2)
- }, historyNavigation, historyListeners);
- Object.defineProperty(routerHistory, "location", {
- enumerable: true,
- get: () => historyNavigation.location.value
- });
- Object.defineProperty(routerHistory, "state", {
- enumerable: true,
- get: () => historyNavigation.state.value
- });
- return routerHistory;
-}
-function createWebHashHistory(base2) {
- base2 = location.host ? base2 || location.pathname + location.search : "";
- if (!base2.includes("#")) base2 += "#";
- return createWebHistory(base2);
-}
-let TokenType = /* @__PURE__ */ (function(TokenType2) {
- TokenType2[TokenType2["Static"] = 0] = "Static";
- TokenType2[TokenType2["Param"] = 1] = "Param";
- TokenType2[TokenType2["Group"] = 2] = "Group";
- return TokenType2;
-})({});
-var TokenizerState = /* @__PURE__ */ (function(TokenizerState2) {
- TokenizerState2[TokenizerState2["Static"] = 0] = "Static";
- TokenizerState2[TokenizerState2["Param"] = 1] = "Param";
- TokenizerState2[TokenizerState2["ParamRegExp"] = 2] = "ParamRegExp";
- TokenizerState2[TokenizerState2["ParamRegExpEnd"] = 3] = "ParamRegExpEnd";
- TokenizerState2[TokenizerState2["EscapeNext"] = 4] = "EscapeNext";
- return TokenizerState2;
-})(TokenizerState || {});
-const ROOT_TOKEN = {
- type: TokenType.Static,
- value: ""
-};
-const VALID_PARAM_RE = /[a-zA-Z0-9_]/;
-function tokenizePath(path) {
- if (!path) return [[]];
- if (path === "/") return [[ROOT_TOKEN]];
- if (!path.startsWith("/")) throw new Error(`Invalid path "${path}"`);
- function crash(message) {
- throw new Error(`ERR (${state})/"${buffer}": ${message}`);
- }
- let state = TokenizerState.Static;
- let previousState = state;
- const tokens = [];
- let segment;
- function finalizeSegment() {
- if (segment) tokens.push(segment);
- segment = [];
- }
- let i = 0;
- let char;
- let buffer = "";
- let customRe = "";
- function consumeBuffer() {
- if (!buffer) return;
- if (state === TokenizerState.Static) segment.push({
- type: TokenType.Static,
- value: buffer
- });
- else if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {
- if (segment.length > 1 && (char === "*" || char === "+")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);
- segment.push({
- type: TokenType.Param,
- value: buffer,
- regexp: customRe,
- repeatable: char === "*" || char === "+",
- optional: char === "*" || char === "?"
- });
- } else crash("Invalid state to consume buffer");
- buffer = "";
- }
- function addCharToBuffer() {
- buffer += char;
- }
- while (i < path.length) {
- char = path[i++];
- if (char === "\\" && state !== TokenizerState.ParamRegExp) {
- previousState = state;
- state = TokenizerState.EscapeNext;
- continue;
- }
- switch (state) {
- case TokenizerState.Static:
- if (char === "/") {
- if (buffer) consumeBuffer();
- finalizeSegment();
- } else if (char === ":") {
- consumeBuffer();
- state = TokenizerState.Param;
- } else addCharToBuffer();
- break;
- case TokenizerState.EscapeNext:
- addCharToBuffer();
- state = previousState;
- break;
- case TokenizerState.Param:
- if (char === "(") state = TokenizerState.ParamRegExp;
- else if (VALID_PARAM_RE.test(char)) addCharToBuffer();
- else {
- consumeBuffer();
- state = TokenizerState.Static;
- if (char !== "*" && char !== "?" && char !== "+") i--;
- }
- break;
- case TokenizerState.ParamRegExp:
- if (char === ")") if (customRe[customRe.length - 1] == "\\") customRe = customRe.slice(0, -1) + char;
- else state = TokenizerState.ParamRegExpEnd;
- else customRe += char;
- break;
- case TokenizerState.ParamRegExpEnd:
- consumeBuffer();
- state = TokenizerState.Static;
- if (char !== "*" && char !== "?" && char !== "+") i--;
- customRe = "";
- break;
- default:
- crash("Unknown state");
- break;
- }
- }
- if (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param "${buffer}"`);
- consumeBuffer();
- finalizeSegment();
- return tokens;
-}
-const BASE_PARAM_PATTERN = "[^/]+?";
-const BASE_PATH_PARSER_OPTIONS = {
- sensitive: false,
- strict: false,
- start: true,
- end: true
-};
-var PathScore = /* @__PURE__ */ (function(PathScore2) {
- PathScore2[PathScore2["_multiplier"] = 10] = "_multiplier";
- PathScore2[PathScore2["Root"] = 90] = "Root";
- PathScore2[PathScore2["Segment"] = 40] = "Segment";
- PathScore2[PathScore2["SubSegment"] = 30] = "SubSegment";
- PathScore2[PathScore2["Static"] = 40] = "Static";
- PathScore2[PathScore2["Dynamic"] = 20] = "Dynamic";
- PathScore2[PathScore2["BonusCustomRegExp"] = 10] = "BonusCustomRegExp";
- PathScore2[PathScore2["BonusWildcard"] = -50] = "BonusWildcard";
- PathScore2[PathScore2["BonusRepeatable"] = -20] = "BonusRepeatable";
- PathScore2[PathScore2["BonusOptional"] = -8] = "BonusOptional";
- PathScore2[PathScore2["BonusStrict"] = 0.7000000000000001] = "BonusStrict";
- PathScore2[PathScore2["BonusCaseSensitive"] = 0.25] = "BonusCaseSensitive";
- return PathScore2;
-})(PathScore || {});
-const REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g;
-function tokensToParser(segments, extraOptions) {
- const options = assign$1({}, BASE_PATH_PARSER_OPTIONS, extraOptions);
- const score = [];
- let pattern = options.start ? "^" : "";
- const keys2 = [];
- for (const segment of segments) {
- const segmentScores = segment.length ? [] : [PathScore.Root];
- if (options.strict && !segment.length) pattern += "/";
- for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {
- const token2 = segment[tokenIndex];
- let subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);
- if (token2.type === TokenType.Static) {
- if (!tokenIndex) pattern += "/";
- pattern += token2.value.replace(REGEX_CHARS_RE, "\\$&");
- subSegmentScore += PathScore.Static;
- } else if (token2.type === TokenType.Param) {
- const { value, repeatable, optional, regexp } = token2;
- keys2.push({
- name: value,
- repeatable,
- optional
- });
- const re2 = regexp ? regexp : BASE_PARAM_PATTERN;
- if (re2 !== BASE_PARAM_PATTERN) {
- subSegmentScore += PathScore.BonusCustomRegExp;
- try {
- new RegExp(`(${re2})`);
- } catch (err) {
- throw new Error(`Invalid custom RegExp for param "${value}" (${re2}): ` + err.message);
- }
- }
- let subPattern = repeatable ? `((?:${re2})(?:/(?:${re2}))*)` : `(${re2})`;
- if (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : "/" + subPattern;
- if (optional) subPattern += "?";
- pattern += subPattern;
- subSegmentScore += PathScore.Dynamic;
- if (optional) subSegmentScore += PathScore.BonusOptional;
- if (repeatable) subSegmentScore += PathScore.BonusRepeatable;
- if (re2 === ".*") subSegmentScore += PathScore.BonusWildcard;
- }
- segmentScores.push(subSegmentScore);
- }
- score.push(segmentScores);
- }
- if (options.strict && options.end) {
- const i = score.length - 1;
- score[i][score[i].length - 1] += PathScore.BonusStrict;
- }
- if (!options.strict) pattern += "/?";
- if (options.end) pattern += "$";
- else if (options.strict && !pattern.endsWith("/")) pattern += "(?:/|$)";
- const re = new RegExp(pattern, options.sensitive ? "" : "i");
- function parse(path) {
- const match = path.match(re);
- const params = {};
- if (!match) return null;
- for (let i = 1; i < match.length; i++) {
- const value = match[i] || "";
- const key = keys2[i - 1];
- params[key.name] = value && key.repeatable ? value.split("/") : value;
- }
- return params;
- }
- function stringify(params) {
- let path = "";
- let avoidDuplicatedSlash = false;
- for (const segment of segments) {
- if (!avoidDuplicatedSlash || !path.endsWith("/")) path += "/";
- avoidDuplicatedSlash = false;
- for (const token2 of segment) if (token2.type === TokenType.Static) path += token2.value;
- else if (token2.type === TokenType.Param) {
- const { value, repeatable, optional } = token2;
- const param = value in params ? params[value] : "";
- if (isArray(param) && !repeatable) throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`);
- const text = isArray(param) ? param.join("/") : param;
- if (!text) if (optional) {
- if (segment.length < 2) if (path.endsWith("/")) path = path.slice(0, -1);
- else avoidDuplicatedSlash = true;
- } else throw new Error(`Missing required param "${value}"`);
- path += text;
- }
- }
- return path || "/";
- }
- return {
- re,
- score,
- keys: keys2,
- parse,
- stringify
- };
-}
-function compareScoreArray(a, b) {
- let i = 0;
- while (i < a.length && i < b.length) {
- const diff2 = b[i] - a[i];
- if (diff2) return diff2;
- i++;
- }
- if (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;
- else if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;
- return 0;
-}
-function comparePathParserScore(a, b) {
- let i = 0;
- const aScore = a.score;
- const bScore = b.score;
- while (i < aScore.length && i < bScore.length) {
- const comp = compareScoreArray(aScore[i], bScore[i]);
- if (comp) return comp;
- i++;
- }
- if (Math.abs(bScore.length - aScore.length) === 1) {
- if (isLastScoreNegative(aScore)) return 1;
- if (isLastScoreNegative(bScore)) return -1;
- }
- return bScore.length - aScore.length;
-}
-function isLastScoreNegative(score) {
- const last = score[score.length - 1];
- return score.length > 0 && last[last.length - 1] < 0;
-}
-const PATH_PARSER_OPTIONS_DEFAULTS = {
- strict: false,
- end: true,
- sensitive: false
-};
-function createRouteRecordMatcher(record, parent, options) {
- const parser = tokensToParser(tokenizePath(record.path), options);
- const matcher = assign$1(parser, {
- record,
- parent,
- children: [],
- alias: []
- });
- if (parent) {
- if (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);
- }
- return matcher;
-}
-function createRouterMatcher(routes2, globalOptions) {
- const matchers = [];
- const matcherMap = /* @__PURE__ */ new Map();
- globalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);
- function getRecordMatcher(name) {
- return matcherMap.get(name);
- }
- function addRoute(record, parent, originalRecord) {
- const isRootAdd = !originalRecord;
- const mainNormalizedRecord = normalizeRouteRecord(record);
- mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;
- const options = mergeOptions(globalOptions, record);
- const normalizedRecords = [mainNormalizedRecord];
- if ("alias" in record) {
- const aliases = typeof record.alias === "string" ? [record.alias] : record.alias;
- for (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign$1({}, mainNormalizedRecord, {
- components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,
- path: alias,
- aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord
- })));
- }
- let matcher;
- let originalMatcher;
- for (const normalizedRecord of normalizedRecords) {
- const { path } = normalizedRecord;
- if (parent && path[0] !== "/") {
- const parentPath = parent.record.path;
- const connectingSlash = parentPath[parentPath.length - 1] === "/" ? "" : "/";
- normalizedRecord.path = parent.record.path + (path && connectingSlash + path);
- }
- matcher = createRouteRecordMatcher(normalizedRecord, parent, options);
- if (originalRecord) {
- originalRecord.alias.push(matcher);
- } else {
- originalMatcher = originalMatcher || matcher;
- if (originalMatcher !== matcher) originalMatcher.alias.push(matcher);
- if (isRootAdd && record.name && !isAliasRecord(matcher)) {
- removeRoute(record.name);
- }
- }
- if (isMatchable(matcher)) insertMatcher(matcher);
- if (mainNormalizedRecord.children) {
- const children = mainNormalizedRecord.children;
- for (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);
- }
- originalRecord = originalRecord || matcher;
- }
- return originalMatcher ? () => {
- removeRoute(originalMatcher);
- } : noop$1;
- }
- function removeRoute(matcherRef) {
- if (isRouteName(matcherRef)) {
- const matcher = matcherMap.get(matcherRef);
- if (matcher) {
- matcherMap.delete(matcherRef);
- matchers.splice(matchers.indexOf(matcher), 1);
- matcher.children.forEach(removeRoute);
- matcher.alias.forEach(removeRoute);
- }
- } else {
- const index2 = matchers.indexOf(matcherRef);
- if (index2 > -1) {
- matchers.splice(index2, 1);
- if (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);
- matcherRef.children.forEach(removeRoute);
- matcherRef.alias.forEach(removeRoute);
- }
- }
- }
- function getRoutes() {
- return matchers;
- }
- function insertMatcher(matcher) {
- const index2 = findInsertionIndex(matcher, matchers);
- matchers.splice(index2, 0, matcher);
- if (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);
- }
- function resolve2(location2, currentLocation) {
- let matcher;
- let params = {};
- let path;
- let name;
- if ("name" in location2 && location2.name) {
- matcher = matcherMap.get(location2.name);
- if (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location: location2 });
- name = matcher.record.name;
- params = assign$1(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location2.params && pickParams(location2.params, matcher.keys.map((k) => k.name)));
- path = matcher.stringify(params);
- } else if (location2.path != null) {
- path = location2.path;
- matcher = matchers.find((m) => m.re.test(path));
- if (matcher) {
- params = matcher.parse(path);
- name = matcher.record.name;
- }
- } else {
- matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));
- if (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {
- location: location2,
- currentLocation
- });
- name = matcher.record.name;
- params = assign$1({}, currentLocation.params, location2.params);
- path = matcher.stringify(params);
- }
- const matched = [];
- let parentMatcher = matcher;
- while (parentMatcher) {
- matched.unshift(parentMatcher.record);
- parentMatcher = parentMatcher.parent;
- }
- return {
- name,
- path,
- params,
- matched,
- meta: mergeMetaFields(matched)
- };
- }
- routes2.forEach((route) => addRoute(route));
- function clearRoutes() {
- matchers.length = 0;
- matcherMap.clear();
- }
- return {
- addRoute,
- resolve: resolve2,
- removeRoute,
- clearRoutes,
- getRoutes,
- getRecordMatcher
- };
-}
-function pickParams(params, keys2) {
- const newParams = {};
- for (const key of keys2) if (key in params) newParams[key] = params[key];
- return newParams;
-}
-function normalizeRouteRecord(record) {
- const normalized = {
- path: record.path,
- redirect: record.redirect,
- name: record.name,
- meta: record.meta || {},
- aliasOf: record.aliasOf,
- beforeEnter: record.beforeEnter,
- props: normalizeRecordProps(record),
- children: record.children || [],
- instances: {},
- leaveGuards: /* @__PURE__ */ new Set(),
- updateGuards: /* @__PURE__ */ new Set(),
- enterCallbacks: {},
- components: "components" in record ? record.components || null : record.component && { default: record.component }
- };
- Object.defineProperty(normalized, "mods", { value: {} });
- return normalized;
-}
-function normalizeRecordProps(record) {
- const propsObject = {};
- const props = record.props || false;
- if ("component" in record) propsObject.default = props;
- else for (const name in record.components) propsObject[name] = typeof props === "object" ? props[name] : props;
- return propsObject;
-}
-function isAliasRecord(record) {
- while (record) {
- if (record.record.aliasOf) return true;
- record = record.parent;
- }
- return false;
-}
-function mergeMetaFields(matched) {
- return matched.reduce((meta, record) => assign$1(meta, record.meta), {});
-}
-function findInsertionIndex(matcher, matchers) {
- let lower = 0;
- let upper = matchers.length;
- while (lower !== upper) {
- const mid = lower + upper >> 1;
- if (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;
- else lower = mid + 1;
- }
- const insertionAncestor = getInsertionAncestor(matcher);
- if (insertionAncestor) {
- upper = matchers.lastIndexOf(insertionAncestor, upper - 1);
- }
- return upper;
-}
-function getInsertionAncestor(matcher) {
- let ancestor = matcher;
- while (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;
-}
-function isMatchable({ record }) {
- return !!(record.name || record.components && Object.keys(record.components).length || record.redirect);
-}
-function useLink(props) {
- const router2 = inject(routerKey);
- const currentRoute = inject(routeLocationKey);
- const route = computed(() => {
- const to = unref(props.to);
- return router2.resolve(to);
- });
- const activeRecordIndex = computed(() => {
- const { matched } = route.value;
- const { length } = matched;
- const routeMatched = matched[length - 1];
- const currentMatched = currentRoute.matched;
- if (!routeMatched || !currentMatched.length) return -1;
- const index2 = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));
- if (index2 > -1) return index2;
- const parentRecordPath = getOriginalPath(matched[length - 2]);
- return length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index2;
- });
- const isActive2 = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));
- const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));
- function navigate(e = {}) {
- if (guardEvent(e)) {
- const p2 = router2[unref(props.replace) ? "replace" : "push"](unref(props.to)).catch(noop$1);
- if (props.viewTransition && typeof document !== "undefined" && "startViewTransition" in document) document.startViewTransition(() => p2);
- return p2;
- }
- return Promise.resolve();
- }
- return {
- route,
- href: computed(() => route.value.href),
- isActive: isActive2,
- isExactActive,
- navigate
- };
-}
-function preferSingleVNode(vnodes) {
- return vnodes.length === 1 ? vnodes[0] : vnodes;
-}
-const RouterLinkImpl = /* @__PURE__ */ defineComponent({
- name: "RouterLink",
- compatConfig: { MODE: 3 },
- props: {
- to: {
- type: [String, Object],
- required: true
- },
- replace: Boolean,
- activeClass: String,
- exactActiveClass: String,
- custom: Boolean,
- ariaCurrentValue: {
- type: String,
- default: "page"
- },
- viewTransition: Boolean
- },
- useLink,
- setup(props, { slots }) {
- const link = /* @__PURE__ */ reactive(useLink(props));
- const { options } = inject(routerKey);
- const elClass = computed(() => ({
- [getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive,
- [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive
- }));
- return () => {
- const children = slots.default && preferSingleVNode(slots.default(link));
- return props.custom ? children : h$1("a", {
- "aria-current": link.isExactActive ? props.ariaCurrentValue : null,
- href: link.href,
- onClick: link.navigate,
- class: elClass.value
- }, children);
- };
- }
-});
-const RouterLink = RouterLinkImpl;
-function guardEvent(e) {
- if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;
- if (e.defaultPrevented) return;
- if (e.button !== void 0 && e.button !== 0) return;
- if (e.currentTarget && e.currentTarget.getAttribute) {
- const target = e.currentTarget.getAttribute("target");
- if (/\b_blank\b/i.test(target)) return;
- }
- if (e.preventDefault) e.preventDefault();
- return true;
-}
-function includesParams(outer, inner) {
- for (const key in inner) {
- const innerValue = inner[key];
- const outerValue = outer[key];
- if (typeof innerValue === "string") {
- if (innerValue !== outerValue) return false;
- } else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;
- }
- return true;
-}
-function getOriginalPath(record) {
- return record ? record.aliasOf ? record.aliasOf.path : record.path : "";
-}
-const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;
-const RouterViewImpl = /* @__PURE__ */ defineComponent({
- name: "RouterView",
- inheritAttrs: false,
- props: {
- name: {
- type: String,
- default: "default"
- },
- route: Object
- },
- compatConfig: { MODE: 3 },
- setup(props, { attrs, slots }) {
- const injectedRoute = inject(routerViewLocationKey);
- const routeToDisplay = computed(() => props.route || injectedRoute.value);
- const injectedDepth = inject(viewDepthKey, 0);
- const depth = computed(() => {
- let initialDepth = unref(injectedDepth);
- const { matched } = routeToDisplay.value;
- let matchedRoute;
- while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;
- return initialDepth;
- });
- const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);
- provide(viewDepthKey, computed(() => depth.value + 1));
- provide(matchedRouteKey, matchedRouteRef);
- provide(routerViewLocationKey, routeToDisplay);
- const viewRef = /* @__PURE__ */ ref();
- watch(() => [
- viewRef.value,
- matchedRouteRef.value,
- props.name
- ], ([instance, to, name], [oldInstance, from2, oldName]) => {
- if (to) {
- to.instances[name] = instance;
- if (from2 && from2 !== to && instance && instance === oldInstance) {
- if (!to.leaveGuards.size) to.leaveGuards = from2.leaveGuards;
- if (!to.updateGuards.size) to.updateGuards = from2.updateGuards;
- }
- }
- if (instance && to && (!from2 || !isSameRouteRecord(to, from2) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));
- }, { flush: "post" });
- return () => {
- const route = routeToDisplay.value;
- const currentName = props.name;
- const matchedRoute = matchedRouteRef.value;
- const ViewComponent = matchedRoute && matchedRoute.components[currentName];
- if (!ViewComponent) return normalizeSlot(slots.default, {
- Component: ViewComponent,
- route
- });
- const routePropsOption = matchedRoute.props[currentName];
- const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === "function" ? routePropsOption(route) : routePropsOption : null;
- const onVnodeUnmounted = (vnode) => {
- if (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;
- };
- const component = h$1(ViewComponent, assign$1({}, routeProps, attrs, {
- onVnodeUnmounted,
- ref: viewRef
- }));
- return normalizeSlot(slots.default, {
- Component: component,
- route
- }) || component;
- };
- }
-});
-function normalizeSlot(slot, data) {
- if (!slot) return null;
- const slotContent = slot(data);
- return slotContent.length === 1 ? slotContent[0] : slotContent;
-}
-const RouterView = RouterViewImpl;
-function createRouter(options) {
- const matcher = createRouterMatcher(options.routes, options);
- const parseQuery$1 = options.parseQuery || parseQuery;
- const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;
- const routerHistory = options.history;
- const beforeGuards = useCallbacks();
- const beforeResolveGuards = useCallbacks();
- const afterGuards = useCallbacks();
- const currentRoute = /* @__PURE__ */ shallowRef(START_LOCATION_NORMALIZED);
- let pendingLocation = START_LOCATION_NORMALIZED;
- if (isBrowser && options.scrollBehavior && "scrollRestoration" in history) history.scrollRestoration = "manual";
- const normalizeParams = applyToParams.bind(null, (paramValue) => "" + paramValue);
- const encodeParams = applyToParams.bind(null, encodeParam);
- const decodeParams = applyToParams.bind(null, decode);
- function addRoute(parentOrRoute, route) {
- let parent;
- let record;
- if (isRouteName(parentOrRoute)) {
- parent = matcher.getRecordMatcher(parentOrRoute);
- record = route;
- } else record = parentOrRoute;
- return matcher.addRoute(record, parent);
- }
- function removeRoute(name) {
- const recordMatcher = matcher.getRecordMatcher(name);
- if (recordMatcher) matcher.removeRoute(recordMatcher);
- }
- function getRoutes() {
- return matcher.getRoutes().map((routeMatcher) => routeMatcher.record);
- }
- function hasRoute(name) {
- return !!matcher.getRecordMatcher(name);
- }
- function resolve2(rawLocation, currentLocation) {
- currentLocation = assign$1({}, currentLocation || currentRoute.value);
- if (typeof rawLocation === "string") {
- const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);
- const matchedRoute2 = matcher.resolve({ path: locationNormalized.path }, currentLocation);
- const href2 = routerHistory.createHref(locationNormalized.fullPath);
- return assign$1(locationNormalized, matchedRoute2, {
- params: decodeParams(matchedRoute2.params),
- hash: decode(locationNormalized.hash),
- redirectedFrom: void 0,
- href: href2
- });
- }
- let matcherLocation;
- if (rawLocation.path != null) {
- matcherLocation = assign$1({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });
- } else {
- const targetParams = assign$1({}, rawLocation.params);
- for (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];
- matcherLocation = assign$1({}, rawLocation, { params: encodeParams(targetParams) });
- currentLocation.params = encodeParams(currentLocation.params);
- }
- const matchedRoute = matcher.resolve(matcherLocation, currentLocation);
- const hash = rawLocation.hash || "";
- matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));
- const fullPath = stringifyURL(stringifyQuery$1, assign$1({}, rawLocation, {
- hash: encodeHash(hash),
- path: matchedRoute.path
- }));
- const href = routerHistory.createHref(fullPath);
- return assign$1({
- fullPath,
- hash,
- query: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}
- }, matchedRoute, {
- redirectedFrom: void 0,
- href
- });
- }
- function locationAsObject(to) {
- return typeof to === "string" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign$1({}, to);
- }
- function checkCanceledNavigation(to, from2) {
- if (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {
- from: from2,
- to
- });
- }
- function push(to) {
- return pushWithRedirect(to);
- }
- function replace2(to) {
- return push(assign$1(locationAsObject(to), { replace: true }));
- }
- function handleRedirectRecord(to, from2) {
- const lastMatched = to.matched[to.matched.length - 1];
- if (lastMatched && lastMatched.redirect) {
- const { redirect } = lastMatched;
- let newTargetLocation = typeof redirect === "function" ? redirect(to, from2) : redirect;
- if (typeof newTargetLocation === "string") {
- newTargetLocation = newTargetLocation.includes("?") || newTargetLocation.includes("#") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };
- newTargetLocation.params = {};
- }
- return assign$1({
- query: to.query,
- hash: to.hash,
- params: newTargetLocation.path != null ? {} : to.params
- }, newTargetLocation);
- }
- }
- function pushWithRedirect(to, redirectedFrom) {
- const targetLocation = pendingLocation = resolve2(to);
- const from2 = currentRoute.value;
- const data = to.state;
- const force = to.force;
- const replace22 = to.replace === true;
- const shouldRedirect = handleRedirectRecord(targetLocation, from2);
- if (shouldRedirect) return pushWithRedirect(assign$1(locationAsObject(shouldRedirect), {
- state: typeof shouldRedirect === "object" ? assign$1({}, data, shouldRedirect.state) : data,
- force,
- replace: replace22
- }), redirectedFrom || targetLocation);
- const toLocation = targetLocation;
- toLocation.redirectedFrom = redirectedFrom;
- let failure;
- if (!force && isSameRouteLocation(stringifyQuery$1, from2, targetLocation)) {
- failure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {
- to: toLocation,
- from: from2
- });
- handleScroll(from2, from2, true, false);
- }
- return (failure ? Promise.resolve(failure) : navigate(toLocation, from2)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from2)).then((failure2) => {
- if (failure2) {
- if (isNavigationFailure(failure2, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {
- return pushWithRedirect(assign$1({ replace: replace22 }, locationAsObject(failure2.to), {
- state: typeof failure2.to === "object" ? assign$1({}, data, failure2.to.state) : data,
- force
- }), redirectedFrom || toLocation);
- }
- } else failure2 = finalizeNavigation(toLocation, from2, true, replace22, data);
- triggerAfterEach(toLocation, from2, failure2);
- return failure2;
- });
- }
- function checkCanceledNavigationAndReject(to, from2) {
- const error = checkCanceledNavigation(to, from2);
- return error ? Promise.reject(error) : Promise.resolve();
- }
- function runWithContext(fn) {
- const app2 = installedApps.values().next().value;
- return app2 && typeof app2.runWithContext === "function" ? app2.runWithContext(fn) : fn();
- }
- function navigate(to, from2) {
- let guards;
- const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from2);
- guards = extractComponentsGuards(leavingRecords.reverse(), "beforeRouteLeave", to, from2);
- for (const record of leavingRecords) record.leaveGuards.forEach((guard) => {
- guards.push(guardToPromiseFn(guard, to, from2));
- });
- const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from2);
- guards.push(canceledNavigationCheck);
- return runGuardQueue(guards).then(() => {
- guards = [];
- for (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from2));
- guards.push(canceledNavigationCheck);
- return runGuardQueue(guards);
- }).then(() => {
- guards = extractComponentsGuards(updatingRecords, "beforeRouteUpdate", to, from2);
- for (const record of updatingRecords) record.updateGuards.forEach((guard) => {
- guards.push(guardToPromiseFn(guard, to, from2));
- });
- guards.push(canceledNavigationCheck);
- return runGuardQueue(guards);
- }).then(() => {
- guards = [];
- for (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from2));
- else guards.push(guardToPromiseFn(record.beforeEnter, to, from2));
- guards.push(canceledNavigationCheck);
- return runGuardQueue(guards);
- }).then(() => {
- to.matched.forEach((record) => record.enterCallbacks = {});
- guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from2, runWithContext);
- guards.push(canceledNavigationCheck);
- return runGuardQueue(guards);
- }).then(() => {
- guards = [];
- for (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from2));
- guards.push(canceledNavigationCheck);
- return runGuardQueue(guards);
- }).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));
- }
- function triggerAfterEach(to, from2, failure) {
- afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from2, failure)));
- }
- function finalizeNavigation(toLocation, from2, isPush, replace22, data) {
- const error = checkCanceledNavigation(toLocation, from2);
- if (error) return error;
- const isFirstNavigation = from2 === START_LOCATION_NORMALIZED;
- const state = !isBrowser ? {} : history.state;
- if (isPush) if (replace22 || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign$1({ scroll: isFirstNavigation && state && state.scroll }, data));
- else routerHistory.push(toLocation.fullPath, data);
- currentRoute.value = toLocation;
- handleScroll(toLocation, from2, isPush, isFirstNavigation);
- markAsReady();
- }
- let removeHistoryListener;
- function setupListeners2() {
- if (removeHistoryListener) return;
- removeHistoryListener = routerHistory.listen((to, _from, info) => {
- if (!router2.listening) return;
- const toLocation = resolve2(to);
- const shouldRedirect = handleRedirectRecord(toLocation, router2.currentRoute.value);
- if (shouldRedirect) {
- pushWithRedirect(assign$1(shouldRedirect, {
- replace: true,
- force: true
- }), toLocation).catch(noop$1);
- return;
- }
- pendingLocation = toLocation;
- const from2 = currentRoute.value;
- if (isBrowser) saveScrollPosition(getScrollKey(from2.fullPath, info.delta), computeScrollPosition());
- navigate(toLocation, from2).catch((error) => {
- if (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;
- if (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {
- pushWithRedirect(assign$1(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {
- if (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);
- }).catch(noop$1);
- return Promise.reject();
- }
- if (info.delta) routerHistory.go(-info.delta, false);
- return triggerError(error, toLocation, from2);
- }).then((failure) => {
- failure = failure || finalizeNavigation(toLocation, from2, false);
- if (failure) {
- if (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);
- else if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);
- }
- triggerAfterEach(toLocation, from2, failure);
- }).catch(noop$1);
- });
- }
- let readyHandlers = useCallbacks();
- let errorListeners = useCallbacks();
- let ready;
- function triggerError(error, to, from2) {
- markAsReady(error);
- const list = errorListeners.list();
- if (list.length) list.forEach((handler) => handler(error, to, from2));
- else {
- console.error(error);
- }
- return Promise.reject(error);
- }
- function isReady() {
- if (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();
- return new Promise((resolve22, reject) => {
- readyHandlers.add([resolve22, reject]);
- });
- }
- function markAsReady(err) {
- if (!ready) {
- ready = !err;
- setupListeners2();
- readyHandlers.list().forEach(([resolve22, reject]) => err ? reject(err) : resolve22());
- readyHandlers.reset();
- }
- return err;
- }
- function handleScroll(to, from2, isPush, isFirstNavigation) {
- const { scrollBehavior } = options;
- if (!isBrowser || !scrollBehavior) return Promise.resolve();
- const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;
- return nextTick().then(() => scrollBehavior(to, from2, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from2));
- }
- const go2 = (delta) => routerHistory.go(delta);
- let started;
- const installedApps = /* @__PURE__ */ new Set();
- const router2 = {
- currentRoute,
- listening: true,
- addRoute,
- removeRoute,
- clearRoutes: matcher.clearRoutes,
- hasRoute,
- getRoutes,
- resolve: resolve2,
- options,
- push,
- replace: replace2,
- go: go2,
- back: () => go2(-1),
- forward: () => go2(1),
- beforeEach: beforeGuards.add,
- beforeResolve: beforeResolveGuards.add,
- afterEach: afterGuards.add,
- onError: errorListeners.add,
- isReady,
- install(app2) {
- app2.component("RouterLink", RouterLink);
- app2.component("RouterView", RouterView);
- app2.config.globalProperties.$router = router2;
- Object.defineProperty(app2.config.globalProperties, "$route", {
- enumerable: true,
- get: () => unref(currentRoute)
- });
- if (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {
- started = true;
- push(routerHistory.location).catch((err) => {
- });
- }
- const reactiveRoute = {};
- for (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {
- get: () => currentRoute.value[key],
- enumerable: true
- });
- app2.provide(routerKey, router2);
- app2.provide(routeLocationKey, /* @__PURE__ */ shallowReactive(reactiveRoute));
- app2.provide(routerViewLocationKey, currentRoute);
- const unmountApp = app2.unmount;
- installedApps.add(app2);
- app2.unmount = function() {
- installedApps.delete(app2);
- if (installedApps.size < 1) {
- pendingLocation = START_LOCATION_NORMALIZED;
- removeHistoryListener && removeHistoryListener();
- removeHistoryListener = null;
- currentRoute.value = START_LOCATION_NORMALIZED;
- started = false;
- ready = false;
- }
- unmountApp();
- };
- }
- };
- function runGuardQueue(guards) {
- return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());
- }
- return router2;
-}
-const useOpenNote = () => {
- const router2 = useRouter();
- function openNote(noteId, options = {}) {
- const { newWindow = true } = options;
- const isElectron = typeof window !== "undefined" && window.api && typeof window.api.openNoteWindow === "function";
- if (newWindow && isElectron) {
- window.api.openNoteWindow(noteId);
- return;
- }
- router2.push(`/note/${noteId}`);
- }
- return {
- openNote
- };
-};
-const categories = /* @__PURE__ */ ref([]);
-const searchResults = /* @__PURE__ */ ref([]);
-const notesChangeCount = /* @__PURE__ */ ref(0);
-let initialized = false;
-function setupListeners() {
- if (initialized || typeof window === "undefined") return;
- initialized = true;
- window.api.onNoteCreated(() => {
- notesChangeCount.value++;
- });
- window.api.onNoteUpdated(() => {
- notesChangeCount.value++;
- });
- window.api.onNoteDeleted(() => {
- notesChangeCount.value++;
- });
-}
-const useNotes = () => {
- setupListeners();
- async function loadCategories() {
- categories.value = await window.notesAPI.call("getCategories");
- }
- async function loadCategoryNotes(category = null) {
- return await window.notesAPI.call("getCategoryNotes", category);
- }
- async function loadNote(id) {
- return await window.notesAPI.call("getNote", id);
- }
- async function createNote(metadata, content) {
- const note = await window.notesAPI.call("createNote", metadata, content);
- await loadCategories();
- return note;
- }
- async function updateNoteContent(id, content) {
- const note = await window.notesAPI.call("updateNote", id, content);
- return note;
- }
- async function updateNoteMetadata(id, updates) {
- const note = await window.notesAPI.call(
- "updateNoteMetadata",
- id,
- updates
- );
- await loadCategories();
- return note;
- }
- async function updateCategory(category, update) {
- const notes = await loadCategoryNotes(category);
- notes.forEach(async (note) => {
- await updateNoteMetadata(note.id, { category: update });
- });
- await loadCategories();
- }
- async function search(query) {
- if (!query) {
- searchResults.value = [];
- return;
- }
- searchResults.value = await window.notesAPI.call("search", query);
- }
- return {
- categories,
- searchResults,
- notesChangeCount,
- loadCategories,
- loadCategoryNotes,
- loadNote,
- createNote,
- updateNoteContent,
- updateNoteMetadata,
- updateCategory,
- search
- };
-};
-const _sfc_main$b = {
- __name: "NewNote",
- props: { category: String },
- emits: ["noteOpened"],
- setup(__props, { emit: __emit }) {
- const props = __props;
- const emit2 = __emit;
- const { createNote } = useNotes();
- const { openNote } = useOpenNote();
- const onClick = async () => {
- const note = await createNote(
- {
- category: props.category ?? null
- },
- ""
- );
- openNote(note.id);
- emit2("noteOpened");
- };
- return (_ctx, _cache) => {
- return openBlock(), createElementBlock("button", {
- class: "new-note",
- onClick
- }, "+ New Nota");
- };
- }
-};
-var _arrayMap;
-var hasRequired_arrayMap;
-function require_arrayMap() {
- if (hasRequired_arrayMap) return _arrayMap;
- hasRequired_arrayMap = 1;
- function arrayMap(array, iteratee) {
- var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);
- while (++index2 < length) {
- result[index2] = iteratee(array[index2], index2, array);
- }
- return result;
- }
- _arrayMap = arrayMap;
- return _arrayMap;
-}
-var _baseUnary;
-var hasRequired_baseUnary;
-function require_baseUnary() {
- if (hasRequired_baseUnary) return _baseUnary;
- hasRequired_baseUnary = 1;
- function baseUnary(func) {
- return function(value) {
- return func(value);
- };
- }
- _baseUnary = baseUnary;
- return _baseUnary;
-}
-var _baseDifference;
-var hasRequired_baseDifference;
-function require_baseDifference() {
- if (hasRequired_baseDifference) return _baseDifference;
- hasRequired_baseDifference = 1;
- var SetCache = require_SetCache(), arrayIncludes = require_arrayIncludes(), arrayIncludesWith = require_arrayIncludesWith(), arrayMap = require_arrayMap(), baseUnary = require_baseUnary(), cacheHas = require_cacheHas();
- var LARGE_ARRAY_SIZE = 200;
- function baseDifference(array, values, iteratee, comparator) {
- var index2 = -1, includes = arrayIncludes, isCommon = true, length = array.length, result = [], valuesLength = values.length;
- if (!length) {
- return result;
- }
- if (iteratee) {
- values = arrayMap(values, baseUnary(iteratee));
- }
- if (comparator) {
- includes = arrayIncludesWith;
- isCommon = false;
- } else if (values.length >= LARGE_ARRAY_SIZE) {
- includes = cacheHas;
- isCommon = false;
- values = new SetCache(values);
- }
- outer:
- while (++index2 < length) {
- var value = array[index2], computed2 = iteratee == null ? value : iteratee(value);
- value = comparator || value !== 0 ? value : 0;
- if (isCommon && computed2 === computed2) {
- var valuesIndex = valuesLength;
- while (valuesIndex--) {
- if (values[valuesIndex] === computed2) {
- continue outer;
- }
- }
- result.push(value);
- } else if (!includes(values, computed2, comparator)) {
- result.push(value);
- }
- }
- return result;
- }
- _baseDifference = baseDifference;
- return _baseDifference;
-}
-var identity_1;
-var hasRequiredIdentity;
-function requireIdentity() {
- if (hasRequiredIdentity) return identity_1;
- hasRequiredIdentity = 1;
- function identity(value) {
- return value;
- }
- identity_1 = identity;
- return identity_1;
-}
-var _apply;
-var hasRequired_apply;
-function require_apply() {
- if (hasRequired_apply) return _apply;
- hasRequired_apply = 1;
- function apply2(func, thisArg, args) {
- switch (args.length) {
- case 0:
- return func.call(thisArg);
- case 1:
- return func.call(thisArg, args[0]);
- case 2:
- return func.call(thisArg, args[0], args[1]);
- case 3:
- return func.call(thisArg, args[0], args[1], args[2]);
- }
- return func.apply(thisArg, args);
- }
- _apply = apply2;
- return _apply;
-}
-var _overRest;
-var hasRequired_overRest;
-function require_overRest() {
- if (hasRequired_overRest) return _overRest;
- hasRequired_overRest = 1;
- var apply2 = require_apply();
- var nativeMax = Math.max;
- function overRest(func, start, transform) {
- start = nativeMax(start === void 0 ? func.length - 1 : start, 0);
- return function() {
- var args = arguments, index2 = -1, length = nativeMax(args.length - start, 0), array = Array(length);
- while (++index2 < length) {
- array[index2] = args[start + index2];
- }
- index2 = -1;
- var otherArgs = Array(start + 1);
- while (++index2 < start) {
- otherArgs[index2] = args[index2];
- }
- otherArgs[start] = transform(array);
- return apply2(func, this, otherArgs);
- };
- }
- _overRest = overRest;
- return _overRest;
-}
-var constant_1;
-var hasRequiredConstant;
-function requireConstant() {
- if (hasRequiredConstant) return constant_1;
- hasRequiredConstant = 1;
- function constant(value) {
- return function() {
- return value;
- };
- }
- constant_1 = constant;
- return constant_1;
-}
-var _defineProperty;
-var hasRequired_defineProperty;
-function require_defineProperty() {
- if (hasRequired_defineProperty) return _defineProperty;
- hasRequired_defineProperty = 1;
- var getNative = require_getNative();
- var defineProperty = (function() {
- try {
- var func = getNative(Object, "defineProperty");
- func({}, "", {});
- return func;
- } catch (e) {
- }
- })();
- _defineProperty = defineProperty;
- return _defineProperty;
-}
-var _baseSetToString;
-var hasRequired_baseSetToString;
-function require_baseSetToString() {
- if (hasRequired_baseSetToString) return _baseSetToString;
- hasRequired_baseSetToString = 1;
- var constant = requireConstant(), defineProperty = require_defineProperty(), identity = requireIdentity();
- var baseSetToString = !defineProperty ? identity : function(func, string) {
- return defineProperty(func, "toString", {
- "configurable": true,
- "enumerable": false,
- "value": constant(string),
- "writable": true
- });
- };
- _baseSetToString = baseSetToString;
- return _baseSetToString;
-}
-var _shortOut;
-var hasRequired_shortOut;
-function require_shortOut() {
- if (hasRequired_shortOut) return _shortOut;
- hasRequired_shortOut = 1;
- var HOT_COUNT = 800, HOT_SPAN = 16;
- var nativeNow = Date.now;
- function shortOut(func) {
- var count = 0, lastCalled = 0;
- return function() {
- var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
- lastCalled = stamp;
- if (remaining > 0) {
- if (++count >= HOT_COUNT) {
- return arguments[0];
- }
- } else {
- count = 0;
- }
- return func.apply(void 0, arguments);
- };
- }
- _shortOut = shortOut;
- return _shortOut;
-}
-var _setToString;
-var hasRequired_setToString;
-function require_setToString() {
- if (hasRequired_setToString) return _setToString;
- hasRequired_setToString = 1;
- var baseSetToString = require_baseSetToString(), shortOut = require_shortOut();
- var setToString = shortOut(baseSetToString);
- _setToString = setToString;
- return _setToString;
-}
-var _baseRest;
-var hasRequired_baseRest;
-function require_baseRest() {
- if (hasRequired_baseRest) return _baseRest;
- hasRequired_baseRest = 1;
- var identity = requireIdentity(), overRest = require_overRest(), setToString = require_setToString();
- function baseRest(func, start) {
- return setToString(overRest(func, start, identity), func + "");
- }
- _baseRest = baseRest;
- return _baseRest;
-}
-var isLength_1;
-var hasRequiredIsLength;
-function requireIsLength() {
- if (hasRequiredIsLength) return isLength_1;
- hasRequiredIsLength = 1;
- var MAX_SAFE_INTEGER = 9007199254740991;
- function isLength(value) {
- return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
- }
- isLength_1 = isLength;
- return isLength_1;
-}
-var isArrayLike_1;
-var hasRequiredIsArrayLike;
-function requireIsArrayLike() {
- if (hasRequiredIsArrayLike) return isArrayLike_1;
- hasRequiredIsArrayLike = 1;
- var isFunction2 = requireIsFunction(), isLength = requireIsLength();
- function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction2(value);
- }
- isArrayLike_1 = isArrayLike;
- return isArrayLike_1;
-}
-var isObjectLike_1;
-var hasRequiredIsObjectLike;
-function requireIsObjectLike() {
- if (hasRequiredIsObjectLike) return isObjectLike_1;
- hasRequiredIsObjectLike = 1;
- function isObjectLike(value) {
- return value != null && typeof value == "object";
- }
- isObjectLike_1 = isObjectLike;
- return isObjectLike_1;
-}
-var isArrayLikeObject_1;
-var hasRequiredIsArrayLikeObject;
-function requireIsArrayLikeObject() {
- if (hasRequiredIsArrayLikeObject) return isArrayLikeObject_1;
- hasRequiredIsArrayLikeObject = 1;
- var isArrayLike = requireIsArrayLike(), isObjectLike = requireIsObjectLike();
- function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
- }
- isArrayLikeObject_1 = isArrayLikeObject;
- return isArrayLikeObject_1;
-}
-var without_1;
-var hasRequiredWithout;
-function requireWithout() {
- if (hasRequiredWithout) return without_1;
- hasRequiredWithout = 1;
- var baseDifference = require_baseDifference(), baseRest = require_baseRest(), isArrayLikeObject = requireIsArrayLikeObject();
- var without = baseRest(function(array, values) {
- return isArrayLikeObject(array) ? baseDifference(array, values) : [];
- });
- without_1 = without;
- return without_1;
-}
-var withoutExports = requireWithout();
-const _without = /* @__PURE__ */ getDefaultExportFromCjs(withoutExports);
-const useMenu = () => {
- const route = useRoute();
- const router2 = useRouter();
- const menuOpen = computed(() => route.query?.menuOpen === "true");
- const closeMenu = () => {
- router2.push({
- query: _without(route.query, "menuOpen")
- });
- };
- const openMenu = () => {
- router2.push({
- query: {
- menuOpen: true
- }
- });
- };
- return {
- menuOpen,
- closeMenu,
- openMenu
- };
-};
-const _hoisted_1$9 = { class: "nav layout-block-inner" };
-const _sfc_main$a = {
- __name: "Nav",
- setup(__props) {
- const { menuOpen, closeMenu, openMenu } = useMenu();
- const toggleMenu = () => {
- if (menuOpen.value) {
- closeMenu();
- } else {
- openMenu();
- }
- };
- onMounted(() => {
- });
- return (_ctx, _cache) => {
- return openBlock(), createElementBlock("nav", _hoisted_1$9, [
- createBaseVNode("button", { onClick: toggleMenu }, "Menu")
- ]);
- };
- }
-};
-const _hoisted_1$8 = { class: "menu-wrap layout-block-inner" };
-const _sfc_main$9 = {
- __name: "Index",
- setup(__props) {
- const container = /* @__PURE__ */ ref();
- const { menuOpen, closeMenu } = useMenu();
- onClickOutside(container, () => {
- closeMenu();
- });
- const route = useRoute();
- watch(
- () => route.path,
- () => {
- closeMenu();
- }
- );
- return (_ctx, _cache) => {
- const _component_router_link = resolveComponent("router-link");
- return openBlock(), createBlock(Transition, { name: "menu" }, {
- default: withCtx(() => [
- unref(menuOpen) ? (openBlock(), createElementBlock("div", {
- key: 0,
- class: "menu",
- ref_key: "container",
- ref: container
- }, [
- createVNode(_sfc_main$a),
- createBaseVNode("div", _hoisted_1$8, [
- createVNode(_sfc_main$b, {
- class: "menu-item",
- onNoteOpened: unref(closeMenu)
- }, null, 8, ["onNoteOpened"]),
- createVNode(_component_router_link, {
- class: "menu-item",
- to: "/category"
- }, {
- default: withCtx(() => [..._cache[0] || (_cache[0] = [
- createTextVNode("+ New Capitulum", -1)
- ])]),
- _: 1
- }),
- _cache[2] || (_cache[2] = createBaseVNode("button", { class: "menu-item" }, "Change Theme", -1)),
- createVNode(_component_router_link, {
- class: "menu-item",
- to: "/instructions"
- }, {
- default: withCtx(() => [..._cache[1] || (_cache[1] = [
- createTextVNode("Instructio", -1)
- ])]),
- _: 1
- }),
- _cache[3] || (_cache[3] = createBaseVNode("button", { class: "menu-item" }, "Import", -1)),
- _cache[4] || (_cache[4] = createBaseVNode("button", { class: "menu-item" }, "Export", -1))
- ])
- ], 512)) : createCommentVNode("", true)
- ]),
- _: 1
- });
- };
- }
-};
-var Clock = class {
- _elapsed = 0;
- _currentTime = 0;
- _startTime = void 0;
- _lastTime = void 0;
- _isPlaying = false;
- _deltaTime = 0;
- play() {
- if (this._isPlaying) return;
- this._currentTime = 0;
- this._startTime = void 0;
- this._isPlaying = true;
- }
- pause() {
- if (!this._isPlaying) return;
- this._deltaTime = 0;
- this._isPlaying = false;
- }
- reset() {
- this._elapsed = 0;
- this._deltaTime = 0;
- this._currentTime = 0;
- this._lastTime = void 0;
- this._isPlaying = false;
- }
- update(browserTime) {
- if (!this._isPlaying) return;
- if (!this._startTime) {
- this._startTime = browserTime;
- }
- if (this._lastTime === void 0) {
- this._lastTime = this._startTime;
- this._currentTime = 0;
- this._deltaTime = 0;
- } else {
- this._lastTime = this._currentTime;
- this._currentTime = browserTime - this._startTime;
- this._deltaTime = this._currentTime - this._lastTime;
- this._elapsed += this._deltaTime;
- }
- }
- get time() {
- return this._elapsed;
- }
- get isPlaying() {
- return this._isPlaying;
- }
- get deltaTime() {
- return this._deltaTime;
- }
-};
-var index = 0;
-function getUID() {
- return index++;
-}
-var version = "1.0.0-dev.17";
-var isClient = typeof window !== "undefined";
-var originalRAF = isClient && window.requestAnimationFrame;
-var originalCancelRAF = isClient && window.cancelAnimationFrame;
-if (isClient) {
- window.tempusVersion = version;
-}
-function stopwatch(callback) {
- const now = performance.now();
- callback();
- return performance.now() - now;
-}
-var Framerate = class {
- callbacks = [];
- fps;
- time = 0;
- lastTickDate = performance.now();
- framesCount = 0;
- constructor(fps = Number.POSITIVE_INFINITY) {
- this.fps = fps;
- }
- get isRelativeFps() {
- return typeof this.fps === "string" && this.fps.endsWith("%");
- }
- get maxFramesCount() {
- if (!this.isRelativeFps) return 1;
- return Math.max(1, Math.round(100 / Number(this.fps.replace("%", ""))));
- }
- get executionTime() {
- if (this.isRelativeFps) return 0;
- return 1e3 / this.fps;
- }
- dispatch(time, deltaTime, frameCount) {
- for (let i = 0; i < this.callbacks.length; i++) {
- const duration = stopwatch(() => {
- if ((this.callbacks[i]?.idle ?? Number.POSITIVE_INFINITY) > Tempus.usage) {
- this.callbacks[i]?.callback(time, deltaTime, frameCount);
- }
- });
- this.callbacks[i].samples?.push(duration);
- this.callbacks[i].samples = this.callbacks[i].samples?.slice(-9);
- }
- }
- raf(time, deltaTime, frameCount) {
- this.time += deltaTime;
- if (this.isRelativeFps) {
- if (this.framesCount === 0) {
- this.dispatch(time, deltaTime, frameCount);
- }
- this.framesCount++;
- this.framesCount %= this.maxFramesCount;
- } else {
- if (this.fps === Number.POSITIVE_INFINITY) {
- this.dispatch(time, deltaTime, frameCount);
- } else if (this.time >= this.executionTime) {
- this.time = this.time % this.executionTime;
- const deltaTime2 = time - this.lastTickDate;
- this.lastTickDate = time;
- this.dispatch(time, deltaTime2, frameCount);
- }
- }
- }
- add({
- callback,
- priority,
- label,
- idle
- }) {
- if (typeof callback !== "function") {
- console.warn("Tempus.add: callback is not a function");
- return;
- }
- const uid2 = getUID();
- this.callbacks.push({ callback, priority, uid: uid2, label, samples: [], idle });
- this.callbacks.sort((a, b) => a.priority - b.priority);
- return () => this.remove(uid2);
- }
- remove(uid2) {
- this.callbacks = this.callbacks.filter(({ uid: u }) => uid2 !== u);
- }
-};
-var TempusImpl = class {
- framerates = {};
- clock = new Clock();
- fps;
- usage = 0;
- rafId;
- frameCount = 0;
- constructor() {
- if (!isClient) return;
- this.play();
- }
- restart() {
- if (this.rafId) {
- cancelAnimationFrame(this.rafId);
- }
- this.frameCount = 0;
- for (const framerate of Object.values(this.framerates)) {
- framerate.framesCount = 0;
- framerate.time = 0;
- framerate.lastTickDate = performance.now();
- }
- this.clock.reset();
- this.play();
- }
- play() {
- if (!isClient || this.clock.isPlaying) return;
- this.clock.play();
- this.rafId = requestAnimationFrame(this.raf);
- }
- pause() {
- if (!isClient || !this.rafId || !this.clock.isPlaying) return;
- cancelAnimationFrame(this.rafId);
- this.rafId = void 0;
- this.clock.pause();
- }
- get isPlaying() {
- return this.clock.isPlaying;
- }
- add(callback, {
- priority = 0,
- fps = Number.POSITIVE_INFINITY,
- label = "",
- idle = Number.POSITIVE_INFINITY
- } = {}) {
- if (!isClient) return;
- if (typeof fps === "number" || typeof fps === "string" && fps.endsWith("%")) {
- if (!this.framerates[fps]) this.framerates[fps] = new Framerate(fps);
- return this.framerates[fps].add({ callback, priority, label, idle });
- }
- console.warn('Tempus.add: fps is not a number or a string ending with "%"');
- }
- raf = (browserElapsed) => {
- if (!isClient) return;
- this.clock.update(browserElapsed);
- const elapsed = this.clock.time;
- const deltaTime = this.clock.deltaTime;
- this.fps = 1e3 / deltaTime;
- const duration = stopwatch(() => {
- for (const framerate of Object.values(this.framerates)) {
- framerate.raf(elapsed, deltaTime, this.frameCount);
- }
- });
- if (deltaTime) {
- this.usage = duration / deltaTime;
- }
- this.frameCount++;
- this.rafId = requestAnimationFrame(this.raf);
- };
- patch() {
- if (!isClient) return;
- window.requestAnimationFrame = (callback, { priority = 0, fps = Number.POSITIVE_INFINITY } = {}) => {
- const stringifiedCallback = callback.toString();
- if ((stringifiedCallback.includes(
- `requestAnimationFrame(${callback.name})`
- ) || stringifiedCallback.includes(
- `requestAnimationFrame(this.${callback.name})`
- )) && callback !== this.raf) {
- if (!callback.__tempusPatched) {
- callback.__tempusPatched = true;
- callback.__tempusUnsubscribe = this.add(callback, {
- priority,
- fps,
- label: callback.name
- });
- }
- return callback.__tempusUnsubscribe;
- }
- return originalRAF(callback);
- };
- window.cancelAnimationFrame = (callback) => {
- if (typeof callback === "function") {
- callback?.();
- return;
- }
- return originalCancelRAF(callback);
- };
- }
- unpatch() {
- if (!isClient) return;
- window.requestAnimationFrame = originalRAF;
- window.cancelAnimationFrame = originalCancelRAF;
- }
-};
-var Tempus = new TempusImpl();
-const _hoisted_1$7 = {
- key: 0,
- class: "scroll-bar"
-};
-const _sfc_main$8 = {
- __name: "ScrollBar",
- setup(__props) {
- const inner = /* @__PURE__ */ ref();
- const handle = /* @__PURE__ */ ref();
- const { height: wHeight } = /* @__PURE__ */ useWindowSize();
- const { y: scrollY } = useWindowScroll();
- const { height: documentHeight } = useElementSize(document.documentElement);
- const { height: innerHeight2 } = useElementSize(inner);
- const { height: handleHeight } = useElementSize(handle);
- const updateScrollbar = () => {
- const scrollHeight = documentHeight.value;
- const viewportHeight = wHeight.value;
- const limit = scrollHeight - viewportHeight;
- if (limit <= 0) return;
- const progress = scrollY.value / limit;
- if (handle.value) {
- handle.value.style.transform = `translate3d(0,${progress * (innerHeight2.value - handleHeight.value)}px,0)`;
- }
- };
- const showScrollBar = computed(() => {
- return documentHeight.value > wHeight.value;
- });
- const removeRaf = /* @__PURE__ */ ref();
- const addRaf = () => removeRaf.value = Tempus.add(updateScrollbar);
- onBeforeUnmount(() => {
- removeRaf.value?.();
- });
- watch(
- showScrollBar,
- (show) => {
- if (show) {
- addRaf();
- } else {
- removeRaf.value?.();
- }
- },
- { immediate: true }
- );
- return (_ctx, _cache) => {
- return showScrollBar.value ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
- createBaseVNode("div", {
- class: "inner",
- ref_key: "inner",
- ref: inner
- }, [
- createBaseVNode("div", {
- class: "handle",
- ref_key: "handle",
- ref: handle
- }, null, 512)
- ], 512)
- ])) : createCommentVNode("", true);
- };
- }
-};
-const _sfc_main$7 = {
- __name: "App",
- setup(__props) {
- const { height } = /* @__PURE__ */ useWindowSize();
- const classes = computed(() => [
- "container",
- { "fonts-ready": !fontsLoading.value },
- "theme-dark"
- ]);
- const fontsLoading = /* @__PURE__ */ ref(true);
- onMounted(async () => {
- loadFonts([
- {
- name: "Leibniz Fraktur",
- weights: [400]
- },
- {
- name: "Geist Mono",
- weights: [400, 700]
- }
- ]).then(() => {
- fontsLoading.value = false;
- }).catch(() => {
- fontsLoading.value = false;
- });
- });
- const styles = computed(() => ({
- "--vh": height.value ? height.value / 100 + "px" : "100vh"
- }));
- return (_ctx, _cache) => {
- const _component_router_view = resolveComponent("router-view");
- return openBlock(), createElementBlock("div", {
- class: normalizeClass(classes.value),
- style: normalizeStyle(styles.value)
- }, [
- createVNode(_sfc_main$a),
- (openBlock(), createBlock(_component_router_view, {
- key: _ctx.$route.fullPath
- })),
- createVNode(_sfc_main$9),
- createVNode(_sfc_main$8)
- ], 6);
- };
- }
-};
-const _hoisted_1$6 = { class: "index" };
-const _hoisted_2$4 = {
- key: 1,
- class: "title h1"
-};
-const _sfc_main$6 = {
- __name: "CategoryRow",
- props: {
- index: Number,
- category: {
- type: String,
- default: () => ""
- },
- editable: {
- type: Boolean,
- default: () => false
- }
- },
- emits: ["edited"],
- setup(__props, { emit: __emit }) {
- const props = __props;
- const emit2 = __emit;
- const isEditing = /* @__PURE__ */ ref(false);
- const categoryInput = /* @__PURE__ */ ref("");
- const input = /* @__PURE__ */ ref();
- onMounted(() => {
- categoryInput.value = props.category;
- if (categoryInput.value === "") {
- onEdit();
- }
- });
- const onEdit = async () => {
- isEditing.value = true;
- await new Promise((res) => setTimeout(res, 300));
- input.value?.focus();
- };
- const onSave = async () => {
- isEditing.value = false;
- emit2("edited", categoryInput.value);
- await new Promise((res) => setTimeout(res, 300));
- input.value?.blur();
- };
- const wrapper = computed(() => {
- return props.editable ? "div" : RouterLink;
- });
- return (_ctx, _cache) => {
- return openBlock(), createBlock(resolveDynamicComponent(wrapper.value), {
- class: normalizeClass(["category-row", { editable: __props.editable }]),
- to: `/category/${__props.category}`
- }, {
- default: withCtx(() => [
- createBaseVNode("span", _hoisted_1$6, toDisplayString(String(__props.index + 1).padStart(2, "0")) + ".", 1),
- isEditing.value ? (openBlock(), createElementBlock("form", {
- key: 0,
- onSubmit: withModifiers(onSave, ["prevent"])
- }, [
- withDirectives(createBaseVNode("input", {
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => categoryInput.value = $event),
- class: "category-input",
- type: "text",
- ref_key: "input",
- ref: input,
- onBlur: onSave
- }, null, 544), [
- [vModelText, categoryInput.value]
- ])
- ], 32)) : (openBlock(), createElementBlock("span", _hoisted_2$4, toDisplayString(categoryInput.value), 1)),
- isEditing.value ? (openBlock(), createElementBlock("button", {
- key: 2,
- class: "save-button",
- onClick: onSave
- }, " Save ")) : __props.editable ? (openBlock(), createElementBlock("button", {
- key: 3,
- class: "edit-button",
- onClick: onEdit
- }, " Edit ")) : createCommentVNode("", true)
- ]),
- _: 1
- }, 8, ["class", "to"]);
- };
- }
-};
-var token = /d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
-var literal = /\[([^]*?)\]/gm;
-function shorten(arr, sLen) {
- var newArr = [];
- for (var i = 0, len = arr.length; i < len; i++) {
- newArr.push(arr[i].substr(0, sLen));
- }
- return newArr;
-}
-function assign(origObj) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
- var obj = args_1[_a];
- for (var key in obj) {
- origObj[key] = obj[key];
- }
- }
- return origObj;
-}
-var dayNames = [
- "Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday"
-];
-var monthNames = [
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December"
-];
-var monthNamesShort = shorten(monthNames, 3);
-var dayNamesShort = shorten(dayNames, 3);
-var defaultI18n = {
- dayNamesShort,
- dayNames,
- monthNamesShort,
- monthNames,
- amPm: ["am", "pm"],
- DoFn: function(dayOfMonth) {
- return dayOfMonth + ["th", "st", "nd", "rd"][dayOfMonth % 10 > 3 ? 0 : (dayOfMonth - dayOfMonth % 10 !== 10 ? 1 : 0) * dayOfMonth % 10];
- }
-};
-var globalI18n = assign({}, defaultI18n);
-var pad = function(val, len) {
- if (len === void 0) {
- len = 2;
- }
- val = String(val);
- while (val.length < len) {
- val = "0" + val;
- }
- return val;
-};
-var formatFlags = {
- D: function(dateObj) {
- return String(dateObj.getDate());
- },
- DD: function(dateObj) {
- return pad(dateObj.getDate());
- },
- Do: function(dateObj, i18n) {
- return i18n.DoFn(dateObj.getDate());
- },
- d: function(dateObj) {
- return String(dateObj.getDay());
- },
- dd: function(dateObj) {
- return pad(dateObj.getDay());
- },
- ddd: function(dateObj, i18n) {
- return i18n.dayNamesShort[dateObj.getDay()];
- },
- dddd: function(dateObj, i18n) {
- return i18n.dayNames[dateObj.getDay()];
- },
- M: function(dateObj) {
- return String(dateObj.getMonth() + 1);
- },
- MM: function(dateObj) {
- return pad(dateObj.getMonth() + 1);
- },
- MMM: function(dateObj, i18n) {
- return i18n.monthNamesShort[dateObj.getMonth()];
- },
- MMMM: function(dateObj, i18n) {
- return i18n.monthNames[dateObj.getMonth()];
- },
- YY: function(dateObj) {
- return pad(String(dateObj.getFullYear()), 4).substr(2);
- },
- YYYY: function(dateObj) {
- return pad(dateObj.getFullYear(), 4);
- },
- h: function(dateObj) {
- return String(dateObj.getHours() % 12 || 12);
- },
- hh: function(dateObj) {
- return pad(dateObj.getHours() % 12 || 12);
- },
- H: function(dateObj) {
- return String(dateObj.getHours());
- },
- HH: function(dateObj) {
- return pad(dateObj.getHours());
- },
- m: function(dateObj) {
- return String(dateObj.getMinutes());
- },
- mm: function(dateObj) {
- return pad(dateObj.getMinutes());
- },
- s: function(dateObj) {
- return String(dateObj.getSeconds());
- },
- ss: function(dateObj) {
- return pad(dateObj.getSeconds());
- },
- S: function(dateObj) {
- return String(Math.round(dateObj.getMilliseconds() / 100));
- },
- SS: function(dateObj) {
- return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
- },
- SSS: function(dateObj) {
- return pad(dateObj.getMilliseconds(), 3);
- },
- a: function(dateObj, i18n) {
- return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];
- },
- A: function(dateObj, i18n) {
- return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();
- },
- ZZ: function(dateObj) {
- var offset2 = dateObj.getTimezoneOffset();
- return (offset2 > 0 ? "-" : "+") + pad(Math.floor(Math.abs(offset2) / 60) * 100 + Math.abs(offset2) % 60, 4);
- },
- Z: function(dateObj) {
- var offset2 = dateObj.getTimezoneOffset();
- return (offset2 > 0 ? "-" : "+") + pad(Math.floor(Math.abs(offset2) / 60), 2) + ":" + pad(Math.abs(offset2) % 60, 2);
- }
-};
-var globalMasks = {
- default: "ddd MMM DD YYYY HH:mm:ss",
- shortDate: "M/D/YY",
- mediumDate: "MMM D, YYYY",
- longDate: "MMMM D, YYYY",
- fullDate: "dddd, MMMM D, YYYY",
- isoDate: "YYYY-MM-DD",
- isoDateTime: "YYYY-MM-DDTHH:mm:ssZ",
- shortTime: "HH:mm",
- mediumTime: "HH:mm:ss",
- longTime: "HH:mm:ss.SSS"
-};
-var format = function(dateObj, mask, i18n) {
- if (mask === void 0) {
- mask = globalMasks["default"];
- }
- if (i18n === void 0) {
- i18n = {};
- }
- if (typeof dateObj === "number") {
- dateObj = new Date(dateObj);
- }
- if (Object.prototype.toString.call(dateObj) !== "[object Date]" || isNaN(dateObj.getTime())) {
- throw new Error("Invalid Date pass to format");
- }
- mask = globalMasks[mask] || mask;
- var literals2 = [];
- mask = mask.replace(literal, function($0, $1) {
- literals2.push($1);
- return "@@@";
- });
- var combinedI18nSettings = assign(assign({}, globalI18n), i18n);
- mask = mask.replace(token, function($0) {
- return formatFlags[$0](dateObj, combinedI18nSettings);
- });
- return mask.replace(/@@@/g, function() {
- return literals2.shift();
- });
-};
-const _hoisted_1$5 = { class: "date" };
-const _hoisted_2$3 = { class: "title bold" };
-const _sfc_main$5 = {
- __name: "NoteRow",
- props: { note: Object },
- setup(__props) {
- const { openNote } = useOpenNote();
- const formatDate = (date) => {
- const d2 = new Date(date);
- return format(d2, "MM/DD/YYYY");
- };
- return (_ctx, _cache) => {
- return openBlock(), createElementBlock("button", {
- class: "note-row",
- onClick: _cache[0] || (_cache[0] = ($event) => unref(openNote)(__props.note.id))
- }, [
- createBaseVNode("span", _hoisted_1$5, toDisplayString(formatDate(__props.note.createdAt)), 1),
- createBaseVNode("span", _hoisted_2$3, toDisplayString(__props.note.title), 1)
- ]);
- };
- }
-};
-const _hoisted_1$4 = { class: "directory layout-block" };
-const _hoisted_2$2 = { class: "notes" };
-const _sfc_main$4 = {
- __name: "Directory",
- setup(__props) {
- const { categories: categories2, loadCategories, loadCategoryNotes, notesChangeCount: notesChangeCount2 } = useNotes();
- const notes = /* @__PURE__ */ ref();
- async function refreshNotes() {
- await loadCategories();
- notes.value = await loadCategoryNotes();
- }
- onMounted(async () => {
- await refreshNotes();
- });
- watch(notesChangeCount2, async () => {
- await refreshNotes();
- });
- return (_ctx, _cache) => {
- return openBlock(), createElementBlock("main", _hoisted_1$4, [
- (openBlock(true), createElementBlock(Fragment$1, null, renderList(unref(categories2), (category, i) => {
- return openBlock(), createBlock(_sfc_main$6, {
- index: i,
- category,
- key: category
- }, null, 8, ["index", "category"]);
- }), 128)),
- _cache[0] || (_cache[0] = createBaseVNode("h2", { class: "label" }, "Summarium", -1)),
- createBaseVNode("div", _hoisted_2$2, [
- (openBlock(true), createElementBlock(Fragment$1, null, renderList(notes.value, (note) => {
- return openBlock(), createBlock(_sfc_main$5, {
- note,
- key: note.id
- }, null, 8, ["note"]);
- }), 128))
- ])
- ]);
- };
- }
-};
-function OrderedMap(content) {
- this.content = content;
-}
-OrderedMap.prototype = {
- constructor: OrderedMap,
- find: function(key) {
- for (var i = 0; i < this.content.length; i += 2)
- if (this.content[i] === key) return i;
- return -1;
- },
- // :: (string) → ?any
- // Retrieve the value stored under `key`, or return undefined when
- // no such key exists.
- get: function(key) {
- var found2 = this.find(key);
- return found2 == -1 ? void 0 : this.content[found2 + 1];
- },
- // :: (string, any, ?string) → OrderedMap
- // Create a new map by replacing the value of `key` with a new
- // value, or adding a binding to the end of the map. If `newKey` is
- // given, the key of the binding will be replaced with that key.
- update: function(key, value, newKey) {
- var self2 = newKey && newKey != key ? this.remove(newKey) : this;
- var found2 = self2.find(key), content = self2.content.slice();
- if (found2 == -1) {
- content.push(newKey || key, value);
- } else {
- content[found2 + 1] = value;
- if (newKey) content[found2] = newKey;
- }
- return new OrderedMap(content);
- },
- // :: (string) → OrderedMap
- // Return a map with the given key removed, if it existed.
- remove: function(key) {
- var found2 = this.find(key);
- if (found2 == -1) return this;
- var content = this.content.slice();
- content.splice(found2, 2);
- return new OrderedMap(content);
- },
- // :: (string, any) → OrderedMap
- // Add a new key to the start of the map.
- addToStart: function(key, value) {
- return new OrderedMap([key, value].concat(this.remove(key).content));
- },
- // :: (string, any) → OrderedMap
- // Add a new key to the end of the map.
- addToEnd: function(key, value) {
- var content = this.remove(key).content.slice();
- content.push(key, value);
- return new OrderedMap(content);
- },
- // :: (string, string, any) → OrderedMap
- // Add a key after the given key. If `place` is not found, the new
- // key is added to the end.
- addBefore: function(place, key, value) {
- var without = this.remove(key), content = without.content.slice();
- var found2 = without.find(place);
- content.splice(found2 == -1 ? content.length : found2, 0, key, value);
- return new OrderedMap(content);
- },
- // :: ((key: string, value: any))
- // Call the given function for each key/value pair in the map, in
- // order.
- forEach: function(f) {
- for (var i = 0; i < this.content.length; i += 2)
- f(this.content[i], this.content[i + 1]);
- },
- // :: (union