@stonecrop/desktop 0.2.13 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktop.js","sources":["../src/components/ActionSet.vue","../src/components/CommandPalette.vue","../../aform/dist/aform.js","../../stonecrop/dist/stonecrop.js","../src/components/Doctype.vue","../../atable/dist/atable.js","../src/components/Records.vue","../src/components/SheetNav.vue","../src/plugins/index.ts"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{ 'open-set': isOpen, 'hovered-and-closed': closeClicked }\"\n\t\tclass=\"action-set collapse\"\n\t\t@mouseover=\"onHover\"\n\t\t@mouseleave=\"onHoverLeave\">\n\t\t<div class=\"action-menu-icon\">\n\t\t\t<div id=\"chevron\" @click=\"closeClicked = !closeClicked\">\n\t\t\t\t<svg\n\t\t\t\t\tclass=\"leftBar\"\n\t\t\t\t\tversion=\"1.1\"\n\t\t\t\t\tid=\"Layer_1\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\n\t\t\t\t\tx=\"0px\"\n\t\t\t\t\ty=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 100 100\"\n\t\t\t\t\txml:space=\"preserve\"\n\t\t\t\t\twidth=\"50\"\n\t\t\t\t\theight=\"50\">\n\t\t\t\t\t<polygon points=\"54.2,33.4 29.2,58.8 25,54.6 50,29.2 \" />\n\t\t\t\t</svg>\n\n\t\t\t\t<svg\n\t\t\t\t\tclass=\"rightBar\"\n\t\t\t\t\tversion=\"1.1\"\n\t\t\t\t\tid=\"Layer_1\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\n\t\t\t\t\tx=\"0px\"\n\t\t\t\t\ty=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 100 100\"\n\t\t\t\t\txml:space=\"preserve\"\n\t\t\t\t\twidth=\"50\"\n\t\t\t\t\theight=\"50\">\n\t\t\t\t\t<polygon points=\"70.8,58.8 45.8,33.4 50,29.2 75,54.6 \" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</div>\n\t\t<div style=\"margin-right: 30px\"></div>\n\t\t<div class=\"action-element\" v-for=\"(el, index) in _elements\" :key=\"index\">\n\t\t\t<button v-if=\"el.elementType == 'button'\" :onclick=\"el.action\" class=\"button-default\">{{ el.label }}</button>\n\t\t\t<div v-if=\"el.elementType == 'dropdown'\">\n\t\t\t\t<button class=\"button-default\" @click=\"toggleDropdown(index)\">{{ el.label }}</button>\n\t\t\t\t<div class=\"dropdown-container\" v-show=\"el.show\">\n\t\t\t\t\t<div class=\"dropdown\">\n\t\t\t\t\t\t<div v-for=\"item in el.actions\" :key=\"item.label\">\n\t\t\t\t\t\t\t<button v-if=\"item.action != null\" :onclick=\"item.action\" class=\"dropdown-item\">{{ item.label }}</button>\n\t\t\t\t\t\t\t<a v-else-if=\"item.link != null\" :href=\"item.link\"\n\t\t\t\t\t\t\t\t><button class=\"dropdown-item\">{{ item.label }}</button></a\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue'\n\ntype SetAction = {\n\tlabel: string\n\tlink?: string\n\taction?: () => void\n}\n\ntype SetElement = {\n\telementType: string\n\tlabel: string\n\tlink?: string\n\tshow?: boolean\n\taction?: () => void\n\tactions?: SetAction[]\n}\n\nconst props = defineProps<{\n\telements?: SetElement[]\n}>()\n\nconst _elements = ref<SetElement[]>([])\nconst isOpen = ref(false)\nconst timeout = ref<NodeJS.Timeout>(null)\nconst hover = ref(false)\nconst closeClicked = ref(false)\n\nonMounted(() => {\n\t_elements.value = props.elements\n\tcloseDropdowns()\n})\n\nconst closeDropdowns = () => {\n\tfor (let element of _elements.value) {\n\t\tif (element.elementType === 'dropdown') {\n\t\t\telement.show = false\n\t\t}\n\t}\n}\n\nconst onHover = () => {\n\thover.value = true\n\ttimeout.value = setTimeout(() => {\n\t\tif (hover.value) {\n\t\t\tisOpen.value = true\n\t\t}\n\t}, 500)\n}\n\nconst onHoverLeave = () => {\n\thover.value = false\n\tcloseClicked.value = false\n\tclearTimeout(timeout.value)\n\tisOpen.value = false\n}\n\nconst toggleDropdown = (index: number) => {\n\tconst showDropdown = !_elements.value[index].show\n\tcloseDropdowns()\n\t_elements.value[index].show = showDropdown\n}\n</script>\n\n<style scoped>\n#chevron {\n\tposition: relative;\n\ttransform: rotate(90deg);\n}\n\n.leftBar,\n.rightBar {\n\ttransition-duration: 0.225s;\n\ttransition-property: transform;\n}\n\n.leftBar,\n.action-set.collapse.hovered-and-closed:hover .leftBar {\n\ttransform-origin: 33.4% 50%;\n\ttransform: rotate(90deg);\n}\n\n.rightBar,\n.action-set.collapse.hovered-and-closed:hover .rightBar {\n\ttransform-origin: 67% 50%;\n\ttransform: rotate(-90deg);\n}\n\n.rightBar {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n}\n\n.action-set.collapse:hover .leftBar {\n\ttransform: rotate(0);\n}\n\n.action-set.collapse:hover .rightBar {\n\ttransform: rotate(0);\n}\n\n.action-set {\n\tposition: fixed;\n\ttop: 10px;\n\tright: 10px;\n\tpadding: 20px;\n\tbox-shadow: 0px 1px 2px rgba(25, 39, 52, 0.05), 0px 0px 4px rgba(25, 39, 52, 0.1);\n\tborder-radius: 10px;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\tbackground-color: white;\n\toverflow: hidden;\n}\n\n.action-menu-icon {\n\tposition: absolute;\n\ttop: 6px;\n\tright: 8px;\n}\n\n.action-menu-icon svg {\n\tfill: #333333;\n}\n\n.action-set.collapse,\n.action-set.collapse.hovered-and-closed:hover {\n\tmax-width: 25px;\n\toverflow: hidden;\n\n\t-webkit-transition: max-width 0.5s ease-in-out;\n\t-moz-transition: max-width 0.5s ease-in-out;\n\t-o-transition: max-width 0.5s ease-in-out;\n\ttransition: max-width 0.5s ease-in-out;\n}\n\n.action-set.collapse .action-element,\n.action-set.collapse.hovered-and-closed:hover .action-element {\n\topacity: 0;\n\t-webkit-transition: opacity 0.25s ease-in-out;\n\t-moz-transition: opacity 0.25s ease-in-out;\n\t-o-transition: opacity 0.25s ease-in-out;\n\ttransition: opacity 0.25s ease-in-out;\n\ttransition-delay: 0s;\n}\n\n.action-set.collapse:hover {\n\tmax-width: 500px;\n}\n\n.action-set.collapse.open-set:hover {\n\toverflow: visible !important;\n}\n\n.action-set.collapse.hovered-and-closed:hover .action-element {\n\topacity: 0 !important;\n\t/* transition-delay: 0.5s; */\n}\n\n.action-set.collapse:hover .action-element {\n\topacity: 100 !important;\n\t/* transition-delay: 0.5s; */\n}\n\n.action-element {\n\tmargin-left: 5px;\n\tmargin-right: 5px;\n}\nbutton.button-default {\n\tbackground-color: #ffffff;\n\tpadding: 5px 12px;\n\tborder-radius: 3px;\n\tbox-shadow: rgba(0, 0, 0, 0.05) 0px 0.5px 0px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px,\n\t\trgba(0, 0, 0, 0.05) 0px 2px 4px 0px;\n\tborder: none;\n\tcursor: pointer;\n\twhite-space: nowrap;\n}\n\nbutton.button-default:hover {\n\tbackground-color: #f2f2f2;\n}\n\n.dropdown-container {\n\tposition: relative;\n}\n\n.dropdown {\n\tposition: absolute;\n\ttop: 5px;\n\tright: 0;\n\tmin-width: 200px;\n\tbox-shadow: 0 0.5rem 1rem rgb(0 0 0 / 18%);\n\tborder-radius: 10px;\n\tbackground-color: #ffffff;\n\tpadding: 10px;\n}\n\nbutton.dropdown-item {\n\twidth: 100%;\n\tpadding: 8px 5px;\n\ttext-align: left;\n\tborder: none;\n\tbackground-color: #ffffff;\n\tcursor: pointer;\n\tborder-radius: 5px;\n}\n\nbutton.dropdown-item:hover {\n\tbackground-color: #f2f2f2;\n}\n</style>\n","<template>\n\t<dialog></dialog>\n</template>\n\n<script setup lang=\"ts\"></script>\n","import { defineComponent as A, mergeModels as $, useModel as x, openBlock as v, createElementBlock as g, createElementVNode as c, withDirectives as M, vModelCheckbox as de, toDisplayString as E, vShow as I, resolveComponent as pe, createBlock as K, withCtx as fe, ref as m, onMounted as Y, onUnmounted as me, normalizeClass as q, withKeys as P, vModelText as G, Fragment as F, renderList as R, watch as O, onBeforeUnmount as ve, computed as H, unref as re, getCurrentScope as he, onScopeDispose as ye, nextTick as ge, withModifiers as be, resolveDynamicComponent as ke, mergeProps as _e, createTextVNode as we, createCommentVNode as De, renderSlot as Me, createVNode as Ee } from \"vue\";\nconst Ae = { id: \"checkbox-container\" }, Ce = [\"id\", \"readonly\", \"required\"], Te = { id: \"custom-checkbox\" }, Ve = [\"for\"], Le = [\"innerHTML\"], Se = /* @__PURE__ */ A({\n __name: \"ACheckbox\",\n props: /* @__PURE__ */ $({\n label: {},\n required: { type: Boolean },\n readOnly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = x(e, \"modelValue\");\n return (n, o) => (v(), g(\"div\", null, [\n c(\"label\", Ae, [\n M(c(\"input\", {\n \"onUpdate:modelValue\": o[0] || (o[0] = (l) => t.value = l),\n type: \"checkbox\",\n id: n.uuid,\n class: \"checkbox\",\n readonly: n.readOnly,\n required: n.required\n }, null, 8, Ce), [\n [de, t.value]\n ]),\n c(\"span\", Te, E(t.value), 1)\n ]),\n c(\"label\", {\n for: n.uuid,\n id: \"checkbox-label\"\n }, E(n.label), 9, Ve),\n M(c(\"p\", {\n innerHTML: n.validation.errorMessage\n }, null, 8, Le), [\n [I, n.validation.errorMessage]\n ])\n ]));\n }\n}), S = (e, t) => {\n const n = e.__vccOpts || e;\n for (const [o, l] of t)\n n[o] = l;\n return n;\n}, $e = /* @__PURE__ */ S(Se, [[\"__scopeId\", \"data-v-5093f1cb\"]]), xe = /* @__PURE__ */ c(\"div\", null, [\n /* @__PURE__ */ c(\"input\", { type: \"text\" }),\n /* @__PURE__ */ c(\"input\", { type: \"text\" }),\n /* @__PURE__ */ c(\"input\", { type: \"text\" })\n], -1), Ie = /* @__PURE__ */ A({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, n) => {\n const o = pe(\"ATableModal\");\n return v(), K(o, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: fe(() => [\n xe\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n}), He = [\"id\", \"disabled\", \"required\", \"value\"], Be = [\"for\"], Pe = [\"innerHTML\"], qe = /* @__PURE__ */ A({\n __name: \"ADate\",\n props: /* @__PURE__ */ $({\n label: { default: \"Date\" },\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = x(e, \"modelValue\"), n = m(null), o = () => {\n n.value && \"showPicker\" in HTMLInputElement.prototype && n.value.showPicker();\n };\n return (l, r) => (v(), g(\"div\", null, [\n c(\"input\", {\n ref_key: \"dateRef\",\n ref: n,\n type: \"date\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required,\n value: t.value,\n onClick: o\n }, null, 8, He),\n c(\"label\", { for: l.uuid }, E(l.label), 9, Be),\n M(c(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Pe), [\n [I, l.validation.errorMessage]\n ])\n ]));\n }\n}), Fe = /* @__PURE__ */ S(qe, [[\"__scopeId\", \"data-v-69d0f23d\"]]), Re = { class: \"input-wrapper\" }, Ue = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, Oe = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, We = [\"onClick\"], Ke = /* @__PURE__ */ A({\n __name: \"ADropdown\",\n props: /* @__PURE__ */ $({\n label: {},\n items: {},\n isAsync: { type: Boolean }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: /* @__PURE__ */ $([\"filterChanged\"], [\"update:modelValue\"]),\n setup(e, { emit: t }) {\n const n = e, o = t, l = m(n.items), r = x(e, \"modelValue\"), s = m(!1), a = m(0), i = m(!1), u = m(null);\n Y(() => {\n document.addEventListener(\"click\", b), f();\n }), me(() => {\n document.removeEventListener(\"click\", b);\n });\n const d = (p) => {\n r.value = p, k();\n }, f = () => {\n r.value ? l.value = n.items.filter((p) => p.toLowerCase().indexOf(r.value.toLowerCase()) > -1) : l.value = n.items;\n }, h = () => {\n i.value = !0, n.isAsync ? (s.value = !0, o(\"filterChanged\", r.value)) : f();\n }, b = (p) => {\n k(), a.value = 0;\n }, k = () => {\n i.value = !1, n.items.includes(r.value) || (r.value = \"\");\n }, V = () => {\n a.value < l.value.length && (a.value = a.value + 1);\n }, w = () => {\n a.value > 0 && (a.value = a.value - 1);\n }, L = () => {\n r.value = l.value[a.value], k(), a.value = 0;\n };\n return (p, y) => (v(), g(\"div\", {\n class: q([\"autocomplete\", { isOpen: i.value }])\n }, [\n c(\"div\", Re, [\n M(c(\"input\", {\n ref_key: \"mopInput\",\n ref: u,\n type: \"text\",\n onInput: h,\n onFocus: h,\n \"onUpdate:modelValue\": y[0] || (y[0] = (_) => r.value = _),\n onKeydown: [\n P(V, [\"down\"]),\n P(w, [\"up\"]),\n P(L, [\"enter\"])\n ]\n }, null, 544), [\n [G, r.value]\n ]),\n M(c(\"ul\", Ue, [\n s.value ? (v(), g(\"li\", Oe, \"Loading results...\")) : (v(!0), g(F, { key: 1 }, R(l.value, (_, D) => (v(), g(\"li\", {\n key: D,\n onClick: (X) => d(_),\n class: q([\"autocomplete-result\", { \"is-active\": D === a.value }])\n }, E(_), 11, We))), 128))\n ], 512), [\n [I, i.value]\n ]),\n c(\"label\", null, E(p.label), 1)\n ])\n ], 2));\n }\n});\nfunction Ye(e) {\n return he() ? (ye(e), !0) : !1;\n}\nfunction ue(e) {\n return typeof e == \"function\" ? e() : re(e);\n}\nconst Ge = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst ze = Object.prototype.toString, je = (e) => ze.call(e) === \"[object Object]\", Je = () => {\n};\nfunction U(e) {\n var t;\n const n = ue(e);\n return (t = n == null ? void 0 : n.$el) != null ? t : n;\n}\nconst z = Ge ? window : void 0;\nfunction W(...e) {\n let t, n, o, l;\n if (typeof e[0] == \"string\" || Array.isArray(e[0]) ? ([n, o, l] = e, t = z) : [t, n, o, l] = e, !t)\n return Je;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const r = [], s = () => {\n r.forEach((d) => d()), r.length = 0;\n }, a = (d, f, h, b) => (d.addEventListener(f, h, b), () => d.removeEventListener(f, h, b)), i = O(\n () => [U(t), ue(l)],\n ([d, f]) => {\n if (s(), !d)\n return;\n const h = je(f) ? { ...f } : f;\n r.push(\n ...n.flatMap((b) => o.map((k) => a(d, b, k, h)))\n );\n },\n { immediate: !0, flush: \"post\" }\n ), u = () => {\n i(), s();\n };\n return Ye(u), u;\n}\nfunction Ne(e = {}) {\n var t;\n const {\n window: n = z,\n deep: o = !0\n } = e, l = (t = e.document) != null ? t : n == null ? void 0 : n.document, r = () => {\n var i;\n let u = l == null ? void 0 : l.activeElement;\n if (o)\n for (; u != null && u.shadowRoot; )\n u = (i = u == null ? void 0 : u.shadowRoot) == null ? void 0 : i.activeElement;\n return u;\n }, s = m(), a = () => {\n s.value = r();\n };\n return n && (W(n, \"blur\", (i) => {\n i.relatedTarget === null && a();\n }, !0), W(n, \"focus\", a, !0)), a(), s;\n}\nfunction Qe(e, t = {}) {\n const n = Ne(t), o = H(() => U(e));\n return { focused: H(() => o.value && n.value ? o.value.contains(n.value) : !1) };\n}\nfunction Xe(e, { window: t = z, scrollTarget: n } = {}) {\n const o = m(!1), l = () => {\n if (!t)\n return;\n const r = t.document, s = U(e);\n if (!s)\n o.value = !1;\n else {\n const a = s.getBoundingClientRect();\n o.value = a.top <= (t.innerHeight || r.documentElement.clientHeight) && a.left <= (t.innerWidth || r.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return O(\n () => U(e),\n () => l(),\n { immediate: !0, flush: \"post\" }\n ), t && W(n || t, \"scroll\", l, {\n capture: !1,\n passive: !0\n }), o;\n}\nconst C = (e) => {\n let t = Xe(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, T = (e) => e.tabIndex >= 0, Z = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let n;\n if (e instanceof HTMLTableCellElement) {\n const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (o) {\n const l = Array.from(o.children)[e.cellIndex];\n l && (n = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const o = e.previousElementSibling;\n o && (n = o);\n }\n return n && (!T(n) || !C(n)) ? j(n) : n;\n}, Ze = (e) => {\n var t;\n const n = e.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const l = (t = n.parentElement) == null ? void 0 : t.parentElement;\n if (l) {\n const r = l.firstElementChild.children[n.cellIndex];\n r && (o = r);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const l = n.parentElement;\n if (l) {\n const r = l.firstElementChild;\n r && (o = r);\n }\n }\n return o && (!T(o) || !C(o)) ? J(o) : o;\n}, ee = (e) => {\n const t = e.target;\n return J(t);\n}, J = (e) => {\n var t;\n let n;\n if (e instanceof HTMLTableCellElement) {\n const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (o) {\n const l = Array.from(o.children)[e.cellIndex];\n l && (n = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const o = e.nextElementSibling;\n o && (n = o);\n }\n return n && (!T(n) || !C(n)) ? J(n) : n;\n}, et = (e) => {\n var t;\n const n = e.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const l = (t = n.parentElement) == null ? void 0 : t.parentElement;\n if (l) {\n const r = l.lastElementChild.children[n.cellIndex];\n r && (o = r);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const l = n.parentElement;\n if (l) {\n const r = l.lastElementChild;\n r && (o = r);\n }\n }\n return o && (!T(o) || !C(o)) ? j(o) : o;\n}, te = (e) => {\n const t = e.target;\n return N(t);\n}, N = (e) => {\n var t;\n let n;\n if (e.previousElementSibling)\n n = e.previousElementSibling;\n else {\n const o = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n n = o == null ? void 0 : o.lastElementChild;\n }\n return n && (!T(n) || !C(n)) ? N(n) : n;\n}, ne = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let n;\n if (e.nextElementSibling)\n n = e.nextElementSibling;\n else {\n const o = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n n = o == null ? void 0 : o.firstElementChild;\n }\n return n && (!T(n) || !C(n)) ? Q(n) : n;\n}, oe = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!T(t) || !C(t)) ? Q(t) : t;\n}, le = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!T(t) || !C(t)) ? N(t) : t;\n}, B = [\"alt\", \"control\", \"shift\", \"meta\"], tt = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, ie = {\n \"keydown.up\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = ne(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = et(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = le(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = le(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = ee(e);\n t && t.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const t = Z(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction nt(e) {\n const t = (s) => {\n let a = null;\n return s.parent && (typeof s.parent == \"string\" ? a = document.querySelector(s.parent) : s.parent instanceof HTMLElement ? a = s.parent : a = s.parent.value), a;\n }, n = (s) => {\n const a = t(s);\n let i = [];\n if (typeof s.selectors == \"string\")\n i = a ? Array.from(a.querySelectorAll(s.selectors)) : Array.from(document.querySelectorAll(s.selectors));\n else if (Array.isArray(s.selectors))\n for (const u of s.selectors)\n u instanceof HTMLElement ? i.push(u) : i.push(u.$el);\n else if (s.selectors instanceof HTMLElement)\n i.push(s.selectors);\n else if (Array.isArray(s.selectors.value))\n for (const u of s.selectors.value)\n u instanceof HTMLElement ? i.push(u) : i.push(u.$el);\n else\n i.push(s.selectors.value);\n return i;\n }, o = (s) => {\n const a = t(s);\n let i = [];\n return s.selectors ? i = n(s) : a && (i = Array.from(a.children).filter((u) => T(u) && C(u))), i;\n }, l = (s) => (a) => {\n const i = tt[a.key] || a.key.toLowerCase();\n if (B.includes(i))\n return;\n const u = s.handlers || ie;\n for (const d of Object.keys(u)) {\n const [f, ...h] = d.split(\".\");\n if (f === \"keydown\" && h.includes(i)) {\n const b = u[d], k = h.filter((w) => B.includes(w)), V = B.some((w) => {\n const L = w.charAt(0).toUpperCase() + w.slice(1);\n return a.getModifierState(L);\n });\n if (k.length > 0) {\n if (V) {\n for (const w of B)\n if (h.includes(w)) {\n const L = w.charAt(0).toUpperCase() + w.slice(1);\n a.getModifierState(L) && b(a);\n }\n }\n } else\n V || b(a);\n }\n }\n }, r = [];\n Y(() => {\n for (const s of e) {\n const a = t(s), i = o(s), u = l(s), d = a ? [a] : i;\n for (const f of d) {\n const { focused: h } = Qe(m(f)), b = O(h, (k) => {\n k ? f.addEventListener(\"keydown\", u) : f.removeEventListener(\"keydown\", u);\n });\n r.push(b);\n }\n }\n }), ve(() => {\n for (const s of r)\n s();\n });\n}\nconst ot = {\n colspan: \"5\",\n tabindex: -1\n}, lt = /* @__PURE__ */ c(\"tr\", { class: \"days-header\" }, [\n /* @__PURE__ */ c(\"td\", null, \"M\"),\n /* @__PURE__ */ c(\"td\", null, \"T\"),\n /* @__PURE__ */ c(\"td\", null, \"W\"),\n /* @__PURE__ */ c(\"td\", null, \"T\"),\n /* @__PURE__ */ c(\"td\", null, \"F\"),\n /* @__PURE__ */ c(\"td\", null, \"S\"),\n /* @__PURE__ */ c(\"td\", null, \"S\")\n], -1), at = [\"onClick\", \"onKeydown\"], st = 6, ae = 7, rt = /* @__PURE__ */ A({\n __name: \"ADatePicker\",\n props: {\n modelValue: { default: /* @__PURE__ */ new Date() },\n modelModifiers: {}\n },\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = x(e, \"modelValue\"), n = m(new Date(t.value)), o = m(n.value.getMonth()), l = m(n.value.getFullYear()), r = m([]), s = m(null);\n Y(async () => {\n a(), await ge();\n const p = document.getElementsByClassName(\"selectedDate\");\n if (p.length > 0)\n p[0].focus();\n else {\n const y = document.getElementsByClassName(\"todaysDate\");\n y.length > 0 && y[0].focus();\n }\n });\n const a = () => {\n r.value = [];\n const p = new Date(l.value, o.value, 1), y = p.getDay(), _ = p.setDate(p.getDate() - y);\n for (const D of Array(43).keys())\n r.value.push(_ + D * 864e5);\n };\n O([o, l], a);\n const i = () => l.value -= 1, u = () => l.value += 1, d = () => {\n o.value == 0 ? (o.value = 11, i()) : o.value -= 1;\n }, f = () => {\n o.value == 11 ? (o.value = 0, u()) : o.value += 1;\n }, h = (p) => {\n const y = /* @__PURE__ */ new Date();\n if (o.value === y.getMonth())\n return y.toDateString() === new Date(p).toDateString();\n }, b = (p) => new Date(p).toDateString() === new Date(n.value).toDateString(), k = (p, y) => (p - 1) * ae + y, V = (p, y) => r.value[k(p, y)], w = (p) => {\n t.value = n.value = new Date(r.value[p]);\n }, L = H(() => new Date(l.value, o.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return nt([\n {\n parent: s,\n selectors: \"td\",\n handlers: {\n ...ie,\n \"keydown.pageup\": d,\n \"keydown.shift.pageup\": i,\n \"keydown.pagedown\": f,\n \"keydown.shift.pagedown\": u,\n // TODO: this is a hack to override the stonecrop enter handler;\n // store context inside the component so that handlers can be setup consistently\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n \"keydown.enter\": () => {\n }\n }\n }\n ]), (p, y) => (v(), g(\"div\", {\n class: \"adatepicker\",\n tabindex: \"0\",\n ref_key: \"adatepicker\",\n ref: s\n }, [\n c(\"table\", null, [\n c(\"tr\", null, [\n c(\"td\", {\n id: \"previous-month-btn\",\n onClick: d,\n tabindex: -1\n }, \"<\"),\n c(\"th\", ot, E(L.value), 1),\n c(\"td\", {\n id: \"next-month-btn\",\n onClick: f,\n tabindex: -1\n }, \">\")\n ]),\n lt,\n (v(), g(F, null, R(st, (_) => c(\"tr\", { key: _ }, [\n (v(), g(F, null, R(ae, (D) => c(\"td\", {\n ref_for: !0,\n ref: \"celldate\",\n key: k(_, D),\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n onClick: be((X) => w(k(_, D)), [\"prevent\", \"stop\"]),\n onKeydown: P((X) => w(k(_, D)), [\"enter\"]),\n class: q({\n todaysDate: h(V(_, D)),\n selectedDate: b(V(_, D))\n })\n }, E(new Date(V(_, D)).getDate()), 43, at)), 64))\n ])), 64))\n ])\n ], 512));\n }\n}), ut = /* @__PURE__ */ A({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, n) => (v(), g(\"button\", {\n class: q([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), it = /* @__PURE__ */ S(ut, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), ct = /* @__PURE__ */ A({\n __name: \"AForm\",\n props: {\n modelValue: {},\n data: {},\n readonly: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const n = e, o = t, l = m(n.data || {}), r = (a) => {\n let i = {};\n for (const [u, d] of Object.entries(a))\n [\"component\", \"fieldtype\"].includes(u) || (i[u] = d), u === \"rows\" && d && d.length === 0 && (i.rows = l.value[a.fieldname]);\n return i;\n }, s = H({\n get: () => n.modelValue.map((a, i) => H({\n get() {\n return a.value;\n },\n set: (u) => {\n n.modelValue[i].value = u, o(\"update:modelValue\", n.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (a, i) => (v(), g(\"form\", null, [\n (v(!0), g(F, null, R(a.modelValue, (u, d) => (v(), K(ke(u.component), _e({\n key: d,\n schema: u,\n modelValue: s.value[d].value,\n \"onUpdate:modelValue\": (f) => s.value[d].value = f,\n data: l.value[u.fieldname],\n readonly: a.readonly\n }, r(u)), null, 16, [\"schema\", \"modelValue\", \"onUpdate:modelValue\", \"data\", \"readonly\"]))), 128))\n ]));\n }\n}), ce = /* @__PURE__ */ S(ct, [[\"__scopeId\", \"data-v-74d66cf2\"]]), dt = /* @__PURE__ */ A({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, n = m(t.data || []), o = m(!1), l = m(t.collapsible), r = m(t.schema);\n function s(a) {\n a.preventDefault(), l.value && (o.value = !o.value);\n }\n return (a, i) => (v(), g(\"fieldset\", null, [\n c(\"legend\", {\n onClick: s,\n onSubmit: s\n }, [\n we(E(a.label) + \" \", 1),\n l.value ? (v(), K(it, {\n key: 0,\n collapsed: o.value\n }, null, 8, [\"collapsed\"])) : De(\"\", !0)\n ], 32),\n Me(a.$slots, \"default\", { collapsed: o.value }, () => [\n M(Ee(ce, {\n modelValue: r.value,\n \"onUpdate:modelValue\": i[0] || (i[0] = (u) => r.value = u),\n data: n.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [I, !o.value]\n ])\n ], !0)\n ]));\n }\n}), pt = /* @__PURE__ */ S(dt, [[\"__scopeId\", \"data-v-0f671e32\"]]), ft = [\"id\", \"disabled\", \"required\"], mt = [\"for\"], vt = [\"innerHTML\"], ht = /* @__PURE__ */ A({\n __name: \"ANumericInput\",\n props: /* @__PURE__ */ $({\n label: {},\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = x(e, \"modelValue\");\n return (n, o) => (v(), g(\"div\", null, [\n M(c(\"input\", {\n \"onUpdate:modelValue\": o[0] || (o[0] = (l) => t.value = l),\n type: \"number\",\n id: n.uuid,\n disabled: n.readonly,\n required: n.required\n }, null, 8, ft), [\n [G, t.value]\n ]),\n c(\"label\", { for: n.uuid }, E(n.label), 9, mt),\n M(c(\"p\", {\n innerHTML: n.validation.errorMessage\n }, null, 8, vt), [\n [I, n.validation.errorMessage]\n ])\n ]));\n }\n}), yt = /* @__PURE__ */ S(ht, [[\"__scopeId\", \"data-v-02907cd6\"]]), se = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction gt(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction bt(e) {\n var n;\n let t = e.value;\n if (t) {\n const o = gt(t);\n if (o) {\n const l = e.instance.locale;\n t = o(l);\n }\n } else {\n const o = e.instance.schema, l = (n = o == null ? void 0 : o.fieldtype) == null ? void 0 : n.toLowerCase();\n l && se[l] && (t = se[l]);\n }\n return t;\n}\nfunction kt(e, t) {\n t || (t = \"#\");\n let n = e;\n const o = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const l of o)\n n = n.replaceAll(l, \"\");\n return n;\n}\nfunction _t(e, t, n) {\n n || (n = \"#\");\n let o = t;\n for (const l of e) {\n const r = o.indexOf(n);\n if (r !== -1) {\n const s = o.substring(0, r), a = o.substring(r + 1);\n o = s + l + a;\n }\n }\n return o.slice(0, t.length);\n}\nfunction wt(e, t) {\n const n = bt(t);\n if (!n)\n return;\n const o = \"#\", l = e.value, r = kt(l, o);\n if (r) {\n const s = _t(r, n, o);\n t.instance.maskFilled && (t.instance.maskFilled = !s.includes(o)), e.value = s;\n } else\n e.value = n;\n}\nconst Dt = [\"id\", \"disabled\", \"maxlength\", \"required\"], Mt = [\"for\"], Et = [\"innerHTML\"], At = /* @__PURE__ */ A({\n __name: \"ATextInput\",\n props: /* @__PURE__ */ $({\n schema: {},\n label: {},\n mask: {},\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \"&nbsp;\" }) }\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n const t = m(!0), n = x(e, \"modelValue\");\n return (o, l) => (v(), g(\"div\", null, [\n M(c(\"input\", {\n \"onUpdate:modelValue\": l[0] || (l[0] = (r) => n.value = r),\n id: o.uuid,\n disabled: o.readonly,\n maxlength: o.mask ? t.value && o.mask.length : void 0,\n required: o.required\n }, null, 8, Dt), [\n [G, n.value],\n [re(wt), o.mask]\n ]),\n c(\"label\", { for: o.uuid }, E(o.label), 9, Mt),\n M(c(\"p\", {\n innerHTML: o.validation.errorMessage\n }, null, 8, Et), [\n [I, o.validation.errorMessage]\n ])\n ]));\n }\n}), Ct = /* @__PURE__ */ S(At, [[\"__scopeId\", \"data-v-2514e692\"]]);\nfunction Vt(e) {\n e.component(\"ACheckbox\", $e), e.component(\"ACombobox\", Ie), e.component(\"ADate\", Fe), e.component(\"ADropdown\", Ke), e.component(\"ADatePicker\", rt), e.component(\"AFieldset\", pt), e.component(\"AForm\", ce), e.component(\"ANumericInput\", yt), e.component(\"ATextInput\", Ct);\n}\nexport {\n $e as ACheckbox,\n Ie as AComboBox,\n Fe as ADate,\n rt as ADatePicker,\n Ke as ADropdown,\n pt as AFieldset,\n ce as AForm,\n yt as ANumericInput,\n Ct as ATextInput,\n Vt as install\n};\n//# sourceMappingURL=aform.js.map\n","import { effectScope, ref, markRaw, toRaw, hasInjectionContext, inject, getCurrentInstance, watch, unref, reactive, isRef, isReactive, toRef, nextTick, computed, getCurrentScope, onScopeDispose, toRefs, onBeforeMount, shallowRef, shallowReactive, defineComponent, h as h$1, provide, watchEffect } from \"vue\";\nfunction NotImplementedError(message) {\n this.message = message || \"\";\n}\nNotImplementedError.prototype = Object.create(Error.prototype, {\n constructor: { value: NotImplementedError },\n name: { value: \"NotImplemented\" },\n stack: {\n get: function() {\n return new Error().stack;\n }\n }\n});\nclass Stonecrop {\n /**\n * @constructor\n * @param {Registry} registry - The immutable registry\n * @param {ReturnType<typeof useDataStore>} store - The mutable Pinia store\n * @param {Schema} [schema] - (optional) The Stonecrop schema\n * @param {ImmutableDoctype['workflow']} [workflow] - (optional) The Stonecrop workflow\n * @param {ImmutableDoctype['actions']} [actions] - (optional) The Stonecrop actions\n * @returns {Stonecrop} The Stonecrop instance\n * @description The Stonecrop constructor initializes a new Stonecrop instance with the given registry, store, schema, workflow, and actions. If a Stonecrop instance has already been created, it returns the existing instance instead of creating a new one.\n * @example\n * const registry = new Registry()\n * const store = useDataStore()\n * const stonecrop = new Stonecrop(registry, store, schema, workflow, actions)\n */\n constructor(registry, store, schema, workflow, actions) {\n this.name = \"Stonecrop\";\n if (Stonecrop._root) {\n return Stonecrop._root;\n }\n Stonecrop._root = this;\n this.registry = registry;\n this.store = store;\n this.schema = schema;\n this.workflow = workflow;\n this.actions = actions;\n }\n /**\n * @method setup\n * @param {DoctypeMeta} doctype - The doctype to setup\n * @returns {void}\n * @description Sets up the Stonecrop instance with the given doctype\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.setup(doctype)\n */\n setup(doctype) {\n this.getMeta(doctype);\n this.getWorkflow(doctype);\n this.getActions(doctype);\n }\n /**\n * @method getMeta\n * @param {DoctypeMeta} doctype - The doctype to get meta for\n * @returns {DoctypeMeta}\n * @see {@link DoctypeMeta}\n * @throws NotImplementedError\n * @description Gets the meta for the given doctype\n * @example\n * const doctype = await registry.getMeta('Task')\n * const meta = stonecrop.getMeta(doctype)\n */\n getMeta(doctype) {\n return this.registry.getMeta ? this.registry.getMeta(doctype.doctype) : new NotImplementedError(doctype.doctype);\n }\n /**\n * @method getWorkflow\n * @param {DoctypeMeta} doctype - The doctype to get workflow for\n * @returns {void}\n * @description Gets the workflow for the given doctype\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.getWorkflow(doctype)\n */\n getWorkflow(doctype) {\n const doctypeRegistry = this.registry.registry[doctype.slug];\n this.workflow = doctypeRegistry.workflow;\n }\n /**\n * @method getActions\n * @param {DoctypeMeta} doctype - The doctype to get actions for\n * @returns {void}\n * @description Gets the actions for the given doctype\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.getActions(doctype)\n */\n getActions(doctype) {\n const doctypeRegistry = this.registry.registry[doctype.slug];\n this.actions = doctypeRegistry.actions;\n }\n /**\n * @method getRecords\n * @param {DoctypeMeta} doctype - The doctype to get records for\n * @param {RequestInit} [filters] - The filters to apply to the records\n * @returns {Promise<void>}\n * @description Gets the records for the given doctype\n * @example\n * const doctype = await registry.getMeta('Task')\n * await stonecrop.getRecords(doctype)\n * @example\n * const doctype = await registry.getMeta('Task')\n * const filters = JSON.stringify({ status: 'Open' })\n * await stonecrop.getRecords(doctype, { body: filters })\n */\n async getRecords(doctype, filters) {\n this.store.$patch({ records: [] });\n const records = await fetch(`/${doctype.slug}`, filters);\n const data = await records.json();\n this.store.$patch({ records: data });\n }\n /**\n * @method getRecord\n * @param {DoctypeMeta} doctype - The doctype to get record for\n * @param {string} id - The id of the record to get\n * @returns {Promise<void>}\n * @description Gets the record for the given doctype and id\n * @example\n * const doctype = await registry.getMeta('Task')\n * await stonecrop.getRecord(doctype, 'TASK-00001')\n */\n async getRecord(doctype, id) {\n this.store.$patch({ record: {} });\n const record = await fetch(`/${doctype.slug}/${id}`);\n const data = await record.json();\n this.store.$patch({ record: data });\n }\n /**\n * @method runAction\n * @param {DoctypeMeta} doctype - The doctype to run action for\n * @param {string} action - The action to run\n * @param {string[]} [id] - The id(s) of the record(s) to run action on\n * @returns {void}\n * @description Runs the action for the given doctype and id\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.runAction(doctype, 'CREATE')\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.runAction(doctype, 'UPDATE', ['TASK-00001'])\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.runAction(doctype, 'DELETE', ['TASK-00001'])\n * @example\n * const doctype = await registry.getMeta('Task')\n * stonecrop.runAction(doctype, 'TRANSITION', ['TASK-00001', 'TASK-00002'])\n */\n runAction(doctype, action, id) {\n const doctypeRegistry = this.registry.registry[doctype.slug];\n const actions = doctypeRegistry.actions.get(action);\n const { initialState } = this.workflow;\n this.workflow.transition(initialState, { type: action });\n if (actions.length > 0) {\n actions.forEach((action2) => {\n const actionFn = new Function(action2);\n actionFn(id);\n });\n }\n }\n}\nvar isVue2 = false;\nfunction set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val;\n }\n target[key] = val;\n return val;\n}\nfunction del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1);\n return;\n }\n delete target[key];\n}\nfunction getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nfunction getTarget() {\n return typeof navigator !== \"undefined\" && typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {};\n}\nconst isProxyAvailable = typeof Proxy === \"function\";\nconst HOOK_SETUP = \"devtools-plugin:setup\";\nconst HOOK_PLUGIN_SETTINGS_SET = \"plugin:settings:set\";\nlet supported;\nlet perf;\nfunction isPerformanceSupported() {\n var _a;\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else if (typeof global !== \"undefined\" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n } else {\n supported = false;\n }\n return supported;\n}\nfunction now$1() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\nclass ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n } catch (e) {\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n } catch (e) {\n }\n currentSettings = value;\n },\n now() {\n return now$1();\n }\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n } else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args\n });\n };\n }\n }\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n } else if (prop === \"on\") {\n return this.proxiedOn;\n } else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => {\n }\n });\n return this.fallbacks[prop](...args);\n };\n } else {\n return (...args) => {\n return new Promise((resolve) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve\n });\n });\n };\n }\n }\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\nfunction setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n } else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nlet activePinia;\nconst setActivePinia = (pinia2) => activePinia = pinia2;\nconst piniaSymbol = process.env.NODE_ENV !== \"production\" ? Symbol(\"pinia\") : (\n /* istanbul ignore next */\n Symbol()\n);\nfunction isPlainObject(o) {\n return o && typeof o === \"object\" && Object.prototype.toString.call(o) === \"[object Object]\" && typeof o.toJSON !== \"function\";\n}\nvar MutationType;\n(function(MutationType2) {\n MutationType2[\"direct\"] = \"direct\";\n MutationType2[\"patchObject\"] = \"patch object\";\n MutationType2[\"patchFunction\"] = \"patch function\";\n})(MutationType || (MutationType = {}));\nconst IS_CLIENT = typeof window !== \"undefined\";\nconst USE_DEVTOOLS = (process.env.NODE_ENV !== \"production\" || false) && !(process.env.NODE_ENV === \"test\") && IS_CLIENT;\nconst _global = /* @__PURE__ */ (() => typeof window === \"object\" && window.window === window ? window : typeof self === \"object\" && self.self === self ? self : typeof global === \"object\" && global.global === global ? global : typeof globalThis === \"object\" ? globalThis : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n if (autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(65279), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.onload = function() {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function() {\n console.error(\"could not download file\");\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", url, false);\n try {\n xhr.send();\n } catch (e) {\n }\n return xhr.status >= 200 && xhr.status <= 299;\n}\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent(\"click\"));\n } catch (e) {\n const evt = document.createEvent(\"MouseEvents\");\n evt.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === \"object\" ? navigator : { userAgent: \"\" };\nconst isMacOSWebView = /* @__PURE__ */ (() => /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT ? () => {\n} : (\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== \"undefined\" && \"download\" in HTMLAnchorElement.prototype && !isMacOSWebView ? downloadSaveAs : (\n // Use msSaveOrOpenBlob as a second approach\n \"msSaveOrOpenBlob\" in _navigator ? msSaveAs : (\n // Fallback to using FileReader and a popup\n fileSaverSaveAs\n )\n )\n);\nfunction downloadSaveAs(blob, name = \"download\", opts) {\n const a = document.createElement(\"a\");\n a.download = name;\n a.rel = \"noopener\";\n if (typeof blob === \"string\") {\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n } else {\n a.target = \"_blank\";\n click(a);\n }\n } else {\n click(a);\n }\n } else {\n a.href = URL.createObjectURL(blob);\n setTimeout(function() {\n URL.revokeObjectURL(a.href);\n }, 4e4);\n setTimeout(function() {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = \"download\", opts) {\n if (typeof blob === \"string\") {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n } else {\n const a = document.createElement(\"a\");\n a.href = blob;\n a.target = \"_blank\";\n setTimeout(function() {\n click(a);\n });\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n popup = popup || open(\"\", \"_blank\");\n if (popup) {\n popup.document.title = popup.document.body.innerText = \"downloading...\";\n }\n if (typeof blob === \"string\")\n return download(blob, name, opts);\n const force = blob.type === \"application/octet-stream\";\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || \"safari\" in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== \"undefined\") {\n const reader = new FileReader();\n reader.onloadend = function() {\n let url = reader.result;\n if (typeof url !== \"string\") {\n popup = null;\n throw new Error(\"Wrong reader.result type\");\n }\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, \"data:attachment/file;\");\n if (popup) {\n popup.location.href = url;\n } else {\n location.assign(url);\n }\n popup = null;\n };\n reader.readAsDataURL(blob);\n } else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null;\n setTimeout(function() {\n URL.revokeObjectURL(url);\n }, 4e4);\n }\n}\nfunction toastMessage(message, type2) {\n const piniaMessage = \"🍍 \" + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === \"function\") {\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type2);\n } else if (type2 === \"error\") {\n console.error(piniaMessage);\n } else if (type2 === \"warn\") {\n console.warn(piniaMessage);\n } else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return \"_a\" in o && \"install\" in o;\n}\nfunction checkClipboardAccess() {\n if (!(\"clipboard\" in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, \"error\");\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error && error.message.toLowerCase().includes(\"document is not focused\")) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', \"warn\");\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia2) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia2.state.value));\n toastMessage(\"Global state copied to clipboard.\");\n } catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, \"error\");\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia2) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia2, JSON.parse(await navigator.clipboard.readText()));\n toastMessage(\"Global state pasted from clipboard.\");\n } catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, \"error\");\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia2) {\n try {\n saveAs(new Blob([JSON.stringify(pinia2.state.value)], {\n type: \"text/plain;charset=utf-8\"\n }), \"pinia-state.json\");\n } catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, \"error\");\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement(\"input\");\n fileInput.type = \"file\";\n fileInput.accept = \".json\";\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia2) {\n try {\n const open2 = getFileOpener();\n const result = await open2();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia2, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n } catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, \"error\");\n console.error(error);\n }\n}\nfunction loadStoresState(pinia2, state) {\n for (const key in state) {\n const storeState = pinia2.state.value[key];\n if (storeState) {\n Object.assign(storeState, state[key]);\n } else {\n pinia2.state.value[key] = state[key];\n }\n }\n}\nfunction formatDisplay$1(display) {\n return {\n _custom: {\n display\n }\n };\n}\nconst PINIA_ROOT_LABEL = \"🍍 Pinia (root)\";\nconst PINIA_ROOT_ID = \"_root\";\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store) ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL\n } : {\n id: store.$id,\n label: store.$id\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state2 = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId]\n })),\n getters: storeNames.filter((id) => storeMap.get(id)._getters).map((id) => {\n const store2 = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store2._getters.reduce((getters, key) => {\n getters[key] = store2[key];\n return getters;\n }, {})\n };\n })\n };\n return state2;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key]\n }))\n };\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName]\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key]\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {}\n });\n } else {\n return {\n operation: formatDisplay$1(events.type),\n key: formatDisplay$1(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue\n };\n }\n}\nfunction formatMutationType(type2) {\n switch (type2) {\n case MutationType.direct:\n return \"mutation\";\n case MutationType.patchFunction:\n return \"$patch\";\n case MutationType.patchObject:\n return \"$patch\";\n default:\n return \"unknown\";\n }\n}\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = \"pinia:mutations\";\nconst INSPECTOR_ID = \"pinia\";\nconst { assign: assign$1 } = Object;\nconst getStoreType = (id) => \"🍍 \" + id;\nfunction registerPiniaDevtools(app, pinia2) {\n setupDevtoolsPlugin({\n id: \"dev.esm.pinia\",\n label: \"Pinia 🍍\",\n logo: \"https://pinia.vuejs.org/logo.svg\",\n packageName: \"pinia\",\n homepage: \"https://pinia.vuejs.org\",\n componentStateTypes,\n app\n }, (api) => {\n if (typeof api.now !== \"function\") {\n toastMessage(\"You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.\");\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 15064968\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: \"Pinia 🍍\",\n icon: \"storage\",\n treeFilterPlaceholder: \"Search stores\",\n actions: [\n {\n icon: \"content_copy\",\n action: () => {\n actionGlobalCopyState(pinia2);\n },\n tooltip: \"Serialize and copy the state\"\n },\n {\n icon: \"content_paste\",\n action: async () => {\n await actionGlobalPasteState(pinia2);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: \"Replace the state with the content of your clipboard\"\n },\n {\n icon: \"save\",\n action: () => {\n actionGlobalSaveState(pinia2);\n },\n tooltip: \"Save the state as a JSON file\"\n },\n {\n icon: \"folder_open\",\n action: async () => {\n await actionGlobalOpenStateFile(pinia2);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: \"Import the state from a JSON file\"\n }\n ],\n nodeActions: [\n {\n icon: \"restore\",\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia2._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, \"warn\");\n } else if (typeof store.$reset !== \"function\") {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, \"warn\");\n } else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n }\n }\n ]\n });\n api.on.inspectComponent((payload, ctx) => {\n const proxy = payload.componentInstance && payload.componentInstance.proxy;\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: \"state\",\n editable: true,\n value: store._isOptionsAPI ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: \"restore\",\n tooltip: \"Reset the state of this store\",\n action: () => store.$reset()\n }\n ]\n }\n } : (\n // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {})\n )\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: \"getters\",\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n } catch (error) {\n getters[key] = error;\n }\n return getters;\n }, {})\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia2];\n stores = stores.concat(Array.from(pinia2._s.values()));\n payload.rootNodes = (payload.filter ? stores.filter((store) => \"$id\" in store ? store.$id.toLowerCase().includes(payload.filter.toLowerCase()) : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase())) : stores).map(formatStoreForInspectorTree);\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia2 : pinia2._s.get(payload.nodeId);\n if (!inspectedStore) {\n return;\n }\n if (inspectedStore) {\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload, ctx) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia2 : pinia2._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, \"error\");\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n if (path.length !== 1 || !inspectedStore._customProperties.has(path[0]) || path[0] in inspectedStore.$state) {\n path.unshift(\"$state\");\n }\n } else {\n path.unshift(\"state\");\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith(\"🍍\")) {\n const storeId = payload.type.replace(/^🍍\\s*/, \"\");\n const store = pinia2._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, \"error\");\n }\n const { path } = payload;\n if (path[0] !== \"state\") {\n return toastMessage(`Invalid path for store \"${storeId}\":\n${path}\nOnly state can be modified.`);\n }\n path[0] = \"$state\";\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: \"dev.esm.pinia\",\n label: \"Pinia 🍍\",\n logo: \"https://pinia.vuejs.org/logo.svg\",\n packageName: \"pinia\",\n homepage: \"https://pinia.vuejs.org\",\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: \"Notify about new/deleted stores\",\n type: \"boolean\",\n defaultValue: true\n }\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n }\n }, (api) => {\n const now2 = typeof api.now === \"function\" ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now2(),\n title: \"🛫 \" + name,\n subtitle: \"start\",\n data: {\n store: formatDisplay$1(store.$id),\n action: formatDisplay$1(name),\n args\n },\n groupId\n }\n });\n after((result) => {\n activeAction = void 0;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now2(),\n title: \"🛬 \" + name,\n subtitle: \"end\",\n data: {\n store: formatDisplay$1(store.$id),\n action: formatDisplay$1(name),\n args,\n result\n },\n groupId\n }\n });\n });\n onError((error) => {\n activeAction = void 0;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now2(),\n logType: \"error\",\n title: \"💥 \" + name,\n subtitle: \"end\",\n data: {\n store: formatDisplay$1(store.$id),\n action: formatDisplay$1(name),\n args,\n error\n },\n groupId\n }\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now2(),\n title: \"Change\",\n subtitle: name,\n data: {\n newValue,\n oldValue\n },\n groupId: activeAction\n }\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type: type2 }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n const eventData = {\n time: now2(),\n title: formatMutationType(type2),\n data: assign$1({ store: formatDisplay$1(store.$id) }, formatEventData(events)),\n groupId: activeAction\n };\n if (type2 === MutationType.patchFunction) {\n eventData.subtitle = \"⤵️\";\n } else if (type2 === MutationType.patchObject) {\n eventData.subtitle = \"🧩\";\n } else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data[\"rawEvent(s)\"] = {\n _custom: {\n display: \"DebuggerEvent\",\n type: \"object\",\n tooltip: \"raw DebuggerEvent[]\",\n value: events\n }\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData\n });\n }, { detached: true, flush: \"sync\" });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now2(),\n title: \"🔥 \" + store.$id,\n subtitle: \"HMR update\",\n data: {\n store: formatDisplay$1(store.$id),\n info: formatDisplay$1(`HMR update`)\n }\n }\n });\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges && toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges && toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n const actions = actionNames.reduce((storeActions, actionName) => {\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function() {\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n }\n }) : store;\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n activeAction = void 0;\n return retValue;\n };\n }\n}\nfunction devtoolsPlugin({ app, store, options }) {\n if (store.$id.startsWith(\"__hot:\")) {\n return;\n }\n store._isOptionsAPI = !!options.state;\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function(newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n addStoreToDevtools(\n app,\n // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n store\n );\n}\nfunction createPinia() {\n const scope = effectScope(true);\n const state = scope.run(() => ref({}));\n let _p = [];\n let toBeInstalled = [];\n const pinia2 = markRaw({\n install(app) {\n setActivePinia(pinia2);\n {\n pinia2._a = app;\n app.provide(piniaSymbol, pinia2);\n app.config.globalProperties.$pinia = pinia2;\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(app, pinia2);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n }\n },\n use(plugin) {\n if (!this._a && !isVue2) {\n toBeInstalled.push(plugin);\n } else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: /* @__PURE__ */ new Map(),\n state\n });\n if (USE_DEVTOOLS && typeof Proxy !== \"undefined\") {\n pinia2.use(devtoolsPlugin);\n }\n return pinia2;\n}\nfunction patchObject(newState, oldState) {\n for (const key in oldState) {\n const subPatch = oldState[key];\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) && isPlainObject(subPatch) && !isRef(subPatch) && !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n } else {\n {\n newState[key] = subPatch;\n }\n }\n }\n return newState;\n}\nconst noop$1 = () => {\n};\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop$1) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\nconst fallbackRunWithContext = (fn) => fn();\nfunction mergeReactiveObjects(target, patchToApply) {\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n if (target instanceof Set && patchToApply instanceof Set) {\n patchToApply.forEach(target.add, target);\n }\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) && isPlainObject(subPatch) && target.hasOwnProperty(key) && !isRef(subPatch) && !isReactive(subPatch)) {\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n } else {\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = process.env.NODE_ENV !== \"production\" ? Symbol(\"pinia:skipHydration\") : (\n /* istanbul ignore next */\n Symbol()\n);\nfunction shouldHydrate(obj) {\n return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign: assign$2 } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia2, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia2.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== \"production\") || !hot)) {\n {\n pinia2.state.value[id] = state ? state() : {};\n }\n }\n const localState = process.env.NODE_ENV !== \"production\" && hot ? (\n // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n ) : toRefs(pinia2.state.value[id]);\n return assign$2(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if (process.env.NODE_ENV !== \"production\" && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia2);\n const store2 = pinia2._s.get(id);\n return getters[name].call(store2, store2);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia2, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia2, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign$2({ actions: {} }, options);\n if (process.env.NODE_ENV !== \"production\" && !pinia2._e.active) {\n throw new Error(\"Pinia destroyed\");\n }\n const $subscribeOptions = {\n deep: true\n // flush: 'post',\n };\n if (process.env.NODE_ENV !== \"production\" && !isVue2) {\n $subscribeOptions.onTrigger = (event) => {\n if (isListening) {\n debuggerEvents = event;\n } else if (isListening == false && !store._hotUpdating) {\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n } else {\n console.error(\"🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.\");\n }\n }\n };\n }\n let isListening;\n let isSyncListening;\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia2.state.value[$id];\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== \"production\") || !hot)) {\n {\n pinia2.state.value[$id] = {};\n }\n }\n const hotState = ref({});\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n if (process.env.NODE_ENV !== \"production\") {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === \"function\") {\n partialStateOrMutator(pinia2.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents\n };\n } else {\n mergeReactiveObjects(pinia2.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents\n };\n }\n const myListenerId = activeListener = Symbol();\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia2.state.value[$id]);\n }\n const $reset = isOptionsStore ? function $reset2() {\n const { state } = options;\n const newState = state ? state() : {};\n this.$patch(($state) => {\n assign$2($state, newState);\n });\n } : (\n /* istanbul ignore next */\n process.env.NODE_ENV !== \"production\" ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n } : noop$1\n );\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia2._s.delete($id);\n }\n function wrapAction(name, action) {\n return function() {\n setActivePinia(pinia2);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n triggerSubscriptions(actionSubscriptions, {\n args,\n name,\n store,\n after,\n onError\n });\n let ret;\n try {\n ret = action.apply(this && this.$id === $id ? this : store, args);\n } catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret.then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n }).catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n }\n const _hmrPayload = /* @__PURE__ */ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState\n });\n const partialStore = {\n _p: pinia2,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options2 = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia2.state.value[$id], (state) => {\n if (options2.flush === \"sync\" ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents\n }, state);\n }\n }, assign$2({}, $subscribeOptions, options2)));\n return removeSubscription;\n },\n $dispose\n };\n const store = reactive(process.env.NODE_ENV !== \"production\" || USE_DEVTOOLS ? assign$2(\n {\n _hmrPayload,\n _customProperties: markRaw(/* @__PURE__ */ new Set())\n // devtools custom properties\n },\n partialStore\n // must be added later\n // setupStore\n ) : partialStore);\n pinia2._s.set($id, store);\n const runWithContext = pinia2._a && pinia2._a.runWithContext || fallbackRunWithContext;\n const setupStore = runWithContext(() => pinia2._e.run(() => (scope = effectScope()).run(setup)));\n for (const key in setupStore) {\n const prop = setupStore[key];\n if (isRef(prop) && !isComputed(prop) || isReactive(prop)) {\n if (process.env.NODE_ENV !== \"production\" && hot) {\n set(hotState.value, key, toRef(setupStore, key));\n } else if (!isOptionsStore) {\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n } else {\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n {\n pinia2.state.value[$id][key] = prop;\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n _hmrPayload.state.push(key);\n }\n } else if (typeof prop === \"function\") {\n const actionValue = process.env.NODE_ENV !== \"production\" && hot ? prop : wrapAction(key, prop);\n {\n setupStore[key] = actionValue;\n }\n if (process.env.NODE_ENV !== \"production\") {\n _hmrPayload.actions[key] = prop;\n }\n optionsForPlugin.actions[key] = prop;\n } else if (process.env.NODE_ENV !== \"production\") {\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore ? (\n // @ts-expect-error\n options.getters[key]\n ) : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters || // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n {\n assign$2(store, setupStore);\n assign$2(toRaw(store), setupStore);\n }\n Object.defineProperty(store, \"$state\", {\n get: () => process.env.NODE_ENV !== \"production\" && hot ? hotState.value : pinia2.state.value[$id],\n set: (state) => {\n if (process.env.NODE_ENV !== \"production\" && hot) {\n throw new Error(\"cannot set hotState\");\n }\n $patch(($state) => {\n assign$2($state, state);\n });\n }\n });\n if (process.env.NODE_ENV !== \"production\") {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === \"object\" && isPlainObject(newStateTarget) && isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n } else {\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n set(store, stateKey, toRef(newStore.$state, stateKey));\n });\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n del(store, stateKey);\n }\n });\n isListening = false;\n isSyncListening = false;\n pinia2.state.value[$id] = toRef(newStore._hmrPayload, \"hotState\");\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const action = newStore[actionName];\n set(store, actionName, wrapAction(actionName, action));\n }\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore ? (\n // special handling of options api\n computed(() => {\n setActivePinia(pinia2);\n return getter.call(store, store);\n })\n ) : getter;\n set(store, getterName, getterValue);\n }\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n del(store, key);\n }\n });\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n del(store, key);\n }\n });\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if (USE_DEVTOOLS) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false\n };\n [\"_p\", \"_hmrPayload\", \"_getters\", \"_customProperties\"].forEach((p) => {\n Object.defineProperty(store, p, assign$2({ value: store[p] }, nonEnumerable));\n });\n }\n pinia2._p.forEach((extender) => {\n if (USE_DEVTOOLS) {\n const extensions = scope.run(() => extender({\n store,\n app: pinia2._a,\n pinia: pinia2,\n options: optionsForPlugin\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign$2(store, extensions);\n } else {\n assign$2(store, scope.run(() => extender({\n store,\n app: pinia2._a,\n pinia: pinia2,\n options: optionsForPlugin\n })));\n }\n });\n if (process.env.NODE_ENV !== \"production\" && store.$state && typeof store.$state === \"object\" && typeof store.$state.constructor === \"function\" && !store.$state.constructor.toString().includes(\"[native code]\")) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\n\tstate: () => new MyClass()\nFound in store \"${store.$id}\".`);\n }\n if (initialState && isOptionsStore && options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\nfunction defineStore(idOrOptions, setup, setupOptions) {\n let id;\n let options;\n const isSetupStore = typeof setup === \"function\";\n if (typeof idOrOptions === \"string\") {\n id = idOrOptions;\n options = isSetupStore ? setupOptions : setup;\n } else {\n options = idOrOptions;\n id = idOrOptions.id;\n if (process.env.NODE_ENV !== \"production\" && typeof id !== \"string\") {\n throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n }\n }\n function useStore(pinia2, hot) {\n const hasContext = hasInjectionContext();\n pinia2 = // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n (process.env.NODE_ENV === \"test\" && activePinia && activePinia._testing ? null : pinia2) || (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia2)\n setActivePinia(pinia2);\n if (process.env.NODE_ENV !== \"production\" && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\nSee https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\nThis will fail in production.`);\n }\n pinia2 = activePinia;\n if (!pinia2._s.has(id)) {\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia2);\n } else {\n createOptionsStore(id, options, pinia2);\n }\n if (process.env.NODE_ENV !== \"production\") {\n useStore._pinia = pinia2;\n }\n }\n const store = pinia2._s.get(id);\n if (process.env.NODE_ENV !== \"production\" && hot) {\n const hotId = \"__hot:\" + id;\n const newStore = isSetupStore ? createSetupStore(hotId, setup, options, pinia2, true) : createOptionsStore(hotId, assign$2({}, options), pinia2, true);\n hot._hotUpdate(newStore);\n delete pinia2.state.value[hotId];\n pinia2._s.delete(hotId);\n }\n if (process.env.NODE_ENV !== \"production\" && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n if (currentInstance && currentInstance.proxy && // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = \"_pStores\" in vm ? vm._pStores : vm._pStores = {};\n cache[id] = store;\n }\n }\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\nconst useDataStore = defineStore(\"data\", () => {\n const records = ref([]);\n const record = ref({});\n return { records, record };\n});\nfunction useStonecrop(registry) {\n if (!registry) {\n registry = inject(\"$registry\");\n }\n const store = useDataStore();\n const stonecrop = ref(new Stonecrop(registry, store));\n const isReady = ref(false);\n onBeforeMount(async () => {\n var _a, _b;\n const route = registry.router.currentRoute.value;\n const doctypeSlug = (_a = route.params.records) == null ? void 0 : _a.toString().toLowerCase();\n const recordId = (_b = route.params.record) == null ? void 0 : _b.toString().toLowerCase();\n if (!doctypeSlug && !recordId) {\n return;\n }\n const doctype = await registry.getMeta(doctypeSlug);\n registry.addDoctype(doctype);\n stonecrop.value.setup(doctype);\n if (doctypeSlug) {\n if (recordId) {\n await stonecrop.value.getRecord(doctype, recordId);\n } else {\n await stonecrop.value.getRecords(doctype);\n }\n }\n stonecrop.value.runAction(doctype, \"LOAD\", recordId ? [recordId] : void 0);\n isReady.value = true;\n });\n return { stonecrop, isReady };\n}\nclass DoctypeMeta {\n constructor(doctype, schema, workflow, actions, component) {\n this.doctype = doctype;\n this.schema = schema;\n this.workflow = workflow;\n this.actions = actions;\n this.component = component;\n }\n get slug() {\n return this.doctype.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\n }\n get __typename() {\n return this.doctype;\n }\n}\nclass Registry {\n constructor(router2, getMeta) {\n if (Registry._root) {\n return Registry._root;\n }\n Registry._root = this;\n this.name = \"Registry\";\n this.router = router2;\n this.registry = {};\n this.getMeta = getMeta;\n }\n addDoctype(doctype) {\n if (!(doctype.doctype in Object.keys(this.registry))) {\n this.registry[doctype.slug] = doctype;\n }\n if (!this.router.hasRoute(doctype.doctype)) {\n this.router.addRoute({\n path: `/${doctype.slug}`,\n name: doctype.slug,\n component: doctype.component\n });\n }\n }\n}\n/*!\n * vue-router v4.2.5\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nconst isBrowser = typeof window !== \"undefined\";\nfunction isESModule(obj) {\n return obj.__esModule || obj[Symbol.toStringTag] === \"Module\";\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n const newParams = {};\n for (const key in params) {\n const value = params[key];\n newParams[key] = isArray(value) ? value.map(fn) : fn(value);\n }\n return newParams;\n}\nconst noop = () => {\n};\nconst isArray = Array.isArray;\nfunction warn(msg) {\n const args = Array.from(arguments).slice(1);\n console.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\nfunction parseURL(parseQuery2, location2, currentLocation = \"/\") {\n let path, query = {}, searchString = \"\", hash = \"\";\n const hashPos = location2.indexOf(\"#\");\n let searchPos = location2.indexOf(\"?\");\n if (hashPos < searchPos && hashPos >= 0) {\n searchPos = -1;\n }\n if (searchPos > -1) {\n path = location2.slice(0, searchPos);\n searchString = location2.slice(searchPos + 1, hashPos > -1 ? hashPos : location2.length);\n query = parseQuery2(searchString);\n }\n if (hashPos > -1) {\n path = path || location2.slice(0, hashPos);\n hash = location2.slice(hashPos, location2.length);\n }\n path = resolveRelativePath(path != null ? path : location2, currentLocation);\n return {\n fullPath: path + (searchString && \"?\") + searchString + hash,\n path,\n query,\n hash\n };\n}\nfunction stringifyURL(stringifyQuery2, location2) {\n const query = location2.query ? stringifyQuery2(location2.query) : \"\";\n return location2.path + (query && \"?\") + query + (location2.hash || \"\");\n}\nfunction stripBase(pathname, base) {\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n return pathname;\n return pathname.slice(base.length) || \"/\";\n}\nfunction isSameRouteLocation(stringifyQuery2, a, b) {\n const aLastIndex = a.matched.length - 1;\n const bLastIndex = b.matched.length - 1;\n 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;\n}\nfunction isSameRouteRecord(a, b) {\n return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\n return false;\n }\n return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b;\n}\nfunction isEquivalentArray(a, b) {\n return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\nfunction resolveRelativePath(to, from) {\n if (to.startsWith(\"/\"))\n return to;\n if (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n return to;\n }\n if (!to)\n return from;\n const fromSegments = from.split(\"/\");\n const toSegments = to.split(\"/\");\n const lastToSegment = toSegments[toSegments.length - 1];\n if (lastToSegment === \"..\" || lastToSegment === \".\") {\n toSegments.push(\"\");\n }\n let position = fromSegments.length - 1;\n let toPosition;\n let segment;\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n segment = toSegments[toPosition];\n if (segment === \".\")\n continue;\n if (segment === \"..\") {\n if (position > 1)\n position--;\n } else\n break;\n }\n return fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition - (toPosition === toSegments.length ? 1 : 0)).join(\"/\");\n}\nvar NavigationType;\n(function(NavigationType2) {\n NavigationType2[\"pop\"] = \"pop\";\n NavigationType2[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function(NavigationDirection2) {\n NavigationDirection2[\"back\"] = \"back\";\n NavigationDirection2[\"forward\"] = \"forward\";\n NavigationDirection2[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\nfunction normalizeBase(base) {\n if (!base) {\n if (isBrowser) {\n const baseEl = document.querySelector(\"base\");\n base = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n } else {\n base = \"/\";\n }\n }\n if (base[0] !== \"/\" && base[0] !== \"#\")\n base = \"/\" + base;\n return removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location2) {\n return base.replace(BEFORE_HASH_RE, \"#\") + location2;\n}\nfunction getElementPosition(el, offset) {\n const docRect = document.documentElement.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n behavior: offset.behavior,\n left: elRect.left - docRect.left - (offset.left || 0),\n top: elRect.top - docRect.top - (offset.top || 0)\n };\n}\nconst computeScrollPosition = () => ({\n left: window.pageXOffset,\n top: window.pageYOffset\n});\nfunction scrollToPosition(position) {\n let scrollToOptions;\n if (\"el\" in position) {\n const positionEl = position.el;\n const isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n if (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n try {\n const foundEl = document.querySelector(position.el);\n if (isIdSelector && foundEl) {\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n return;\n }\n } catch (err) {\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n return;\n }\n }\n }\n const el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n if (!el) {\n process.env.NODE_ENV !== \"production\" && warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n return;\n }\n scrollToOptions = getElementPosition(el, position);\n } else {\n scrollToOptions = position;\n }\n if (\"scrollBehavior\" in document.documentElement.style)\n window.scrollTo(scrollToOptions);\n else {\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\n }\n}\nfunction getScrollKey(path, delta) {\n const position = history.state ? history.state.position - delta : -1;\n return position + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n const scroll = scrollPositions.get(key);\n scrollPositions.delete(key);\n return scroll;\n}\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\nfunction createCurrentLocation(base, location2) {\n const { pathname, search, hash } = location2;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n let slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\")\n pathFromHash = \"/\" + pathFromHash;\n return stripBase(pathFromHash, \"\");\n }\n const path = stripBase(pathname, base);\n return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n let listeners = [];\n let teardowns = [];\n let pauseState = null;\n const popStateHandler = ({ state }) => {\n const to = createCurrentLocation(base, location);\n const from = currentLocation.value;\n const fromState = historyState.value;\n let delta = 0;\n if (state) {\n currentLocation.value = to;\n historyState.value = state;\n if (pauseState && pauseState === from) {\n pauseState = null;\n return;\n }\n delta = fromState ? state.position - fromState.position : 0;\n } else {\n replace(to);\n }\n listeners.forEach((listener) => {\n listener(currentLocation.value, from, {\n delta,\n type: NavigationType.pop,\n direction: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n });\n });\n };\n function pauseListeners() {\n pauseState = currentLocation.value;\n }\n function listen(callback) {\n listeners.push(callback);\n const teardown = () => {\n const index2 = listeners.indexOf(callback);\n if (index2 > -1)\n listeners.splice(index2, 1);\n };\n teardowns.push(teardown);\n return teardown;\n }\n function beforeUnloadListener() {\n const { history: history2 } = window;\n if (!history2.state)\n return;\n history2.replaceState(assign({}, history2.state, { scroll: computeScrollPosition() }), \"\");\n }\n function destroy() {\n for (const teardown of teardowns)\n teardown();\n teardowns = [];\n window.removeEventListener(\"popstate\", popStateHandler);\n window.removeEventListener(\"beforeunload\", beforeUnloadListener);\n }\n window.addEventListener(\"popstate\", popStateHandler);\n window.addEventListener(\"beforeunload\", beforeUnloadListener, {\n passive: true\n });\n return {\n pauseListeners,\n listen,\n destroy\n };\n}\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n return {\n back,\n current,\n forward,\n replaced,\n position: window.history.length,\n scroll: computeScroll ? computeScrollPosition() : null\n };\n}\nfunction useHistoryStateNavigation(base) {\n const { history: history2, location: location2 } = window;\n const currentLocation = {\n value: createCurrentLocation(base, location2)\n };\n const historyState = { value: history2.state };\n if (!historyState.value) {\n changeLocation(currentLocation.value, {\n back: null,\n current: currentLocation.value,\n forward: null,\n // the length is off by one, we need to decrease it\n position: history2.length - 1,\n replaced: true,\n // don't add a scroll as the user may have an anchor, and we want\n // scrollBehavior to be triggered without a saved position\n scroll: null\n }, true);\n }\n function changeLocation(to, state, replace2) {\n const hashIndex = base.indexOf(\"#\");\n const url = hashIndex > -1 ? (location2.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n try {\n history2[replace2 ? \"replaceState\" : \"pushState\"](state, \"\", url);\n historyState.value = state;\n } catch (err) {\n if (process.env.NODE_ENV !== \"production\") {\n warn(\"Error with push/replace State\", err);\n } else {\n console.error(err);\n }\n location2[replace2 ? \"replace\" : \"assign\"](url);\n }\n }\n function replace(to, data) {\n const state = assign({}, history2.state, buildState(\n historyState.value.back,\n // keep back and forward entries but override current position\n to,\n historyState.value.forward,\n true\n ), data, { position: historyState.value.position });\n changeLocation(to, state, true);\n currentLocation.value = to;\n }\n function push(to, data) {\n const currentState = assign(\n {},\n // use current history state to gracefully handle a wrong call to\n // history.replaceState\n // https://github.com/vuejs/router/issues/366\n historyState.value,\n history2.state,\n {\n forward: to,\n scroll: computeScrollPosition()\n }\n );\n if (process.env.NODE_ENV !== \"production\" && !history2.state) {\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\n\nhistory.replaceState(history.state, '', url)\n\nYou can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\n }\n changeLocation(currentState.current, currentState, true);\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n changeLocation(to, state, false);\n currentLocation.value = to;\n }\n return {\n location: currentLocation,\n state: historyState,\n push,\n replace\n };\n}\nfunction createWebHistory(base) {\n base = normalizeBase(base);\n const historyNavigation = useHistoryStateNavigation(base);\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n function go(delta, triggerListeners = true) {\n if (!triggerListeners)\n historyListeners.pauseListeners();\n history.go(delta);\n }\n const routerHistory = assign({\n // it's overridden right after\n location: \"\",\n base,\n go,\n createHref: createHref.bind(null, base)\n }, historyNavigation, historyListeners);\n Object.defineProperty(routerHistory, \"location\", {\n enumerable: true,\n get: () => historyNavigation.location.value\n });\n Object.defineProperty(routerHistory, \"state\", {\n enumerable: true,\n get: () => historyNavigation.state.value\n });\n return routerHistory;\n}\nfunction isRouteLocation(route) {\n return typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n return typeof name === \"string\" || typeof name === \"symbol\";\n}\nconst START_LOCATION_NORMALIZED = {\n path: \"/\",\n name: void 0,\n params: {},\n query: {},\n hash: \"\",\n fullPath: \"/\",\n matched: [],\n meta: {},\n redirectedFrom: void 0\n};\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\nvar NavigationFailureType;\n(function(NavigationFailureType2) {\n NavigationFailureType2[NavigationFailureType2[\"aborted\"] = 4] = \"aborted\";\n NavigationFailureType2[NavigationFailureType2[\"cancelled\"] = 8] = \"cancelled\";\n NavigationFailureType2[NavigationFailureType2[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\nconst ErrorTypeMessages = {\n [\n 1\n /* ErrorTypes.MATCHER_NOT_FOUND */\n ]({ location: location2, currentLocation }) {\n return `No match for\n ${JSON.stringify(location2)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n },\n [\n 2\n /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */\n ]({ from, to }) {\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n },\n [\n 4\n /* ErrorTypes.NAVIGATION_ABORTED */\n ]({ from, to }) {\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n },\n [\n 8\n /* ErrorTypes.NAVIGATION_CANCELLED */\n ]({ from, to }) {\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n },\n [\n 16\n /* ErrorTypes.NAVIGATION_DUPLICATED */\n ]({ from, to }) {\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n }\n};\nfunction createRouterError(type2, params) {\n if (process.env.NODE_ENV !== \"production\" || false) {\n return assign(new Error(ErrorTypeMessages[type2](params)), {\n type: type2,\n [NavigationFailureSymbol]: true\n }, params);\n } else {\n return assign(new Error(), {\n type: type2,\n [NavigationFailureSymbol]: true\n }, params);\n }\n}\nfunction isNavigationFailure(error, type2) {\n return error instanceof Error && NavigationFailureSymbol in error && (type2 == null || !!(error.type & type2));\n}\nconst propertiesToLog = [\"params\", \"query\", \"hash\"];\nfunction stringifyRoute(to) {\n if (typeof to === \"string\")\n return to;\n if (\"path\" in to)\n return to.path;\n const location2 = {};\n for (const key of propertiesToLog) {\n if (key in to)\n location2[key] = to[key];\n }\n return JSON.stringify(location2, null, 2);\n}\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n sensitive: false,\n strict: false,\n start: true,\n end: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\nfunction tokensToParser(segments, extraOptions) {\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n const score = [];\n let pattern = options.start ? \"^\" : \"\";\n const keys = [];\n for (const segment of segments) {\n const segmentScores = segment.length ? [] : [\n 90\n /* PathScore.Root */\n ];\n if (options.strict && !segment.length)\n pattern += \"/\";\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n const token = segment[tokenIndex];\n let subSegmentScore = 40 + (options.sensitive ? 0.25 : 0);\n if (token.type === 0) {\n if (!tokenIndex)\n pattern += \"/\";\n pattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n subSegmentScore += 40;\n } else if (token.type === 1) {\n const { value, repeatable, optional, regexp } = token;\n keys.push({\n name: value,\n repeatable,\n optional\n });\n const re2 = regexp ? regexp : BASE_PARAM_PATTERN;\n if (re2 !== BASE_PARAM_PATTERN) {\n subSegmentScore += 10;\n try {\n new RegExp(`(${re2})`);\n } catch (err) {\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re2}): ` + err.message);\n }\n }\n let subPattern = repeatable ? `((?:${re2})(?:/(?:${re2}))*)` : `(${re2})`;\n if (!tokenIndex)\n subPattern = // avoid an optional / if there are more segments e.g. /:p?-static\n // or /:p?-:p2\n optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n if (optional)\n subPattern += \"?\";\n pattern += subPattern;\n subSegmentScore += 20;\n if (optional)\n subSegmentScore += -8;\n if (repeatable)\n subSegmentScore += -20;\n if (re2 === \".*\")\n subSegmentScore += -50;\n }\n segmentScores.push(subSegmentScore);\n }\n score.push(segmentScores);\n }\n if (options.strict && options.end) {\n const i = score.length - 1;\n score[i][score[i].length - 1] += 0.7000000000000001;\n }\n if (!options.strict)\n pattern += \"/?\";\n if (options.end)\n pattern += \"$\";\n else if (options.strict)\n pattern += \"(?:/|$)\";\n const re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n function parse2(path) {\n const match = path.match(re);\n const params = {};\n if (!match)\n return null;\n for (let i = 1; i < match.length; i++) {\n const value = match[i] || \"\";\n const key = keys[i - 1];\n params[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n }\n return params;\n }\n function stringify2(params) {\n let path = \"\";\n let avoidDuplicatedSlash = false;\n for (const segment of segments) {\n if (!avoidDuplicatedSlash || !path.endsWith(\"/\"))\n path += \"/\";\n avoidDuplicatedSlash = false;\n for (const token of segment) {\n if (token.type === 0) {\n path += token.value;\n } else if (token.type === 1) {\n const { value, repeatable, optional } = token;\n const param = value in params ? params[value] : \"\";\n if (isArray(param) && !repeatable) {\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n }\n const text = isArray(param) ? param.join(\"/\") : param;\n if (!text) {\n if (optional) {\n if (segment.length < 2) {\n if (path.endsWith(\"/\"))\n path = path.slice(0, -1);\n else\n avoidDuplicatedSlash = true;\n }\n } else\n throw new Error(`Missing required param \"${value}\"`);\n }\n path += text;\n }\n }\n }\n return path || \"/\";\n }\n return {\n re,\n score,\n keys,\n parse: parse2,\n stringify: stringify2\n };\n}\nfunction compareScoreArray(a, b) {\n let i = 0;\n while (i < a.length && i < b.length) {\n const diff = b[i] - a[i];\n if (diff)\n return diff;\n i++;\n }\n if (a.length < b.length) {\n return a.length === 1 && a[0] === 40 + 40 ? -1 : 1;\n } else if (a.length > b.length) {\n return b.length === 1 && b[0] === 40 + 40 ? 1 : -1;\n }\n return 0;\n}\nfunction comparePathParserScore(a, b) {\n let i = 0;\n const aScore = a.score;\n const bScore = b.score;\n while (i < aScore.length && i < bScore.length) {\n const comp = compareScoreArray(aScore[i], bScore[i]);\n if (comp)\n return comp;\n i++;\n }\n if (Math.abs(bScore.length - aScore.length) === 1) {\n if (isLastScoreNegative(aScore))\n return 1;\n if (isLastScoreNegative(bScore))\n return -1;\n }\n return bScore.length - aScore.length;\n}\nfunction isLastScoreNegative(score) {\n const last = score[score.length - 1];\n return score.length > 0 && last[last.length - 1] < 0;\n}\nconst ROOT_TOKEN = {\n type: 0,\n value: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n if (!path)\n return [[]];\n if (path === \"/\")\n return [[ROOT_TOKEN]];\n if (!path.startsWith(\"/\")) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n }\n function crash(message) {\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n }\n let state = 0;\n let previousState = state;\n const tokens = [];\n let segment;\n function finalizeSegment() {\n if (segment)\n tokens.push(segment);\n segment = [];\n }\n let i = 0;\n let char;\n let buffer = \"\";\n let customRe = \"\";\n function consumeBuffer() {\n if (!buffer)\n return;\n if (state === 0) {\n segment.push({\n type: 0,\n value: buffer\n });\n } else if (state === 1 || state === 2 || state === 3) {\n if (segment.length > 1 && (char === \"*\" || char === \"+\"))\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n segment.push({\n type: 1,\n value: buffer,\n regexp: customRe,\n repeatable: char === \"*\" || char === \"+\",\n optional: char === \"*\" || char === \"?\"\n });\n } else {\n crash(\"Invalid state to consume buffer\");\n }\n buffer = \"\";\n }\n function addCharToBuffer() {\n buffer += char;\n }\n while (i < path.length) {\n char = path[i++];\n if (char === \"\\\\\" && state !== 2) {\n previousState = state;\n state = 4;\n continue;\n }\n switch (state) {\n case 0:\n if (char === \"/\") {\n if (buffer) {\n consumeBuffer();\n }\n finalizeSegment();\n } else if (char === \":\") {\n consumeBuffer();\n state = 1;\n } else {\n addCharToBuffer();\n }\n break;\n case 4:\n addCharToBuffer();\n state = previousState;\n break;\n case 1:\n if (char === \"(\") {\n state = 2;\n } else if (VALID_PARAM_RE.test(char)) {\n addCharToBuffer();\n } else {\n consumeBuffer();\n state = 0;\n if (char !== \"*\" && char !== \"?\" && char !== \"+\")\n i--;\n }\n break;\n case 2:\n if (char === \")\") {\n if (customRe[customRe.length - 1] == \"\\\\\")\n customRe = customRe.slice(0, -1) + char;\n else\n state = 3;\n } else {\n customRe += char;\n }\n break;\n case 3:\n consumeBuffer();\n state = 0;\n if (char !== \"*\" && char !== \"?\" && char !== \"+\")\n i--;\n customRe = \"\";\n break;\n default:\n crash(\"Unknown state\");\n break;\n }\n }\n if (state === 2)\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n consumeBuffer();\n finalizeSegment();\n return tokens;\n}\nfunction createRouteRecordMatcher(record, parent, options) {\n const parser = tokensToParser(tokenizePath(record.path), options);\n if (process.env.NODE_ENV !== \"production\") {\n const existingKeys = /* @__PURE__ */ new Set();\n for (const key of parser.keys) {\n if (existingKeys.has(key.name))\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n existingKeys.add(key.name);\n }\n }\n const matcher = assign(parser, {\n record,\n parent,\n // these needs to be populated by the parent\n children: [],\n alias: []\n });\n if (parent) {\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\n parent.children.push(matcher);\n }\n return matcher;\n}\nfunction createRouterMatcher(routes, globalOptions) {\n const matchers = [];\n const matcherMap = /* @__PURE__ */ new Map();\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n function getRecordMatcher(name) {\n return matcherMap.get(name);\n }\n function addRoute(record, parent, originalRecord) {\n const isRootAdd = !originalRecord;\n const mainNormalizedRecord = normalizeRouteRecord(record);\n if (process.env.NODE_ENV !== \"production\") {\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n }\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n const options = mergeOptions(globalOptions, record);\n const normalizedRecords = [\n mainNormalizedRecord\n ];\n if (\"alias\" in record) {\n const aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n for (const alias of aliases) {\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\n // this allows us to hold a copy of the `components` option\n // so that async components cache is hold on the original record\n components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n path: alias,\n // we might be the child of an alias\n aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n // the aliases are always of the same kind as the original since they\n // are defined on the same record\n }));\n }\n }\n let matcher;\n let originalMatcher;\n for (const normalizedRecord of normalizedRecords) {\n const { path } = normalizedRecord;\n if (parent && path[0] !== \"/\") {\n const parentPath = parent.record.path;\n const connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n normalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n }\n if (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") {\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\nSee more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\n }\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n if (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\")\n checkMissingParamsInAbsolutePath(matcher, parent);\n if (originalRecord) {\n originalRecord.alias.push(matcher);\n if (process.env.NODE_ENV !== \"production\") {\n checkSameParams(originalRecord, matcher);\n }\n } else {\n originalMatcher = originalMatcher || matcher;\n if (originalMatcher !== matcher)\n originalMatcher.alias.push(matcher);\n if (isRootAdd && record.name && !isAliasRecord(matcher))\n removeRoute(record.name);\n }\n if (mainNormalizedRecord.children) {\n const children = mainNormalizedRecord.children;\n for (let i = 0; i < children.length; i++) {\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n }\n }\n originalRecord = originalRecord || matcher;\n if (matcher.record.components && Object.keys(matcher.record.components).length || matcher.record.name || matcher.record.redirect) {\n insertMatcher(matcher);\n }\n }\n return originalMatcher ? () => {\n removeRoute(originalMatcher);\n } : noop;\n }\n function removeRoute(matcherRef) {\n if (isRouteName(matcherRef)) {\n const matcher = matcherMap.get(matcherRef);\n if (matcher) {\n matcherMap.delete(matcherRef);\n matchers.splice(matchers.indexOf(matcher), 1);\n matcher.children.forEach(removeRoute);\n matcher.alias.forEach(removeRoute);\n }\n } else {\n const index2 = matchers.indexOf(matcherRef);\n if (index2 > -1) {\n matchers.splice(index2, 1);\n if (matcherRef.record.name)\n matcherMap.delete(matcherRef.record.name);\n matcherRef.children.forEach(removeRoute);\n matcherRef.alias.forEach(removeRoute);\n }\n }\n }\n function getRoutes() {\n return matchers;\n }\n function insertMatcher(matcher) {\n let i = 0;\n while (i < matchers.length && comparePathParserScore(matcher, matchers[i]) >= 0 && // Adding children with empty path should still appear before the parent\n // https://github.com/vuejs/router/issues/1124\n (matcher.record.path !== matchers[i].record.path || !isRecordChildOf(matcher, matchers[i])))\n i++;\n matchers.splice(i, 0, matcher);\n if (matcher.record.name && !isAliasRecord(matcher))\n matcherMap.set(matcher.record.name, matcher);\n }\n function resolve(location2, currentLocation) {\n let matcher;\n let params = {};\n let path;\n let name;\n if (\"name\" in location2 && location2.name) {\n matcher = matcherMap.get(location2.name);\n if (!matcher)\n throw createRouterError(1, {\n location: location2\n });\n if (process.env.NODE_ENV !== \"production\") {\n const invalidParams = Object.keys(location2.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n if (invalidParams.length) {\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n }\n }\n name = matcher.record.name;\n params = assign(\n // paramsFromLocation is a new object\n paramsFromLocation(\n currentLocation.params,\n // only keep params that exist in the resolved location\n // TODO: only keep optional params coming from a parent record\n matcher.keys.filter((k) => !k.optional).map((k) => k.name)\n ),\n // discard any existing params in the current location that do not exist here\n // #1497 this ensures better active/exact matching\n location2.params && paramsFromLocation(location2.params, matcher.keys.map((k) => k.name))\n );\n path = matcher.stringify(params);\n } else if (\"path\" in location2) {\n path = location2.path;\n if (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) {\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n }\n matcher = matchers.find((m2) => m2.re.test(path));\n if (matcher) {\n params = matcher.parse(path);\n name = matcher.record.name;\n }\n } else {\n matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m2) => m2.re.test(currentLocation.path));\n if (!matcher)\n throw createRouterError(1, {\n location: location2,\n currentLocation\n });\n name = matcher.record.name;\n params = assign({}, currentLocation.params, location2.params);\n path = matcher.stringify(params);\n }\n const matched = [];\n let parentMatcher = matcher;\n while (parentMatcher) {\n matched.unshift(parentMatcher.record);\n parentMatcher = parentMatcher.parent;\n }\n return {\n name,\n path,\n params,\n matched,\n meta: mergeMetaFields(matched)\n };\n }\n routes.forEach((route) => addRoute(route));\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\n}\nfunction paramsFromLocation(params, keys) {\n const newParams = {};\n for (const key of keys) {\n if (key in params)\n newParams[key] = params[key];\n }\n return newParams;\n}\nfunction normalizeRouteRecord(record) {\n return {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: void 0,\n beforeEnter: record.beforeEnter,\n props: normalizeRecordProps(record),\n children: record.children || [],\n instances: {},\n leaveGuards: /* @__PURE__ */ new Set(),\n updateGuards: /* @__PURE__ */ new Set(),\n enterCallbacks: {},\n components: \"components\" in record ? record.components || null : record.component && { default: record.component }\n };\n}\nfunction normalizeRecordProps(record) {\n const propsObject = {};\n const props = record.props || false;\n if (\"component\" in record) {\n propsObject.default = props;\n } else {\n for (const name in record.components)\n propsObject[name] = typeof props === \"object\" ? props[name] : props;\n }\n return propsObject;\n}\nfunction isAliasRecord(record) {\n while (record) {\n if (record.record.aliasOf)\n return true;\n record = record.parent;\n }\n return false;\n}\nfunction mergeMetaFields(matched) {\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n const options = {};\n for (const key in defaults) {\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n }\n return options;\n}\nfunction isSameParam(a, b) {\n return a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\nfunction checkSameParams(a, b) {\n for (const key of a.keys) {\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n for (const key of b.keys) {\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n}\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n if (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) {\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n for (const key of parent.keys) {\n if (!record.keys.find(isSameParam.bind(null, key)))\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n }\n}\nfunction isRecordChildOf(record, parent) {\n return parent.children.some((child) => child === record || isRecordChildOf(record, child));\n}\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\nfunction commonEncode(text) {\n return encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\nfunction encodeHash(text) {\n return commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryValue(text) {\n 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, \"^\");\n}\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\nfunction encodePath(text) {\n return commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\nfunction encodeParam(text) {\n return text == null ? \"\" : encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n try {\n return decodeURIComponent(\"\" + text);\n } catch (err) {\n process.env.NODE_ENV !== \"production\" && warn(`Error decoding \"${text}\". Using original value`);\n }\n return \"\" + text;\n}\nfunction parseQuery(search) {\n const query = {};\n if (search === \"\" || search === \"?\")\n return query;\n const hasLeadingIM = search[0] === \"?\";\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split(\"&\");\n for (let i = 0; i < searchParams.length; ++i) {\n const searchParam = searchParams[i].replace(PLUS_RE, \" \");\n const eqPos = searchParam.indexOf(\"=\");\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n } else {\n query[key] = value;\n }\n }\n return query;\n}\nfunction stringifyQuery(query) {\n let search = \"\";\n for (let key in query) {\n const value = query[key];\n key = encodeQueryKey(key);\n if (value == null) {\n if (value !== void 0) {\n search += (search.length ? \"&\" : \"\") + key;\n }\n continue;\n }\n const values = isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)];\n values.forEach((value2) => {\n if (value2 !== void 0) {\n search += (search.length ? \"&\" : \"\") + key;\n if (value2 != null)\n search += \"=\" + value2;\n }\n });\n }\n return search;\n}\nfunction normalizeQuery(query) {\n const normalizedQuery = {};\n for (const key in query) {\n const value = query[key];\n if (value !== void 0) {\n normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n }\n }\n return normalizedQuery;\n}\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\nfunction useCallbacks() {\n let handlers = [];\n function add(handler) {\n handlers.push(handler);\n return () => {\n const i = handlers.indexOf(handler);\n if (i > -1)\n handlers.splice(i, 1);\n };\n }\n function reset() {\n handlers = [];\n }\n return {\n add,\n list: () => handlers.slice(),\n reset\n };\n}\nfunction guardToPromiseFn(guard, to, from, record, name) {\n const enterCallbackArray = record && // name is defined if record is because of the function overload\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n return () => new Promise((resolve, reject) => {\n const next = (valid) => {\n if (valid === false) {\n reject(createRouterError(4, {\n from,\n to\n }));\n } else if (valid instanceof Error) {\n reject(valid);\n } else if (isRouteLocation(valid)) {\n reject(createRouterError(2, {\n from: to,\n to: valid\n }));\n } else {\n if (enterCallbackArray && // since enterCallbackArray is truthy, both record and name also are\n record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") {\n enterCallbackArray.push(valid);\n }\n resolve();\n }\n };\n const guardReturn = guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next);\n let guardCall = Promise.resolve(guardReturn);\n if (guard.length < 3)\n guardCall = guardCall.then(next);\n if (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : \"\"}:\n${guard.toString()}\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n if (typeof guardReturn === \"object\" && \"then\" in guardReturn) {\n guardCall = guardCall.then((resolvedValue) => {\n if (!next._called) {\n warn(message);\n return Promise.reject(new Error(\"Invalid navigation guard\"));\n }\n return resolvedValue;\n });\n } else if (guardReturn !== void 0) {\n if (!next._called) {\n warn(message);\n reject(new Error(\"Invalid navigation guard\"));\n return;\n }\n }\n }\n guardCall.catch((err) => reject(err));\n });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n let called = 0;\n return function() {\n if (called++ === 1)\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n next._called = true;\n if (called === 1)\n next.apply(null, arguments);\n };\n}\nfunction extractComponentsGuards(matched, guardType, to, from) {\n const guards = [];\n for (const record of matched) {\n if (process.env.NODE_ENV !== \"production\" && !record.components && !record.children.length) {\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n }\n for (const name in record.components) {\n let rawComponent = record.components[name];\n if (process.env.NODE_ENV !== \"production\") {\n if (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n throw new Error(\"Invalid route component\");\n } else if (\"then\" in rawComponent) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n const promise = rawComponent;\n rawComponent = () => promise;\n } else if (rawComponent.__asyncLoader && // warn only once per component\n !rawComponent.__warnedDefineAsync) {\n rawComponent.__warnedDefineAsync = true;\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n }\n }\n if (guardType !== \"beforeRouteEnter\" && !record.instances[name])\n continue;\n if (isRouteComponent(rawComponent)) {\n const options = rawComponent.__vccOpts || rawComponent;\n const guard = options[guardType];\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\n } else {\n let componentPromise = rawComponent();\n if (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n componentPromise = Promise.resolve(componentPromise);\n }\n guards.push(() => componentPromise.then((resolved) => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\n const resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n record.components[name] = resolvedComponent;\n const options = resolvedComponent.__vccOpts || resolvedComponent;\n const guard = options[guardType];\n return guard && guardToPromiseFn(guard, to, from, record, name)();\n }));\n }\n }\n }\n return guards;\n}\nfunction isRouteComponent(component) {\n return typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction useLink(props) {\n const router2 = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n const route = computed(() => router2.resolve(unref(props.to)));\n const activeRecordIndex = computed(() => {\n const { matched } = route.value;\n const { length } = matched;\n const routeMatched = matched[length - 1];\n const currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length)\n return -1;\n const index2 = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n if (index2 > -1)\n return index2;\n const parentRecordPath = getOriginalPath(matched[length - 2]);\n return (\n // we are dealing with nested routes\n length > 1 && // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n getOriginalPath(routeMatched) === parentRecordPath && // avoid comparing the child with its parent\n currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index2\n );\n });\n const isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n function navigate(e = {}) {\n if (guardEvent(e)) {\n return router2[unref(props.replace) ? \"replace\" : \"push\"](\n unref(props.to)\n // avoid uncaught errors are they are logged anyway\n ).catch(noop);\n }\n return Promise.resolve();\n }\n if ((process.env.NODE_ENV !== \"production\" || false) && isBrowser) {\n const instance = getCurrentInstance();\n if (instance) {\n const linkContextDevtools = {\n route: route.value,\n isActive: isActive.value,\n isExactActive: isExactActive.value\n };\n instance.__vrl_devtools = instance.__vrl_devtools || [];\n instance.__vrl_devtools.push(linkContextDevtools);\n watchEffect(() => {\n linkContextDevtools.route = route.value;\n linkContextDevtools.isActive = isActive.value;\n linkContextDevtools.isExactActive = isExactActive.value;\n }, { flush: \"post\" });\n }\n }\n return {\n route,\n href: computed(() => route.value.href),\n isActive,\n isExactActive,\n navigate\n };\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n name: \"RouterLink\",\n compatConfig: { MODE: 3 },\n props: {\n to: {\n type: [String, Object],\n required: true\n },\n replace: Boolean,\n activeClass: String,\n // inactiveClass: String,\n exactActiveClass: String,\n custom: Boolean,\n ariaCurrentValue: {\n type: String,\n default: \"page\"\n }\n },\n useLink,\n setup(props, { slots }) {\n const link = reactive(useLink(props));\n const { options } = inject(routerKey);\n const elClass = computed(() => ({\n [getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n // [getLinkClass(\n // props.inactiveClass,\n // options.linkInactiveClass,\n // 'router-link-inactive'\n // )]: !link.isExactActive,\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n }));\n return () => {\n const children = slots.default && slots.default(link);\n return props.custom ? children : h$1(\"a\", {\n \"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n href: link.href,\n // this would override user added attrs but Vue will still add\n // the listener, so we end up triggering both\n onClick: link.navigate,\n class: elClass.value\n }, children);\n };\n }\n});\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n return;\n if (e.defaultPrevented)\n return;\n if (e.button !== void 0 && e.button !== 0)\n return;\n if (e.currentTarget && e.currentTarget.getAttribute) {\n const target = e.currentTarget.getAttribute(\"target\");\n if (/\\b_blank\\b/i.test(target))\n return;\n }\n if (e.preventDefault)\n e.preventDefault();\n return true;\n}\nfunction includesParams(outer, inner) {\n for (const key in inner) {\n const innerValue = inner[key];\n const outerValue = outer[key];\n if (typeof innerValue === \"string\") {\n if (innerValue !== outerValue)\n return false;\n } else {\n if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i]))\n return false;\n }\n }\n return true;\n}\nfunction getOriginalPath(record) {\n return record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n name: \"RouterView\",\n // #674 we manually inherit them\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n default: \"default\"\n },\n route: Object\n },\n // Better compat for @vue/compat users\n // https://github.com/vuejs/router/issues/1315\n compatConfig: { MODE: 3 },\n setup(props, { attrs, slots }) {\n process.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n const injectedRoute = inject(routerViewLocationKey);\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\n const injectedDepth = inject(viewDepthKey, 0);\n const depth = computed(() => {\n let initialDepth = unref(injectedDepth);\n const { matched } = routeToDisplay.value;\n let matchedRoute;\n while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) {\n initialDepth++;\n }\n return initialDepth;\n });\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n provide(viewDepthKey, computed(() => depth.value + 1));\n provide(matchedRouteKey, matchedRouteRef);\n provide(routerViewLocationKey, routeToDisplay);\n const viewRef = ref();\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n if (to) {\n to.instances[name] = instance;\n if (from && from !== to && instance && instance === oldInstance) {\n if (!to.leaveGuards.size) {\n to.leaveGuards = from.leaveGuards;\n }\n if (!to.updateGuards.size) {\n to.updateGuards = from.updateGuards;\n }\n }\n }\n if (instance && to && // if there is no instance but to and from are the same this might be\n // the first visit\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n }\n }, { flush: \"post\" });\n return () => {\n const route = routeToDisplay.value;\n const currentName = props.name;\n const matchedRoute = matchedRouteRef.value;\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\n if (!ViewComponent) {\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\n }\n const routePropsOption = matchedRoute.props[currentName];\n const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n const onVnodeUnmounted = (vnode) => {\n if (vnode.component.isUnmounted) {\n matchedRoute.instances[currentName] = null;\n }\n };\n const component = h$1(ViewComponent, assign({}, routeProps, attrs, {\n onVnodeUnmounted,\n ref: viewRef\n }));\n if ((process.env.NODE_ENV !== \"production\" || false) && isBrowser && component.ref) {\n const info = {\n depth: depth.value,\n name: matchedRoute.name,\n path: matchedRoute.path,\n meta: matchedRoute.meta\n };\n const internalInstances = isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i];\n internalInstances.forEach((instance) => {\n instance.__vrv_devtools = info;\n });\n }\n return (\n // pass the vnode to the slot as a prop.\n // h and <component :is=\"...\"> both accept vnodes\n normalizeSlot(slots.default, { Component: component, route }) || component\n );\n };\n }\n});\nfunction normalizeSlot(slot, data) {\n if (!slot)\n return null;\n const slotContent = slot(data);\n return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n const instance = getCurrentInstance();\n const parentName = instance.parent && instance.parent.type.name;\n const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n if (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n const comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\nUse slot props instead:\n\n<router-view v-slot=\"{ Component }\">\n <${comp}>\n <component :is=\"Component\" />\n </${comp}>\n</router-view>`);\n }\n}\nfunction formatRouteLocation(routeLocation, tooltip) {\n const copy = assign({}, routeLocation, {\n // remove variables that can contain vue instances\n matched: routeLocation.matched.map((matched) => omit(matched, [\"instances\", \"children\", \"aliasOf\"]))\n });\n return {\n _custom: {\n type: null,\n readOnly: true,\n display: routeLocation.fullPath,\n tooltip,\n value: copy\n }\n };\n}\nfunction formatDisplay(display) {\n return {\n _custom: {\n display\n }\n };\n}\nlet routerId = 0;\nfunction addDevtools(app, router2, matcher) {\n if (router2.__hasDevtools)\n return;\n router2.__hasDevtools = true;\n const id = routerId++;\n setupDevtoolsPlugin({\n id: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n label: \"Vue Router\",\n packageName: \"vue-router\",\n homepage: \"https://router.vuejs.org\",\n logo: \"https://router.vuejs.org/logo.png\",\n componentStateTypes: [\"Routing\"],\n app\n }, (api) => {\n if (typeof api.now !== \"function\") {\n console.warn(\"[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.\");\n }\n api.on.inspectComponent((payload, ctx) => {\n if (payload.instanceData) {\n payload.instanceData.state.push({\n type: \"Routing\",\n key: \"$route\",\n editable: false,\n value: formatRouteLocation(router2.currentRoute.value, \"Current Route\")\n });\n }\n });\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n if (componentInstance.__vrv_devtools) {\n const info = componentInstance.__vrv_devtools;\n node.tags.push({\n label: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n textColor: 0,\n tooltip: \"This component is rendered by &lt;router-view&gt;\",\n backgroundColor: PINK_500\n });\n }\n if (isArray(componentInstance.__vrl_devtools)) {\n componentInstance.__devtoolsApi = api;\n componentInstance.__vrl_devtools.forEach((devtoolsData) => {\n let backgroundColor = ORANGE_400;\n let tooltip = \"\";\n if (devtoolsData.isExactActive) {\n backgroundColor = LIME_500;\n tooltip = \"This is exactly active\";\n } else if (devtoolsData.isActive) {\n backgroundColor = BLUE_600;\n tooltip = \"This link is active\";\n }\n node.tags.push({\n label: devtoolsData.route.path,\n textColor: 0,\n tooltip,\n backgroundColor\n });\n });\n }\n });\n watch(router2.currentRoute, () => {\n refreshRoutesView();\n api.notifyComponentUpdate();\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n const navigationsLayerId = \"router:navigations:\" + id;\n api.addTimelineLayer({\n id: navigationsLayerId,\n label: `Router${id ? \" \" + id : \"\"} Navigations`,\n color: 4237508\n });\n router2.onError((error, to) => {\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: \"Error during Navigation\",\n subtitle: to.fullPath,\n logType: \"error\",\n time: api.now(),\n data: { error },\n groupId: to.meta.__navigationId\n }\n });\n });\n let navigationId = 0;\n router2.beforeEach((to, from) => {\n const data = {\n guard: formatDisplay(\"beforeEach\"),\n from: formatRouteLocation(from, \"Current Location during this navigation\"),\n to: formatRouteLocation(to, \"Target location\")\n };\n Object.defineProperty(to.meta, \"__navigationId\", {\n value: navigationId++\n });\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n time: api.now(),\n title: \"Start of navigation\",\n subtitle: to.fullPath,\n data,\n groupId: to.meta.__navigationId\n }\n });\n });\n router2.afterEach((to, from, failure) => {\n const data = {\n guard: formatDisplay(\"afterEach\")\n };\n if (failure) {\n data.failure = {\n _custom: {\n type: Error,\n readOnly: true,\n display: failure ? failure.message : \"\",\n tooltip: \"Navigation Failure\",\n value: failure\n }\n };\n data.status = formatDisplay(\"❌\");\n } else {\n data.status = formatDisplay(\"✅\");\n }\n data.from = formatRouteLocation(from, \"Current Location during this navigation\");\n data.to = formatRouteLocation(to, \"Target location\");\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: \"End of navigation\",\n subtitle: to.fullPath,\n time: api.now(),\n data,\n logType: failure ? \"warning\" : \"default\",\n groupId: to.meta.__navigationId\n }\n });\n });\n const routerInspectorId = \"router-inspector:\" + id;\n api.addInspector({\n id: routerInspectorId,\n label: \"Routes\" + (id ? \" \" + id : \"\"),\n icon: \"book\",\n treeFilterPlaceholder: \"Search routes\"\n });\n function refreshRoutesView() {\n if (!activeRoutesPayload)\n return;\n const payload = activeRoutesPayload;\n let routes = matcher.getRoutes().filter((route) => !route.parent || // these routes have a parent with no component which will not appear in the view\n // therefore we still need to include them\n !route.parent.record.components);\n routes.forEach(resetMatchStateOnRouteRecord);\n if (payload.filter) {\n routes = routes.filter((route) => (\n // save matches state based on the payload\n isRouteMatching(route, payload.filter.toLowerCase())\n ));\n }\n routes.forEach((route) => markRouteRecordActive(route, router2.currentRoute.value));\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\n }\n let activeRoutesPayload;\n api.on.getInspectorTree((payload) => {\n activeRoutesPayload = payload;\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n refreshRoutesView();\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n const routes = matcher.getRoutes();\n const route = routes.find((route2) => route2.record.__vd_id === payload.nodeId);\n if (route) {\n payload.state = {\n options: formatRouteRecordMatcherForStateInspector(route)\n };\n }\n }\n });\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n}\nfunction modifierForKey(key) {\n if (key.optional) {\n return key.repeatable ? \"*\" : \"?\";\n } else {\n return key.repeatable ? \"+\" : \"\";\n }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n const { record } = route;\n const fields = [\n { editable: false, key: \"path\", value: record.path }\n ];\n if (record.name != null) {\n fields.push({\n editable: false,\n key: \"name\",\n value: record.name\n });\n }\n fields.push({ editable: false, key: \"regexp\", value: route.re });\n if (route.keys.length) {\n fields.push({\n editable: false,\n key: \"keys\",\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n tooltip: \"Param keys\",\n value: route.keys\n }\n }\n });\n }\n if (record.redirect != null) {\n fields.push({\n editable: false,\n key: \"redirect\",\n value: record.redirect\n });\n }\n if (route.alias.length) {\n fields.push({\n editable: false,\n key: \"aliases\",\n value: route.alias.map((alias) => alias.record.path)\n });\n }\n if (Object.keys(route.record.meta).length) {\n fields.push({\n editable: false,\n key: \"meta\",\n value: route.record.meta\n });\n }\n fields.push({\n key: \"score\",\n editable: false,\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.score.map((score) => score.join(\", \")).join(\" | \"),\n tooltip: \"Score used to sort routes\",\n value: route.score\n }\n }\n });\n return fields;\n}\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nfunction formatRouteRecordForInspector(route) {\n const tags = [];\n const { record } = route;\n if (record.name != null) {\n tags.push({\n label: String(record.name),\n textColor: 0,\n backgroundColor: CYAN_400\n });\n }\n if (record.aliasOf) {\n tags.push({\n label: \"alias\",\n textColor: 0,\n backgroundColor: ORANGE_400\n });\n }\n if (route.__vd_match) {\n tags.push({\n label: \"matches\",\n textColor: 0,\n backgroundColor: PINK_500\n });\n }\n if (route.__vd_exactActive) {\n tags.push({\n label: \"exact\",\n textColor: 0,\n backgroundColor: LIME_500\n });\n }\n if (route.__vd_active) {\n tags.push({\n label: \"active\",\n textColor: 0,\n backgroundColor: BLUE_600\n });\n }\n if (record.redirect) {\n tags.push({\n label: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n textColor: 16777215,\n backgroundColor: DARK\n });\n }\n let id = record.__vd_id;\n if (id == null) {\n id = String(routeRecordId++);\n record.__vd_id = id;\n }\n return {\n id,\n label: record.path,\n tags,\n children: route.children.map(formatRouteRecordForInspector)\n };\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n const isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n route.__vd_exactActive = route.__vd_active = isExactActive;\n if (!isExactActive) {\n route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n }\n route.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n route.__vd_match = false;\n route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\n route.__vd_match = false;\n if (!found || found.length < 3) {\n return false;\n }\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, \"\"), found[2]);\n if (nonEndingRE.test(filter)) {\n route.children.forEach((child) => isRouteMatching(child, filter));\n if (route.record.path !== \"/\" || filter === \"/\") {\n route.__vd_match = route.re.test(filter);\n return true;\n }\n return false;\n }\n const path = route.record.path.toLowerCase();\n const decodedPath = decode(path);\n if (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter)))\n return true;\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\n return true;\n if (route.record.name && String(route.record.name).includes(filter))\n return true;\n return route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n const ret = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\nfunction createRouter(options) {\n const matcher = createRouterMatcher(options.routes, options);\n const parseQuery$1 = options.parseQuery || parseQuery;\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n const routerHistory = options.history;\n if (process.env.NODE_ENV !== \"production\" && !routerHistory)\n throw new Error('Provide the \"history\" option when calling \"createRouter()\": https://next.router.vuejs.org/api/#history.');\n const beforeGuards = useCallbacks();\n const beforeResolveGuards = useCallbacks();\n const afterGuards = useCallbacks();\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n let pendingLocation = START_LOCATION_NORMALIZED;\n if (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\";\n }\n const normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n const encodeParams = applyToParams.bind(null, encodeParam);\n const decodeParams = (\n // @ts-expect-error: intentionally avoid the type check\n applyToParams.bind(null, decode)\n );\n function addRoute(parentOrRoute, route) {\n let parent;\n let record;\n if (isRouteName(parentOrRoute)) {\n parent = matcher.getRecordMatcher(parentOrRoute);\n record = route;\n } else {\n record = parentOrRoute;\n }\n return matcher.addRoute(record, parent);\n }\n function removeRoute(name) {\n const recordMatcher = matcher.getRecordMatcher(name);\n if (recordMatcher) {\n matcher.removeRoute(recordMatcher);\n } else if (process.env.NODE_ENV !== \"production\") {\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\n }\n }\n function getRoutes() {\n return matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n }\n function hasRoute(name) {\n return !!matcher.getRecordMatcher(name);\n }\n function resolve(rawLocation, currentLocation) {\n currentLocation = assign({}, currentLocation || currentRoute.value);\n if (typeof rawLocation === \"string\") {\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n const matchedRoute2 = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n const href2 = routerHistory.createHref(locationNormalized.fullPath);\n if (process.env.NODE_ENV !== \"production\") {\n if (href2.startsWith(\"//\"))\n warn(`Location \"${rawLocation}\" resolved to \"${href2}\". A resolved location cannot start with multiple slashes.`);\n else if (!matchedRoute2.matched.length) {\n warn(`No match found for location with path \"${rawLocation}\"`);\n }\n }\n return assign(locationNormalized, matchedRoute2, {\n params: decodeParams(matchedRoute2.params),\n hash: decode(locationNormalized.hash),\n redirectedFrom: void 0,\n href: href2\n });\n }\n let matcherLocation;\n if (\"path\" in rawLocation) {\n if (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && // @ts-expect-error: the type is never\n Object.keys(rawLocation.params).length) {\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n }\n matcherLocation = assign({}, rawLocation, {\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path\n });\n } else {\n const targetParams = assign({}, rawLocation.params);\n for (const key in targetParams) {\n if (targetParams[key] == null) {\n delete targetParams[key];\n }\n }\n matcherLocation = assign({}, rawLocation, {\n params: encodeParams(targetParams)\n });\n currentLocation.params = encodeParams(currentLocation.params);\n }\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n const hash = rawLocation.hash || \"\";\n if (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) {\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n }\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n hash: encodeHash(hash),\n path: matchedRoute.path\n }));\n const href = routerHistory.createHref(fullPath);\n if (process.env.NODE_ENV !== \"production\") {\n if (href.startsWith(\"//\")) {\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n } else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${\"path\" in rawLocation ? rawLocation.path : rawLocation}\"`);\n }\n }\n return assign({\n fullPath,\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\n // hash\n hash,\n query: (\n // if the user is using a custom query lib like qs, we might have\n // nested objects, so we keep the query as is, meaning it can contain\n // numbers at `$route.query`, but at the point, the user will have to\n // use their own type anyway.\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\n stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n )\n }, matchedRoute, {\n redirectedFrom: void 0,\n href\n });\n }\n function locationAsObject(to) {\n return typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n }\n function checkCanceledNavigation(to, from) {\n if (pendingLocation !== to) {\n return createRouterError(8, {\n from,\n to\n });\n }\n }\n function push(to) {\n return pushWithRedirect(to);\n }\n function replace(to) {\n return push(assign(locationAsObject(to), { replace: true }));\n }\n function handleRedirectRecord(to) {\n const lastMatched = to.matched[to.matched.length - 1];\n if (lastMatched && lastMatched.redirect) {\n const { redirect } = lastMatched;\n let newTargetLocation = typeof redirect === \"function\" ? redirect(to) : redirect;\n if (typeof newTargetLocation === \"string\") {\n newTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : (\n // force empty params\n { path: newTargetLocation }\n );\n newTargetLocation.params = {};\n }\n if (process.env.NODE_ENV !== \"production\" && !(\"path\" in newTargetLocation) && !(\"name\" in newTargetLocation)) {\n warn(`Invalid redirect found:\n${JSON.stringify(newTargetLocation, null, 2)}\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n throw new Error(\"Invalid redirect\");\n }\n return assign({\n query: to.query,\n hash: to.hash,\n // avoid transferring params if the redirect has a path\n params: \"path\" in newTargetLocation ? {} : to.params\n }, newTargetLocation);\n }\n }\n function pushWithRedirect(to, redirectedFrom) {\n const targetLocation = pendingLocation = resolve(to);\n const from = currentRoute.value;\n const data = to.state;\n const force = to.force;\n const replace2 = to.replace === true;\n const shouldRedirect = handleRedirectRecord(targetLocation);\n if (shouldRedirect)\n return pushWithRedirect(\n assign(locationAsObject(shouldRedirect), {\n state: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n force,\n replace: replace2\n }),\n // keep original redirectedFrom if it exists\n redirectedFrom || targetLocation\n );\n const toLocation = targetLocation;\n toLocation.redirectedFrom = redirectedFrom;\n let failure;\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n failure = createRouterError(16, { to: toLocation, from });\n handleScroll(\n from,\n from,\n // this is a push, the only way for it to be triggered from a\n // history.listen is with a redirect, which makes it become a push\n true,\n // This cannot be the first navigation because the initial location\n // cannot be manually navigated to\n false\n );\n }\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? (\n // navigation redirects still mark the router as ready\n isNavigationFailure(\n error,\n 2\n /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */\n ) ? error : markAsReady(error)\n ) : (\n // reject any unknown error\n triggerError(error, toLocation, from)\n )).then((failure2) => {\n if (failure2) {\n if (isNavigationFailure(\n failure2,\n 2\n /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */\n )) {\n if (process.env.NODE_ENV !== \"production\" && // we are redirecting to the same location we were already at\n isSameRouteLocation(stringifyQuery$1, resolve(failure2.to), toLocation) && // and we have done it a couple of times\n redirectedFrom && // @ts-expect-error: added only in dev\n (redirectedFrom._count = redirectedFrom._count ? (\n // @ts-expect-error\n redirectedFrom._count + 1\n ) : 1) > 30) {\n warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n return Promise.reject(new Error(\"Infinite redirect in navigation guard\"));\n }\n return pushWithRedirect(\n // keep options\n assign({\n // preserve an existing replacement but allow the redirect to override it\n replace: replace2\n }, locationAsObject(failure2.to), {\n state: typeof failure2.to === \"object\" ? assign({}, data, failure2.to.state) : data,\n force\n }),\n // preserve the original redirectedFrom if any\n redirectedFrom || toLocation\n );\n }\n } else {\n failure2 = finalizeNavigation(toLocation, from, true, replace2, data);\n }\n triggerAfterEach(toLocation, from, failure2);\n return failure2;\n });\n }\n function checkCanceledNavigationAndReject(to, from) {\n const error = checkCanceledNavigation(to, from);\n return error ? Promise.reject(error) : Promise.resolve();\n }\n function runWithContext(fn) {\n const app = installedApps.values().next().value;\n return app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n }\n function navigate(to, from) {\n let guards;\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n guards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n for (const record of leavingRecords) {\n record.leaveGuards.forEach((guard) => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards).then(() => {\n guards = [];\n for (const guard of beforeGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n }).then(() => {\n guards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n for (const record of updatingRecords) {\n record.updateGuards.forEach((guard) => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n }).then(() => {\n guards = [];\n for (const record of enteringRecords) {\n if (record.beforeEnter) {\n if (isArray(record.beforeEnter)) {\n for (const beforeEnter of record.beforeEnter)\n guards.push(guardToPromiseFn(beforeEnter, to, from));\n } else {\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n }\n }\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n }).then(() => {\n to.matched.forEach((record) => record.enterCallbacks = {});\n guards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from);\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n }).then(() => {\n guards = [];\n for (const guard of beforeResolveGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n }).catch((err) => isNavigationFailure(\n err,\n 8\n /* ErrorTypes.NAVIGATION_CANCELLED */\n ) ? err : Promise.reject(err));\n }\n function triggerAfterEach(to, from, failure) {\n afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n }\n function finalizeNavigation(toLocation, from, isPush, replace2, data) {\n const error = checkCanceledNavigation(toLocation, from);\n if (error)\n return error;\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n const state = !isBrowser ? {} : history.state;\n if (isPush) {\n if (replace2 || isFirstNavigation)\n routerHistory.replace(toLocation.fullPath, assign({\n scroll: isFirstNavigation && state && state.scroll\n }, data));\n else\n routerHistory.push(toLocation.fullPath, data);\n }\n currentRoute.value = toLocation;\n handleScroll(toLocation, from, isPush, isFirstNavigation);\n markAsReady();\n }\n let removeHistoryListener;\n function setupListeners() {\n if (removeHistoryListener)\n return;\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\n if (!router2.listening)\n return;\n const toLocation = resolve(to);\n const shouldRedirect = handleRedirectRecord(toLocation);\n if (shouldRedirect) {\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\n return;\n }\n pendingLocation = toLocation;\n const from = currentRoute.value;\n if (isBrowser) {\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n }\n navigate(toLocation, from).catch((error) => {\n if (isNavigationFailure(\n error,\n 4 | 8\n /* ErrorTypes.NAVIGATION_CANCELLED */\n )) {\n return error;\n }\n if (isNavigationFailure(\n error,\n 2\n /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */\n )) {\n pushWithRedirect(\n error.to,\n toLocation\n // avoid an uncaught rejection, let push call triggerError\n ).then((failure) => {\n if (isNavigationFailure(\n failure,\n 4 | 16\n /* ErrorTypes.NAVIGATION_DUPLICATED */\n ) && !info.delta && info.type === NavigationType.pop) {\n routerHistory.go(-1, false);\n }\n }).catch(noop);\n return Promise.reject();\n }\n if (info.delta) {\n routerHistory.go(-info.delta, false);\n }\n return triggerError(error, toLocation, from);\n }).then((failure) => {\n failure = failure || finalizeNavigation(\n // after navigation, all matched components are resolved\n toLocation,\n from,\n false\n );\n if (failure) {\n if (info.delta && // a new navigation has been triggered, so we do not want to revert, that will change the current history\n // entry while a different route is displayed\n !isNavigationFailure(\n failure,\n 8\n /* ErrorTypes.NAVIGATION_CANCELLED */\n )) {\n routerHistory.go(-info.delta, false);\n } else if (info.type === NavigationType.pop && isNavigationFailure(\n failure,\n 4 | 16\n /* ErrorTypes.NAVIGATION_DUPLICATED */\n )) {\n routerHistory.go(-1, false);\n }\n }\n triggerAfterEach(toLocation, from, failure);\n }).catch(noop);\n });\n }\n let readyHandlers = useCallbacks();\n let errorListeners = useCallbacks();\n let ready;\n function triggerError(error, to, from) {\n markAsReady(error);\n const list = errorListeners.list();\n if (list.length) {\n list.forEach((handler) => handler(error, to, from));\n } else {\n if (process.env.NODE_ENV !== \"production\") {\n warn(\"uncaught error during route navigation:\");\n }\n console.error(error);\n }\n return Promise.reject(error);\n }\n function isReady() {\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n return Promise.resolve();\n return new Promise((resolve2, reject) => {\n readyHandlers.add([resolve2, reject]);\n });\n }\n function markAsReady(err) {\n if (!ready) {\n ready = !err;\n setupListeners();\n readyHandlers.list().forEach(([resolve2, reject]) => err ? reject(err) : resolve2());\n readyHandlers.reset();\n }\n return err;\n }\n function handleScroll(to, from, isPush, isFirstNavigation) {\n const { scrollBehavior } = options;\n if (!isBrowser || !scrollBehavior)\n return Promise.resolve();\n const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n return nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n }\n const go = (delta) => routerHistory.go(delta);\n let started;\n const installedApps = /* @__PURE__ */ new Set();\n const router2 = {\n currentRoute,\n listening: true,\n addRoute,\n removeRoute,\n hasRoute,\n getRoutes,\n resolve,\n options,\n push,\n replace,\n go,\n back: () => go(-1),\n forward: () => go(1),\n beforeEach: beforeGuards.add,\n beforeResolve: beforeResolveGuards.add,\n afterEach: afterGuards.add,\n onError: errorListeners.add,\n isReady,\n install(app) {\n const router22 = this;\n app.component(\"RouterLink\", RouterLink);\n app.component(\"RouterView\", RouterView);\n app.config.globalProperties.$router = router22;\n Object.defineProperty(app.config.globalProperties, \"$route\", {\n enumerable: true,\n get: () => unref(currentRoute)\n });\n if (isBrowser && // used for the initial navigation client side to avoid pushing\n // multiple times when the router is used in multiple apps\n !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n started = true;\n push(routerHistory.location).catch((err) => {\n if (process.env.NODE_ENV !== \"production\")\n warn(\"Unexpected error when starting the router:\", err);\n });\n }\n const reactiveRoute = {};\n for (const key in START_LOCATION_NORMALIZED) {\n Object.defineProperty(reactiveRoute, key, {\n get: () => currentRoute.value[key],\n enumerable: true\n });\n }\n app.provide(routerKey, router22);\n app.provide(routeLocationKey, shallowReactive(reactiveRoute));\n app.provide(routerViewLocationKey, currentRoute);\n const unmountApp = app.unmount;\n installedApps.add(app);\n app.unmount = function() {\n installedApps.delete(app);\n if (installedApps.size < 1) {\n pendingLocation = START_LOCATION_NORMALIZED;\n removeHistoryListener && removeHistoryListener();\n removeHistoryListener = null;\n currentRoute.value = START_LOCATION_NORMALIZED;\n started = false;\n ready = false;\n }\n unmountApp();\n };\n if ((process.env.NODE_ENV !== \"production\" || false) && isBrowser) {\n addDevtools(app, router22, matcher);\n }\n }\n };\n function runGuardQueue(guards) {\n return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n }\n return router2;\n}\nfunction extractChangingRecords(to, from) {\n const leavingRecords = [];\n const updatingRecords = [];\n const enteringRecords = [];\n const len = Math.max(from.matched.length, to.matched.length);\n for (let i = 0; i < len; i++) {\n const recordFrom = from.matched[i];\n if (recordFrom) {\n if (to.matched.find((record) => isSameRouteRecord(record, recordFrom)))\n updatingRecords.push(recordFrom);\n else\n leavingRecords.push(recordFrom);\n }\n const recordTo = to.matched[i];\n if (recordTo) {\n if (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) {\n enteringRecords.push(recordTo);\n }\n }\n }\n return [leavingRecords, updatingRecords, enteringRecords];\n}\nconst router = createRouter({\n history: createWebHistory(),\n routes: []\n});\nfunction isPromise(obj) {\n return obj && typeof obj.then === \"function\";\n}\nPromise.resolve(false);\nPromise.resolve(true);\nvar PROMISE_RESOLVED_VOID = Promise.resolve();\nfunction sleep(time, resolveWith) {\n if (!time)\n time = 0;\n return new Promise(function(res) {\n return setTimeout(function() {\n return res(resolveWith);\n }, time);\n });\n}\nfunction randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\nfunction randomToken() {\n return Math.random().toString(36).substring(2);\n}\nvar lastMs = 0;\nvar additional = 0;\nfunction microSeconds$4() {\n var ms = (/* @__PURE__ */ new Date()).getTime();\n if (ms === lastMs) {\n additional++;\n return ms * 1e3 + additional;\n } else {\n lastMs = ms;\n additional = 0;\n return ms * 1e3;\n }\n}\nvar microSeconds$3 = microSeconds$4;\nvar type$3 = \"native\";\nfunction create$3(channelName) {\n var state = {\n messagesCallback: null,\n bc: new BroadcastChannel(channelName),\n subFns: []\n // subscriberFunctions\n };\n state.bc.onmessage = function(msg) {\n if (state.messagesCallback) {\n state.messagesCallback(msg.data);\n }\n };\n return state;\n}\nfunction close$3(channelState) {\n channelState.bc.close();\n channelState.subFns = [];\n}\nfunction postMessage$3(channelState, messageJson) {\n try {\n channelState.bc.postMessage(messageJson, false);\n return PROMISE_RESOLVED_VOID;\n } catch (err) {\n return Promise.reject(err);\n }\n}\nfunction onMessage$3(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nfunction canBeUsed$3() {\n if (typeof window === \"undefined\") {\n return false;\n }\n if (typeof BroadcastChannel === \"function\") {\n if (BroadcastChannel._pubkey) {\n throw new Error(\"BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill\");\n }\n return true;\n } else {\n return false;\n }\n}\nfunction averageResponseTime$3() {\n return 150;\n}\nvar NativeMethod = {\n create: create$3,\n close: close$3,\n onMessage: onMessage$3,\n postMessage: postMessage$3,\n canBeUsed: canBeUsed$3,\n type: type$3,\n averageResponseTime: averageResponseTime$3,\n microSeconds: microSeconds$3\n};\nvar ObliviousSet = (\n /** @class */\n function() {\n function ObliviousSet2(ttl) {\n this.ttl = ttl;\n this.map = /* @__PURE__ */ new Map();\n this._to = false;\n }\n ObliviousSet2.prototype.has = function(value) {\n return this.map.has(value);\n };\n ObliviousSet2.prototype.add = function(value) {\n var _this = this;\n this.map.set(value, now());\n if (!this._to) {\n this._to = true;\n setTimeout(function() {\n _this._to = false;\n removeTooOldValues(_this);\n }, 0);\n }\n };\n ObliviousSet2.prototype.clear = function() {\n this.map.clear();\n };\n return ObliviousSet2;\n }()\n);\nfunction removeTooOldValues(obliviousSet) {\n var olderThen = now() - obliviousSet.ttl;\n var iterator = obliviousSet.map[Symbol.iterator]();\n while (true) {\n var next = iterator.next().value;\n if (!next) {\n return;\n }\n var value = next[0];\n var time = next[1];\n if (time < olderThen) {\n obliviousSet.map.delete(value);\n } else {\n return;\n }\n }\n}\nfunction now() {\n return (/* @__PURE__ */ new Date()).getTime();\n}\nfunction fillOptionsWithDefaults() {\n var originalOptions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n var options = JSON.parse(JSON.stringify(originalOptions));\n if (typeof options.webWorkerSupport === \"undefined\")\n options.webWorkerSupport = true;\n if (!options.idb)\n options.idb = {};\n if (!options.idb.ttl)\n options.idb.ttl = 1e3 * 45;\n if (!options.idb.fallbackInterval)\n options.idb.fallbackInterval = 150;\n if (originalOptions.idb && typeof originalOptions.idb.onclose === \"function\")\n options.idb.onclose = originalOptions.idb.onclose;\n if (!options.localstorage)\n options.localstorage = {};\n if (!options.localstorage.removeTimeout)\n options.localstorage.removeTimeout = 1e3 * 60;\n if (originalOptions.methods)\n options.methods = originalOptions.methods;\n if (!options.node)\n options.node = {};\n if (!options.node.ttl)\n options.node.ttl = 1e3 * 60 * 2;\n if (!options.node.maxParallelWrites)\n options.node.maxParallelWrites = 2048;\n if (typeof options.node.useFastPath === \"undefined\")\n options.node.useFastPath = true;\n return options;\n}\nvar microSeconds$2 = microSeconds$4;\nvar DB_PREFIX = \"pubkey.broadcast-channel-0-\";\nvar OBJECT_STORE_ID = \"messages\";\nvar TRANSACTION_SETTINGS = {\n durability: \"relaxed\"\n};\nvar type$2 = \"idb\";\nfunction getIdb() {\n if (typeof indexedDB !== \"undefined\")\n return indexedDB;\n if (typeof window !== \"undefined\") {\n if (typeof window.mozIndexedDB !== \"undefined\")\n return window.mozIndexedDB;\n if (typeof window.webkitIndexedDB !== \"undefined\")\n return window.webkitIndexedDB;\n if (typeof window.msIndexedDB !== \"undefined\")\n return window.msIndexedDB;\n }\n return false;\n}\nfunction commitIndexedDBTransaction(tx) {\n if (tx.commit) {\n tx.commit();\n }\n}\nfunction createDatabase(channelName) {\n var IndexedDB = getIdb();\n var dbName = DB_PREFIX + channelName;\n var openRequest = IndexedDB.open(dbName);\n openRequest.onupgradeneeded = function(ev) {\n var db = ev.target.result;\n db.createObjectStore(OBJECT_STORE_ID, {\n keyPath: \"id\",\n autoIncrement: true\n });\n };\n return new Promise(function(res, rej) {\n openRequest.onerror = function(ev) {\n return rej(ev);\n };\n openRequest.onsuccess = function() {\n res(openRequest.result);\n };\n });\n}\nfunction writeMessage(db, readerUuid, messageJson) {\n var time = (/* @__PURE__ */ new Date()).getTime();\n var writeObject = {\n uuid: readerUuid,\n time,\n data: messageJson\n };\n var tx = db.transaction([OBJECT_STORE_ID], \"readwrite\", TRANSACTION_SETTINGS);\n return new Promise(function(res, rej) {\n tx.oncomplete = function() {\n return res();\n };\n tx.onerror = function(ev) {\n return rej(ev);\n };\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n objectStore.add(writeObject);\n commitIndexedDBTransaction(tx);\n });\n}\nfunction getMessagesHigherThan(db, lastCursorId) {\n var tx = db.transaction(OBJECT_STORE_ID, \"readonly\", TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n if (objectStore.getAll) {\n var getAllRequest = objectStore.getAll(keyRangeValue);\n return new Promise(function(res, rej) {\n getAllRequest.onerror = function(err) {\n return rej(err);\n };\n getAllRequest.onsuccess = function(e) {\n res(e.target.result);\n };\n });\n }\n function openCursor() {\n try {\n keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n return objectStore.openCursor(keyRangeValue);\n } catch (e) {\n return objectStore.openCursor();\n }\n }\n return new Promise(function(res, rej) {\n var openCursorRequest = openCursor();\n openCursorRequest.onerror = function(err) {\n return rej(err);\n };\n openCursorRequest.onsuccess = function(ev) {\n var cursor = ev.target.result;\n if (cursor) {\n if (cursor.value.id < lastCursorId + 1) {\n cursor[\"continue\"](lastCursorId + 1);\n } else {\n ret.push(cursor.value);\n cursor[\"continue\"]();\n }\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nfunction removeMessagesById(channelState, ids) {\n if (channelState.closed) {\n return Promise.resolve([]);\n }\n var tx = channelState.db.transaction(OBJECT_STORE_ID, \"readwrite\", TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n return Promise.all(ids.map(function(id) {\n var deleteRequest = objectStore[\"delete\"](id);\n return new Promise(function(res) {\n deleteRequest.onsuccess = function() {\n return res();\n };\n });\n }));\n}\nfunction getOldMessages(db, ttl) {\n var olderThen = (/* @__PURE__ */ new Date()).getTime() - ttl;\n var tx = db.transaction(OBJECT_STORE_ID, \"readonly\", TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function(res) {\n objectStore.openCursor().onsuccess = function(ev) {\n var cursor = ev.target.result;\n if (cursor) {\n var msgObk = cursor.value;\n if (msgObk.time < olderThen) {\n ret.push(msgObk);\n cursor[\"continue\"]();\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n } else {\n res(ret);\n }\n };\n });\n}\nfunction cleanOldMessages(channelState) {\n return getOldMessages(channelState.db, channelState.options.idb.ttl).then(function(tooOld) {\n return removeMessagesById(channelState, tooOld.map(function(msg) {\n return msg.id;\n }));\n });\n}\nfunction create$2(channelName, options) {\n options = fillOptionsWithDefaults(options);\n return createDatabase(channelName).then(function(db) {\n var state = {\n closed: false,\n lastCursorId: 0,\n channelName,\n options,\n uuid: randomToken(),\n /**\n * emittedMessagesIds\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n eMIs: new ObliviousSet(options.idb.ttl * 2),\n // ensures we do not read messages in parallel\n writeBlockPromise: PROMISE_RESOLVED_VOID,\n messagesCallback: null,\n readQueuePromises: [],\n db\n };\n db.onclose = function() {\n state.closed = true;\n if (options.idb.onclose)\n options.idb.onclose();\n };\n _readLoop(state);\n return state;\n });\n}\nfunction _readLoop(state) {\n if (state.closed)\n return;\n readNewMessages(state).then(function() {\n return sleep(state.options.idb.fallbackInterval);\n }).then(function() {\n return _readLoop(state);\n });\n}\nfunction _filterMessage(msgObj, state) {\n if (msgObj.uuid === state.uuid)\n return false;\n if (state.eMIs.has(msgObj.id))\n return false;\n if (msgObj.data.time < state.messagesCallbackTime)\n return false;\n return true;\n}\nfunction readNewMessages(state) {\n if (state.closed)\n return PROMISE_RESOLVED_VOID;\n if (!state.messagesCallback)\n return PROMISE_RESOLVED_VOID;\n return getMessagesHigherThan(state.db, state.lastCursorId).then(function(newerMessages) {\n var useMessages = newerMessages.filter(function(msgObj) {\n return !!msgObj;\n }).map(function(msgObj) {\n if (msgObj.id > state.lastCursorId) {\n state.lastCursorId = msgObj.id;\n }\n return msgObj;\n }).filter(function(msgObj) {\n return _filterMessage(msgObj, state);\n }).sort(function(msgObjA, msgObjB) {\n return msgObjA.time - msgObjB.time;\n });\n useMessages.forEach(function(msgObj) {\n if (state.messagesCallback) {\n state.eMIs.add(msgObj.id);\n state.messagesCallback(msgObj.data);\n }\n });\n return PROMISE_RESOLVED_VOID;\n });\n}\nfunction close$2(channelState) {\n channelState.closed = true;\n channelState.db.close();\n}\nfunction postMessage$2(channelState, messageJson) {\n channelState.writeBlockPromise = channelState.writeBlockPromise.then(function() {\n return writeMessage(channelState.db, channelState.uuid, messageJson);\n }).then(function() {\n if (randomInt(0, 10) === 0) {\n cleanOldMessages(channelState);\n }\n });\n return channelState.writeBlockPromise;\n}\nfunction onMessage$2(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n readNewMessages(channelState);\n}\nfunction canBeUsed$2() {\n return !!getIdb();\n}\nfunction averageResponseTime$2(options) {\n return options.idb.fallbackInterval * 2;\n}\nvar IndexedDBMethod = {\n create: create$2,\n close: close$2,\n onMessage: onMessage$2,\n postMessage: postMessage$2,\n canBeUsed: canBeUsed$2,\n type: type$2,\n averageResponseTime: averageResponseTime$2,\n microSeconds: microSeconds$2\n};\nvar microSeconds$1 = microSeconds$4;\nvar KEY_PREFIX = \"pubkey.broadcastChannel-\";\nvar type$1 = \"localstorage\";\nfunction getLocalStorage() {\n var localStorage2;\n if (typeof window === \"undefined\")\n return null;\n try {\n localStorage2 = window.localStorage;\n localStorage2 = window[\"ie8-eventlistener/storage\"] || window.localStorage;\n } catch (e) {\n }\n return localStorage2;\n}\nfunction storageKey(channelName) {\n return KEY_PREFIX + channelName;\n}\nfunction postMessage$1(channelState, messageJson) {\n return new Promise(function(res) {\n sleep().then(function() {\n var key = storageKey(channelState.channelName);\n var writeObj = {\n token: randomToken(),\n time: (/* @__PURE__ */ new Date()).getTime(),\n data: messageJson,\n uuid: channelState.uuid\n };\n var value = JSON.stringify(writeObj);\n getLocalStorage().setItem(key, value);\n var ev = document.createEvent(\"Event\");\n ev.initEvent(\"storage\", true, true);\n ev.key = key;\n ev.newValue = value;\n window.dispatchEvent(ev);\n res();\n });\n });\n}\nfunction addStorageEventListener(channelName, fn) {\n var key = storageKey(channelName);\n var listener = function listener2(ev) {\n if (ev.key === key) {\n fn(JSON.parse(ev.newValue));\n }\n };\n window.addEventListener(\"storage\", listener);\n return listener;\n}\nfunction removeStorageEventListener(listener) {\n window.removeEventListener(\"storage\", listener);\n}\nfunction create$1(channelName, options) {\n options = fillOptionsWithDefaults(options);\n if (!canBeUsed$1()) {\n throw new Error(\"BroadcastChannel: localstorage cannot be used\");\n }\n var uuid = randomToken();\n var eMIs = new ObliviousSet(options.localstorage.removeTimeout);\n var state = {\n channelName,\n uuid,\n eMIs\n // emittedMessagesIds\n };\n state.listener = addStorageEventListener(channelName, function(msgObj) {\n if (!state.messagesCallback)\n return;\n if (msgObj.uuid === uuid)\n return;\n if (!msgObj.token || eMIs.has(msgObj.token))\n return;\n if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime)\n return;\n eMIs.add(msgObj.token);\n state.messagesCallback(msgObj.data);\n });\n return state;\n}\nfunction close$1(channelState) {\n removeStorageEventListener(channelState.listener);\n}\nfunction onMessage$1(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n}\nfunction canBeUsed$1() {\n var ls = getLocalStorage();\n if (!ls)\n return false;\n try {\n var key = \"__broadcastchannel_check\";\n ls.setItem(key, \"works\");\n ls.removeItem(key);\n } catch (e) {\n return false;\n }\n return true;\n}\nfunction averageResponseTime$1() {\n var defaultTime = 120;\n var userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.includes(\"safari\") && !userAgent.includes(\"chrome\")) {\n return defaultTime * 2;\n }\n return defaultTime;\n}\nvar LocalstorageMethod = {\n create: create$1,\n close: close$1,\n onMessage: onMessage$1,\n postMessage: postMessage$1,\n canBeUsed: canBeUsed$1,\n type: type$1,\n averageResponseTime: averageResponseTime$1,\n microSeconds: microSeconds$1\n};\nvar microSeconds = microSeconds$4;\nvar type = \"simulate\";\nvar SIMULATE_CHANNELS = /* @__PURE__ */ new Set();\nfunction create(channelName) {\n var state = {\n name: channelName,\n messagesCallback: null\n };\n SIMULATE_CHANNELS.add(state);\n return state;\n}\nfunction close(channelState) {\n SIMULATE_CHANNELS[\"delete\"](channelState);\n}\nfunction postMessage(channelState, messageJson) {\n return new Promise(function(res) {\n return setTimeout(function() {\n var channelArray = Array.from(SIMULATE_CHANNELS);\n channelArray.filter(function(channel) {\n return channel.name === channelState.name;\n }).filter(function(channel) {\n return channel !== channelState;\n }).filter(function(channel) {\n return !!channel.messagesCallback;\n }).forEach(function(channel) {\n return channel.messagesCallback(messageJson);\n });\n res();\n }, 5);\n });\n}\nfunction onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nfunction canBeUsed() {\n return true;\n}\nfunction averageResponseTime() {\n return 5;\n}\nvar SimulateMethod = {\n create,\n close,\n onMessage,\n postMessage,\n canBeUsed,\n type,\n averageResponseTime,\n microSeconds\n};\nvar METHODS = [\n NativeMethod,\n // fastest\n IndexedDBMethod,\n LocalstorageMethod\n];\nfunction chooseMethod(options) {\n var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean);\n if (options.type) {\n if (options.type === \"simulate\") {\n return SimulateMethod;\n }\n var ret = chooseMethods.find(function(m2) {\n return m2.type === options.type;\n });\n if (!ret)\n throw new Error(\"method-type \" + options.type + \" not found\");\n else\n return ret;\n }\n if (!options.webWorkerSupport) {\n chooseMethods = chooseMethods.filter(function(m2) {\n return m2.type !== \"idb\";\n });\n }\n var useMethod = chooseMethods.find(function(method) {\n return method.canBeUsed();\n });\n if (!useMethod)\n throw new Error(\"No usable method found in \" + JSON.stringify(METHODS.map(function(m2) {\n return m2.type;\n })));\n else\n return useMethod;\n}\nvar OPEN_BROADCAST_CHANNELS = /* @__PURE__ */ new Set();\nvar lastId = 0;\nvar BroadcastChannel$1 = function BroadcastChannel2(name, options) {\n this.id = lastId++;\n OPEN_BROADCAST_CHANNELS.add(this);\n this.name = name;\n if (ENFORCED_OPTIONS) {\n options = ENFORCED_OPTIONS;\n }\n this.options = fillOptionsWithDefaults(options);\n this.method = chooseMethod(this.options);\n this._iL = false;\n this._onML = null;\n this._addEL = {\n message: [],\n internal: []\n };\n this._uMP = /* @__PURE__ */ new Set();\n this._befC = [];\n this._prepP = null;\n _prepareChannel(this);\n};\nBroadcastChannel$1._pubkey = true;\nvar ENFORCED_OPTIONS;\nBroadcastChannel$1.prototype = {\n postMessage: function postMessage2(msg) {\n if (this.closed) {\n throw new Error(\"BroadcastChannel.postMessage(): Cannot post message after channel has closed \" + /**\n * In the past when this error appeared, it was really hard to debug.\n * So now we log the msg together with the error so it at least\n * gives some clue about where in your application this happens.\n */\n JSON.stringify(msg));\n }\n return _post(this, \"message\", msg);\n },\n postInternal: function postInternal(msg) {\n return _post(this, \"internal\", msg);\n },\n set onmessage(fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time,\n fn\n };\n _removeListenerObject(this, \"message\", this._onML);\n if (fn && typeof fn === \"function\") {\n this._onML = listenObj;\n _addListenerObject(this, \"message\", listenObj);\n } else {\n this._onML = null;\n }\n },\n addEventListener: function addEventListener(type2, fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time,\n fn\n };\n _addListenerObject(this, type2, listenObj);\n },\n removeEventListener: function removeEventListener(type2, fn) {\n var obj = this._addEL[type2].find(function(obj2) {\n return obj2.fn === fn;\n });\n _removeListenerObject(this, type2, obj);\n },\n close: function close2() {\n var _this = this;\n if (this.closed) {\n return;\n }\n OPEN_BROADCAST_CHANNELS[\"delete\"](this);\n this.closed = true;\n var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID;\n this._onML = null;\n this._addEL.message = [];\n return awaitPrepare.then(function() {\n return Promise.all(Array.from(_this._uMP));\n }).then(function() {\n return Promise.all(_this._befC.map(function(fn) {\n return fn();\n }));\n }).then(function() {\n return _this.method.close(_this._state);\n });\n },\n get type() {\n return this.method.type;\n },\n get isClosed() {\n return this.closed;\n }\n};\nfunction _post(broadcastChannel, type2, msg) {\n var time = broadcastChannel.method.microSeconds();\n var msgObj = {\n time,\n type: type2,\n data: msg\n };\n var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID;\n return awaitPrepare.then(function() {\n var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj);\n broadcastChannel._uMP.add(sendPromise);\n sendPromise[\"catch\"]().then(function() {\n return broadcastChannel._uMP[\"delete\"](sendPromise);\n });\n return sendPromise;\n });\n}\nfunction _prepareChannel(channel) {\n var maybePromise = channel.method.create(channel.name, channel.options);\n if (isPromise(maybePromise)) {\n channel._prepP = maybePromise;\n maybePromise.then(function(s) {\n channel._state = s;\n });\n } else {\n channel._state = maybePromise;\n }\n}\nfunction _hasMessageListeners(channel) {\n if (channel._addEL.message.length > 0)\n return true;\n if (channel._addEL.internal.length > 0)\n return true;\n return false;\n}\nfunction _addListenerObject(channel, type2, obj) {\n channel._addEL[type2].push(obj);\n _startListening(channel);\n}\nfunction _removeListenerObject(channel, type2, obj) {\n channel._addEL[type2] = channel._addEL[type2].filter(function(o) {\n return o !== obj;\n });\n _stopListening(channel);\n}\nfunction _startListening(channel) {\n if (!channel._iL && _hasMessageListeners(channel)) {\n var listenerFn = function listenerFn2(msgObj) {\n channel._addEL[msgObj.type].forEach(function(listenerObject) {\n var hundredMsInMicro = 100 * 1e3;\n var minMessageTime = listenerObject.time - hundredMsInMicro;\n if (msgObj.time >= minMessageTime) {\n listenerObject.fn(msgObj.data);\n }\n });\n };\n var time = channel.method.microSeconds();\n if (channel._prepP) {\n channel._prepP.then(function() {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n });\n } else {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n }\n }\n}\nfunction _stopListening(channel) {\n if (channel._iL && !_hasMessageListeners(channel)) {\n channel._iL = false;\n var time = channel.method.microSeconds();\n channel.method.onMessage(channel._state, null, time);\n }\n}\nclass DevalueError extends Error {\n /**\n * @param {string} message\n * @param {string[]} keys\n */\n constructor(message, keys) {\n super(message);\n this.name = \"DevalueError\";\n this.path = keys.join(\"\");\n }\n}\nfunction is_primitive(thing) {\n return Object(thing) !== thing;\n}\nconst object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(\n Object.prototype\n).sort().join(\"\\0\");\nfunction is_plain_object(thing) {\n const proto = Object.getPrototypeOf(thing);\n return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === object_proto_names;\n}\nfunction get_type(thing) {\n return Object.prototype.toString.call(thing).slice(8, -1);\n}\nfunction get_escaped_char(char) {\n switch (char) {\n case '\"':\n return '\\\\\"';\n case \"<\":\n return \"\\\\u003C\";\n case \"\\\\\":\n return \"\\\\\\\\\";\n case \"\\n\":\n return \"\\\\n\";\n case \"\\r\":\n return \"\\\\r\";\n case \"\t\":\n return \"\\\\t\";\n case \"\\b\":\n return \"\\\\b\";\n case \"\\f\":\n return \"\\\\f\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n default:\n return char < \" \" ? `\\\\u${char.charCodeAt(0).toString(16).padStart(4, \"0\")}` : \"\";\n }\n}\nfunction stringify_string(str) {\n let result = \"\";\n let last_pos = 0;\n const len = str.length;\n for (let i = 0; i < len; i += 1) {\n const char = str[i];\n const replacement = get_escaped_char(char);\n if (replacement) {\n result += str.slice(last_pos, i) + replacement;\n last_pos = i + 1;\n }\n }\n return `\"${last_pos === 0 ? str : result + str.slice(last_pos)}\"`;\n}\nconst UNDEFINED = -1;\nconst HOLE = -2;\nconst NAN = -3;\nconst POSITIVE_INFINITY = -4;\nconst NEGATIVE_INFINITY = -5;\nconst NEGATIVE_ZERO = -6;\nfunction parse(serialized, revivers) {\n return unflatten(JSON.parse(serialized), revivers);\n}\nfunction unflatten(parsed, revivers) {\n if (typeof parsed === \"number\")\n return hydrate(parsed, true);\n if (!Array.isArray(parsed) || parsed.length === 0) {\n throw new Error(\"Invalid input\");\n }\n const values = (\n /** @type {any[]} */\n parsed\n );\n const hydrated = Array(values.length);\n function hydrate(index2, standalone = false) {\n if (index2 === UNDEFINED)\n return void 0;\n if (index2 === NAN)\n return NaN;\n if (index2 === POSITIVE_INFINITY)\n return Infinity;\n if (index2 === NEGATIVE_INFINITY)\n return -Infinity;\n if (index2 === NEGATIVE_ZERO)\n return -0;\n if (standalone)\n throw new Error(`Invalid input`);\n if (index2 in hydrated)\n return hydrated[index2];\n const value = values[index2];\n if (!value || typeof value !== \"object\") {\n hydrated[index2] = value;\n } else if (Array.isArray(value)) {\n if (typeof value[0] === \"string\") {\n const type2 = value[0];\n const reviver = revivers == null ? void 0 : revivers[type2];\n if (reviver) {\n return hydrated[index2] = reviver(hydrate(value[1]));\n }\n switch (type2) {\n case \"Date\":\n hydrated[index2] = new Date(value[1]);\n break;\n case \"Set\":\n const set2 = /* @__PURE__ */ new Set();\n hydrated[index2] = set2;\n for (let i = 1; i < value.length; i += 1) {\n set2.add(hydrate(value[i]));\n }\n break;\n case \"Map\":\n const map = /* @__PURE__ */ new Map();\n hydrated[index2] = map;\n for (let i = 1; i < value.length; i += 2) {\n map.set(hydrate(value[i]), hydrate(value[i + 1]));\n }\n break;\n case \"RegExp\":\n hydrated[index2] = new RegExp(value[1], value[2]);\n break;\n case \"Object\":\n hydrated[index2] = Object(value[1]);\n break;\n case \"BigInt\":\n hydrated[index2] = BigInt(value[1]);\n break;\n case \"null\":\n const obj = /* @__PURE__ */ Object.create(null);\n hydrated[index2] = obj;\n for (let i = 1; i < value.length; i += 2) {\n obj[value[i]] = hydrate(value[i + 1]);\n }\n break;\n default:\n throw new Error(`Unknown type ${type2}`);\n }\n } else {\n const array = new Array(value.length);\n hydrated[index2] = array;\n for (let i = 0; i < value.length; i += 1) {\n const n = value[i];\n if (n === HOLE)\n continue;\n array[i] = hydrate(n);\n }\n }\n } else {\n const object = {};\n hydrated[index2] = object;\n for (const key in value) {\n const n = value[key];\n object[key] = hydrate(n);\n }\n }\n return hydrated[index2];\n }\n return hydrate(0);\n}\nfunction stringify(value, reducers) {\n const stringified = [];\n const indexes = /* @__PURE__ */ new Map();\n const custom = [];\n for (const key in reducers) {\n custom.push({ key, fn: reducers[key] });\n }\n const keys = [];\n let p = 0;\n function flatten(thing) {\n if (typeof thing === \"function\") {\n throw new DevalueError(`Cannot stringify a function`, keys);\n }\n if (indexes.has(thing))\n return indexes.get(thing);\n if (thing === void 0)\n return UNDEFINED;\n if (Number.isNaN(thing))\n return NAN;\n if (thing === Infinity)\n return POSITIVE_INFINITY;\n if (thing === -Infinity)\n return NEGATIVE_INFINITY;\n if (thing === 0 && 1 / thing < 0)\n return NEGATIVE_ZERO;\n const index3 = p++;\n indexes.set(thing, index3);\n for (const { key, fn } of custom) {\n const value2 = fn(thing);\n if (value2) {\n stringified[index3] = `[\"${key}\",${flatten(value2)}]`;\n return index3;\n }\n }\n let str = \"\";\n if (is_primitive(thing)) {\n str = stringify_primitive(thing);\n } else {\n const type2 = get_type(thing);\n switch (type2) {\n case \"Number\":\n case \"String\":\n case \"Boolean\":\n str = `[\"Object\",${stringify_primitive(thing)}]`;\n break;\n case \"BigInt\":\n str = `[\"BigInt\",${thing}]`;\n break;\n case \"Date\":\n str = `[\"Date\",\"${thing.toISOString()}\"]`;\n break;\n case \"RegExp\":\n const { source, flags } = thing;\n str = flags ? `[\"RegExp\",${stringify_string(source)},\"${flags}\"]` : `[\"RegExp\",${stringify_string(source)}]`;\n break;\n case \"Array\":\n str = \"[\";\n for (let i = 0; i < thing.length; i += 1) {\n if (i > 0)\n str += \",\";\n if (i in thing) {\n keys.push(`[${i}]`);\n str += flatten(thing[i]);\n keys.pop();\n } else {\n str += HOLE;\n }\n }\n str += \"]\";\n break;\n case \"Set\":\n str = '[\"Set\"';\n for (const value2 of thing) {\n str += `,${flatten(value2)}`;\n }\n str += \"]\";\n break;\n case \"Map\":\n str = '[\"Map\"';\n for (const [key, value2] of thing) {\n keys.push(\n `.get(${is_primitive(key) ? stringify_primitive(key) : \"...\"})`\n );\n str += `,${flatten(key)},${flatten(value2)}`;\n }\n str += \"]\";\n break;\n default:\n if (!is_plain_object(thing)) {\n throw new DevalueError(\n `Cannot stringify arbitrary non-POJOs`,\n keys\n );\n }\n if (Object.getOwnPropertySymbols(thing).length > 0) {\n throw new DevalueError(\n `Cannot stringify POJOs with symbolic keys`,\n keys\n );\n }\n if (Object.getPrototypeOf(thing) === null) {\n str = '[\"null\"';\n for (const key in thing) {\n keys.push(`.${key}`);\n str += `,${stringify_string(key)},${flatten(thing[key])}`;\n keys.pop();\n }\n str += \"]\";\n } else {\n str = \"{\";\n let started = false;\n for (const key in thing) {\n if (started)\n str += \",\";\n started = true;\n keys.push(`.${key}`);\n str += `${stringify_string(key)}:${flatten(thing[key])}`;\n keys.pop();\n }\n str += \"}\";\n }\n }\n }\n stringified[index3] = str;\n return index3;\n }\n const index2 = flatten(value);\n if (index2 < 0)\n return `${index2}`;\n return `[${stringified.join(\",\")}]`;\n}\nfunction stringify_primitive(thing) {\n const type2 = typeof thing;\n if (type2 === \"string\")\n return stringify_string(thing);\n if (thing instanceof String)\n return stringify_string(thing.toString());\n if (thing === void 0)\n return UNDEFINED.toString();\n if (thing === 0 && 1 / thing < 0)\n return NEGATIVE_ZERO.toString();\n if (type2 === \"bigint\")\n return `[\"BigInt\",\"${thing}\"]`;\n return String(thing);\n}\nfunction m(t, a, { initialize: d, type: r }) {\n let o = `${a.$id}-${t.toString()}`, n = new BroadcastChannel$1(o, { type: r }), l = false, e = 0;\n watch(() => a[t], (i) => {\n l || (e = Date.now(), n.postMessage({ timestamp: e, state: parse(stringify(i)) })), l = false;\n }, { deep: true }), n.onmessage = (i) => {\n if (i === void 0) {\n n.postMessage({ timestamp: e, state: parse(stringify(a[t])) });\n return;\n }\n i.timestamp <= e || (l = true, e = i.timestamp, a[t] = i.state);\n };\n let u = () => n.postMessage(void 0), p = () => n.close();\n return d && u(), { sync: u, unshare: p };\n}\nvar h = (t, a) => Object.keys(a).includes(t), g = ({ initialize: t = true, enable: a = true, type: d }) => ({ store: r, options: o }) => {\n var _a, _b;\n let n = ((_a = o == null ? void 0 : o.share) == null ? void 0 : _a.enable) ?? a, l = ((_b = o == null ? void 0 : o.share) == null ? void 0 : _b.omit) ?? [];\n !n || Object.keys(r.$state).forEach((e) => {\n var _a2;\n l.includes(e) || !h(e, r.$state) || m(e, r, { initialize: ((_a2 = o == null ? void 0 : o.share) == null ? void 0 : _a2.initialize) ?? t, type: d });\n });\n};\nconst pinia = createPinia();\npinia.use(\n g({\n enable: true,\n initialize: true\n })\n);\nconst index = {\n install: (app, options) => {\n const appRouter = (options == null ? void 0 : options.router) || router;\n const registry = new Registry(appRouter, options == null ? void 0 : options.getMeta);\n app.use(appRouter);\n app.use(pinia);\n app.provide(\"$registry\", registry);\n if (options == null ? void 0 : options.components) {\n for (const [tag, component] of Object.entries(options.components)) {\n app.component(tag, component);\n }\n }\n }\n};\nexport {\n DoctypeMeta,\n Registry,\n index as Stonecrop,\n useStonecrop\n};\n","<template>\n\t<AForm v-if=\"isReady\" class=\"aform-main\" v-model=\"schema\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\n\nimport { AForm } from '@stonecrop/aform'\nimport type { SchemaTypes } from '@stonecrop/aform/types'\nimport { DoctypeMeta, useStonecrop } from '@stonecrop/stonecrop'\n\nconst { stonecrop, isReady } = useStonecrop()\nconst schema = ref<SchemaTypes[]>([])\n\nwatch(isReady, () => {\n\tif (isReady.value) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n\t\tlet newSchema: SchemaTypes[] = stonecrop.value.schema.schema.toArray()\n\t\tnewSchema.forEach((item, index) => {\n\t\t\tconst record = stonecrop.value.store.record\n\t\t\tconst fieldValue = record[item.fieldname]\n\t\t\tnewSchema[index].value = fieldValue\n\t\t})\n\t\tschema.value = newSchema\n\t}\n})\n\n// const route = useRoute()\n// const doctypeSlug = route.params.records?.toString().toLowerCase()\n// const recordId = route.params.record?.toString().toLowerCase()\n\n// const saveRecord = async () => {\n// \tconst doctype: DoctypeMeta = await stonecrop.value.registry.getMeta(doctypeSlug)\n// \tstonecrop.value.runAction(doctype, 'save', recordId ? [recordId] : [])\n// }\n</script>\n","import { onMounted as Re, ref as x, watch as C, onBeforeUnmount as Oe, computed as _, unref as d, getCurrentScope as we, onScopeDispose as ge, defineComponent as A, inject as P, openBlock as g, createElementBlock as y, createBlock as N, resolveDynamicComponent as be, mergeProps as Q, toDisplayString as L, Fragment as B, createElementVNode as $, renderSlot as E, createCommentVNode as F, useCssVars as ye, withDirectives as G, vShow as xe, toRef as Le, readonly as Pe, customRef as Me, reactive as D, renderList as Y, normalizeStyle as V, createTextVNode as We, provide as He, nextTick as je, createVNode as re, withCtx as se } from \"vue\";\nfunction Ne(t) {\n return we() ? (ge(t), !0) : !1;\n}\nfunction Ee(t) {\n return typeof t == \"function\" ? t() : d(t);\n}\nconst Ve = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst Ue = Object.prototype.toString, Be = (t) => Ue.call(t) === \"[object Object]\", Fe = () => {\n};\nfunction z(t) {\n var e;\n const n = Ee(t);\n return (e = n == null ? void 0 : n.$el) != null ? e : n;\n}\nconst Z = Ve ? window : void 0;\nfunction X(...t) {\n let e, n, o, a;\n if (typeof t[0] == \"string\" || Array.isArray(t[0]) ? ([n, o, a] = t, e = Z) : [e, n, o, a] = t, !e)\n return Fe;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], s = () => {\n l.forEach((m) => m()), l.length = 0;\n }, r = (m, f, c, p) => (m.addEventListener(f, c, p), () => m.removeEventListener(f, c, p)), i = C(\n () => [z(e), Ee(a)],\n ([m, f]) => {\n if (s(), !m)\n return;\n const c = Be(f) ? { ...f } : f;\n l.push(\n ...n.flatMap((p) => o.map((w) => r(m, p, w, c)))\n );\n },\n { immediate: !0, flush: \"post\" }\n ), u = () => {\n i(), s();\n };\n return Ne(u), u;\n}\nfunction ze(t = {}) {\n var e;\n const {\n window: n = Z,\n deep: o = !0\n } = t, a = (e = t.document) != null ? e : n == null ? void 0 : n.document, l = () => {\n var i;\n let u = a == null ? void 0 : a.activeElement;\n if (o)\n for (; u != null && u.shadowRoot; )\n u = (i = u == null ? void 0 : u.shadowRoot) == null ? void 0 : i.activeElement;\n return u;\n }, s = x(), r = () => {\n s.value = l();\n };\n return n && (X(n, \"blur\", (i) => {\n i.relatedTarget === null && r();\n }, !0), X(n, \"focus\", r, !0)), r(), s;\n}\nfunction qe(t, e = {}) {\n const n = ze(e), o = _(() => z(t));\n return { focused: _(() => o.value && n.value ? o.value.contains(n.value) : !1) };\n}\nfunction Ge(t, { window: e = Z, scrollTarget: n } = {}) {\n const o = x(!1), a = () => {\n if (!e)\n return;\n const l = e.document, s = z(t);\n if (!s)\n o.value = !1;\n else {\n const r = s.getBoundingClientRect();\n o.value = r.top <= (e.innerHeight || l.documentElement.clientHeight) && r.left <= (e.innerWidth || l.documentElement.clientWidth) && r.bottom >= 0 && r.right >= 0;\n }\n };\n return C(\n () => z(t),\n () => a(),\n { immediate: !0, flush: \"post\" }\n ), e && X(n || e, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), o;\n}\nconst I = (t) => {\n let e = Ge(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, k = (t) => t.tabIndex >= 0, ae = (t) => {\n const e = t.target;\n return K(e);\n}, K = (t) => {\n var e;\n let n;\n if (t instanceof HTMLTableCellElement) {\n const o = (e = t.parentElement) == null ? void 0 : e.previousElementSibling;\n if (o) {\n const a = Array.from(o.children)[t.cellIndex];\n a && (n = a);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.previousElementSibling;\n o && (n = o);\n }\n return n && (!k(n) || !I(n)) ? K(n) : n;\n}, Ye = (t) => {\n var e;\n const n = t.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const a = (e = n.parentElement) == null ? void 0 : e.parentElement;\n if (a) {\n const l = a.firstElementChild.children[n.cellIndex];\n l && (o = l);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const a = n.parentElement;\n if (a) {\n const l = a.firstElementChild;\n l && (o = l);\n }\n }\n return o && (!k(o) || !I(o)) ? ee(o) : o;\n}, ie = (t) => {\n const e = t.target;\n return ee(e);\n}, ee = (t) => {\n var e;\n let n;\n if (t instanceof HTMLTableCellElement) {\n const o = (e = t.parentElement) == null ? void 0 : e.nextElementSibling;\n if (o) {\n const a = Array.from(o.children)[t.cellIndex];\n a && (n = a);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.nextElementSibling;\n o && (n = o);\n }\n return n && (!k(n) || !I(n)) ? ee(n) : n;\n}, Xe = (t) => {\n var e;\n const n = t.target;\n let o;\n if (n instanceof HTMLTableCellElement) {\n const a = (e = n.parentElement) == null ? void 0 : e.parentElement;\n if (a) {\n const l = a.lastElementChild.children[n.cellIndex];\n l && (o = l);\n }\n } else if (n instanceof HTMLTableRowElement) {\n const a = n.parentElement;\n if (a) {\n const l = a.lastElementChild;\n l && (o = l);\n }\n }\n return o && (!k(o) || !I(o)) ? K(o) : o;\n}, de = (t) => {\n const e = t.target;\n return te(e);\n}, te = (t) => {\n var e;\n let n;\n if (t.previousElementSibling)\n n = t.previousElementSibling;\n else {\n const o = (e = t.parentElement) == null ? void 0 : e.previousElementSibling;\n n = o == null ? void 0 : o.lastElementChild;\n }\n return n && (!k(n) || !I(n)) ? te(n) : n;\n}, ce = (t) => {\n const e = t.target;\n return ne(e);\n}, ne = (t) => {\n var e;\n let n;\n if (t.nextElementSibling)\n n = t.nextElementSibling;\n else {\n const o = (e = t.parentElement) == null ? void 0 : e.nextElementSibling;\n n = o == null ? void 0 : o.firstElementChild;\n }\n return n && (!k(n) || !I(n)) ? ne(n) : n;\n}, ue = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!k(e) || !I(e)) ? ne(e) : e;\n}, fe = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!k(e) || !I(e)) ? te(e) : e;\n}, W = [\"alt\", \"control\", \"shift\", \"meta\"], Je = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, oe = {\n \"keydown.up\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.down\": (t) => {\n const e = ie(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.left\": (t) => {\n const e = de(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.right\": (t) => {\n const e = ce(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.control.up\": (t) => {\n const e = Ye(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.down\": (t) => {\n const e = Xe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.left\": (t) => {\n const e = ue(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.right\": (t) => {\n const e = fe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.end\": (t) => {\n const e = fe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.enter\": (t) => {\n if (t.target instanceof HTMLTableCellElement) {\n t.preventDefault(), t.stopPropagation();\n const e = ie(t);\n e && e.focus();\n }\n },\n \"keydown.shift.enter\": (t) => {\n if (t.target instanceof HTMLTableCellElement) {\n t.preventDefault(), t.stopPropagation();\n const e = ae(t);\n e && e.focus();\n }\n },\n \"keydown.home\": (t) => {\n const e = ue(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.tab\": (t) => {\n const e = ce(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.shift.tab\": (t) => {\n const e = de(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n }\n};\nfunction le(t) {\n const e = (s) => {\n let r = null;\n return s.parent && (typeof s.parent == \"string\" ? r = document.querySelector(s.parent) : s.parent instanceof HTMLElement ? r = s.parent : r = s.parent.value), r;\n }, n = (s) => {\n const r = e(s);\n let i = [];\n if (typeof s.selectors == \"string\")\n i = r ? Array.from(r.querySelectorAll(s.selectors)) : Array.from(document.querySelectorAll(s.selectors));\n else if (Array.isArray(s.selectors))\n for (const u of s.selectors)\n u instanceof HTMLElement ? i.push(u) : i.push(u.$el);\n else if (s.selectors instanceof HTMLElement)\n i.push(s.selectors);\n else if (Array.isArray(s.selectors.value))\n for (const u of s.selectors.value)\n u instanceof HTMLElement ? i.push(u) : i.push(u.$el);\n else\n i.push(s.selectors.value);\n return i;\n }, o = (s) => {\n const r = e(s);\n let i = [];\n return s.selectors ? i = n(s) : r && (i = Array.from(r.children).filter((u) => k(u) && I(u))), i;\n }, a = (s) => (r) => {\n const i = Je[r.key] || r.key.toLowerCase();\n if (W.includes(i))\n return;\n const u = s.handlers || oe;\n for (const m of Object.keys(u)) {\n const [f, ...c] = m.split(\".\");\n if (f === \"keydown\" && c.includes(i)) {\n const p = u[m], w = c.filter((h) => W.includes(h)), v = W.some((h) => {\n const M = h.charAt(0).toUpperCase() + h.slice(1);\n return r.getModifierState(M);\n });\n if (w.length > 0) {\n if (v) {\n for (const h of W)\n if (c.includes(h)) {\n const M = h.charAt(0).toUpperCase() + h.slice(1);\n r.getModifierState(M) && p(r);\n }\n }\n } else\n v || p(r);\n }\n }\n }, l = [];\n Re(() => {\n for (const s of t) {\n const r = e(s), i = o(s), u = a(s), m = r ? [r] : i;\n for (const f of m) {\n const { focused: c } = qe(x(f)), p = C(c, (w) => {\n w ? f.addEventListener(\"keydown\", u) : f.removeEventListener(\"keydown\", u);\n });\n l.push(p);\n }\n }\n }), Oe(() => {\n for (const s of l)\n s();\n });\n}\nconst Qe = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], Ze = { key: 1 }, Ke = /* @__PURE__ */ A({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 }\n },\n setup(t) {\n var w;\n const e = t, n = P(e.tableid), o = x(null), a = x(\"\"), l = x(!1), s = _(() => {\n const v = n.cellData(e.colIndex, e.rowIndex);\n if (n.columns[e.colIndex].format) {\n const h = n.columns[e.colIndex].format;\n return typeof h == \"function\" ? h(v) : typeof h == \"string\" ? Function(`\"use strict\";return (${h})`)()(v) : v;\n } else\n return v;\n }), r = (v) => {\n if (n.columns[e.colIndex].mask, n.columns[e.colIndex].modalComponent) {\n const h = o.value.getBoundingClientRect();\n n.modal.visible = !0, n.modal.colIndex = e.colIndex, n.modal.rowIndex = e.rowIndex, n.modal.parent = o.value, n.modal.top = h.top + h.height, n.modal.left = h.left, n.modal.width = u.value, n.modal.component = n.columns[e.colIndex].modalComponent, n.modal.componentProps = n.columns[e.colIndex].modalComponentProps;\n }\n };\n if (e.addNavigation) {\n let v = {\n ...oe,\n \"keydown.f2\": r,\n \"keydown.alt.up\": r,\n \"keydown.alt.down\": r,\n \"keydown.alt.left\": r,\n \"keydown.alt.right\": r\n };\n typeof e.addNavigation == \"object\" && (v = {\n ...v,\n ...e.addNavigation\n }), le([\n {\n selectors: o,\n handlers: v\n }\n ]);\n }\n const i = _(() => n.columns[e.colIndex].align || \"center\"), u = _(() => n.columns[e.colIndex].width || \"40ch\"), m = () => {\n o.value && (a.value = o.value.textContent);\n }, f = () => {\n o.value && o.value.textContent !== a.value && (a.value = o.value.textContent, o.value.dispatchEvent(new Event(\"change\")), l.value = !0, n.columns[e.colIndex].format || n.setCellData(e.rowIndex, e.colIndex, a.value));\n }, c = (v, h) => h && v === 0 && h > 0 ? `${h}ch` : \"inherit\", p = {\n textAlign: i.value,\n width: u.value,\n backgroundColor: l.value ? \"var(--cell-modified-color)\" : \"inherit\",\n fontWeight: l.value ? \"bold\" : \"inherit\",\n paddingLeft: c(e.colIndex, (w = n.display[e.rowIndex]) == null ? void 0 : w.indent)\n };\n return (v, h) => (g(), y(\"td\", {\n ref_key: \"cell\",\n ref: o,\n \"data-colindex\": v.colIndex,\n \"data-rowindex\": v.rowIndex,\n \"data-editable\": d(n).columns[v.colIndex].edit,\n contenteditable: d(n).columns[v.colIndex].edit,\n tabindex: v.tabIndex,\n spellcheck: !1,\n style: p,\n onFocus: m,\n onPaste: f,\n onBlur: f,\n onInput: f,\n onClick: r,\n onMousedown: r\n }, [\n d(n).columns[v.colIndex].cellComponent ? (g(), N(be(d(n).columns[v.colIndex].cellComponent), Q({\n key: 0,\n value: s.value\n }, d(n).columns[v.colIndex].cellComponentProps), null, 16, [\"value\"])) : (g(), y(\"span\", Ze, L(s.value), 1))\n ], 40, Qe));\n }\n}), S = (t, e) => {\n const n = t.__vccOpts || t;\n for (const [o, a] of e)\n n[o] = a;\n return n;\n}, Ie = /* @__PURE__ */ S(Ke, [[\"__scopeId\", \"data-v-f3597719\"]]), et = [\"tabindex\"], tt = [\"tabindex\"], nt = [\"colspan\"], ot = /* @__PURE__ */ A({\n __name: \"AExpansionRow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: { type: [Boolean, Object] }\n },\n setup(t) {\n const e = t, n = P(e.tableid), o = x(null), a = x(null), l = () => n.display[e.rowIndex].expanded ? \"▼\" : \"►\";\n if (e.addNavigation) {\n const s = {\n \"keydown.control.g\": (r) => {\n r.stopPropagation(), r.preventDefault(), n.toggleRowExpand(e.rowIndex);\n }\n };\n typeof e.addNavigation == \"object\" && Object.assign(s, e.addNavigation), le([\n {\n selectors: o,\n handlers: s\n }\n ]);\n }\n return (s, r) => (g(), y(B, null, [\n $(\"tr\", Q(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n $(\"td\", {\n tabIndex: -1,\n onClick: r[0] || (r[0] = (i) => d(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, L(l()), 1),\n E(s.$slots, \"row\", {}, void 0, !0)\n ], 16, et),\n d(n).display[e.rowIndex].expanded ? (g(), y(\"tr\", {\n key: 0,\n ref_key: \"rowExpanded\",\n ref: a,\n tabindex: s.tabIndex,\n class: \"expanded-row\"\n }, [\n $(\"td\", {\n tabIndex: -1,\n colspan: d(n).columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n E(s.$slots, \"content\", {}, void 0, !0)\n ], 8, nt)\n ], 8, tt)) : F(\"\", !0)\n ], 64));\n }\n}), lt = /* @__PURE__ */ S(ot, [[\"__scopeId\", \"data-v-62bfcc94\"]]), rt = [\"tabindex\"], st = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, at = /* @__PURE__ */ A({\n __name: \"ARow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: { type: [Boolean, Object], default: !1 }\n },\n setup(t) {\n ye((i) => ({\n \"30f057ab\": d(a)\n }));\n const e = t, n = P(e.tableid), o = x(null), a = n.numberedRowWidth.value, l = () => n.config.view !== \"tree\" ? \"\" : n.display[e.rowIndex].isRoot || n.display[e.rowIndex].isParent ? n.display[e.rowIndex].childrenOpen ? \"-\" : \"+\" : \"\", s = _(() => n.config.view !== \"tree\" || n.display[e.rowIndex].isRoot || n.display[e.rowIndex].open), r = (i) => {\n n.toggleRowExpand(i);\n };\n if (e.addNavigation) {\n let i = oe;\n typeof e.addNavigation == \"object\" && (i = {\n ...i,\n ...e.addNavigation\n }), le([\n {\n selectors: o,\n handlers: i\n }\n ]);\n }\n return (i, u) => G((g(), y(\"tr\", {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: i.tabIndex,\n class: \"table-row\"\n }, [\n E(i.$slots, \"index\", {}, () => [\n d(n).config.view === \"list\" ? (g(), y(\"td\", st, L(i.rowIndex + 1), 1)) : d(n).config.view === \"tree\" ? (g(), y(\"td\", {\n key: 1,\n tabIndex: -1,\n class: \"tree-index\",\n onClick: u[0] || (u[0] = (m) => r(i.rowIndex))\n }, L(l()), 1)) : F(\"\", !0)\n ], !0),\n E(i.$slots, \"default\", {}, void 0, !0)\n ], 8, rt)), [\n [xe, s.value]\n ]);\n }\n}), ke = /* @__PURE__ */ S(at, [[\"__scopeId\", \"data-v-762810eb\"]]);\nlet H;\nconst it = new Uint8Array(16);\nfunction dt() {\n if (!H && (H = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !H))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return H(it);\n}\nconst b = [];\nfor (let t = 0; t < 256; ++t)\n b.push((t + 256).toString(16).slice(1));\nfunction ct(t, e = 0) {\n return b[t[e + 0]] + b[t[e + 1]] + b[t[e + 2]] + b[t[e + 3]] + \"-\" + b[t[e + 4]] + b[t[e + 5]] + \"-\" + b[t[e + 6]] + b[t[e + 7]] + \"-\" + b[t[e + 8]] + b[t[e + 9]] + \"-\" + b[t[e + 10]] + b[t[e + 11]] + b[t[e + 12]] + b[t[e + 13]] + b[t[e + 14]] + b[t[e + 15]];\n}\nconst ut = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), pe = {\n randomUUID: ut\n};\nfunction _e(t, e, n) {\n if (pe.randomUUID && !e && !t)\n return pe.randomUUID();\n t = t || {};\n const o = t.random || (t.rng || dt)();\n if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, e) {\n n = n || 0;\n for (let a = 0; a < 16; ++a)\n e[n + a] = o[a];\n return e;\n }\n return ct(o);\n}\nfunction Ce(t) {\n return we() ? (ge(t), !0) : !1;\n}\nfunction R(t) {\n return typeof t == \"function\" ? t() : d(t);\n}\nconst Ae = typeof window < \"u\" && typeof document < \"u\";\ntypeof WorkerGlobalScope < \"u\" && globalThis instanceof WorkerGlobalScope;\nconst ft = Object.prototype.toString, pt = (t) => ft.call(t) === \"[object Object]\", O = () => {\n}, J = /* @__PURE__ */ mt();\nfunction mt() {\n var t, e;\n return Ae && ((t = window == null ? void 0 : window.navigator) == null ? void 0 : t.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((e = window == null ? void 0 : window.navigator) == null ? void 0 : e.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\nconst me = {\n mounted: \"mounted\",\n updated: \"updated\",\n unmounted: \"unmounted\"\n};\nfunction vt(...t) {\n if (t.length !== 1)\n return Le(...t);\n const e = t[0];\n return typeof e == \"function\" ? Pe(Me(() => ({ get: e, set: O }))) : x(e);\n}\nfunction T(t) {\n var e;\n const n = R(t);\n return (e = n == null ? void 0 : n.$el) != null ? e : n;\n}\nconst Se = Ae ? window : void 0;\nfunction U(...t) {\n let e, n, o, a;\n if (typeof t[0] == \"string\" || Array.isArray(t[0]) ? ([n, o, a] = t, e = Se) : [e, n, o, a] = t, !e)\n return O;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], s = () => {\n l.forEach((m) => m()), l.length = 0;\n }, r = (m, f, c, p) => (m.addEventListener(f, c, p), () => m.removeEventListener(f, c, p)), i = C(\n () => [T(e), R(a)],\n ([m, f]) => {\n if (s(), !m)\n return;\n const c = pt(f) ? { ...f } : f;\n l.push(\n ...n.flatMap((p) => o.map((w) => r(m, p, w, c)))\n );\n },\n { immediate: !0, flush: \"post\" }\n ), u = () => {\n i(), s();\n };\n return Ce(u), u;\n}\nlet ve = !1;\nfunction he(t, e, n = {}) {\n const { window: o = Se, ignore: a = [], capture: l = !0, detectIframe: s = !1 } = n;\n if (!o)\n return O;\n J && !ve && (ve = !0, Array.from(o.document.body.children).forEach((c) => c.addEventListener(\"click\", O)), o.document.documentElement.addEventListener(\"click\", O));\n let r = !0;\n const i = (c) => a.some((p) => {\n if (typeof p == \"string\")\n return Array.from(o.document.querySelectorAll(p)).some((w) => w === c.target || c.composedPath().includes(w));\n {\n const w = T(p);\n return w && (c.target === w || c.composedPath().includes(w));\n }\n }), m = [\n U(o, \"click\", (c) => {\n const p = T(t);\n if (!(!p || p === c.target || c.composedPath().includes(p))) {\n if (c.detail === 0 && (r = !i(c)), !r) {\n r = !0;\n return;\n }\n e(c);\n }\n }, { passive: !0, capture: l }),\n U(o, \"pointerdown\", (c) => {\n const p = T(t);\n r = !i(c) && !!(p && !c.composedPath().includes(p));\n }, { passive: !0 }),\n s && U(o, \"blur\", (c) => {\n setTimeout(() => {\n var p;\n const w = T(t);\n ((p = o.document.activeElement) == null ? void 0 : p.tagName) === \"IFRAME\" && !(w != null && w.contains(o.document.activeElement)) && e(c);\n }, 0);\n })\n ].filter(Boolean);\n return () => m.forEach((c) => c());\n}\nconst ht = {\n [me.mounted](t, e) {\n const n = !e.modifiers.bubble;\n if (typeof e.value == \"function\")\n t.__onClickOutside_stop = he(t, e.value, { capture: n });\n else {\n const [o, a] = e.value;\n t.__onClickOutside_stop = he(t, o, Object.assign({ capture: n }, a));\n }\n },\n [me.unmounted](t) {\n t.__onClickOutside_stop();\n }\n};\nfunction q(t) {\n return typeof Window < \"u\" && t instanceof Window ? t.document.documentElement : typeof Document < \"u\" && t instanceof Document ? t.documentElement : t;\n}\nfunction De(t) {\n const e = window.getComputedStyle(t);\n if (e.overflowX === \"scroll\" || e.overflowY === \"scroll\" || e.overflowX === \"auto\" && t.clientWidth < t.scrollWidth || e.overflowY === \"auto\" && t.clientHeight < t.scrollHeight)\n return !0;\n {\n const n = t.parentNode;\n return !n || n.tagName === \"BODY\" ? !1 : De(n);\n }\n}\nfunction wt(t) {\n const e = t || window.event, n = e.target;\n return De(n) ? !1 : e.touches.length > 1 ? !0 : (e.preventDefault && e.preventDefault(), !1);\n}\nconst j = /* @__PURE__ */ new WeakMap();\nfunction gt(t, e = !1) {\n const n = x(e);\n let o = null;\n C(vt(t), (s) => {\n const r = q(R(s));\n if (r) {\n const i = r;\n j.get(i) || j.set(i, i.style.overflow), n.value && (i.style.overflow = \"hidden\");\n }\n }, {\n immediate: !0\n });\n const a = () => {\n const s = q(R(t));\n !s || n.value || (J && (o = U(\n s,\n \"touchmove\",\n (r) => {\n wt(r);\n },\n { passive: !1 }\n )), s.style.overflow = \"hidden\", n.value = !0);\n }, l = () => {\n var s;\n const r = q(R(t));\n !r || !n.value || (J && (o == null || o()), r.style.overflow = (s = j.get(r)) != null ? s : \"\", j.delete(r), n.value = !1);\n };\n return Ce(l), _({\n get() {\n return n.value;\n },\n set(s) {\n s ? a() : l();\n }\n });\n}\nfunction bt() {\n let t = !1;\n const e = x(!1);\n return (n, o) => {\n if (e.value = o.value, t)\n return;\n t = !0;\n const a = gt(n, o.value);\n C(e, (l) => a.value = l);\n };\n}\nbt();\nclass yt {\n constructor(e, n, o, a, l, s) {\n this.id = e || _e(), this.rows = o, this.columns = D(n), this.config = D(a), this.table = l || D(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = D({ visible: !1 });\n }\n createTableObject() {\n const e = {};\n for (const [n, o] of this.columns.entries())\n for (const [a, l] of this.rows.entries())\n e[`${n}:${a}`] = l[o.name];\n return e;\n }\n createDisplayObject(e) {\n const n = [Object.assign({}, { modified: !1 })];\n if (e && \"0:0\" in e)\n return e;\n const o = /* @__PURE__ */ new Set();\n for (let a = this.rows.length - 1; a >= 0; a--) {\n const l = this.rows[a];\n l.parent && o.add(l.parent), n[a] = {\n childrenOpen: !1,\n expanded: !1,\n indent: l.indent || null,\n isParent: o.has(a),\n isRoot: l.parent === null || l.parent === void 0,\n modified: !1,\n open: l.parent === null || l.parent === void 0,\n parent: l.parent\n };\n }\n return D(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return _(() => String(Math.ceil(this.rows.length / 100) + 1) + \"ch\");\n }\n cellData(e, n) {\n return this.table[`${e}:${n}`];\n }\n setCellData(e, n, o) {\n this.table[`${n}:${e}`] !== o && (this.display[e].modified = !0), this.table[`${n}:${e}`] = o;\n const a = this.columns[n];\n return this.rows[e][a.name] = o, this.table[`${n}:${e}`];\n }\n toggleRowExpand(e) {\n if (this.config.view === \"tree\") {\n this.display[e].childrenOpen = !this.display[e].childrenOpen;\n for (let n = this.rows.length - 1; n >= 0; n--)\n this.display[n].parent === e && (this.display[n].open = !this.display[n].open, this.display[n].childrenOpen && this.toggleRowExpand(n));\n } else\n this.config.view === \"list-expansion\" && (this.display[e].expanded = !this.display[e].expanded);\n }\n}\nconst xt = {\n key: 0,\n id: \"resizable\"\n}, Et = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, It = {\n key: 0,\n id: \"header-index\"\n}, kt = /* @__PURE__ */ A({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n config: {},\n tableid: {}\n },\n setup(t) {\n ye((l) => ({\n \"0c61081d\": d(o)\n }));\n const n = P(t.tableid), o = n.numberedRowWidth.value, a = (l) => ({\n minWidth: l.width || \"40ch\",\n textAlign: l.align || \"center\",\n width: n.config.fullWidth ? \"auto\" : null\n });\n return (l, s) => l.columns.length ? (g(), y(\"thead\", xt, [\n $(\"tr\", Et, [\n d(n).zeroColumn ? (g(), y(\"th\", It)) : F(\"\", !0),\n (g(!0), y(B, null, Y(l.columns, (r, i) => (g(), y(\"th\", {\n key: i,\n tabindex: \"-1\",\n style: V(a(r))\n }, [\n E(l.$slots, \"default\", {}, () => [\n We(L(r.label || String.fromCharCode(i + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : F(\"\", !0);\n }\n}), Te = /* @__PURE__ */ S(kt, [[\"__scopeId\", \"data-v-b0bfa37f\"]]), _t = /* @__PURE__ */ A({\n __name: \"ATableModal\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {}\n },\n setup(t) {\n P(t.tableid);\n const n = (o) => {\n o.stopPropagation();\n };\n return (o, a) => (g(), y(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n onClick: n,\n onInput: n\n }, [\n E(o.$slots, \"default\", {}, void 0, !0)\n ], 544));\n }\n}), $e = /* @__PURE__ */ S(_t, [[\"__scopeId\", \"data-v-10a48b2a\"]]), Ct = /* @__PURE__ */ A({\n __name: \"ATable\",\n props: {\n id: {},\n modelValue: {},\n columns: {},\n rows: { default: () => [] },\n config: { default: () => new Object() },\n tableid: {}\n },\n emits: [\"update:modelValue\"],\n setup(t, { emit: e }) {\n const n = t, o = e;\n let a = n.modelValue ? n.modelValue : n.rows, l = new yt(n.id, n.columns, a, n.config);\n He(l.id, l), C(\n () => l.rows,\n (r) => {\n o(\"update:modelValue\", r);\n },\n { deep: !0 }\n );\n const s = (r) => {\n var i;\n r.target instanceof Node && (i = l.modal.parent) != null && i.contains(r.target) || l.modal.visible && (l.modal.visible = !1);\n };\n return window.addEventListener(\"keydown\", async (r) => {\n if (r.key === \"Escape\" && l.modal.visible) {\n l.modal.visible = !1;\n const i = l.modal.parent;\n i && (await je(), i.focus());\n }\n }), (r, i) => G((g(), y(\"table\", {\n class: \"atable\",\n style: V({ width: d(l).config.fullWidth ? \"100%\" : \"auto\" })\n }, [\n E(r.$slots, \"header\", { data: d(l) }, () => [\n re(Te, {\n columns: d(l).columns,\n config: d(l).config,\n tableid: d(l).id\n }, null, 8, [\"columns\", \"config\", \"tableid\"])\n ], !0),\n $(\"tbody\", null, [\n E(r.$slots, \"body\", { data: d(l) }, () => [\n (g(!0), y(B, null, Y(d(l).rows, (u, m) => (g(), N(ke, {\n key: u.id || d(_e)(),\n row: u,\n rowIndex: m,\n tableid: d(l).id\n }, {\n default: se(() => [\n (g(!0), y(B, null, Y(d(l).columns, (f, c) => (g(), N(Ie, {\n key: `${c}:${m}`,\n tableid: d(l).id,\n col: f,\n spellcheck: \"false\",\n rowIndex: m,\n colIndex: c + (d(l).zeroColumn ? 0 : -1),\n component: f.cellComponent,\n style: V({\n textAlign: (f == null ? void 0 : f.align) || \"center\",\n minWidth: (f == null ? void 0 : f.width) || \"40ch\",\n width: d(l).config.fullWidth ? \"auto\" : null\n })\n }, null, 8, [\"tableid\", \"col\", \"rowIndex\", \"colIndex\", \"component\", \"style\"]))), 128))\n ]),\n _: 2\n }, 1032, [\"row\", \"rowIndex\", \"tableid\"]))), 128))\n ], !0)\n ]),\n E(r.$slots, \"footer\", { data: d(l) }, void 0, !0),\n E(r.$slots, \"modal\", { data: d(l) }, () => [\n G(re($e, {\n colIndex: d(l).modal.colIndex,\n rowIndex: d(l).modal.rowIndex,\n tableid: d(l).id,\n style: V({\n left: d(l).modal.left + \"px\",\n top: d(l).modal.top + \"px\",\n maxWidth: d(l).modal.width + \"px\"\n })\n }, {\n default: se(() => [\n (g(), N(be(d(l).modal.component), Q({\n key: `${d(l).modal.rowIndex}:${d(l).modal.colIndex}`,\n colIndex: d(l).modal.colIndex,\n rowIndex: d(l).modal.rowIndex,\n tableid: d(l).id\n }, d(l).modal.componentProps), null, 16, [\"colIndex\", \"rowIndex\", \"tableid\"]))\n ]),\n _: 1\n }, 8, [\"colIndex\", \"rowIndex\", \"tableid\", \"style\"]), [\n [xe, d(l).modal.visible]\n ])\n ], !0)\n ], 4)), [\n [d(ht), s]\n ]);\n }\n}), At = /* @__PURE__ */ S(Ct, [[\"__scopeId\", \"data-v-f0f87ebf\"]]);\nfunction Dt(t) {\n t.component(\"ACell\", Ie), t.component(\"AExpansionRow\", lt), t.component(\"ARow\", ke), t.component(\"ATable\", At), t.component(\"ATableHeader\", Te), t.component(\"ATableModal\", $e);\n}\nexport {\n Ie as ACell,\n lt as AExpansionRow,\n ke as ARow,\n At as ATable,\n Te as ATableHeader,\n $e as ATableModal,\n yt as TableDataStore,\n Dt as install\n};\n//# sourceMappingURL=atable.js.map\n","<template>\n\t<ATable\n\t\tv-if=\"isReady\"\n\t\t:columns=\"stonecrop.schema.schema.toArray()\"\n\t\t:rows=\"stonecrop.store.records\"\n\t\t:config=\"config\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ATable } from '@stonecrop/atable'\nimport { useStonecrop } from '@stonecrop/stonecrop'\n\n// TODO: use component if provided else call to Records Schema endpoint/ table / lookup\n// alteratively: a view: component map, eg records: Records, gantt: GanttView\n// default_view key in schema\n// last_used_view_type in application state\n\nconst { stonecrop, isReady } = useStonecrop()\nconst config = { view: 'list' }\n</script>\n","<template>\n\t<footer>\n\t\t<ul class=\"tabs\">\n\t\t\t<li class=\"hidebreadcrumbs\" @click=\"toggleBreadcrumbs\" @keydown.enter=\"toggleBreadcrumbs\">\n\t\t\t\t<a tabindex=\"0\"><div :class=\"rotateHideTabIcon\">×</div></a>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tclass=\"hometab\"\n\t\t\t\t@click=\"navigateHome\"\n\t\t\t\t@keydown.enter=\"navigateHome\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<router-link to=\"/home\" tabindex=\"0\">\n\t\t\t\t\t<svg\n\t\t\t\t\t\tversion=\"1.1\"\n\t\t\t\t\t\tid=\"Capa_1\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\n\t\t\t\t\t\tx=\"0px\"\n\t\t\t\t\t\ty=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 424.098 424.098\"\n\t\t\t\t\t\tstyle=\"enable-background: new 0 0 424.098 424.098\"\n\t\t\t\t\t\txml:space=\"preserve\">\n\t\t\t\t\t\t<g>\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\tstyle=\"fill: #010002\"\n\t\t\t\t\t\t\t\td=\"M351.191,401.923H72.901c-4.487,0-8.129-3.633-8.129-8.129V242.262l-56.664-0.114\n\t\t\t\t\t\t\t\tc-3.284-0.008-6.243-1.992-7.495-5.023c-1.252-3.04-0.553-6.527,1.764-8.852L206.104,24.546c1.853-1.845,4.503-2.666,7.047-2.276\n\t\t\t\t\t\t\t\tc2.414,0.39,4.511,1.845,5.731,3.942l47.43,47.43V58.499c0-4.487,3.633-8.129,8.129-8.129h47.755c4.495,0,8.129,3.642,8.129,8.129\n\t\t\t\t\t\t\t\tv79.156l91.39,91.398c2.325,2.325,3.024,5.828,1.764,8.868c-1.26,3.032-4.227,5.007-7.511,5.007c-0.008,0-0.008,0-0.016,0\n\t\t\t\t\t\t\t\tl-56.64-0.114v150.98C359.32,398.29,355.686,401.923,351.191,401.923z M81.03,385.666h262.033V234.67\n\t\t\t\t\t\t\t\tc0-2.162,0.854-4.235,2.39-5.755c1.528-1.52,3.585-2.374,5.739-2.374c0.008,0,0.008,0,0.016,0l45.105,0.089l-79.855-79.863\n\t\t\t\t\t\t\t\tc-1.528-1.528-2.382-3.593-2.382-5.747V66.628h-31.498v26.645c0,3.284-1.975,6.251-5.015,7.511\n\t\t\t\t\t\t\t\tc-3.032,1.268-6.527,0.569-8.86-1.764l-57.038-57.038l-183.95,183.95l45.203,0.089c4.487,0.008,8.112,3.642,8.112,8.129\n\t\t\t\t\t\t\t\tC81.03,234.149,81.03,385.666,81.03,385.666z\" />\n\t\t\t\t\t\t</g>\n\t\t\t\t\t</svg>\n\t\t\t\t</router-link>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tclass=\"searchtab\"\n\t\t\t\t@click=\"toggleSearch\"\n\t\t\t\t@keydown.enter=\"toggleSearch\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<a tabindex=\"0\">\n\t\t\t\t\t<span :style=\"{ display: searchVisibile ? 'none' : 'block' }\">\n\t\t\t\t\t\t<svg style=\"width: 11pt\">\n\t\t\t\t\t\t\t<g transform=\"matrix(-0.08088215,0,0,0.08088215,9.8016177,3.1263021e-6)\">\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td=\"M 93.148438,80.832031 C 109.5,57.742188 104.03125,25.769531 80.941406,9.421875 57.851562,-6.925781 25.878906,-1.460938 9.53125,21.632812 -6.816406,44.722656 -1.351562,76.691406 21.742188,93.039062 38.222656,104.70703 60.011719,105.60547 77.394531,95.339844 l 37.769529,37.542966 c 4.07813,4.29297 10.86328,4.46485 15.15625,0.38672 4.29297,-4.07422 4.46485,-10.85937 0.39063,-15.15234 -0.12891,-0.13672 -0.25391,-0.26172 -0.39063,-0.39063 z m -41.839844,3.5 C 33.0625,84.335938 18.269531,69.554688 18.257812,51.308594 18.253906,33.0625 33.035156,18.269531 51.285156,18.261719 c 18.222656,-0.0078 33.007813,14.75 33.042969,32.972656 0.03125,18.25 -14.742187,33.066406 -32.996094,33.097656 -0.0078,0 -0.01172,0 -0.02344,0 z m 0,0\"\n\t\t\t\t\t\t\t\t\tstyle=\"fill: #000000; fill-opacity: 1; fill-rule: nonzero; stroke: none\"\n\t\t\t\t\t\t\t\t\tid=\"path2\" />\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input\n\t\t\t\t\t\tv-model=\"searchText\"\n\t\t\t\t\t\tref=\"searchinput\"\n\t\t\t\t\t\t:style=\"{ display: searchVisibile ? 'block' : 'none' }\"\n\t\t\t\t\t\t@click=\"handleSearchInput($event)\"\n\t\t\t\t\t\t@input=\"handleSearchInput($event)\"\n\t\t\t\t\t\t@blur=\"handleSearch($event)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSearch($event)\"\n\t\t\t\t\t\ttype=\"text\" />\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tv-for=\"(breadcrumb, index) in breadcrumbs\"\n\t\t\t\t:key=\"index\"\n\t\t\t\t:style=\"{ display: breadcrumbsVisibile ? 'block' : 'none' }\">\n\t\t\t\t<router-link tabindex=\"0\" :to=\"breadcrumb.to\"> {{ breadcrumb.title }} </router-link>\n\t\t\t</li>\n\t\t</ul>\n\t</footer>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref } from 'vue'\n\nconst props = defineProps<{\n\tbreadcrumbs?: { title: string; to: string }[]\n}>()\n\nconst breadcrumbs = ref([])\nconst breadcrumbsVisibile = ref(true)\nconst searchVisibile = ref(false)\nconst searchText = ref('')\nconst searchinput = ref<HTMLElement>(null)\n\nconst rotateHideTabIcon = computed(() => {\n\treturn breadcrumbsVisibile.value ? 'unrotated' : 'rotated'\n})\n\nonMounted(() => {\n\tbreadcrumbs.value = props.breadcrumbs || []\n})\n\nconst toggleBreadcrumbs = () => {\n\tbreadcrumbsVisibile.value = !breadcrumbsVisibile.value\n}\n\nconst toggleSearch = async () => {\n\tsearchVisibile.value = !searchVisibile.value\n\tawait nextTick(() => {\n\t\tsearchinput.value.focus()\n\t})\n}\n\nconst handleSearchInput = (event: Event | MouseEvent) => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nconst handleSearch = async (event: FocusEvent | KeyboardEvent) => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n\tawait toggleSearch()\n}\n\nconst navigateHome = (/* event: MouseEvent | KeyboardEvent */) => {\n\t// navigate home\n}\n</script>\n\n<style scoped>\nfooter {\n\tposition: fixed;\n\tbottom: 0px;\n\twidth: 100%;\n\tbackground-color: transparent;\n\theight: 2rem;\n\tz-index: 100;\n\ttext-align: left;\n\tfont-size: 100%;\n\tdisplay: flex;\n\tjustify-content: right;\n\tpadding-bottom: 0.2rem;\n}\nul {\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n}\n\n.tabs li {\n\t/* Makes a horizontal row */\n\tfloat: left;\n\tlist-style-type: none;\n\t/* So the psueudo elements can be\n abs. positioned inside */\n\tposition: relative;\n\tmargin-left: -1px;\n}\n.tabs a {\n\tfloat: left;\n\tpadding: 1ch 4ch 4ch 4ch;\n\ttext-decoration: none;\n\tcolor: black;\n\tbackground: #aaa;\n\toutline: 2px solid inherit;\n\toutline-offset: -2px;\n\n\t/* Only round the top corners */\n\t-webkit-border-top-left-radius: 15px;\n\t-webkit-border-top-right-radius: 15px;\n\t-moz-border-radius-topleft: 15px;\n\t-moz-border-radius-topright: 15px;\n\tborder-top-left-radius: 15px;\n\tborder-top-right-radius: 15px;\n\n\tborder: 1px solid #ccc;\n}\n.tabs .router-link-active {\n\t/* Highest, active tab is on top */\n\tz-index: 3;\n}\n.router-link-active {\n\t/* Colors when tab is active */\n\tbackground: #827553;\n\tcolor: black;\n\tbox-shadow: #999;\n}\n.tabs li:before,\n.tabs li:after,\n.tabs li a:before,\n.tabs li a:after {\n\t/* All pseudo elements are\n abs. positioned and on bottom */\n\tposition: absolute;\n\tbottom: 0;\n}\n/* Only the first, last, and active\n tabs need pseudo elements at all */\n.tabs li:last-child:after,\n.tabs li:last-child a:after,\n.tabs li:first-child:before,\n.tabs li:first-child a:before,\n.tabs .router-link-active:after,\n.tabs .router-link-active:before,\n.tabs .router-link-active a:after,\n.tabs .router-link-active a:before {\n\tcontent: '';\n}\n.tabs .router-link-active:before,\n.tabs .router-link-active:after {\n\tbackground: transparent;\n\n\t/* Squares below circles */\n\tz-index: 1;\n}\n/* Squares */\n.tabs li:before,\n.tabs li:after {\n\tbackground: transparent;\n\twidth: 10px;\n\theight: 10px;\n}\n.tabs li:before {\n\tleft: -10px;\n}\n.tabs li:after {\n\tright: -10px;\n}\n/* Circles */\n.tabs li a:after,\n.tabs li a:before {\n\twidth: 20px;\n\theight: 20px;\n\t/* Circles are circular */\n\t-webkit-border-radius: 10px;\n\t-moz-border-radius: 10px;\n\tborder-radius: 10px;\n\tbackground: transparent;\n\n\t/* Circles over squares */\n\tz-index: 2;\n}\n.tabs .router-link-active a:after,\n.tabs .router-link-active a:before {\n\tbackground: transparent;\n}\n/* First and last tabs have different\n outside color needs */\n.tabs li:first-child.router-link-active a:before,\n.tabs li:last-child.router-link-active a:after {\n\tbackground: transparent;\n}\n.tabs li a:before {\n\tleft: -20px;\n}\n.tabs li a:after {\n\tright: -20px;\n}\n.hidebreadcrumbs a {\n\twidth: 1ch;\n\tmin-width: calc(66px - 4ch);\n\tbackground-color: #ffffff;\n\tpadding-left: 2ch;\n\tpadding-right: 2ch;\n\tpadding-top: 3px;\n\tfont-size: 150%;\n\ttext-align: center;\n}\n.rotated {\n\t/* border: 1px solid red; */\n\ttransform: rotate(45deg);\n\t-webkit-transform: rotate(45deg);\n\t-moz-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\t-o-transform: rotate(45deg);\n\ttransition: transform 250ms;\n}\n.unrotated {\n\t/* border: 1px solid red; */\n\ttransform: rotate(0deg);\n\t-webkit-transform: rotate(0deg);\n\t-moz-transform: rotate(0deg);\n\t-ms-transform: rotate(0deg);\n\t-o-transform: rotate(0deg);\n\ttransition: transform 250ms;\n}\nli:active,\nli:hover,\nli:focus,\nli > a:active,\nli > a:hover,\nli > a:focus {\n\tz-index: 3;\n}\n\na:active,\na:hover,\na:focus {\n\toutline: 2px solid black;\n\tz-index: 3;\n}\n.hometab a {\n\twidth: 1ch;\n\tmin-width: calc(66px - 4ch);\n\tbackground-color: #ffffff;\n\tpadding-left: 2ch;\n\tpadding-right: 2ch;\n\tpadding-top: 6px;\n\ttext-align: center;\n}\n.hometab svg {\n\theight: 14pt;\n\twidth: 14pt;\n}\n.searchtab a {\n\t/* width: 100%; */\n\tmin-width: calc(66px - 4ch);\n\tbackground-color: #ffffff;\n\tpadding-left: 2ch;\n\tpadding-right: 2ch;\n\tpadding-top: 11px;\n\tfont-size: 150%;\n\talign-items: center;\n}\n.searchtab svg {\n\tpadding-left: 0.25ch;\n}\n.searchtab input {\n\tmargin-top: -4px;\n\toutline: none;\n\tborder: none;\n\tborder-bottom: 1.5px solid black;\n\tbackground-color: transparent;\n\ttext-align: right;\n\tfont-size: 11pt;\n}\n</style>\n","import { App } from 'vue'\n\nimport ActionSet from '@/components/ActionSet.vue'\nimport CommandPalette from '@/components/CommandPalette.vue'\nimport Doctype from '@/components/Doctype.vue'\nimport Records from '@/components/Records.vue'\nimport SheetNav from '@/components/SheetNav.vue'\n\nexport default {\n\tinstall: (app: App) => {\n\t\tapp.component('ActionSet', ActionSet)\n\t\tapp.component('CommandPalette', CommandPalette)\n\t\tapp.component('Doctype', Doctype)\n\t\tapp.component('Records', Records)\n\t\tapp.component('SheetNav', SheetNav)\n\t},\n}\n"],"names":["props","__props","_elements","ref","isOpen","timeout","hover","closeClicked","onMounted","closeDropdowns","element","onHover","onHoverLeave","toggleDropdown","index","showDropdown","_cache","S","l","ct","A","m","r","i","d","s","H","v","g","F","R","K","ke","_e","f","ce","NotImplementedError","message","Stonecrop","registry","store","schema","workflow","actions","doctype","doctypeRegistry","filters","data","id","action","initialState","action2","isVue2","set","target","key","val","del","getDevtoolsGlobalHook","getTarget","isProxyAvailable","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","supported","perf","isPerformanceSupported","_a","now$1","ApiProxy","plugin","hook","defaultSettings","item","localSettingsSaveId","currentSettings","raw","value","pluginId","_target","prop","args","resolve","setupDevtoolsPlugin","pluginDescriptor","setupFn","descriptor","enableProxy","proxy","activePinia","setActivePinia","pinia2","piniaSymbol","isPlainObject","o","MutationType","MutationType2","IS_CLIENT","USE_DEVTOOLS","_global","bom","blob","autoBom","download","url","name","opts","xhr","saveAs","corsEnabled","click","node","evt","_navigator","isMacOSWebView","downloadSaveAs","msSaveAs","fileSaverSaveAs","a","popup","force","isSafari","isChromeIOS","reader","toastMessage","type2","piniaMessage","isPinia","checkClipboardAccess","checkNotFocusedError","error","actionGlobalCopyState","actionGlobalPasteState","loadStoresState","actionGlobalSaveState","fileInput","getFileOpener","openFile","reject","files","file","actionGlobalOpenStateFile","result","text","state","storeState","formatDisplay$1","display","PINIA_ROOT_LABEL","PINIA_ROOT_ID","formatStoreForInspectorTree","formatStoreForInspectorState","storeNames","storeMap","storeId","store2","getters","getterName","formatEventData","events","event","formatMutationType","isTimelineActive","componentStateTypes","MUTATIONS_LAYER_ID","INSPECTOR_ID","assign$1","getStoreType","registerPiniaDevtools","app","api","nodeId","payload","ctx","piniaStores","toRaw","stores","inspectedStore","path","addStoreToDevtools","now2","after","onError","groupId","runningActionId","activeAction","watch","unref","newValue","oldValue","eventData","hotUpdate","markRaw","newStore","$dispose","patchActionForGrouping","actionNames","wrapWithProxy","storeActions","actionName","_actionId","trackedStore","retValue","devtoolsPlugin","options","originalHotUpdate","createPinia","scope","effectScope","_p","toBeInstalled","patchObject","newState","oldState","subPatch","targetValue","isRef","isReactive","noop$1","addSubscription","subscriptions","callback","detached","onCleanup","removeSubscription","idx","getCurrentScope","onScopeDispose","triggerSubscriptions","fallbackRunWithContext","fn","mergeReactiveObjects","patchToApply","skipHydrateSymbol","shouldHydrate","obj","assign$2","isComputed","createOptionsStore","hot","setup","localState","toRefs","computedGetters","computed","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","debuggerEvents","isSyncListening","actionSubscriptions","hotState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","nextTick","$reset","$state","wrapAction","afterCallbackList","onErrorCallbackList","ret","_hmrPayload","partialStore","options2","stopWatcher","reactive","setupStore","toRef","actionValue","stateKey","newStateTarget","oldStateSource","getter","getterValue","nonEnumerable","p","extender","extensions","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","hasInjectionContext","inject","hotId","currentInstance","getCurrentInstance","vm","cache","useDataStore","records","record","useStonecrop","stonecrop","isReady","onBeforeMount","_b","route","doctypeSlug","recordId","isBrowser","isESModule","assign","applyToParams","params","newParams","isArray","noop","warn","msg","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery2","location2","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery2","stripBase","pathname","base","isSameRouteLocation","b","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","NavigationType","NavigationType2","NavigationDirection","NavigationDirection2","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","foundEl","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","listener","pauseListeners","listen","teardown","index2","beforeUnloadListener","history2","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","replace2","hashIndex","err","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","isRouteName","START_LOCATION_NORMALIZED","NavigationFailureSymbol","NavigationFailureType","NavigationFailureType2","ErrorTypeMessages","stringifyRoute","createRouterError","isNavigationFailure","propertiesToLog","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re2","subPattern","re","parse2","match","stringify2","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","parent","parser","existingKeys","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","mergeOptions","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","checkChildMissingNameWithEmptyPath","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","checkMissingParamsInAbsolutePath","checkSameParams","isAliasRecord","removeRoute","children","insertMatcher","matcherRef","getRoutes","isRecordChildOf","invalidParams","paramName","k","paramsFromLocation","m2","matched","parentMatcher","mergeMetaFields","normalizeRecordProps","propsObject","meta","defaults","partialOptions","isSameParam","child","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","parseQuery","searchParams","searchParam","eqPos","currentValue","stringifyQuery","value2","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","enterCallbackArray","next","valid","guardReturn","canOnlyBeCalledOnce","guardCall","resolvedValue","called","extractComponentsGuards","guardType","guards","rawComponent","promise","isRouteComponent","componentPromise","resolved","resolvedComponent","component","useLink","router2","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","e","guardEvent","instance","linkContextDevtools","watchEffect","RouterLinkImpl","defineComponent","slots","link","elClass","getLinkClass","h$1","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","warnDeprecatedUsage","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","provide","viewRef","oldInstance","oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","vnode","info","slot","slotContent","RouterView","parentName","parentSubTreeType","formatRouteLocation","routeLocation","tooltip","copy","omit","formatDisplay","routerId","addDevtools","componentInstance","PINK_500","devtoolsData","backgroundColor","ORANGE_400","LIME_500","BLUE_600","refreshRoutesView","routerInspectorId","navigationsLayerId","navigationId","failure","activeRoutesPayload","resetMatchStateOnRouteRecord","isRouteMatching","markRouteRecordActive","formatRouteRecordForInspector","route2","formatRouteRecordMatcherForStateInspector","modifierForKey","fields","CYAN_400","DARK","tags","routeRecordId","EXTRACT_REGEXP_RE","childRoute","filter","found","decodedPath","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matchedRoute2","href2","matcherLocation","targetParams","fullPath","href","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","shouldRedirect","toLocation","handleScroll","markAsReady","triggerError","failure2","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","runWithContext","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","readyHandlers","errorListeners","ready","list","resolve2","scrollBehavior","started","router22","reactiveRoute","shallowReactive","unmountApp","len","recordFrom","recordTo","isPromise","PROMISE_RESOLVED_VOID","sleep","time","resolveWith","res","randomInt","min","max","randomToken","lastMs","additional","microSeconds$4","ms","microSeconds$3","type$3","create$3","channelName","close$3","channelState","postMessage$3","messageJson","onMessage$3","canBeUsed$3","averageResponseTime$3","NativeMethod","ObliviousSet","ObliviousSet2","ttl","_this","now","removeTooOldValues","obliviousSet","olderThen","iterator","fillOptionsWithDefaults","originalOptions","microSeconds$2","DB_PREFIX","OBJECT_STORE_ID","TRANSACTION_SETTINGS","type$2","getIdb","commitIndexedDBTransaction","tx","createDatabase","IndexedDB","dbName","openRequest","ev","db","rej","writeMessage","readerUuid","writeObject","objectStore","getMessagesHigherThan","lastCursorId","keyRangeValue","getAllRequest","openCursor","openCursorRequest","cursor","removeMessagesById","ids","deleteRequest","getOldMessages","msgObk","cleanOldMessages","tooOld","create$2","_readLoop","readNewMessages","_filterMessage","msgObj","newerMessages","useMessages","msgObjA","msgObjB","close$2","postMessage$2","onMessage$2","canBeUsed$2","averageResponseTime$2","IndexedDBMethod","microSeconds$1","KEY_PREFIX","type$1","getLocalStorage","localStorage2","storageKey","postMessage$1","writeObj","addStorageEventListener","removeStorageEventListener","create$1","canBeUsed$1","uuid","eMIs","close$1","onMessage$1","ls","averageResponseTime$1","defaultTime","userAgent","LocalstorageMethod","microSeconds","type","SIMULATE_CHANNELS","create","close","postMessage","channelArray","channel","onMessage","canBeUsed","averageResponseTime","SimulateMethod","METHODS","chooseMethod","chooseMethods","useMethod","method","OPEN_BROADCAST_CHANNELS","lastId","BroadcastChannel$1","_prepareChannel","_post","listenObj","_removeListenerObject","_addListenerObject","obj2","awaitPrepare","broadcastChannel","sendPromise","maybePromise","_hasMessageListeners","_startListening","_stopListening","listenerFn","listenerObject","hundredMsInMicro","minMessageTime","DevalueError","is_primitive","thing","object_proto_names","is_plain_object","proto","get_type","get_escaped_char","stringify_string","str","last_pos","replacement","UNDEFINED","HOLE","NAN","POSITIVE_INFINITY","NEGATIVE_INFINITY","NEGATIVE_ZERO","parse","serialized","revivers","unflatten","parsed","hydrate","values","hydrated","standalone","reviver","set2","map","array","n","object","stringify","reducers","stringified","indexes","custom","flatten","index3","stringify_primitive","source","flags","t","u","h","_a2","pinia","newSchema","fieldValue","Ne","we","ge","Ee","Ve","Ue","Be","Fe","z","Z","X","c","C","w","ze","x","qe","_","Ge","I","ae","Ye","ee","ie","Xe","de","te","ne","ue","fe","W","Je","oe","le","M","Re","Oe","Qe","Ze","Ke","P","y","N","be","Q","L","Ie","rt","st","at","ye","G","E","xe","it","dt","ut","pe","Ce","Ae","ft","pt","O","J","mt","me","vt","Le","Pe","Me","T","Se","U","ve","he","ht","q","De","wt","j","gt","bt","yt","D","xt","Et","It","kt","$","B","Y","V","We","Te","_t","$e","Ct","He","je","se","At","config","breadcrumbs","breadcrumbsVisibile","searchVisibile","searchText","searchinput","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","ActionSet","CommandPalette","Doctype","Records","SheetNav"],"mappings":"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"}