diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 650820d2..0b011065 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -55,9 +55,10 @@ jobs: - name: Coverage Report if: always() # Also generate the report if tests are failing - uses: davelosert/vitest-coverage-report-action@v1 + uses: davelosert/vitest-coverage-report-action@v2 with: working-directory: ./aform + file-coverage-mode: 'all' vite-config-path: './vite.config.ts' atable: @@ -93,7 +94,8 @@ jobs: - name: Coverage Report if: always() # Also generate the report if tests are failing - uses: davelosert/vitest-coverage-report-action@v1 + uses: davelosert/vitest-coverage-report-action@v2 with: working-directory: ./atable + file-coverage-mode: 'all' vite-config-path: './vite.config.ts' diff --git a/aform/.eslintrc.cjs b/aform/.eslintrc.cjs index df6db8a4..c94606f7 100644 --- a/aform/.eslintrc.cjs +++ b/aform/.eslintrc.cjs @@ -61,5 +61,5 @@ module.exports = { '@typescript-eslint/no-unsafe-return': 'off', }, - ignorePatterns: ['.eslintrc.cjs', '*.config.ts', 'node_modules/', 'dist/'], + ignorePatterns: ['.eslintrc.cjs', '*.config.ts', '*.spec.ts', 'node_modules/', 'dist/'], } diff --git a/aform/dist/aform.js b/aform/dist/aform.js index 95a0ed65..26f0ae90 100644 --- a/aform/dist/aform.js +++ b/aform/dist/aform.js @@ -659,7 +659,7 @@ const mt = /* @__PURE__ */ M(it, [["render", ft]]), vt = /* @__PURE__ */ D({ }, l(u)), null, 16, ["schema", "modelValue", "onUpdate:modelValue", "data", "readonly"]))), 128)) ])); } -}), pe = /* @__PURE__ */ M(gt, [["__scopeId", "data-v-74d66cf2"]]), yt = /* @__PURE__ */ D({ +}), pe = /* @__PURE__ */ M(gt, [["__scopeId", "data-v-82492bb4"]]), yt = /* @__PURE__ */ D({ __name: "AFieldset", props: { schema: {}, diff --git a/aform/dist/aform.js.map b/aform/dist/aform.js.map index b7fc622e..759d8972 100644 --- a/aform/dist/aform.js.map +++ b/aform/dist/aform.js.map @@ -1 +1 @@ -{"version":3,"file":"aform.js","sources":["../src/components/form/ACheckbox.vue","../../utilities/dist/utilities.js","../src/components/form/ADate.vue","../src/components/form/ADropdown.vue","../src/components/AForm.vue","../src/components/form/AFieldset.vue","../src/components/form/ANumericInput.vue","../src/directives/mask.ts","../src/components/form/ATextInput.vue","../src/index.ts"],"sourcesContent":["\n\n\n\n\n","import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import type { FormSchema } from 'types'\nimport { DirectiveBinding } from 'vue'\n\nconst NAMED_MASKS = {\n\tdate: '##/##/####',\n\tdatetime: '####/##/## ##:##',\n\ttime: '##:##',\n\tfulltime: '##:##:##',\n\tphone: '(###) ### - ####',\n\tcard: '#### #### #### ####',\n}\n\nfunction extractMaskFn(mask: string): ((args: any) => string) | void {\n\ttry {\n\t\t// eslint-disable-next-line @typescript-eslint/no-implied-eval\n\t\treturn Function(`\"use strict\";return (${mask})`)()\n\t} catch (error) {\n\t\tif (error instanceof ReferenceError) {\n\t\t\t// assume mask is a string\n\t\t}\n\t}\n}\n\nfunction getMask(binding: DirectiveBinding) {\n\tlet mask = binding.value\n\n\tif (mask) {\n\t\tconst maskFn = extractMaskFn(mask)\n\t\tif (maskFn) {\n\t\t\t// TODO: (state) replace with state management;\n\t\t\t// pass the entire form/table data to the function\n\t\t\tconst locale = binding.instance['locale']\n\t\t\tmask = maskFn(locale)\n\t\t}\n\t} else {\n\t\t// TODO: (state) handle using state management\n\t\tconst schema: FormSchema = binding.instance['schema']\n\t\tconst fieldType: string | undefined = schema.fieldtype?.toLowerCase()\n\t\tif (fieldType && NAMED_MASKS[fieldType]) {\n\t\t\tmask = NAMED_MASKS[fieldType]\n\t\t}\n\t}\n\n\treturn mask\n}\n\nfunction unmaskInput(input: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet unmaskedInput = input\n\tconst maskChars = [maskToken, '/', '-', '(', ')', ' ']\n\n\tfor (const char of maskChars) {\n\t\tunmaskedInput = unmaskedInput.replaceAll(char, '')\n\t}\n\n\treturn unmaskedInput\n}\n\nfunction fillMask(input: string, mask: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet replacement = mask\n\tfor (const inputChar of input) {\n\t\tconst replaceIndex = replacement.indexOf(maskToken)\n\t\tif (replaceIndex !== -1) {\n\t\t\tconst prefix = replacement.substring(0, replaceIndex)\n\t\t\tconst suffix = replacement.substring(replaceIndex + 1)\n\t\t\treplacement = prefix + inputChar + suffix\n\t\t}\n\t}\n\n\treturn replacement.slice(0, mask.length)\n}\n\nexport function useStringMask(el: HTMLInputElement, binding: DirectiveBinding) {\n\tconst mask = getMask(binding)\n\tif (!mask) return\n\n\tconst maskToken = '#'\n\tconst inputText = el.value\n\n\t// process input value with mask\n\tconst unmaskedInput = unmaskInput(inputText, maskToken)\n\tif (unmaskedInput) {\n\t\tconst replacement = fillMask(unmaskedInput, mask, maskToken)\n\n\t\t// TODO: (state) this is very opinionated;\n\t\t// most likely fixed with state management;\n\t\t// a better way could be to emit back to instance;\n\n\t\tif (binding.instance['maskFilled']) {\n\t\t\tbinding.instance['maskFilled'] = !replacement.includes(maskToken)\n\t\t}\n\n\t\tel.value = replacement\n\t} else {\n\t\tel.value = mask\n\t}\n}\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACheckbox from '@/components/form/ACheckbox.vue'\nimport AComboBox from '@/components/form/AComboBox.vue'\nimport ADate from '@/components/form/ADate.vue'\nimport ADropdown from '@/components/form/ADropdown.vue'\nimport AFieldset from '@/components/form/AFieldset.vue'\nimport AForm from '@/components/AForm.vue'\nimport ANumericInput from '@/components/form/ANumericInput.vue'\nimport ATextInput from '@/components/form/ATextInput.vue'\n// import { ACurrency } from '@/components/form/ACurrency.vue'\n// import { AQuantity } from '@/components/form/AQuantity.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACheckbox', ACheckbox)\n\tapp.component('ACombobox', AComboBox)\n\tapp.component('ADate', ADate)\n\tapp.component('ADropdown', ADropdown)\n\tapp.component('AFieldset', AFieldset)\n\tapp.component('AForm', AForm)\n\tapp.component('ANumericInput', ANumericInput)\n\tapp.component('ATextInput', ATextInput)\n\t// app.component('ACurrency', ACurrency)\n\t// app.component('AQuantity', AQuantity)\n}\n\nexport { ACheckbox, AComboBox, ADate, ADropdown, AFieldset, AForm, ANumericInput, ATextInput, install }\n"],"names":["props","__props","emit","__emit","checkbox","computed","value","v","M","F","j","H","Q","q","G","U","K","y","r","N","z","o","s","a","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","te","f","u","A","E","t","l","ne","n","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","numberOfRows","numberOfColumns","tableData","inject","todaysDate","selectedDate","ref","currentMonth","currentYear","currentDates","onMounted","cellDate","renderMonth","nextTick","$selectedDate","$todaysDate","watch","firstOfMonth","monthStartWeekday","calendarStartDay","dayIndex","previousYear","nextYear","previousMonth","nextMonth","isTodaysDate","day","isSelectedDate","selectDate","event","currentIndex","updateData","monthAndYear","useKeyboardNav","defaultKeypressHandlers","_sfc_main$5","defineComponent","oldValue","result","item","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","isOpen","_normalizeClass","_createElementVNode","_withDirectives","search","args","$event","_withKeys","_vModelText","_openBlock","_createElementBlock","_Fragment","_renderList","setResult","_vShow","formData","componentProps","componentObj","propsToPass","key","childModels","val","newValue","collapsed","collapsible","formSchema","toggleCollapse","inputNumber","NAMED_MASKS","extractMaskFn","mask","getMask","binding","maskFn","locale","fieldType","_a","unmaskInput","input","maskToken","unmaskedInput","maskChars","char","fillMask","replacement","inputChar","replaceIndex","prefix","suffix","useStringMask","el","inputText","_sfc_main","context","maskFilled","_resolveDirective","required","_directive_mask","validation","_toDisplayString","install","app","ACheckbox","AComboBox","ADate","ADropdown","AFieldset","AForm","ANumericInput","ATextInput"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"aform.js","sources":["../src/components/form/ACheckbox.vue","../../utilities/dist/utilities.js","../src/components/form/ADate.vue","../src/components/form/ADropdown.vue","../src/components/AForm.vue","../src/components/form/AFieldset.vue","../src/components/form/ANumericInput.vue","../src/directives/mask.ts","../src/components/form/ATextInput.vue","../src/index.ts"],"sourcesContent":["\n\n\n\n\n","import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import type { FormSchema } from 'types'\nimport { DirectiveBinding } from 'vue'\n\nconst NAMED_MASKS = {\n\tdate: '##/##/####',\n\tdatetime: '####/##/## ##:##',\n\ttime: '##:##',\n\tfulltime: '##:##:##',\n\tphone: '(###) ### - ####',\n\tcard: '#### #### #### ####',\n}\n\nfunction extractMaskFn(mask: string): ((args: any) => string) | void {\n\ttry {\n\t\t// eslint-disable-next-line @typescript-eslint/no-implied-eval\n\t\treturn Function(`\"use strict\";return (${mask})`)()\n\t} catch (error) {\n\t\tif (error instanceof ReferenceError) {\n\t\t\t// assume mask is a string\n\t\t}\n\t}\n}\n\nfunction getMask(binding: DirectiveBinding) {\n\tlet mask = binding.value\n\n\tif (mask) {\n\t\tconst maskFn = extractMaskFn(mask)\n\t\tif (maskFn) {\n\t\t\t// TODO: (state) replace with state management;\n\t\t\t// pass the entire form/table data to the function\n\t\t\tconst locale = binding.instance['locale']\n\t\t\tmask = maskFn(locale)\n\t\t}\n\t} else {\n\t\t// TODO: (state) handle using state management\n\t\tconst schema: FormSchema = binding.instance['schema']\n\t\tconst fieldType: string | undefined = schema.fieldtype?.toLowerCase()\n\t\tif (fieldType && NAMED_MASKS[fieldType]) {\n\t\t\tmask = NAMED_MASKS[fieldType]\n\t\t}\n\t}\n\n\treturn mask\n}\n\nfunction unmaskInput(input: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet unmaskedInput = input\n\tconst maskChars = [maskToken, '/', '-', '(', ')', ' ']\n\n\tfor (const char of maskChars) {\n\t\tunmaskedInput = unmaskedInput.replaceAll(char, '')\n\t}\n\n\treturn unmaskedInput\n}\n\nfunction fillMask(input: string, mask: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet replacement = mask\n\tfor (const inputChar of input) {\n\t\tconst replaceIndex = replacement.indexOf(maskToken)\n\t\tif (replaceIndex !== -1) {\n\t\t\tconst prefix = replacement.substring(0, replaceIndex)\n\t\t\tconst suffix = replacement.substring(replaceIndex + 1)\n\t\t\treplacement = prefix + inputChar + suffix\n\t\t}\n\t}\n\n\treturn replacement.slice(0, mask.length)\n}\n\nexport function useStringMask(el: HTMLInputElement, binding: DirectiveBinding) {\n\tconst mask = getMask(binding)\n\tif (!mask) return\n\n\tconst maskToken = '#'\n\tconst inputText = el.value\n\n\t// process input value with mask\n\tconst unmaskedInput = unmaskInput(inputText, maskToken)\n\tif (unmaskedInput) {\n\t\tconst replacement = fillMask(unmaskedInput, mask, maskToken)\n\n\t\t// TODO: (state) this is very opinionated;\n\t\t// most likely fixed with state management;\n\t\t// a better way could be to emit back to instance;\n\n\t\tif (binding.instance['maskFilled']) {\n\t\t\tbinding.instance['maskFilled'] = !replacement.includes(maskToken)\n\t\t}\n\n\t\tel.value = replacement\n\t} else {\n\t\tel.value = mask\n\t}\n}\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACheckbox from '@/components/form/ACheckbox.vue'\nimport AComboBox from '@/components/form/AComboBox.vue'\nimport ADate from '@/components/form/ADate.vue'\nimport ADropdown from '@/components/form/ADropdown.vue'\nimport AFieldset from '@/components/form/AFieldset.vue'\nimport AForm from '@/components/AForm.vue'\nimport ANumericInput from '@/components/form/ANumericInput.vue'\nimport ATextInput from '@/components/form/ATextInput.vue'\n// import { ACurrency } from '@/components/form/ACurrency.vue'\n// import { AQuantity } from '@/components/form/AQuantity.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACheckbox', ACheckbox)\n\tapp.component('ACombobox', AComboBox)\n\tapp.component('ADate', ADate)\n\tapp.component('ADropdown', ADropdown)\n\tapp.component('AFieldset', AFieldset)\n\tapp.component('AForm', AForm)\n\tapp.component('ANumericInput', ANumericInput)\n\tapp.component('ATextInput', ATextInput)\n\t// app.component('ACurrency', ACurrency)\n\t// app.component('AQuantity', AQuantity)\n}\n\nexport { ACheckbox, AComboBox, ADate, ADropdown, AFieldset, AForm, ANumericInput, ATextInput, install }\n"],"names":["props","__props","emit","__emit","checkbox","computed","value","v","M","F","j","H","Q","q","G","U","K","y","r","N","z","o","s","a","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","te","f","u","A","E","t","l","ne","n","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","numberOfRows","numberOfColumns","tableData","inject","todaysDate","selectedDate","ref","currentMonth","currentYear","currentDates","onMounted","cellDate","renderMonth","nextTick","$selectedDate","$todaysDate","watch","firstOfMonth","monthStartWeekday","calendarStartDay","dayIndex","previousYear","nextYear","previousMonth","nextMonth","isTodaysDate","day","isSelectedDate","selectDate","event","currentIndex","updateData","monthAndYear","useKeyboardNav","defaultKeypressHandlers","_sfc_main$5","defineComponent","oldValue","result","item","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","isOpen","_normalizeClass","_createElementVNode","_withDirectives","search","args","$event","_withKeys","_vModelText","_openBlock","_createElementBlock","_Fragment","_renderList","setResult","_vShow","formData","componentProps","componentObj","propsToPass","key","childModels","val","newValue","collapsed","collapsible","formSchema","toggleCollapse","inputNumber","NAMED_MASKS","extractMaskFn","mask","getMask","binding","maskFn","locale","fieldType","_a","unmaskInput","input","maskToken","unmaskedInput","maskChars","char","fillMask","replacement","inputChar","replaceIndex","prefix","suffix","useStringMask","el","inputText","_sfc_main","context","maskFilled","_resolveDirective","required","_directive_mask","validation","_toDisplayString","install","app","ACheckbox","AComboBox","ADate","ADropdown","AFieldset","AForm","ANumericInput","ATextInput"],"mappings":"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"} \ No newline at end of file diff --git a/aform/dist/aform.umd.cjs b/aform/dist/aform.umd.cjs index aced0128..d5e1c1d4 100644 --- a/aform/dist/aform.umd.cjs +++ b/aform/dist/aform.umd.cjs @@ -1,2 +1,2 @@ -(function(m,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(m=typeof globalThis<"u"?globalThis:m||self,n(m["@stonecrop/aform"]={},m.Vue))})(this,function(m,n){"use strict";const ne={id:"checkbox-container"},oe=["id","readonly","required"],le={id:"custom-checkbox"},ae=["for"],re=["innerHTML"],se=n.defineComponent({__name:"ACheckbox",props:{label:{},value:{},required:{type:Boolean},readOnly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:" "})}},emits:["update:value"],setup(e,{emit:t}){const l=e,o=t,r=n.computed({get(){return l.value},set(a){o("update:value",a)}});return(a,s)=>(n.openBlock(),n.createElementBlock("div",null,[n.createElementVNode("label",ne,[n.withDirectives(n.createElementVNode("input",{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i),type:"checkbox",id:a.uuid,class:"checkbox",readonly:a.readOnly,required:a.required},null,8,oe),[[n.vModelCheckbox,r.value]]),n.createElementVNode("span",le,n.toDisplayString(r.value),1)]),n.createElementVNode("label",{for:a.uuid,id:"checkbox-label"},n.toDisplayString(a.label),9,ae),n.withDirectives(n.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,re),[[n.vShow,a.validation.errorMessage]])]))}}),E=(e,t)=>{const l=e.__vccOpts||e;for(const[o,r]of t)l[o]=r;return l},$=E(se,[["__scopeId","data-v-743cd4db"]]),ie=n.createElementVNode("div",null,[n.createElementVNode("input",{type:"text"}),n.createElementVNode("input",{type:"text"}),n.createElementVNode("input",{type:"text"})],-1),O=n.defineComponent({__name:"AComboBox",props:["event","cellData","tableID"],setup(e){return(t,l)=>{const o=n.resolveComponent("ATableModal");return n.openBlock(),n.createBlock(o,{event:e.event,cellData:e.cellData,class:"amodal"},{default:n.withCtx(()=>[ie]),_:1},8,["event","cellData"])}}});var v;const L=typeof window<"u",ce=e=>typeof e=="string",de=()=>{};L&&(v=window==null?void 0:window.navigator)!=null&&v.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function N(e){return typeof e=="function"?e():n.unref(e)}function ue(e){return e}function pe(e){return n.getCurrentScope()?(n.onScopeDispose(e),!0):!1}function I(e){var t;const l=N(e);return(t=l==null?void 0:l.$el)!=null?t:l}const F=L?window:void 0;function fe(...e){let t,l,o,r;if(ce(e[0])||Array.isArray(e[0])?([l,o,r]=e,t=F):[t,l,o,r]=e,!t)return de;Array.isArray(l)||(l=[l]),Array.isArray(o)||(o=[o]);const a=[],s=()=>{a.forEach(d=>d()),a.length=0},i=(d,y,g,f)=>(d.addEventListener(y,g,f),()=>d.removeEventListener(y,g,f)),p=n.watch(()=>[I(t),N(r)],([d,y])=>{s(),d&&a.push(...l.flatMap(g=>o.map(f=>i(d,g,f,y))))},{immediate:!0,flush:"post"}),c=()=>{p(),s()};return pe(c),c}const P=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},q="__vueuse_ssr_handlers__";P[q]=P[q]||{};function me(e,{window:t=F,scrollTarget:l}={}){const o=n.ref(!1),r=()=>{if(!t)return;const a=t.document,s=I(e);if(!s)o.value=!1;else{const i=s.getBoundingClientRect();o.value=i.top<=(t.innerHeight||a.documentElement.clientHeight)&&i.left<=(t.innerWidth||a.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return n.watch(()=>I(e),()=>r(),{immediate:!0,flush:"post"}),t&&fe(l||t,"scroll",r,{capture:!1,passive:!0}),o}var x;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(x||(x={}));var he=Object.defineProperty,H=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,R=(e,t,l)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,we=(e,t)=>{for(var l in t||(t={}))ye.call(t,l)&&R(e,l,t[l]);if(H)for(var l of H(t))ge.call(t,l)&&R(e,l,t[l]);return e};we({linear:ue},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const w=e=>{let t=me(e).value;return t=t&&e.offsetHeight>0,t},b=e=>e.tabIndex>=0,U=e=>{const t=e.target;return S(t)},S=e=>{var t;let l;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(l=r)}}else if(e instanceof HTMLTableRowElement){const o=e.previousElementSibling;o&&(l=o)}return l&&(!b(l)||!w(l))?S(l):l},be=e=>{var t;const l=e.target;let o;if(l instanceof HTMLTableCellElement){const r=(t=l.parentElement)==null?void 0:t.parentElement;if(r){const a=r.firstElementChild.children[l.cellIndex];a&&(o=a)}}else if(l instanceof HTMLTableRowElement){const r=l.parentElement;if(r){const a=r.firstElementChild;a&&(o=a)}}return o&&(!b(o)||!w(o))?B(o):o},j=e=>{const t=e.target;return B(t)},B=e=>{var t;let l;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(l=r)}}else if(e instanceof HTMLTableRowElement){const o=e.nextElementSibling;o&&(l=o)}return l&&(!b(l)||!w(l))?B(l):l},ke=e=>{var t;const l=e.target;let o;if(l instanceof HTMLTableCellElement){const r=(t=l.parentElement)==null?void 0:t.parentElement;if(r){const a=r.lastElementChild.children[l.cellIndex];a&&(o=a)}}else if(l instanceof HTMLTableRowElement){const r=l.parentElement;if(r){const a=r.lastElementChild;a&&(o=a)}}return o&&(!b(o)||!w(o))?S(o):o},Q=e=>{const t=e.target;return _(t)},_=e=>{var t;let l;if(e.previousElementSibling)l=e.previousElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;l=o==null?void 0:o.lastElementChild}return l&&(!b(l)||!w(l))?_(l):l},Y=e=>{const t=e.target;return M(t)},M=e=>{var t;let l;if(e.nextElementSibling)l=e.nextElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;l=o==null?void 0:o.firstElementChild}return l&&(!b(l)||!w(l))?M(l):l},z=e=>{const t=e.target.parentElement.firstElementChild;return t&&(!b(t)||!w(t))?M(t):t},W=e=>{const t=e.target.parentElement.lastElementChild;return t&&(!b(t)||!w(t))?_(t):t},V=["alt","control","shift","meta"],Ee={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},K={"keydown.up":e=>{const t=U(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=j(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=Q(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=Y(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=be(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=ke(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=z(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=W(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=W(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=j(e);t&&t.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=U(e);t&&t.focus()}},"keydown.home":e=>{const t=z(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=Y(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=Q(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function Ce(e){const t=o=>{let r=null;o.parent&&(typeof o.parent=="string"?r=document.querySelector(o.parent):o.parent instanceof Element?r=o.parent:r=o.parent.value);let a=[];if(o.selectors)if(typeof o.selectors=="string")a=r?Array.from(r.querySelectorAll(o.selectors)):Array.from(document.querySelectorAll(o.selectors));else if(o.selectors instanceof Element)a.push(o.selectors);else if(Array.isArray(o.selectors.value))for(const s of o.selectors.value)s instanceof Element?a.push(s):a.push(s.$el);else a.push(o.selectors.value);else a=Array.from(r.children).filter(s=>b(s)&&w(s));return a},l=o=>r=>{const a=Ee[r.key]||r.key.toLowerCase();if(V.includes(a))return;const s=o.handlers||K;for(const i of Object.keys(s)){const[p,...c]=i.split(".");if(p==="keydown"&&c.includes(a)){const d=s[i],y=c.filter(f=>V.includes(f)),g=V.some(f=>{const A=f.charAt(0).toUpperCase()+f.slice(1);return r.getModifierState(A)});if(y.length>0){if(g){for(const f of V)if(c.includes(f)){const A=f.charAt(0).toUpperCase()+f.slice(1);r.getModifierState(A)&&d(r)}}}else g||d(r)}}};n.onMounted(()=>{for(const o of e){const r=t(o);for(const a of r)a.addEventListener("keydown",l(o))}}),n.onBeforeUnmount(()=>{for(const o of e){const r=t(o);for(const a of r)a.removeEventListener("keydown",l(o))}})}const De=["event","colIndex","rowIndex","tableid"],Ae={colspan:"5"},Ve=["onClick"],Ie=6,C=7,G=E(n.defineComponent({__name:"ADate",props:{colIndex:{},rowIndex:{},tableid:{},event:{},indent:{},readonly:{type:Boolean}},setup(e){const t=e,l=n.inject(t.tableid),o=new Date,r=n.ref(),a=n.ref(),s=n.ref(),i=n.ref([]);n.onMounted(async()=>{let u=l.cellData(t.colIndex,t.rowIndex);u?(u instanceof Date||(u=new Date(u)),r.value=u,a.value=r.value.getMonth(),s.value=r.value.getFullYear()):(a.value=o.getMonth(),s.value=o.getFullYear()),p(),await n.nextTick();const D=document.getElementsByClassName("selecteddate");if(D.length>0)D[0].focus();else{const h=document.getElementsByClassName("todaysdate");h.length>0&&h[0].focus()}}),n.watch([a,s],()=>{p()});const p=()=>{i.value=[];const u=new Date(s.value,a.value,1),D=u.getDay(),h=u.setDate(u.getDate()-D);for(let k of Array(43).keys())i.value.push(h+k*864e5)},c=()=>{s.value-=1},d=()=>{s.value+=1},y=()=>{a.value==0?(a.value=11,c()):a.value-=1},g=()=>{a.value==11?(a.value=0,d()):a.value+=1},f=u=>{if(a.value===o.getMonth())return o.toDateString()===new Date(u).toDateString()},A=u=>new Date(u).toDateString()===new Date(r.value).toDateString(),We=(u,D)=>{r.value=new Date(i.value[D]),Ke()},Ke=()=>{l.setCellData(t.rowIndex,t.colIndex,r.value.getTime())},Ge=n.computed(()=>new Date(s.value,a.value,1).toLocaleDateString(void 0,{year:"numeric",month:"long"}));return Ce([{parent:"table.adate",selectors:"td",handlers:{...K,"keydown.pageup":y,"keydown.shift.pageup":c,"keydown.pagedown":g,"keydown.shift.pagedown":d}}]),(u,D)=>u.readonly?n.createCommentVNode("",!0):(n.openBlock(),n.createElementBlock("div",{key:0,event:u.event,colIndex:u.colIndex,rowIndex:u.rowIndex,tableid:u.tableid,class:"adate",tabindex:"0",ref:"adatepicker"},[n.createElementVNode("table",null,[n.createElementVNode("tr",null,[n.createElementVNode("td",{onClick:y,tabindex:-1},"<"),n.createElementVNode("th",Ae,n.toDisplayString(Ge.value),1),n.createElementVNode("td",{onClick:g,tabindex:-1},">")]),(n.openBlock(),n.createElementBlock(n.Fragment,null,n.renderList(Ie,h=>n.createElementVNode("tr",{key:h},[(n.openBlock(),n.createElementBlock(n.Fragment,null,n.renderList(C,k=>n.createElementVNode("td",{key:(h-1)*C+k,contenteditable:!1,spellcheck:!1,tabindex:0,style:n.normalizeStyle({border:A(i.value[(h-1)*C+k])?"2px solid var(--focus-cell-outline)":"none",borderBottomColor:f(i.value[(h-1)*C+k])?"var(--focus-cell-outline)":"none"}),onClick:n.withModifiers(Je=>We(Je,(h-1)*C+k),["prevent","stop"]),class:n.normalizeClass({todaysdate:f(i.value[(h-1)*C+k]),selecteddate:A(i.value[(h-1)*C+k])})},n.toDisplayString(new Date(i.value[(h-1)*C+k]).getDate()),15,Ve)),64))])),64))])],8,De))}}),[["__scopeId","data-v-169f1184"]]),Se=n.defineComponent({name:"ADropdown",props:{modelValue:{type:String,required:!1,default:""},label:{type:String,required:!0},value:String,items:{type:Array,required:!1,default:()=>[]},isAsync:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue","filterChanged"],data(){return{results:[],search:this.modelValue,isLoading:!1,arrowCounter:0,isOpen:!1}},watch:{items:function(e,t){this.isLoading=!1,this.results=e}},mounted(){document.addEventListener("click",this.handleClickOutside),this.filterResults()},destroyed(){document.removeEventListener("click",this.handleClickOutside)},methods:{setResult(e){this.search=e,this.closeResults()},filterResults(){this.results=this.items.filter(e=>e.toLowerCase().indexOf(this.search.toLowerCase())>-1)},onChange(){this.isOpen=!0,this.isAsync?(this.isLoading=!0,this.$emit("filterChanged",this.search)):this.filterResults()},handleClickOutside(e){this.$el.contains(e.target)||(this.closeResults(),this.arrowCounter=0)},closeResults(){this.isOpen=!1,this.items.includes(this.search)||(this.search=""),this.$emit("update:modelValue",this.search)},onArrowDown(){this.arrowCounter0&&(this.arrowCounter=this.arrowCounter-1)},onEnter(){this.search=this.results[this.arrowCounter],this.closeResults(),this.arrowCounter=0},openWithSearch(){this.search="",this.onChange(),this.$refs.mopInput.focus()}}}),Be={class:"input-wrapper"},_e={id:"autocomplete-results",class:"autocomplete-results"},Me={key:0,class:"loading autocomplete-result"},Te=["onClick"];function $e(e,t,l,o,r,a){return n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["autocomplete",{isOpen:e.isOpen}])},[n.createElementVNode("div",Be,[n.withDirectives(n.createElementVNode("input",{ref:"mopInput",type:"text",onInput:t[0]||(t[0]=(...s)=>e.onChange&&e.onChange(...s)),onFocus:t[1]||(t[1]=(...s)=>e.onChange&&e.onChange(...s)),"onUpdate:modelValue":t[2]||(t[2]=s=>e.search=s),onKeydown:[t[3]||(t[3]=n.withKeys((...s)=>e.onArrowDown&&e.onArrowDown(...s),["down"])),t[4]||(t[4]=n.withKeys((...s)=>e.onArrowUp&&e.onArrowUp(...s),["up"])),t[5]||(t[5]=n.withKeys((...s)=>e.onEnter&&e.onEnter(...s),["enter"]))]},null,544),[[n.vModelText,e.search]]),n.withDirectives(n.createElementVNode("ul",_e,[e.isLoading?(n.openBlock(),n.createElementBlock("li",Me,"Loading results...")):(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:1},n.renderList(e.results,(s,i)=>(n.openBlock(),n.createElementBlock("li",{key:i,onClick:p=>e.setResult(s),class:n.normalizeClass(["autocomplete-result",{"is-active":i===e.arrowCounter}])},n.toDisplayString(s),11,Te))),128))],512),[[n.vShow,e.isOpen]]),n.createElementVNode("label",null,n.toDisplayString(e.label),1)])],2)}const J=E(Se,[["render",$e]]),Oe=E(n.defineComponent({__name:"CollapseButton",props:{collapsed:{type:Boolean}},setup(e){return(t,l)=>(n.openBlock(),n.createElementBlock("button",{class:n.normalizeClass(["collapse-button",t.collapsed?"rotated":"unrotated"])},"×",2))}}),[["__scopeId","data-v-6f1c1b45"]]),T=E(n.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readonly:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const l=e,o=t,r=n.ref(l.data||{}),a=i=>{let p={};for(const[c,d]of Object.entries(i))["component","fieldtype"].includes(c)||(p[c]=d),c==="rows"&&d&&d.length===0&&(p.rows=r.value[i.fieldname]);return p},s=n.computed({get:()=>l.modelValue.map((i,p)=>n.computed({get(){return i.value},set:c=>{l.modelValue[p].value=c,o("update:modelValue",l.modelValue)}})),set:()=>{}});return(i,p)=>(n.openBlock(),n.createElementBlock("form",null,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(i.modelValue,(c,d)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(c.component),n.mergeProps({key:d,schema:c,modelValue:s.value[d].value,"onUpdate:modelValue":y=>s.value[d].value=y,data:r.value[c.fieldname],readonly:i.readonly},a(c)),null,16,["schema","modelValue","onUpdate:modelValue","data","readonly"]))),128))]))}}),[["__scopeId","data-v-74d66cf2"]]),X=E(n.defineComponent({__name:"AFieldset",props:{schema:{},label:{},collapsible:{type:Boolean},data:{}},setup(e){const t=e,l=n.ref(t.data||[]);let o=n.ref(!1),r=n.ref(t.collapsible);const a=n.ref(t.schema);function s(i){i.preventDefault(),r.value&&(o.value=!o.value)}return(i,p)=>(n.openBlock(),n.createElementBlock("fieldset",null,[n.createElementVNode("legend",{onClick:s,onSubmit:s},[n.createTextVNode(n.toDisplayString(i.label)+" ",1),n.unref(r)?(n.openBlock(),n.createBlock(Oe,{key:0,collapsed:n.unref(o)},null,8,["collapsed"])):n.createCommentVNode("",!0)],32),n.renderSlot(i.$slots,"default",{collapsed:n.unref(o)},()=>[n.withDirectives(n.createVNode(T,{modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=c=>a.value=c),data:l.value},null,8,["modelValue","data"]),[[n.vShow,!n.unref(o)]])],!0)]))}}),[["__scopeId","data-v-cad9b578"]]),ve=["id","disabled","required"],Le=["for"],Ne=["innerHTML"],Z=E(n.defineComponent({__name:"ANumericInput",props:{label:{},modelValue:{},required:{type:Boolean},readonly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:" "})}},emits:["update:modelValue"],setup(e,{emit:t}){const l=e,o=t,r=n.computed({get:()=>l.modelValue,set:a=>{o("update:modelValue",a)}});return(a,s)=>(n.openBlock(),n.createElementBlock("div",null,[n.withDirectives(n.createElementVNode("input",{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i),type:"number",id:a.uuid,disabled:a.readonly,required:a.required},null,8,ve),[[n.vModelText,r.value]]),n.createElementVNode("label",{for:a.uuid},n.toDisplayString(a.label),9,Le),n.withDirectives(n.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,Ne),[[n.vShow,a.validation.errorMessage]])]))}}),[["__scopeId","data-v-be33e6c4"]]),ee={date:"##/##/####",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"};function Fe(e){try{return Function(`"use strict";return (${e})`)()}catch{}}function Pe(e){var l;let t=e.value;if(t){const o=Fe(t);if(o){const r=e.instance.locale;t=o(r)}}else{const r=(l=e.instance.schema.fieldtype)==null?void 0:l.toLowerCase();r&&ee[r]&&(t=ee[r])}return t}function qe(e,t){t||(t="#");let l=e;const o=[t,"/","-","(",")"," "];for(const r of o)l=l.replaceAll(r,"");return l}function xe(e,t,l){l||(l="#");let o=t;for(const r of e){const a=o.indexOf(l);if(a!==-1){const s=o.substring(0,a),i=o.substring(a+1);o=s+r+i}}return o.slice(0,t.length)}function He(e,t){const l=Pe(t);if(!l)return;const o="#",r=e.value,a=qe(r,o);if(a){const s=xe(a,l,o);t.instance.maskFilled&&(t.instance.maskFilled=!s.includes(o)),e.value=s}else e.value=l}const Re=n.defineComponent({name:"ATextInput",props:{schema:{type:Object,required:!0},label:{type:String,required:!0},modelValue:{type:null},mask:{type:String},required:{type:Boolean},readonly:{type:Boolean},uuid:{type:String},validation:{type:Object,default:()=>({errorMessage:" "})}},setup(e,t){const l=n.ref(!1),o=n.inject("locale","");return{inputText:n.computed({get(){return e.modelValue},set(a){t.emit("update:modelValue",a)}}),locale:o,maskFilled:l}},directives:{mask:He}}),Ue=["id","disabled","maxlength","required"],je=["for"],Qe=["innerHTML"];function Ye(e,t,l,o,r,a){const s=n.resolveDirective("mask");return n.openBlock(),n.createElementBlock("div",null,[n.withDirectives(n.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=i=>e.inputText=i),id:e.uuid,disabled:e.readonly,maxlength:e.mask?e.maskFilled&&e.mask.length:void 0,required:e.required},null,8,Ue),[[n.vModelText,e.inputText],[s,e.mask]]),n.createElementVNode("label",{for:e.uuid},n.toDisplayString(e.label),9,je),n.withDirectives(n.createElementVNode("p",{innerHTML:e.validation.errorMessage},null,8,Qe),[[n.vShow,e.validation.errorMessage]])])}const te=E(Re,[["render",Ye],["__scopeId","data-v-76dba9b8"]]);function ze(e){e.component("ACheckbox",$),e.component("ACombobox",O),e.component("ADate",G),e.component("ADropdown",J),e.component("AFieldset",X),e.component("AForm",T),e.component("ANumericInput",Z),e.component("ATextInput",te)}m.ACheckbox=$,m.AComboBox=O,m.ADate=G,m.ADropdown=J,m.AFieldset=X,m.AForm=T,m.ANumericInput=Z,m.ATextInput=te,m.install=ze,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}); +(function(m,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(m=typeof globalThis<"u"?globalThis:m||self,n(m["@stonecrop/aform"]={},m.Vue))})(this,function(m,n){"use strict";const ne={id:"checkbox-container"},oe=["id","readonly","required"],le={id:"custom-checkbox"},ae=["for"],re=["innerHTML"],se=n.defineComponent({__name:"ACheckbox",props:{label:{},value:{},required:{type:Boolean},readOnly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:" "})}},emits:["update:value"],setup(e,{emit:t}){const l=e,o=t,r=n.computed({get(){return l.value},set(a){o("update:value",a)}});return(a,s)=>(n.openBlock(),n.createElementBlock("div",null,[n.createElementVNode("label",ne,[n.withDirectives(n.createElementVNode("input",{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i),type:"checkbox",id:a.uuid,class:"checkbox",readonly:a.readOnly,required:a.required},null,8,oe),[[n.vModelCheckbox,r.value]]),n.createElementVNode("span",le,n.toDisplayString(r.value),1)]),n.createElementVNode("label",{for:a.uuid,id:"checkbox-label"},n.toDisplayString(a.label),9,ae),n.withDirectives(n.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,re),[[n.vShow,a.validation.errorMessage]])]))}}),E=(e,t)=>{const l=e.__vccOpts||e;for(const[o,r]of t)l[o]=r;return l},$=E(se,[["__scopeId","data-v-743cd4db"]]),ie=n.createElementVNode("div",null,[n.createElementVNode("input",{type:"text"}),n.createElementVNode("input",{type:"text"}),n.createElementVNode("input",{type:"text"})],-1),O=n.defineComponent({__name:"AComboBox",props:["event","cellData","tableID"],setup(e){return(t,l)=>{const o=n.resolveComponent("ATableModal");return n.openBlock(),n.createBlock(o,{event:e.event,cellData:e.cellData,class:"amodal"},{default:n.withCtx(()=>[ie]),_:1},8,["event","cellData"])}}});var v;const L=typeof window<"u",ce=e=>typeof e=="string",de=()=>{};L&&(v=window==null?void 0:window.navigator)!=null&&v.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function N(e){return typeof e=="function"?e():n.unref(e)}function ue(e){return e}function pe(e){return n.getCurrentScope()?(n.onScopeDispose(e),!0):!1}function I(e){var t;const l=N(e);return(t=l==null?void 0:l.$el)!=null?t:l}const F=L?window:void 0;function fe(...e){let t,l,o,r;if(ce(e[0])||Array.isArray(e[0])?([l,o,r]=e,t=F):[t,l,o,r]=e,!t)return de;Array.isArray(l)||(l=[l]),Array.isArray(o)||(o=[o]);const a=[],s=()=>{a.forEach(d=>d()),a.length=0},i=(d,y,g,f)=>(d.addEventListener(y,g,f),()=>d.removeEventListener(y,g,f)),p=n.watch(()=>[I(t),N(r)],([d,y])=>{s(),d&&a.push(...l.flatMap(g=>o.map(f=>i(d,g,f,y))))},{immediate:!0,flush:"post"}),c=()=>{p(),s()};return pe(c),c}const P=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},q="__vueuse_ssr_handlers__";P[q]=P[q]||{};function me(e,{window:t=F,scrollTarget:l}={}){const o=n.ref(!1),r=()=>{if(!t)return;const a=t.document,s=I(e);if(!s)o.value=!1;else{const i=s.getBoundingClientRect();o.value=i.top<=(t.innerHeight||a.documentElement.clientHeight)&&i.left<=(t.innerWidth||a.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return n.watch(()=>I(e),()=>r(),{immediate:!0,flush:"post"}),t&&fe(l||t,"scroll",r,{capture:!1,passive:!0}),o}var x;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(x||(x={}));var he=Object.defineProperty,H=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,R=(e,t,l)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,we=(e,t)=>{for(var l in t||(t={}))ye.call(t,l)&&R(e,l,t[l]);if(H)for(var l of H(t))ge.call(t,l)&&R(e,l,t[l]);return e};we({linear:ue},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const w=e=>{let t=me(e).value;return t=t&&e.offsetHeight>0,t},b=e=>e.tabIndex>=0,U=e=>{const t=e.target;return S(t)},S=e=>{var t;let l;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(l=r)}}else if(e instanceof HTMLTableRowElement){const o=e.previousElementSibling;o&&(l=o)}return l&&(!b(l)||!w(l))?S(l):l},be=e=>{var t;const l=e.target;let o;if(l instanceof HTMLTableCellElement){const r=(t=l.parentElement)==null?void 0:t.parentElement;if(r){const a=r.firstElementChild.children[l.cellIndex];a&&(o=a)}}else if(l instanceof HTMLTableRowElement){const r=l.parentElement;if(r){const a=r.firstElementChild;a&&(o=a)}}return o&&(!b(o)||!w(o))?B(o):o},j=e=>{const t=e.target;return B(t)},B=e=>{var t;let l;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(l=r)}}else if(e instanceof HTMLTableRowElement){const o=e.nextElementSibling;o&&(l=o)}return l&&(!b(l)||!w(l))?B(l):l},ke=e=>{var t;const l=e.target;let o;if(l instanceof HTMLTableCellElement){const r=(t=l.parentElement)==null?void 0:t.parentElement;if(r){const a=r.lastElementChild.children[l.cellIndex];a&&(o=a)}}else if(l instanceof HTMLTableRowElement){const r=l.parentElement;if(r){const a=r.lastElementChild;a&&(o=a)}}return o&&(!b(o)||!w(o))?S(o):o},Q=e=>{const t=e.target;return _(t)},_=e=>{var t;let l;if(e.previousElementSibling)l=e.previousElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;l=o==null?void 0:o.lastElementChild}return l&&(!b(l)||!w(l))?_(l):l},Y=e=>{const t=e.target;return M(t)},M=e=>{var t;let l;if(e.nextElementSibling)l=e.nextElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;l=o==null?void 0:o.firstElementChild}return l&&(!b(l)||!w(l))?M(l):l},z=e=>{const t=e.target.parentElement.firstElementChild;return t&&(!b(t)||!w(t))?M(t):t},W=e=>{const t=e.target.parentElement.lastElementChild;return t&&(!b(t)||!w(t))?_(t):t},V=["alt","control","shift","meta"],Ee={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},K={"keydown.up":e=>{const t=U(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=j(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=Q(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=Y(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=be(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=ke(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=z(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=W(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=W(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=j(e);t&&t.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=U(e);t&&t.focus()}},"keydown.home":e=>{const t=z(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=Y(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=Q(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function Ce(e){const t=o=>{let r=null;o.parent&&(typeof o.parent=="string"?r=document.querySelector(o.parent):o.parent instanceof Element?r=o.parent:r=o.parent.value);let a=[];if(o.selectors)if(typeof o.selectors=="string")a=r?Array.from(r.querySelectorAll(o.selectors)):Array.from(document.querySelectorAll(o.selectors));else if(o.selectors instanceof Element)a.push(o.selectors);else if(Array.isArray(o.selectors.value))for(const s of o.selectors.value)s instanceof Element?a.push(s):a.push(s.$el);else a.push(o.selectors.value);else a=Array.from(r.children).filter(s=>b(s)&&w(s));return a},l=o=>r=>{const a=Ee[r.key]||r.key.toLowerCase();if(V.includes(a))return;const s=o.handlers||K;for(const i of Object.keys(s)){const[p,...c]=i.split(".");if(p==="keydown"&&c.includes(a)){const d=s[i],y=c.filter(f=>V.includes(f)),g=V.some(f=>{const A=f.charAt(0).toUpperCase()+f.slice(1);return r.getModifierState(A)});if(y.length>0){if(g){for(const f of V)if(c.includes(f)){const A=f.charAt(0).toUpperCase()+f.slice(1);r.getModifierState(A)&&d(r)}}}else g||d(r)}}};n.onMounted(()=>{for(const o of e){const r=t(o);for(const a of r)a.addEventListener("keydown",l(o))}}),n.onBeforeUnmount(()=>{for(const o of e){const r=t(o);for(const a of r)a.removeEventListener("keydown",l(o))}})}const De=["event","colIndex","rowIndex","tableid"],Ae={colspan:"5"},Ve=["onClick"],Ie=6,C=7,G=E(n.defineComponent({__name:"ADate",props:{colIndex:{},rowIndex:{},tableid:{},event:{},indent:{},readonly:{type:Boolean}},setup(e){const t=e,l=n.inject(t.tableid),o=new Date,r=n.ref(),a=n.ref(),s=n.ref(),i=n.ref([]);n.onMounted(async()=>{let u=l.cellData(t.colIndex,t.rowIndex);u?(u instanceof Date||(u=new Date(u)),r.value=u,a.value=r.value.getMonth(),s.value=r.value.getFullYear()):(a.value=o.getMonth(),s.value=o.getFullYear()),p(),await n.nextTick();const D=document.getElementsByClassName("selecteddate");if(D.length>0)D[0].focus();else{const h=document.getElementsByClassName("todaysdate");h.length>0&&h[0].focus()}}),n.watch([a,s],()=>{p()});const p=()=>{i.value=[];const u=new Date(s.value,a.value,1),D=u.getDay(),h=u.setDate(u.getDate()-D);for(let k of Array(43).keys())i.value.push(h+k*864e5)},c=()=>{s.value-=1},d=()=>{s.value+=1},y=()=>{a.value==0?(a.value=11,c()):a.value-=1},g=()=>{a.value==11?(a.value=0,d()):a.value+=1},f=u=>{if(a.value===o.getMonth())return o.toDateString()===new Date(u).toDateString()},A=u=>new Date(u).toDateString()===new Date(r.value).toDateString(),We=(u,D)=>{r.value=new Date(i.value[D]),Ke()},Ke=()=>{l.setCellData(t.rowIndex,t.colIndex,r.value.getTime())},Ge=n.computed(()=>new Date(s.value,a.value,1).toLocaleDateString(void 0,{year:"numeric",month:"long"}));return Ce([{parent:"table.adate",selectors:"td",handlers:{...K,"keydown.pageup":y,"keydown.shift.pageup":c,"keydown.pagedown":g,"keydown.shift.pagedown":d}}]),(u,D)=>u.readonly?n.createCommentVNode("",!0):(n.openBlock(),n.createElementBlock("div",{key:0,event:u.event,colIndex:u.colIndex,rowIndex:u.rowIndex,tableid:u.tableid,class:"adate",tabindex:"0",ref:"adatepicker"},[n.createElementVNode("table",null,[n.createElementVNode("tr",null,[n.createElementVNode("td",{onClick:y,tabindex:-1},"<"),n.createElementVNode("th",Ae,n.toDisplayString(Ge.value),1),n.createElementVNode("td",{onClick:g,tabindex:-1},">")]),(n.openBlock(),n.createElementBlock(n.Fragment,null,n.renderList(Ie,h=>n.createElementVNode("tr",{key:h},[(n.openBlock(),n.createElementBlock(n.Fragment,null,n.renderList(C,k=>n.createElementVNode("td",{key:(h-1)*C+k,contenteditable:!1,spellcheck:!1,tabindex:0,style:n.normalizeStyle({border:A(i.value[(h-1)*C+k])?"2px solid var(--focus-cell-outline)":"none",borderBottomColor:f(i.value[(h-1)*C+k])?"var(--focus-cell-outline)":"none"}),onClick:n.withModifiers(Je=>We(Je,(h-1)*C+k),["prevent","stop"]),class:n.normalizeClass({todaysdate:f(i.value[(h-1)*C+k]),selecteddate:A(i.value[(h-1)*C+k])})},n.toDisplayString(new Date(i.value[(h-1)*C+k]).getDate()),15,Ve)),64))])),64))])],8,De))}}),[["__scopeId","data-v-169f1184"]]),Se=n.defineComponent({name:"ADropdown",props:{modelValue:{type:String,required:!1,default:""},label:{type:String,required:!0},value:String,items:{type:Array,required:!1,default:()=>[]},isAsync:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue","filterChanged"],data(){return{results:[],search:this.modelValue,isLoading:!1,arrowCounter:0,isOpen:!1}},watch:{items:function(e,t){this.isLoading=!1,this.results=e}},mounted(){document.addEventListener("click",this.handleClickOutside),this.filterResults()},destroyed(){document.removeEventListener("click",this.handleClickOutside)},methods:{setResult(e){this.search=e,this.closeResults()},filterResults(){this.results=this.items.filter(e=>e.toLowerCase().indexOf(this.search.toLowerCase())>-1)},onChange(){this.isOpen=!0,this.isAsync?(this.isLoading=!0,this.$emit("filterChanged",this.search)):this.filterResults()},handleClickOutside(e){this.$el.contains(e.target)||(this.closeResults(),this.arrowCounter=0)},closeResults(){this.isOpen=!1,this.items.includes(this.search)||(this.search=""),this.$emit("update:modelValue",this.search)},onArrowDown(){this.arrowCounter0&&(this.arrowCounter=this.arrowCounter-1)},onEnter(){this.search=this.results[this.arrowCounter],this.closeResults(),this.arrowCounter=0},openWithSearch(){this.search="",this.onChange(),this.$refs.mopInput.focus()}}}),Be={class:"input-wrapper"},_e={id:"autocomplete-results",class:"autocomplete-results"},Me={key:0,class:"loading autocomplete-result"},Te=["onClick"];function $e(e,t,l,o,r,a){return n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["autocomplete",{isOpen:e.isOpen}])},[n.createElementVNode("div",Be,[n.withDirectives(n.createElementVNode("input",{ref:"mopInput",type:"text",onInput:t[0]||(t[0]=(...s)=>e.onChange&&e.onChange(...s)),onFocus:t[1]||(t[1]=(...s)=>e.onChange&&e.onChange(...s)),"onUpdate:modelValue":t[2]||(t[2]=s=>e.search=s),onKeydown:[t[3]||(t[3]=n.withKeys((...s)=>e.onArrowDown&&e.onArrowDown(...s),["down"])),t[4]||(t[4]=n.withKeys((...s)=>e.onArrowUp&&e.onArrowUp(...s),["up"])),t[5]||(t[5]=n.withKeys((...s)=>e.onEnter&&e.onEnter(...s),["enter"]))]},null,544),[[n.vModelText,e.search]]),n.withDirectives(n.createElementVNode("ul",_e,[e.isLoading?(n.openBlock(),n.createElementBlock("li",Me,"Loading results...")):(n.openBlock(!0),n.createElementBlock(n.Fragment,{key:1},n.renderList(e.results,(s,i)=>(n.openBlock(),n.createElementBlock("li",{key:i,onClick:p=>e.setResult(s),class:n.normalizeClass(["autocomplete-result",{"is-active":i===e.arrowCounter}])},n.toDisplayString(s),11,Te))),128))],512),[[n.vShow,e.isOpen]]),n.createElementVNode("label",null,n.toDisplayString(e.label),1)])],2)}const J=E(Se,[["render",$e]]),Oe=E(n.defineComponent({__name:"CollapseButton",props:{collapsed:{type:Boolean}},setup(e){return(t,l)=>(n.openBlock(),n.createElementBlock("button",{class:n.normalizeClass(["collapse-button",t.collapsed?"rotated":"unrotated"])},"×",2))}}),[["__scopeId","data-v-6f1c1b45"]]),T=E(n.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readonly:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const l=e,o=t,r=n.ref(l.data||{}),a=i=>{let p={};for(const[c,d]of Object.entries(i))["component","fieldtype"].includes(c)||(p[c]=d),c==="rows"&&d&&d.length===0&&(p.rows=r.value[i.fieldname]);return p},s=n.computed({get:()=>l.modelValue.map((i,p)=>n.computed({get(){return i.value},set:c=>{l.modelValue[p].value=c,o("update:modelValue",l.modelValue)}})),set:()=>{}});return(i,p)=>(n.openBlock(),n.createElementBlock("form",null,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(i.modelValue,(c,d)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(c.component),n.mergeProps({key:d,schema:c,modelValue:s.value[d].value,"onUpdate:modelValue":y=>s.value[d].value=y,data:r.value[c.fieldname],readonly:i.readonly},a(c)),null,16,["schema","modelValue","onUpdate:modelValue","data","readonly"]))),128))]))}}),[["__scopeId","data-v-82492bb4"]]),X=E(n.defineComponent({__name:"AFieldset",props:{schema:{},label:{},collapsible:{type:Boolean},data:{}},setup(e){const t=e,l=n.ref(t.data||[]);let o=n.ref(!1),r=n.ref(t.collapsible);const a=n.ref(t.schema);function s(i){i.preventDefault(),r.value&&(o.value=!o.value)}return(i,p)=>(n.openBlock(),n.createElementBlock("fieldset",null,[n.createElementVNode("legend",{onClick:s,onSubmit:s},[n.createTextVNode(n.toDisplayString(i.label)+" ",1),n.unref(r)?(n.openBlock(),n.createBlock(Oe,{key:0,collapsed:n.unref(o)},null,8,["collapsed"])):n.createCommentVNode("",!0)],32),n.renderSlot(i.$slots,"default",{collapsed:n.unref(o)},()=>[n.withDirectives(n.createVNode(T,{modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=c=>a.value=c),data:l.value},null,8,["modelValue","data"]),[[n.vShow,!n.unref(o)]])],!0)]))}}),[["__scopeId","data-v-cad9b578"]]),ve=["id","disabled","required"],Le=["for"],Ne=["innerHTML"],Z=E(n.defineComponent({__name:"ANumericInput",props:{label:{},modelValue:{},required:{type:Boolean},readonly:{type:Boolean},uuid:{},validation:{default:()=>({errorMessage:" "})}},emits:["update:modelValue"],setup(e,{emit:t}){const l=e,o=t,r=n.computed({get:()=>l.modelValue,set:a=>{o("update:modelValue",a)}});return(a,s)=>(n.openBlock(),n.createElementBlock("div",null,[n.withDirectives(n.createElementVNode("input",{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i),type:"number",id:a.uuid,disabled:a.readonly,required:a.required},null,8,ve),[[n.vModelText,r.value]]),n.createElementVNode("label",{for:a.uuid},n.toDisplayString(a.label),9,Le),n.withDirectives(n.createElementVNode("p",{innerHTML:a.validation.errorMessage},null,8,Ne),[[n.vShow,a.validation.errorMessage]])]))}}),[["__scopeId","data-v-be33e6c4"]]),ee={date:"##/##/####",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"};function Fe(e){try{return Function(`"use strict";return (${e})`)()}catch{}}function Pe(e){var l;let t=e.value;if(t){const o=Fe(t);if(o){const r=e.instance.locale;t=o(r)}}else{const r=(l=e.instance.schema.fieldtype)==null?void 0:l.toLowerCase();r&&ee[r]&&(t=ee[r])}return t}function qe(e,t){t||(t="#");let l=e;const o=[t,"/","-","(",")"," "];for(const r of o)l=l.replaceAll(r,"");return l}function xe(e,t,l){l||(l="#");let o=t;for(const r of e){const a=o.indexOf(l);if(a!==-1){const s=o.substring(0,a),i=o.substring(a+1);o=s+r+i}}return o.slice(0,t.length)}function He(e,t){const l=Pe(t);if(!l)return;const o="#",r=e.value,a=qe(r,o);if(a){const s=xe(a,l,o);t.instance.maskFilled&&(t.instance.maskFilled=!s.includes(o)),e.value=s}else e.value=l}const Re=n.defineComponent({name:"ATextInput",props:{schema:{type:Object,required:!0},label:{type:String,required:!0},modelValue:{type:null},mask:{type:String},required:{type:Boolean},readonly:{type:Boolean},uuid:{type:String},validation:{type:Object,default:()=>({errorMessage:" "})}},setup(e,t){const l=n.ref(!1),o=n.inject("locale","");return{inputText:n.computed({get(){return e.modelValue},set(a){t.emit("update:modelValue",a)}}),locale:o,maskFilled:l}},directives:{mask:He}}),Ue=["id","disabled","maxlength","required"],je=["for"],Qe=["innerHTML"];function Ye(e,t,l,o,r,a){const s=n.resolveDirective("mask");return n.openBlock(),n.createElementBlock("div",null,[n.withDirectives(n.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=i=>e.inputText=i),id:e.uuid,disabled:e.readonly,maxlength:e.mask?e.maskFilled&&e.mask.length:void 0,required:e.required},null,8,Ue),[[n.vModelText,e.inputText],[s,e.mask]]),n.createElementVNode("label",{for:e.uuid},n.toDisplayString(e.label),9,je),n.withDirectives(n.createElementVNode("p",{innerHTML:e.validation.errorMessage},null,8,Qe),[[n.vShow,e.validation.errorMessage]])])}const te=E(Re,[["render",Ye],["__scopeId","data-v-76dba9b8"]]);function ze(e){e.component("ACheckbox",$),e.component("ACombobox",O),e.component("ADate",G),e.component("ADropdown",J),e.component("AFieldset",X),e.component("AForm",T),e.component("ANumericInput",Z),e.component("ATextInput",te)}m.ACheckbox=$,m.AComboBox=O,m.ADate=G,m.ADropdown=J,m.AFieldset=X,m.AForm=T,m.ANumericInput=Z,m.ATextInput=te,m.install=ze,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}); //# sourceMappingURL=aform.umd.cjs.map diff --git a/aform/dist/aform.umd.cjs.map b/aform/dist/aform.umd.cjs.map index ca4ef71d..f9cc726f 100644 --- a/aform/dist/aform.umd.cjs.map +++ b/aform/dist/aform.umd.cjs.map @@ -1 +1 @@ -{"version":3,"file":"aform.umd.cjs","sources":["../src/components/form/ACheckbox.vue","../../utilities/dist/utilities.js","../src/components/form/ADate.vue","../src/components/form/ADropdown.vue","../src/components/AForm.vue","../src/components/form/AFieldset.vue","../src/components/form/ANumericInput.vue","../src/directives/mask.ts","../src/components/form/ATextInput.vue","../src/index.ts"],"sourcesContent":["\n\n\n\n\n","import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import type { FormSchema } from 'types'\nimport { DirectiveBinding } from 'vue'\n\nconst NAMED_MASKS = {\n\tdate: '##/##/####',\n\tdatetime: '####/##/## ##:##',\n\ttime: '##:##',\n\tfulltime: '##:##:##',\n\tphone: '(###) ### - ####',\n\tcard: '#### #### #### ####',\n}\n\nfunction extractMaskFn(mask: string): ((args: any) => string) | void {\n\ttry {\n\t\t// eslint-disable-next-line @typescript-eslint/no-implied-eval\n\t\treturn Function(`\"use strict\";return (${mask})`)()\n\t} catch (error) {\n\t\tif (error instanceof ReferenceError) {\n\t\t\t// assume mask is a string\n\t\t}\n\t}\n}\n\nfunction getMask(binding: DirectiveBinding) {\n\tlet mask = binding.value\n\n\tif (mask) {\n\t\tconst maskFn = extractMaskFn(mask)\n\t\tif (maskFn) {\n\t\t\t// TODO: (state) replace with state management;\n\t\t\t// pass the entire form/table data to the function\n\t\t\tconst locale = binding.instance['locale']\n\t\t\tmask = maskFn(locale)\n\t\t}\n\t} else {\n\t\t// TODO: (state) handle using state management\n\t\tconst schema: FormSchema = binding.instance['schema']\n\t\tconst fieldType: string | undefined = schema.fieldtype?.toLowerCase()\n\t\tif (fieldType && NAMED_MASKS[fieldType]) {\n\t\t\tmask = NAMED_MASKS[fieldType]\n\t\t}\n\t}\n\n\treturn mask\n}\n\nfunction unmaskInput(input: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet unmaskedInput = input\n\tconst maskChars = [maskToken, '/', '-', '(', ')', ' ']\n\n\tfor (const char of maskChars) {\n\t\tunmaskedInput = unmaskedInput.replaceAll(char, '')\n\t}\n\n\treturn unmaskedInput\n}\n\nfunction fillMask(input: string, mask: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet replacement = mask\n\tfor (const inputChar of input) {\n\t\tconst replaceIndex = replacement.indexOf(maskToken)\n\t\tif (replaceIndex !== -1) {\n\t\t\tconst prefix = replacement.substring(0, replaceIndex)\n\t\t\tconst suffix = replacement.substring(replaceIndex + 1)\n\t\t\treplacement = prefix + inputChar + suffix\n\t\t}\n\t}\n\n\treturn replacement.slice(0, mask.length)\n}\n\nexport function useStringMask(el: HTMLInputElement, binding: DirectiveBinding) {\n\tconst mask = getMask(binding)\n\tif (!mask) return\n\n\tconst maskToken = '#'\n\tconst inputText = el.value\n\n\t// process input value with mask\n\tconst unmaskedInput = unmaskInput(inputText, maskToken)\n\tif (unmaskedInput) {\n\t\tconst replacement = fillMask(unmaskedInput, mask, maskToken)\n\n\t\t// TODO: (state) this is very opinionated;\n\t\t// most likely fixed with state management;\n\t\t// a better way could be to emit back to instance;\n\n\t\tif (binding.instance['maskFilled']) {\n\t\t\tbinding.instance['maskFilled'] = !replacement.includes(maskToken)\n\t\t}\n\n\t\tel.value = replacement\n\t} else {\n\t\tel.value = mask\n\t}\n}\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACheckbox from '@/components/form/ACheckbox.vue'\nimport AComboBox from '@/components/form/AComboBox.vue'\nimport ADate from '@/components/form/ADate.vue'\nimport ADropdown from '@/components/form/ADropdown.vue'\nimport AFieldset from '@/components/form/AFieldset.vue'\nimport AForm from '@/components/AForm.vue'\nimport ANumericInput from '@/components/form/ANumericInput.vue'\nimport ATextInput from '@/components/form/ATextInput.vue'\n// import { ACurrency } from '@/components/form/ACurrency.vue'\n// import { AQuantity } from '@/components/form/AQuantity.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACheckbox', ACheckbox)\n\tapp.component('ACombobox', AComboBox)\n\tapp.component('ADate', ADate)\n\tapp.component('ADropdown', ADropdown)\n\tapp.component('AFieldset', AFieldset)\n\tapp.component('AForm', AForm)\n\tapp.component('ANumericInput', ANumericInput)\n\tapp.component('ATextInput', ATextInput)\n\t// app.component('ACurrency', ACurrency)\n\t// app.component('AQuantity', AQuantity)\n}\n\nexport { ACheckbox, AComboBox, ADate, ADropdown, AFieldset, AForm, ANumericInput, ATextInput, install }\n"],"names":["props","__props","emit","__emit","checkbox","computed","value","M","F","j","H","Q","q","G","U","K","y","r","N","z","n","o","l","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","f","u","A","E","t","ne","s","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","numberOfRows","numberOfColumns","tableData","inject","todaysDate","selectedDate","ref","currentMonth","currentYear","currentDates","onMounted","cellDate","renderMonth","nextTick","$selectedDate","$todaysDate","watch","firstOfMonth","monthStartWeekday","calendarStartDay","dayIndex","previousYear","nextYear","previousMonth","nextMonth","isTodaysDate","day","isSelectedDate","selectDate","event","currentIndex","updateData","monthAndYear","useKeyboardNav","defaultKeypressHandlers","_sfc_main$5","defineComponent","oldValue","result","item","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","isOpen","_normalizeClass","_createElementVNode","_withDirectives","search","args","$event","_withKeys","_vModelText","_openBlock","_createElementBlock","_Fragment","_renderList","setResult","_vShow","formData","componentProps","componentObj","propsToPass","key","childModels","val","newValue","collapsed","collapsible","formSchema","toggleCollapse","inputNumber","NAMED_MASKS","extractMaskFn","mask","getMask","binding","maskFn","locale","fieldType","_a","unmaskInput","input","maskToken","unmaskedInput","maskChars","char","fillMask","replacement","inputChar","replaceIndex","prefix","suffix","useStringMask","el","inputText","_sfc_main","context","maskFilled","_resolveDirective","required","_directive_mask","validation","_toDisplayString","install","app","ACheckbox","AComboBox","ADate","ADropdown","AFieldset","AForm","ANumericInput","ATextInput"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"aform.umd.cjs","sources":["../src/components/form/ACheckbox.vue","../../utilities/dist/utilities.js","../src/components/form/ADate.vue","../src/components/form/ADropdown.vue","../src/components/AForm.vue","../src/components/form/AFieldset.vue","../src/components/form/ANumericInput.vue","../src/directives/mask.ts","../src/components/form/ATextInput.vue","../src/index.ts"],"sourcesContent":["\n\n\n\n\n","import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import type { FormSchema } from 'types'\nimport { DirectiveBinding } from 'vue'\n\nconst NAMED_MASKS = {\n\tdate: '##/##/####',\n\tdatetime: '####/##/## ##:##',\n\ttime: '##:##',\n\tfulltime: '##:##:##',\n\tphone: '(###) ### - ####',\n\tcard: '#### #### #### ####',\n}\n\nfunction extractMaskFn(mask: string): ((args: any) => string) | void {\n\ttry {\n\t\t// eslint-disable-next-line @typescript-eslint/no-implied-eval\n\t\treturn Function(`\"use strict\";return (${mask})`)()\n\t} catch (error) {\n\t\tif (error instanceof ReferenceError) {\n\t\t\t// assume mask is a string\n\t\t}\n\t}\n}\n\nfunction getMask(binding: DirectiveBinding) {\n\tlet mask = binding.value\n\n\tif (mask) {\n\t\tconst maskFn = extractMaskFn(mask)\n\t\tif (maskFn) {\n\t\t\t// TODO: (state) replace with state management;\n\t\t\t// pass the entire form/table data to the function\n\t\t\tconst locale = binding.instance['locale']\n\t\t\tmask = maskFn(locale)\n\t\t}\n\t} else {\n\t\t// TODO: (state) handle using state management\n\t\tconst schema: FormSchema = binding.instance['schema']\n\t\tconst fieldType: string | undefined = schema.fieldtype?.toLowerCase()\n\t\tif (fieldType && NAMED_MASKS[fieldType]) {\n\t\t\tmask = NAMED_MASKS[fieldType]\n\t\t}\n\t}\n\n\treturn mask\n}\n\nfunction unmaskInput(input: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet unmaskedInput = input\n\tconst maskChars = [maskToken, '/', '-', '(', ')', ' ']\n\n\tfor (const char of maskChars) {\n\t\tunmaskedInput = unmaskedInput.replaceAll(char, '')\n\t}\n\n\treturn unmaskedInput\n}\n\nfunction fillMask(input: string, mask: string, maskToken?: string) {\n\tif (!maskToken) {\n\t\tmaskToken = '#'\n\t}\n\n\tlet replacement = mask\n\tfor (const inputChar of input) {\n\t\tconst replaceIndex = replacement.indexOf(maskToken)\n\t\tif (replaceIndex !== -1) {\n\t\t\tconst prefix = replacement.substring(0, replaceIndex)\n\t\t\tconst suffix = replacement.substring(replaceIndex + 1)\n\t\t\treplacement = prefix + inputChar + suffix\n\t\t}\n\t}\n\n\treturn replacement.slice(0, mask.length)\n}\n\nexport function useStringMask(el: HTMLInputElement, binding: DirectiveBinding) {\n\tconst mask = getMask(binding)\n\tif (!mask) return\n\n\tconst maskToken = '#'\n\tconst inputText = el.value\n\n\t// process input value with mask\n\tconst unmaskedInput = unmaskInput(inputText, maskToken)\n\tif (unmaskedInput) {\n\t\tconst replacement = fillMask(unmaskedInput, mask, maskToken)\n\n\t\t// TODO: (state) this is very opinionated;\n\t\t// most likely fixed with state management;\n\t\t// a better way could be to emit back to instance;\n\n\t\tif (binding.instance['maskFilled']) {\n\t\t\tbinding.instance['maskFilled'] = !replacement.includes(maskToken)\n\t\t}\n\n\t\tel.value = replacement\n\t} else {\n\t\tel.value = mask\n\t}\n}\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACheckbox from '@/components/form/ACheckbox.vue'\nimport AComboBox from '@/components/form/AComboBox.vue'\nimport ADate from '@/components/form/ADate.vue'\nimport ADropdown from '@/components/form/ADropdown.vue'\nimport AFieldset from '@/components/form/AFieldset.vue'\nimport AForm from '@/components/AForm.vue'\nimport ANumericInput from '@/components/form/ANumericInput.vue'\nimport ATextInput from '@/components/form/ATextInput.vue'\n// import { ACurrency } from '@/components/form/ACurrency.vue'\n// import { AQuantity } from '@/components/form/AQuantity.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACheckbox', ACheckbox)\n\tapp.component('ACombobox', AComboBox)\n\tapp.component('ADate', ADate)\n\tapp.component('ADropdown', ADropdown)\n\tapp.component('AFieldset', AFieldset)\n\tapp.component('AForm', AForm)\n\tapp.component('ANumericInput', ANumericInput)\n\tapp.component('ATextInput', ATextInput)\n\t// app.component('ACurrency', ACurrency)\n\t// app.component('AQuantity', AQuantity)\n}\n\nexport { ACheckbox, AComboBox, ADate, ADropdown, AFieldset, AForm, ANumericInput, ATextInput, install }\n"],"names":["props","__props","emit","__emit","checkbox","computed","value","M","F","j","H","Q","q","G","U","K","y","r","N","z","n","o","l","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","f","u","A","E","t","ne","s","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","numberOfRows","numberOfColumns","tableData","inject","todaysDate","selectedDate","ref","currentMonth","currentYear","currentDates","onMounted","cellDate","renderMonth","nextTick","$selectedDate","$todaysDate","watch","firstOfMonth","monthStartWeekday","calendarStartDay","dayIndex","previousYear","nextYear","previousMonth","nextMonth","isTodaysDate","day","isSelectedDate","selectDate","event","currentIndex","updateData","monthAndYear","useKeyboardNav","defaultKeypressHandlers","_sfc_main$5","defineComponent","oldValue","result","item","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","isOpen","_normalizeClass","_createElementVNode","_withDirectives","search","args","$event","_withKeys","_vModelText","_openBlock","_createElementBlock","_Fragment","_renderList","setResult","_vShow","formData","componentProps","componentObj","propsToPass","key","childModels","val","newValue","collapsed","collapsible","formSchema","toggleCollapse","inputNumber","NAMED_MASKS","extractMaskFn","mask","getMask","binding","maskFn","locale","fieldType","_a","unmaskInput","input","maskToken","unmaskedInput","maskChars","char","fillMask","replacement","inputChar","replaceIndex","prefix","suffix","useStringMask","el","inputText","_sfc_main","context","maskFilled","_resolveDirective","required","_directive_mask","validation","_toDisplayString","install","app","ACheckbox","AComboBox","ADate","ADropdown","AFieldset","AForm","ANumericInput","ATextInput"],"mappings":"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"} \ No newline at end of file diff --git a/aform/dist/style.css b/aform/dist/style.css index 4d53ce64..4954ba1b 100644 --- a/aform/dist/style.css +++ b/aform/dist/style.css @@ -1 +1 @@ -@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap";div[data-v-743cd4db]{display:inline-block;min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}p[data-v-743cd4db],label[data-v-743cd4db]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-743cd4db]{width:100%;color:red;font-size:85%}.checkbox[data-v-743cd4db]{visibility:hidden}.checkbox+#custom-checkbox[data-v-743cd4db]:after{content:"⬡";padding:1ch 0 .5ch;font-size:120%;cursor:pointer;position:relative;left:-18px}.checkbox:checked+#custom-checkbox[data-v-743cd4db]:after{content:"⬣";padding:1ch 0 .5ch;font-size:120%;cursor:pointer;position:relative;left:-18px}#custom-checkbox[data-v-743cd4db]{display:inline-block}#checkbox-container[data-v-743cd4db]{display:inline-block;min-width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;height:1.15rem;border-radius:.25rem}#checkbox-container[data-v-743cd4db]:hover{border:1px solid var(--input-active-border-color)}#checkbox-container:hover+label[data-v-743cd4db]{color:var(--input-active-label-color)}#checkbox-label[data-v-743cd4db]{z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}[data-v-169f1184]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}[data-v-169f1184]:root{font-family:var(--font-family)}.aform-primary-action[data-v-169f1184]{font-size:100%;text-align:center;min-height:2em;padding:.25rem 1rem;border:1px solid var(--primary-color);color:var(--primary-text-color);background-color:var(--primary-color);outline:2px solid var(--primary-text-color);transition:outline-offset .2s ease;font-size:var(--font-size);margin:.5ch}.aform-primary-action[data-v-169f1184]:hover,.aform-primary-action[data-v-169f1184]:active{outline:2px solid var(--primary-text-color);outline-offset:-4px;transition:outline-offset .2s ease}.adate[data-v-169f1184]{border:2px solid var(--focus-cell-outline);position:absolute;z-index:100;font-size:var(--table-font-size);display:inline-table;background-color:var(--row-color-zebra-light);color:var(--cell-text-color);outline:none;width:calc(100% - 4px)}.adate tr[data-v-169f1184]{height:1.15rem;text-align:center;vertical-align:middle}.adate td[data-v-169f1184]{border:2px solid transparent;min-width:2.25ch}.adate td[data-v-169f1184]:hover{border:2px solid var(--focus-cell-outline)}.adate td[data-v-169f1184]{border:1px;border-style:solid;border-color:var(--cell-border-color);border-radius:0;box-sizing:border-box;margin:0;outline:none;box-shadow:none;color:var(--cell-text-color);text-overflow:ellipsis;overflow:hidden;padding-left:.5ch;padding-right:.5ch}.adate td[data-v-169f1184]:focus,.adate td[data-v-169f1184]:focus-within{background-color:var(--focus-cell-background);outline-width:2px;outline-style:solid;outline-color:var(--focus-cell-outline);box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}button[data-v-169f1184]{background-color:var(--row-color-zebra-light);border:none;padding:0;margin:0;color:var(--cell-text-color);outline:none;font-size:var(--table-font-size)}.dateheader[data-v-169f1184]{font-weight:700;display:flex;align-items:center;justify-content:space-between}.adate .todaysdate[data-v-169f1184]{border-bottom-color:var(--focus-cell-outline)}.adate .selecteddate[data-v-169f1184]{border:2px solid var(--focus-cell-outline)}.autocomplete{position:relative}.input-wrapper{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}input:focus{border:1px solid var(--input-active-border-color);border-radius:.25rem .25rem 0 0;border-bottom:none}label{display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent;z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}.autocomplete-results{position:absolute;width:calc(100% - 1ch + 1.5px);z-index:1;padding:0;margin:0;color:#000;border:1px solid var(--input-active-border-color);border-radius:0 0 .25rem .25rem;border-top:none}.autocomplete-result{list-style:none;text-align:left;padding:4px 6px;cursor:pointer}.autocomplete-result.is-active,.autocomplete-result:hover{background-color:var(--row-color-zebra-light);color:#000}.collapse-button[data-v-6f1c1b45]{width:2ch;min-width:calc(66px - 4ch);background-color:transparent;font-size:150%;text-align:center;border:none;margin-top:-.5rem}.rotated[data-v-6f1c1b45]{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transition:transform .25s;transform-origin:center center}.unrotated[data-v-6f1c1b45]{transform:rotate(0);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transition:transform .25s}form[data-v-74d66cf2]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:baseline}fieldset[data-v-cad9b578]{max-width:100%;width:100%;margin-right:2ch;border:1px solid transparent;border-bottom:1px solid var(--gray-50)}legend[data-v-cad9b578]{width:100%;height:1.15rem;border:1px solid transparent;padding-bottom:.5rem;font-size:110%;font-weight:600;-webkit-user-select:none;user-select:none}.collapse-button[data-v-cad9b578]{float:right}div[data-v-be33e6c4]{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-be33e6c4]{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}p[data-v-be33e6c4],label[data-v-be33e6c4]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-be33e6c4]{width:100%;color:red;font-size:85%}label[data-v-be33e6c4]{z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}input[data-v-be33e6c4]:focus{border:1px solid var(--input-active-border-color)}input:focus+label[data-v-be33e6c4]{color:var(--input-active-label-color)}div[data-v-76dba9b8]{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-76dba9b8]{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}p[data-v-76dba9b8],label[data-v-76dba9b8]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-76dba9b8]{width:100%;color:red;font-size:85%}label[data-v-76dba9b8]{z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}input[data-v-76dba9b8]:focus{border:1px solid var(--input-active-border-color)}input:focus+label[data-v-76dba9b8]{color:var(--input-active-label-color)} +@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap";div[data-v-743cd4db]{display:inline-block;min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}p[data-v-743cd4db],label[data-v-743cd4db]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-743cd4db]{width:100%;color:red;font-size:85%}.checkbox[data-v-743cd4db]{visibility:hidden}.checkbox+#custom-checkbox[data-v-743cd4db]:after{content:"⬡";padding:1ch 0 .5ch;font-size:120%;cursor:pointer;position:relative;left:-18px}.checkbox:checked+#custom-checkbox[data-v-743cd4db]:after{content:"⬣";padding:1ch 0 .5ch;font-size:120%;cursor:pointer;position:relative;left:-18px}#custom-checkbox[data-v-743cd4db]{display:inline-block}#checkbox-container[data-v-743cd4db]{display:inline-block;min-width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;height:1.15rem;border-radius:.25rem}#checkbox-container[data-v-743cd4db]:hover{border:1px solid var(--input-active-border-color)}#checkbox-container:hover+label[data-v-743cd4db]{color:var(--input-active-label-color)}#checkbox-label[data-v-743cd4db]{z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}[data-v-169f1184]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}[data-v-169f1184]:root{font-family:var(--font-family)}.aform-primary-action[data-v-169f1184]{font-size:100%;text-align:center;min-height:2em;padding:.25rem 1rem;border:1px solid var(--primary-color);color:var(--primary-text-color);background-color:var(--primary-color);outline:2px solid var(--primary-text-color);transition:outline-offset .2s ease;font-size:var(--font-size);margin:.5ch}.aform-primary-action[data-v-169f1184]:hover,.aform-primary-action[data-v-169f1184]:active{outline:2px solid var(--primary-text-color);outline-offset:-4px;transition:outline-offset .2s ease}.adate[data-v-169f1184]{border:2px solid var(--focus-cell-outline);position:absolute;z-index:100;font-size:var(--table-font-size);display:inline-table;background-color:var(--row-color-zebra-light);color:var(--cell-text-color);outline:none;width:calc(100% - 4px)}.adate tr[data-v-169f1184]{height:1.15rem;text-align:center;vertical-align:middle}.adate td[data-v-169f1184]{border:2px solid transparent;min-width:2.25ch}.adate td[data-v-169f1184]:hover{border:2px solid var(--focus-cell-outline)}.adate td[data-v-169f1184]{border:1px;border-style:solid;border-color:var(--cell-border-color);border-radius:0;box-sizing:border-box;margin:0;outline:none;box-shadow:none;color:var(--cell-text-color);text-overflow:ellipsis;overflow:hidden;padding-left:.5ch;padding-right:.5ch}.adate td[data-v-169f1184]:focus,.adate td[data-v-169f1184]:focus-within{background-color:var(--focus-cell-background);outline-width:2px;outline-style:solid;outline-color:var(--focus-cell-outline);box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}button[data-v-169f1184]{background-color:var(--row-color-zebra-light);border:none;padding:0;margin:0;color:var(--cell-text-color);outline:none;font-size:var(--table-font-size)}.dateheader[data-v-169f1184]{font-weight:700;display:flex;align-items:center;justify-content:space-between}.adate .todaysdate[data-v-169f1184]{border-bottom-color:var(--focus-cell-outline)}.adate .selecteddate[data-v-169f1184]{border:2px solid var(--focus-cell-outline)}.autocomplete{position:relative}.input-wrapper{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}input:focus{border:1px solid var(--input-active-border-color);border-radius:.25rem .25rem 0 0;border-bottom:none}label{display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent;z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}.autocomplete-results{position:absolute;width:calc(100% - 1ch + 1.5px);z-index:1;padding:0;margin:0;color:#000;border:1px solid var(--input-active-border-color);border-radius:0 0 .25rem .25rem;border-top:none}.autocomplete-result{list-style:none;text-align:left;padding:4px 6px;cursor:pointer}.autocomplete-result.is-active,.autocomplete-result:hover{background-color:var(--row-color-zebra-light);color:#000}.collapse-button[data-v-6f1c1b45]{width:2ch;min-width:calc(66px - 4ch);background-color:transparent;font-size:150%;text-align:center;border:none;margin-top:-.5rem}.rotated[data-v-6f1c1b45]{transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transition:transform .25s;transform-origin:center center}.unrotated[data-v-6f1c1b45]{transform:rotate(0);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transition:transform .25s}form[data-v-82492bb4]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:baseline}fieldset[data-v-cad9b578]{max-width:100%;width:100%;margin-right:2ch;border:1px solid transparent;border-bottom:1px solid var(--gray-50)}legend[data-v-cad9b578]{width:100%;height:1.15rem;border:1px solid transparent;padding-bottom:.5rem;font-size:110%;font-weight:600;-webkit-user-select:none;user-select:none}.collapse-button[data-v-cad9b578]{float:right}div[data-v-be33e6c4]{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-be33e6c4]{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}p[data-v-be33e6c4],label[data-v-be33e6c4]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-be33e6c4]{width:100%;color:red;font-size:85%}label[data-v-be33e6c4]{z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}input[data-v-be33e6c4]:focus{border:1px solid var(--input-active-border-color)}input:focus+label[data-v-be33e6c4]{color:var(--input-active-label-color)}div[data-v-76dba9b8]{min-width:40ch;border:1px solid transparent;padding:0rem;margin:0rem;margin-right:1ch}input[data-v-76dba9b8]{width:calc(100% - 1ch);outline:1px solid transparent;border:1px solid var(--input-border-color);padding:1ch .5ch .5ch 1ch;margin:.575rem 0 0;min-height:1.15rem;border-radius:.25rem}p[data-v-76dba9b8],label[data-v-76dba9b8]{color:var(--input-label-color);display:block;min-height:1.15rem;padding:0rem;margin:0rem 0rem .25rem;border:1px solid transparent}p[data-v-76dba9b8]{width:100%;color:red;font-size:85%}label[data-v-76dba9b8]{z-index:2;font-size:80%;position:absolute;background:#fff;margin:-2.575rem 0 0 1ch;padding:0 .25ch}input[data-v-76dba9b8]:focus{border:1px solid var(--input-active-border-color)}input:focus+label[data-v-76dba9b8]{color:var(--input-active-label-color)} diff --git a/aform/src/components/AForm.vue b/aform/src/components/AForm.vue index d1acdb85..f856926e 100644 --- a/aform/src/components/AForm.vue +++ b/aform/src/components/AForm.vue @@ -55,6 +55,7 @@ const childModels = computed({ }, set: newValue => { // Find the component in modelValue and update it + // eslint-disable-next-line vue/no-mutating-props props.modelValue[i].value = newValue emit('update:modelValue', props.modelValue) }, diff --git a/aform/tests/aform.spec.ts b/aform/tests/aform.spec.ts index a074262c..e2c512b5 100644 --- a/aform/tests/aform.spec.ts +++ b/aform/tests/aform.spec.ts @@ -1,8 +1,8 @@ import { describe, it, expect } from 'vitest' import { mount } from '@vue/test-utils' -import AForm from '@/components/AForm.vue' -import ATextInput from '@/components/form/ATextInput.vue' +import AForm from '../src/components/AForm.vue' +import ATextInput from '../src/components/form/ATextInput.vue' describe('AForm Component', () => { const form_schema = [ @@ -16,6 +16,7 @@ describe('AForm Component', () => { const wrapper = mount(AForm, { props: { modelValue: form_schema, + data: {}, }, components: { ATextInput, diff --git a/aform/vite.config.ts b/aform/vite.config.ts index 2ac4c95c..843f27dc 100644 --- a/aform/vite.config.ts +++ b/aform/vite.config.ts @@ -41,10 +41,10 @@ export default defineConfig({ coverage: { provider: 'v8', thresholds: { - lines: 50, - branches: 50, - functions: 50, - statements: 50, + lines: 70, + branches: 70, + functions: 70, + statements: 70, autoUpdate: true, }, // required for Github Actions CI @@ -67,7 +67,6 @@ export default defineConfig({ '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*', '**/.{eslint,mocha,prettier}rc.{js,cjs,yml}', ], - all: true, skipFull: true, }, }, diff --git a/atable/.eslintrc.cjs b/atable/.eslintrc.cjs index df6db8a4..c94606f7 100644 --- a/atable/.eslintrc.cjs +++ b/atable/.eslintrc.cjs @@ -61,5 +61,5 @@ module.exports = { '@typescript-eslint/no-unsafe-return': 'off', }, - ignorePatterns: ['.eslintrc.cjs', '*.config.ts', 'node_modules/', 'dist/'], + ignorePatterns: ['.eslintrc.cjs', '*.config.ts', '*.spec.ts', 'node_modules/', 'dist/'], } diff --git a/atable/dist/atable.js b/atable/dist/atable.js index d0da76f7..e15f0a9d 100644 --- a/atable/dist/atable.js +++ b/atable/dist/atable.js @@ -1,4 +1,4 @@ -import { onMounted as xe, onBeforeUnmount as Ie, ref as k, watch as j, unref as r, getCurrentScope as Ee, onScopeDispose as ke, defineComponent as C, inject as O, computed as R, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as V, toDisplayString as T, Fragment as L, createElementVNode as A, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as $, renderList as N, normalizeStyle as H, createTextVNode as Ce, provide as _e, nextTick as $e, createVNode as z, withCtx as G } from "vue"; +import { onMounted as xe, onBeforeUnmount as Ie, ref as k, watch as j, unref as r, getCurrentScope as Ee, onScopeDispose as ke, defineComponent as C, inject as O, computed as R, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as W, toDisplayString as T, Fragment as L, createElementVNode as A, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as $, renderList as N, normalizeStyle as H, createTextVNode as Ce, provide as _e, nextTick as $e, createVNode as z, withCtx as G } from "vue"; var J; const pe = typeof window < "u", Ae = (t) => typeof t == "string", Te = () => { }; @@ -97,8 +97,8 @@ const x = (t) => { return e = e && t.offsetHeight > 0, e; }, I = (t) => t.tabIndex >= 0, te = (t) => { const e = t.target; - return W(e); -}, W = (t) => { + return V(e); +}, V = (t) => { var e; let n; if (t instanceof HTMLTableCellElement) { @@ -111,7 +111,7 @@ const x = (t) => { const o = t.previousElementSibling; o && (n = o); } - return n && (!I(n) || !x(n)) ? W(n) : n; + return n && (!I(n) || !x(n)) ? V(n) : n; }, Ue = (t) => { var e; const n = t.target; @@ -164,7 +164,7 @@ const x = (t) => { l && (o = l); } } - return o && (!I(o) || !x(o)) ? W(o) : o; + return o && (!I(o) || !x(o)) ? V(o) : o; }, oe = (t) => { const e = t.target; return Q(e); @@ -197,7 +197,7 @@ const x = (t) => { }, re = (t) => { const e = t.target.parentElement.lastElementChild; return e && (!I(e) || !x(e)) ? Q(e) : e; -}, D = ["alt", "control", "shift", "meta"], Ve = { +}, D = ["alt", "control", "shift", "meta"], We = { ArrowUp: "up", ArrowDown: "down", ArrowLeft: "left", @@ -285,7 +285,7 @@ function q(t) { l = Array.from(a.children).filter((s) => I(s) && x(s)); return l; }, n = (o) => (a) => { - const l = Ve[a.key] || a.key.toLowerCase(); + const l = We[a.key] || a.key.toLowerCase(); if (D.includes(l)) return; const s = o.handlers || we; @@ -323,7 +323,7 @@ function q(t) { } }); } -const We = ["data-colindex", "data-rowindex", "data-editable", "contenteditable", "tabindex"], Be = { key: 1 }, Qe = /* @__PURE__ */ C({ +const Ve = ["data-colindex", "data-rowindex", "data-editable", "contenteditable", "tabindex"], Be = { key: 1 }, Qe = /* @__PURE__ */ C({ __name: "ACell", props: { colIndex: {}, @@ -403,11 +403,11 @@ const We = ["data-colindex", "data-rowindex", "data-editable", "contenteditable" onClick: s, onMousedown: s }, [ - r(n).columns[u.colIndex].cellComponent ? (m(), P(ie(r(n).columns[u.colIndex].cellComponent), V({ + r(n).columns[u.colIndex].cellComponent ? (m(), P(ie(r(n).columns[u.colIndex].cellComponent), W({ key: 0, value: l.value }, r(n).columns[u.colIndex].cellComponentProps), null, 16, ["value"])) : (m(), b("span", Be, T(l.value), 1)) - ], 40, We)); + ], 40, Ve)); } }), _ = (t, e) => { const n = t.__vccOpts || t; @@ -437,7 +437,7 @@ const We = ["data-colindex", "data-rowindex", "data-editable", "contenteditable" ]); } return (s, i) => (m(), b(L, null, [ - A("tr", V(s.$attrs, { + A("tr", W(s.$attrs, { ref_key: "rowEl", ref: o, tabindex: s.tabIndex, @@ -668,7 +668,7 @@ const lt = { key: 0 }, at = { let a = n.modelValue ? n.modelValue : n.rows, l = new ot(n.id, n.columns, a, n.config); _e(l.id, l), j( () => l.rows, - (i, d) => { + (i) => { o("update:modelValue", i); }, { deep: !0 } @@ -738,7 +738,7 @@ const lt = { key: 0 }, at = { }) }, { default: G(() => [ - (m(), P(ie(r(l).modal.component), V({ + (m(), P(ie(r(l).modal.component), W({ key: `${r(l).modal.rowIndex}:${r(l).modal.colIndex}`, colIndex: r(l).modal.colIndex, rowIndex: r(l).modal.rowIndex, @@ -752,7 +752,7 @@ const lt = { key: 0 }, at = { ], !0) ], 4)); } -}), ct = /* @__PURE__ */ _(dt, [["__scopeId", "data-v-819abcc5"]]); +}), ct = /* @__PURE__ */ _(dt, [["__scopeId", "data-v-55d8ba05"]]); function ft(t) { t.component("ACell", he), t.component("AExpansionRow", Je), t.component("ARow", be), t.component("ATable", ct), t.component("ATableHeader", ve), t.component("ATableModal", ye); } diff --git a/atable/dist/atable.js.map b/atable/dist/atable.js.map index 53e8bcca..fb761f59 100644 --- a/atable/dist/atable.js.map +++ b/atable/dist/atable.js.map @@ -1 +1 @@ -{"version":3,"file":"atable.js","sources":["../../utilities/dist/utilities.js","../src/components/ACell.vue","../src/components/AExpansionRow.vue","../src/components/ARow.vue","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../src/components/index.ts","../src/components/ATableHeader.vue","../src/components/ATableModal.vue","../src/components/ATable.vue","../src/index.ts"],"sourcesContent":["import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 } from 'uuid'\nimport { computed, reactive } from 'vue'\n\nimport type { TableDisplay, TableRow, TableColumn, TableConfig, TableModal } from '../../types'\n\nexport default class TableDataStore {\n\tid: string\n\trows: TableRow[]\n\tcolumns: TableColumn[]\n\tconfig: TableConfig\n\ttable: { [key: string]: any }\n\tdisplay: TableDisplay[]\n\tmodal: TableModal\n\n\tconstructor(\n\t\tid?: string,\n\t\tcolumns?: TableColumn[],\n\t\trows?: TableRow[],\n\t\tconfig?: TableConfig,\n\t\ttable?: { [key: string]: any },\n\t\tdisplay?: TableDisplay[]\n\t) {\n\t\tthis.id = id || v4()\n\t\tthis.rows = rows\n\t\tthis.columns = reactive(columns)\n\t\tthis.config = reactive(config)\n\t\tthis.table = table || reactive(this.createTableObject())\n\t\tthis.display = this.createDisplayObject(display)\n\t\tthis.modal = reactive({ visible: false })\n\t}\n\n\tcreateTableObject() {\n\t\tconst table = {}\n\t\tfor (const [colIndex, column] of this.columns.entries()) {\n\t\t\tfor (const [rowIndex, row] of this.rows.entries()) {\n\t\t\t\ttable[`${colIndex}:${rowIndex}`] = row[column.name]\n\t\t\t}\n\t\t}\n\t\treturn table\n\t}\n\n\tcreateDisplayObject(display?: TableDisplay[]) {\n\t\tconst defaultDisplay: TableDisplay[] = [Object.assign({}, { modified: false })]\n\n\t\t// TODO: (typing) what is the type of `display` here?\n\t\tif (display) {\n\t\t\tif ('0:0' in display) {\n\t\t\t\treturn display\n\t\t\t}\n\t\t\t// else if ('default' in display) {\n\t\t\t// \t// TODO: (typing) what is the possible input here for 'default'?\n\t\t\t// \tdefaultDisplay = display.default\n\t\t\t// }\n\t\t}\n\n\t\t// TODO: (typing) is this type correct for the parent set?\n\t\tconst parents = new Set()\n\t\tfor (let rowIndex = this.rows.length - 1; rowIndex >= 0; rowIndex--) {\n\t\t\tconst row = this.rows[rowIndex]\n\t\t\tif (row.parent) {\n\t\t\t\tparents.add(row.parent)\n\t\t\t}\n\n\t\t\tdefaultDisplay[rowIndex] = {\n\t\t\t\tchildrenOpen: false,\n\t\t\t\texpanded: false,\n\t\t\t\tindent: row.indent || null,\n\t\t\t\tisParent: parents.has(rowIndex),\n\t\t\t\tisRoot: row.parent === null || row.parent === undefined,\n\t\t\t\tmodified: false,\n\t\t\t\topen: row.parent === null || row.parent === undefined,\n\t\t\t\tparent: row.parent,\n\t\t\t}\n\t\t}\n\n\t\treturn reactive(defaultDisplay)\n\t}\n\n\tget zeroColumn() {\n\t\treturn ['list', 'tree', 'list-expansion'].includes(this.config.view)\n\t}\n\n\tget numberedRowWidth() {\n\t\treturn computed(() => {\n\t\t\treturn String(Math.ceil(this.rows.length / 100) + 1) + 'ch'\n\t\t})\n\t}\n\n\tcellData(colIndex: number, rowIndex: number): T {\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\tsetCellData(rowIndex: number, colIndex: number, value: any) {\n\t\tif (this.table[`${colIndex}:${rowIndex}`] !== value) {\n\t\t\tthis.display[rowIndex].modified = true\n\t\t}\n\t\tthis.table[`${colIndex}:${rowIndex}`] = value\n\t\tconst col = this.columns[colIndex]\n\t\tthis.rows[rowIndex][col.name] = value\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\ttoggleRowExpand(rowIndex: number) {\n\t\tif (this.config.view === 'tree') {\n\t\t\tthis.display[rowIndex].childrenOpen = !this.display[rowIndex].childrenOpen\n\t\t\tfor (let index = this.rows.length - 1; index >= 0; index--) {\n\t\t\t\tif (this.display[index].parent === rowIndex) {\n\t\t\t\t\tthis.display[index].open = !this.display[index].open\n\t\t\t\t\tif (this.display[index].childrenOpen) {\n\t\t\t\t\t\tthis.toggleRowExpand(index)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.config.view === 'list-expansion') {\n\t\t\tthis.display[rowIndex].expanded = !this.display[rowIndex].expanded\n\t\t}\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACell from '@/components/ACell.vue'\nimport AExpansionRow from '@/components/AExpansionRow.vue'\nimport ARow from '@/components/ARow.vue'\nimport ATable from '@/components/ATable.vue'\nimport ATableHeader from '@/components/ATableHeader.vue'\nimport ATableModal from '@/components/ATableModal.vue'\nimport TableDataStore from './components'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACell', ACell)\n\tapp.component('AExpansionRow', AExpansionRow)\n\tapp.component('ARow', ARow)\n\tapp.component('ATable', ATable)\n\tapp.component('ATableHeader', ATableHeader)\n\tapp.component('ATableModal', ATableModal)\n}\n\nexport { install, ACell, AExpansionRow, ARow, ATable, ATableHeader, ATableModal, TableDataStore }\n"],"names":["v","M","F","e","j","H","Q","q","G","U","K","y","t","r","N","z","n","o","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","te","f","u","A","E","l","ne","s","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","props","__props","tableData","inject","cell","ref","cellModified","displayValue","computed","data","format","handleInput","event","domRect","cellWidth","handlers","defaultKeypressHandlers","useKeyboardNav","textAlign","currentData","onFocus","onChange","getIndent","colKey","indent","cellStyle","_a","rowEl","rowExpanded","getRowExpandSymbol","keyboardNav","numberedRowWidth","rowVisible","toggleRowExpand","rowIndex","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","arr","offset","randomUUID","native","v4","options","buf","rnds","TableDataStore","id","columns","rows","config","table","display","reactive","colIndex","column","row","defaultDisplay","parents","value","col","index","getHeaderCellStyle","emit","__emit","provide","watch","newValue","oldValue","clickOutside","$parent","nextTick","$parentCell","install","app","ACell","AExpansionRow","ARow","ATable","ATableHeader","ATableModal"],"mappings":"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","x_google_ignoreList":[4,5,6,7]} \ No newline at end of file +{"version":3,"file":"atable.js","sources":["../../utilities/dist/utilities.js","../src/components/ACell.vue","../src/components/AExpansionRow.vue","../src/components/ARow.vue","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../src/components/index.ts","../src/components/ATableHeader.vue","../src/components/ATableModal.vue","../src/components/ATable.vue","../src/index.ts"],"sourcesContent":["import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 } from 'uuid'\nimport { computed, reactive } from 'vue'\n\nimport type { TableDisplay, TableRow, TableColumn, TableConfig, TableModal } from '../../types'\n\nexport default class TableDataStore {\n\tid: string\n\trows: TableRow[]\n\tcolumns: TableColumn[]\n\tconfig: TableConfig\n\ttable: { [key: string]: any }\n\tdisplay: TableDisplay[]\n\tmodal: TableModal\n\n\tconstructor(\n\t\tid?: string,\n\t\tcolumns?: TableColumn[],\n\t\trows?: TableRow[],\n\t\tconfig?: TableConfig,\n\t\ttable?: { [key: string]: any },\n\t\tdisplay?: TableDisplay[]\n\t) {\n\t\tthis.id = id || v4()\n\t\tthis.rows = rows\n\t\tthis.columns = reactive(columns)\n\t\tthis.config = reactive(config)\n\t\tthis.table = table || reactive(this.createTableObject())\n\t\tthis.display = this.createDisplayObject(display)\n\t\tthis.modal = reactive({ visible: false })\n\t}\n\n\tcreateTableObject() {\n\t\tconst table = {}\n\t\tfor (const [colIndex, column] of this.columns.entries()) {\n\t\t\tfor (const [rowIndex, row] of this.rows.entries()) {\n\t\t\t\ttable[`${colIndex}:${rowIndex}`] = row[column.name]\n\t\t\t}\n\t\t}\n\t\treturn table\n\t}\n\n\tcreateDisplayObject(display?: TableDisplay[]) {\n\t\tconst defaultDisplay: TableDisplay[] = [Object.assign({}, { modified: false })]\n\n\t\t// TODO: (typing) what is the type of `display` here?\n\t\tif (display) {\n\t\t\tif ('0:0' in display) {\n\t\t\t\treturn display\n\t\t\t}\n\t\t\t// else if ('default' in display) {\n\t\t\t// \t// TODO: (typing) what is the possible input here for 'default'?\n\t\t\t// \tdefaultDisplay = display.default\n\t\t\t// }\n\t\t}\n\n\t\t// TODO: (typing) is this type correct for the parent set?\n\t\tconst parents = new Set()\n\t\tfor (let rowIndex = this.rows.length - 1; rowIndex >= 0; rowIndex--) {\n\t\t\tconst row = this.rows[rowIndex]\n\t\t\tif (row.parent) {\n\t\t\t\tparents.add(row.parent)\n\t\t\t}\n\n\t\t\tdefaultDisplay[rowIndex] = {\n\t\t\t\tchildrenOpen: false,\n\t\t\t\texpanded: false,\n\t\t\t\tindent: row.indent || null,\n\t\t\t\tisParent: parents.has(rowIndex),\n\t\t\t\tisRoot: row.parent === null || row.parent === undefined,\n\t\t\t\tmodified: false,\n\t\t\t\topen: row.parent === null || row.parent === undefined,\n\t\t\t\tparent: row.parent,\n\t\t\t}\n\t\t}\n\n\t\treturn reactive(defaultDisplay)\n\t}\n\n\tget zeroColumn() {\n\t\treturn ['list', 'tree', 'list-expansion'].includes(this.config.view)\n\t}\n\n\tget numberedRowWidth() {\n\t\treturn computed(() => {\n\t\t\treturn String(Math.ceil(this.rows.length / 100) + 1) + 'ch'\n\t\t})\n\t}\n\n\tcellData(colIndex: number, rowIndex: number): T {\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\tsetCellData(rowIndex: number, colIndex: number, value: any) {\n\t\tif (this.table[`${colIndex}:${rowIndex}`] !== value) {\n\t\t\tthis.display[rowIndex].modified = true\n\t\t}\n\t\tthis.table[`${colIndex}:${rowIndex}`] = value\n\t\tconst col = this.columns[colIndex]\n\t\tthis.rows[rowIndex][col.name] = value\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\ttoggleRowExpand(rowIndex: number) {\n\t\tif (this.config.view === 'tree') {\n\t\t\tthis.display[rowIndex].childrenOpen = !this.display[rowIndex].childrenOpen\n\t\t\tfor (let index = this.rows.length - 1; index >= 0; index--) {\n\t\t\t\tif (this.display[index].parent === rowIndex) {\n\t\t\t\t\tthis.display[index].open = !this.display[index].open\n\t\t\t\t\tif (this.display[index].childrenOpen) {\n\t\t\t\t\t\tthis.toggleRowExpand(index)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.config.view === 'list-expansion') {\n\t\t\tthis.display[rowIndex].expanded = !this.display[rowIndex].expanded\n\t\t}\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACell from '@/components/ACell.vue'\nimport AExpansionRow from '@/components/AExpansionRow.vue'\nimport ARow from '@/components/ARow.vue'\nimport ATable from '@/components/ATable.vue'\nimport ATableHeader from '@/components/ATableHeader.vue'\nimport ATableModal from '@/components/ATableModal.vue'\nimport TableDataStore from './components'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACell', ACell)\n\tapp.component('AExpansionRow', AExpansionRow)\n\tapp.component('ARow', ARow)\n\tapp.component('ATable', ATable)\n\tapp.component('ATableHeader', ATableHeader)\n\tapp.component('ATableModal', ATableModal)\n}\n\nexport { install, ACell, AExpansionRow, ARow, ATable, ATableHeader, ATableModal, TableDataStore }\n"],"names":["v","M","F","e","j","H","Q","q","G","U","K","y","t","r","N","z","n","o","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","te","f","u","A","E","l","ne","s","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","props","__props","tableData","inject","cell","ref","cellModified","displayValue","computed","data","format","handleInput","event","domRect","cellWidth","handlers","defaultKeypressHandlers","useKeyboardNav","textAlign","currentData","onFocus","onChange","getIndent","colKey","indent","cellStyle","_a","rowEl","rowExpanded","getRowExpandSymbol","keyboardNav","numberedRowWidth","rowVisible","toggleRowExpand","rowIndex","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","arr","offset","randomUUID","native","v4","options","buf","rnds","TableDataStore","id","columns","rows","config","table","display","reactive","colIndex","column","row","defaultDisplay","parents","value","col","index","getHeaderCellStyle","emit","__emit","provide","watch","newValue","clickOutside","$parent","nextTick","$parentCell","install","app","ACell","AExpansionRow","ARow","ATable","ATableHeader","ATableModal"],"mappings":"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","x_google_ignoreList":[4,5,6,7]} \ No newline at end of file diff --git a/atable/dist/atable.umd.cjs b/atable/dist/atable.umd.cjs index 26f03aad..22064e62 100644 --- a/atable/dist/atable.umd.cjs +++ b/atable/dist/atable.umd.cjs @@ -1,2 +1,2 @@ -(function(h,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(h=typeof globalThis<"u"?globalThis:h||self,n(h["@stonecrop/atable"]={},h.Vue))})(this,function(h,n){"use strict";var N;const H=typeof window<"u",ne=t=>typeof t=="string",oe=()=>{};H&&(N=window==null?void 0:window.navigator)!=null&&N.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function L(t){return typeof t=="function"?t():n.unref(t)}function le(t){return t}function re(t){return n.getCurrentScope()?(n.onScopeDispose(t),!0):!1}function _(t){var e;const o=L(t);return(e=o==null?void 0:o.$el)!=null?e:o}const V=H?window:void 0;function ae(...t){let e,o,l,a;if(ne(t[0])||Array.isArray(t[0])?([o,l,a]=t,e=V):[e,o,l,a]=t,!e)return oe;Array.isArray(o)||(o=[o]),Array.isArray(l)||(l=[l]);const r=[],i=()=>{r.forEach(m=>m()),r.length=0},s=(m,c,b,w)=>(m.addEventListener(c,b,w),()=>m.removeEventListener(c,b,w)),d=n.watch(()=>[_(e),L(a)],([m,c])=>{i(),m&&r.push(...o.flatMap(b=>l.map(w=>s(m,b,w,c))))},{immediate:!0,flush:"post"}),p=()=>{d(),i()};return re(p),p}const M=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},j="__vueuse_ssr_handlers__";M[j]=M[j]||{};function ie(t,{window:e=V,scrollTarget:o}={}){const l=n.ref(!1),a=()=>{if(!e)return;const r=e.document,i=_(t);if(!i)l.value=!1;else{const s=i.getBoundingClientRect();l.value=s.top<=(e.innerHeight||r.documentElement.clientHeight)&&s.left<=(e.innerWidth||r.documentElement.clientWidth)&&s.bottom>=0&&s.right>=0}};return n.watch(()=>_(t),()=>a(),{immediate:!0,flush:"post"}),e&&ae(o||e,"scroll",a,{capture:!1,passive:!0}),l}var U;(function(t){t.UP="UP",t.RIGHT="RIGHT",t.DOWN="DOWN",t.LEFT="LEFT",t.NONE="NONE"})(U||(U={}));var se=Object.defineProperty,W=Object.getOwnPropertySymbols,de=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,F=(t,e,o)=>e in t?se(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,fe=(t,e)=>{for(var o in e||(e={}))de.call(e,o)&&F(t,o,e[o]);if(W)for(var o of W(e))ce.call(e,o)&&F(t,o,e[o]);return t};fe({linear:le},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const y=t=>{let e=ie(t).value;return e=e&&t.offsetHeight>0,e},x=t=>t.tabIndex>=0,Q=t=>{const e=t.target;return S(e)},S=t=>{var e;let o;if(t instanceof HTMLTableCellElement){const l=(e=t.parentElement)==null?void 0:e.previousElementSibling;if(l){const a=Array.from(l.children)[t.cellIndex];a&&(o=a)}}else if(t instanceof HTMLTableRowElement){const l=t.previousElementSibling;l&&(o=l)}return o&&(!x(o)||!y(o))?S(o):o},pe=t=>{var e;const o=t.target;let l;if(o instanceof HTMLTableCellElement){const a=(e=o.parentElement)==null?void 0:e.parentElement;if(a){const r=a.firstElementChild.children[o.cellIndex];r&&(l=r)}}else if(o instanceof HTMLTableRowElement){const a=o.parentElement;if(a){const r=a.firstElementChild;r&&(l=r)}}return l&&(!x(l)||!y(l))?A(l):l},z=t=>{const e=t.target;return A(e)},A=t=>{var e;let o;if(t instanceof HTMLTableCellElement){const l=(e=t.parentElement)==null?void 0:e.nextElementSibling;if(l){const a=Array.from(l.children)[t.cellIndex];a&&(o=a)}}else if(t instanceof HTMLTableRowElement){const l=t.nextElementSibling;l&&(o=l)}return o&&(!x(o)||!y(o))?A(o):o},me=t=>{var e;const o=t.target;let l;if(o instanceof HTMLTableCellElement){const a=(e=o.parentElement)==null?void 0:e.parentElement;if(a){const r=a.lastElementChild.children[o.cellIndex];r&&(l=r)}}else if(o instanceof HTMLTableRowElement){const a=o.parentElement;if(a){const r=a.lastElementChild;r&&(l=r)}}return l&&(!x(l)||!y(l))?S(l):l},q=t=>{const e=t.target;return T(e)},T=t=>{var e;let o;if(t.previousElementSibling)o=t.previousElementSibling;else{const l=(e=t.parentElement)==null?void 0:e.previousElementSibling;o=l==null?void 0:l.lastElementChild}return o&&(!x(o)||!y(o))?T(o):o},G=t=>{const e=t.target;return $(e)},$=t=>{var e;let o;if(t.nextElementSibling)o=t.nextElementSibling;else{const l=(e=t.parentElement)==null?void 0:e.nextElementSibling;o=l==null?void 0:l.firstElementChild}return o&&(!x(o)||!y(o))?$(o):o},J=t=>{const e=t.target.parentElement.firstElementChild;return e&&(!x(e)||!y(e))?$(e):e},X=t=>{const e=t.target.parentElement.lastElementChild;return e&&(!x(e)||!y(e))?T(e):e},k=["alt","control","shift","meta"],ue={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},Y={"keydown.up":t=>{const e=Q(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.down":t=>{const e=z(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.left":t=>{const e=q(t);t.preventDefault(),t.stopPropagation(),e&&e.focus()},"keydown.right":t=>{const e=G(t);t.preventDefault(),t.stopPropagation(),e&&e.focus()},"keydown.control.up":t=>{const e=pe(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.down":t=>{const e=me(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.left":t=>{const e=J(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.right":t=>{const e=X(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.end":t=>{const e=X(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.enter":t=>{if(t.target instanceof HTMLTableCellElement){t.preventDefault(),t.stopPropagation();const e=z(t);e&&e.focus()}},"keydown.shift.enter":t=>{if(t.target instanceof HTMLTableCellElement){t.preventDefault(),t.stopPropagation();const e=Q(t);e&&e.focus()}},"keydown.home":t=>{const e=J(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.tab":t=>{const e=G(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.shift.tab":t=>{const e=q(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())}};function D(t){const e=l=>{let a=null;l.parent&&(typeof l.parent=="string"?a=document.querySelector(l.parent):l.parent instanceof Element?a=l.parent:a=l.parent.value);let r=[];if(l.selectors)if(typeof l.selectors=="string")r=a?Array.from(a.querySelectorAll(l.selectors)):Array.from(document.querySelectorAll(l.selectors));else if(l.selectors instanceof Element)r.push(l.selectors);else if(Array.isArray(l.selectors.value))for(const i of l.selectors.value)i instanceof Element?r.push(i):r.push(i.$el);else r.push(l.selectors.value);else r=Array.from(a.children).filter(i=>x(i)&&y(i));return r},o=l=>a=>{const r=ue[a.key]||a.key.toLowerCase();if(k.includes(r))return;const i=l.handlers||Y;for(const s of Object.keys(i)){const[d,...p]=s.split(".");if(d==="keydown"&&p.includes(r)){const m=i[s],c=p.filter(w=>k.includes(w)),b=k.some(w=>{const E=w.charAt(0).toUpperCase()+w.slice(1);return a.getModifierState(E)});if(c.length>0){if(b){for(const w of k)if(p.includes(w)){const E=w.charAt(0).toUpperCase()+w.slice(1);a.getModifierState(E)&&m(a)}}}else b||m(a)}}};n.onMounted(()=>{for(const l of t){const a=e(l);for(const r of a)r.addEventListener("keydown",o(l))}}),n.onBeforeUnmount(()=>{for(const l of t){const a=e(l);for(const r of a)r.removeEventListener("keydown",o(l))}})}const we=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],he={key:1},ge=n.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},tableid:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},clickHandler:{}},setup(t){var E;const e=t,o=n.inject(e.tableid),l=n.ref(null);let a=n.ref(!1);const r=n.computed(()=>{const f=o.cellData(e.colIndex,e.rowIndex);if(o.columns[e.colIndex].format){const g=o.columns[e.colIndex].format;return typeof g=="function"?g(f):typeof g=="string"?Function(`"use strict";return (${g})`)()(f):f}else return f}),i=f=>{if(e.clickHandler){e.clickHandler(f);return}if(o.columns[e.colIndex].mask,o.columns[e.colIndex].modalComponent){const g=l.value.getBoundingClientRect();o.modal.visible=!0,o.modal.colIndex=e.colIndex,o.modal.rowIndex=e.rowIndex,o.modal.parent=l.value,o.modal.top=g.top+g.height,o.modal.left=g.left,o.modal.width=d.value,o.modal.component=o.columns[e.colIndex].modalComponent,o.modal.componentProps=o.columns[e.colIndex].modalComponentProps}};if(e.addNavigation){let f={...Y,"keydown.f2":i,"keydown.alt.up":i,"keydown.alt.down":i,"keydown.alt.left":i,"keydown.alt.right":i};typeof e.addNavigation=="object"&&(f={...f,...e.addNavigation}),D([{selectors:l,handlers:f}])}const s=n.computed(()=>o.columns[e.colIndex].align||"center"),d=n.computed(()=>o.columns[e.colIndex].width||"40ch");let p="";const m=()=>{l.value&&(p=l.value.innerText)},c=()=>{l.value&&l.value.innerHTML!==p&&(p=l.value.innerText,l.value.dispatchEvent(new Event("change")),a.value=!0,o.columns[e.colIndex].format||o.setCellData(e.rowIndex,e.colIndex,p))},b=(f,g)=>g&&f===0&&g>0?`${g}ch`:"inherit",w={textAlign:s.value,width:d.value,backgroundColor:a.value?"var(--cell-modified-color)":"inherit",fontWeight:a.value?"bold":"inherit",paddingLeft:b(e.colIndex,(E=o.display[e.rowIndex])==null?void 0:E.indent)};return(f,g)=>(n.openBlock(),n.createElementBlock("td",{ref_key:"cell",ref:l,"data-colindex":f.colIndex,"data-rowindex":f.rowIndex,"data-editable":n.unref(o).columns[f.colIndex].edit,contenteditable:n.unref(o).columns[f.colIndex].edit,tabindex:f.tabIndex,spellcheck:!1,style:w,onFocus:m,onPaste:c,onBlur:c,onInput:c,onClick:i,onMousedown:i},[n.unref(o).columns[f.colIndex].cellComponent?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(o).columns[f.colIndex].cellComponent),n.mergeProps({key:0,value:r.value},n.unref(o).columns[f.colIndex].cellComponentProps),null,16,["value"])):(n.openBlock(),n.createElementBlock("span",he,n.toDisplayString(r.value),1))],40,we))}}),I=(t,e)=>{const o=t.__vccOpts||t;for(const[l,a]of e)o[l]=a;return o},B=I(ge,[["__scopeId","data-v-07dfe445"]]),be=["tabindex"],ye=["tabindex"],xe=["colspan"],Z=I(n.defineComponent({__name:"AExpansionRow",props:{row:{},rowIndex:{},tableid:{},tabIndex:{default:-1},addNavigation:{}},setup(t){const e=t,o=n.inject(e.tableid),l=n.ref(null),a=n.ref(null),r=()=>o.display[e.rowIndex].expanded?"▼":"►";if(e.addNavigation!==void 0){const i=Object.assign({},e.addNavigation);i["keydown.control.g"]=s=>{s.stopPropagation(),s.preventDefault(),o.toggleRowExpand(e.rowIndex)},D([{selectors:l,handlers:i}])}return(i,s)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("tr",n.mergeProps(i.$attrs,{ref_key:"rowEl",ref:l,tabindex:i.tabIndex,class:"expandable-row"}),[n.createElementVNode("td",{tabIndex:-1,onClick:s[0]||(s[0]=d=>n.unref(o).toggleRowExpand(i.rowIndex)),class:"row-index"},n.toDisplayString(r()),1),n.renderSlot(i.$slots,"row",{},void 0,!0)],16,be),n.unref(o).display[e.rowIndex].expanded?(n.openBlock(),n.createElementBlock("tr",{key:0,ref_key:"rowExpanded",ref:a,tabindex:i.tabIndex,class:"expanded-row"},[n.createElementVNode("td",{tabIndex:-1,colspan:n.unref(o).columns.length+1,class:"expanded-row-content"},[n.renderSlot(i.$slots,"content",{},void 0,!0)],8,xe)],8,ye)):n.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-b2e2ed2d"]]),Ie=["tabindex"],Ee={key:0,tabIndex:-1,class:"list-index"},O=I(n.defineComponent({__name:"ARow",props:{row:{},rowIndex:{},tableid:{},tabIndex:{default:-1},addNavigation:{}},setup(t){n.useCssVars(d=>({"5b18ee03":n.unref(a)}));const e=t,o=n.inject(e.tableid),l=n.ref(null),a=o.numberedRowWidth.value,r=()=>o.config.view!=="tree"?"":o.display[e.rowIndex].isRoot||o.display[e.rowIndex].isParent?o.display[e.rowIndex].childrenOpen?"-":"+":"",i=()=>o.config.view!=="tree"||o.display[e.rowIndex].isRoot||o.display[e.rowIndex].open,s=d=>{o.toggleRowExpand(d)};return e.addNavigation&&D([{selectors:l,handlers:e.addNavigation}]),(d,p)=>n.withDirectives((n.openBlock(),n.createElementBlock("tr",{ref_key:"rowEl",ref:l,tabindex:d.tabIndex,class:"table-row"},[n.unref(o).config.view==="list"?(n.openBlock(),n.createElementBlock("td",Ee,n.toDisplayString(d.rowIndex+1),1)):n.unref(o).config.view==="tree"?(n.openBlock(),n.createElementBlock("td",{key:1,tabIndex:-1,class:"tree-index",onClick:p[0]||(p[0]=m=>s(d.rowIndex))},n.toDisplayString(r()),1)):n.renderSlot(d.$slots,"indexCell",{key:2},void 0,!0),n.renderSlot(d.$slots,"default",{},void 0,!0)],8,Ie)),[[n.vShow,i()]])}}),[["__scopeId","data-v-4c71a067"]]);let C;const ke=new Uint8Array(16);function Ce(){if(!C&&(C=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!C))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return C(ke)}const u=[];for(let t=0;t<256;++t)u.push((t+256).toString(16).slice(1));function _e(t,e=0){return u[t[e+0]]+u[t[e+1]]+u[t[e+2]]+u[t[e+3]]+"-"+u[t[e+4]]+u[t[e+5]]+"-"+u[t[e+6]]+u[t[e+7]]+"-"+u[t[e+8]]+u[t[e+9]]+"-"+u[t[e+10]]+u[t[e+11]]+u[t[e+12]]+u[t[e+13]]+u[t[e+14]]+u[t[e+15]]}const K={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function v(t,e,o){if(K.randomUUID&&!e&&!t)return K.randomUUID();t=t||{};const l=t.random||(t.rng||Ce)();if(l[6]=l[6]&15|64,l[8]=l[8]&63|128,e){o=o||0;for(let a=0;a<16;++a)e[o+a]=l[a];return e}return _e(l)}class ee{constructor(e,o,l,a,r,i){this.id=e||v(),this.rows=l,this.columns=n.reactive(o),this.config=n.reactive(a),this.table=r||n.reactive(this.createTableObject()),this.display=this.createDisplayObject(i),this.modal=n.reactive({visible:!1})}createTableObject(){const e={};for(const[o,l]of this.columns.entries())for(const[a,r]of this.rows.entries())e[`${o}:${a}`]=r[l.name];return e}createDisplayObject(e){const o=[Object.assign({},{modified:!1})];if(e&&"0:0"in e)return e;const l=new Set;for(let a=this.rows.length-1;a>=0;a--){const r=this.rows[a];r.parent&&l.add(r.parent),o[a]={childrenOpen:!1,expanded:!1,indent:r.indent||null,isParent:l.has(a),isRoot:r.parent===null||r.parent===void 0,modified:!1,open:r.parent===null||r.parent===void 0,parent:r.parent}}return n.reactive(o)}get zeroColumn(){return["list","tree","list-expansion"].includes(this.config.view)}get numberedRowWidth(){return n.computed(()=>String(Math.ceil(this.rows.length/100)+1)+"ch")}cellData(e,o){return this.table[`${e}:${o}`]}setCellData(e,o,l){this.table[`${o}:${e}`]!==l&&(this.display[e].modified=!0),this.table[`${o}:${e}`]=l;const a=this.columns[o];return this.rows[e][a.name]=l,this.table[`${o}:${e}`]}toggleRowExpand(e){if(this.config.view==="tree"){this.display[e].childrenOpen=!this.display[e].childrenOpen;for(let o=this.rows.length-1;o>=0;o--)this.display[o].parent===e&&(this.display[o].open=!this.display[o].open,this.display[o].childrenOpen&&this.toggleRowExpand(o))}else this.config.view==="list-expansion"&&(this.display[e].expanded=!this.display[e].expanded)}}const Se={key:0},Ae={class:"atable-header-row",tabindex:"-1"},Te={key:0,id:"header-index"},R=I(n.defineComponent({__name:"ATableHeader",props:{columns:{},config:{},tableid:{}},setup(t){n.useCssVars(r=>({"12d06943":n.unref(l)}));const e=t,o=n.inject(e.tableid),l=o.numberedRowWidth.value,a=r=>({minWidth:r.width||"40ch",textAlign:r.align||"center",width:o.config.fullWidth?"auto":null});return(r,i)=>r.columns.length?(n.openBlock(),n.createElementBlock("thead",Se,[n.createElementVNode("tr",Ae,[n.unref(o).zeroColumn?(n.openBlock(),n.createElementBlock("th",Te)):n.createCommentVNode("",!0),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(r.columns,(s,d)=>(n.openBlock(),n.createElementBlock("th",{key:d,tabindex:"-1",style:n.normalizeStyle(a(s))},[n.renderSlot(r.$slots,"default",{},()=>[n.createTextVNode(n.toDisplayString(s.label||String.fromCharCode(d+97).toUpperCase()),1)],!0)],4))),128))])])):n.createCommentVNode("",!0)}}),[["__scopeId","data-v-16e66636"]]),P=I(n.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},tableid:{}},setup(t){const e=t;n.inject(e.tableid);const o=l=>{l.stopPropagation()};return(l,a)=>(n.openBlock(),n.createElementBlock("div",{ref:"amodal",class:"amodal",tabindex:"-1",onClick:o,onInput:o},[n.renderSlot(l.$slots,"default",{},void 0,!0)],544))}}),[["__scopeId","data-v-10a48b2a"]]),te=I(n.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object},tableid:{}},emits:["update:modelValue"],setup(t,{emit:e}){const o=t,l=e;let a=o.modelValue?o.modelValue:o.rows,r=new ee(o.id,o.columns,a,o.config);n.provide(r.id,r),n.watch(()=>r.rows,(s,d)=>{l("update:modelValue",s)},{deep:!0});const i=s=>{var d;(d=r.modal.parent)!=null&&d.contains(s.target)||r.modal.visible&&(r.modal.visible=!1)};return window.addEventListener("click",i),window.addEventListener("keydown",s=>{if(s.key==="Escape"&&r.modal.visible){r.modal.visible=!1;const d=r.modal.parent;d&&n.nextTick().then(()=>{const p=d.dataset.rowindex,m=d.dataset.colindex,c=document.querySelectorAll(`[data-rowindex='${p}'][data-colindex='${m}']`);c&&c[0].focus()})}}),(s,d)=>(n.openBlock(),n.createElementBlock("table",{class:"atable",style:n.normalizeStyle({width:n.unref(r).config.fullWidth?"100%":"auto"})},[n.renderSlot(s.$slots,"header",{data:n.unref(r)},()=>[n.createVNode(R,{columns:n.unref(r).columns,config:n.unref(r).config,tableid:n.unref(r).id},null,8,["columns","config","tableid"])],!0),n.createElementVNode("tbody",null,[n.renderSlot(s.$slots,"body",{data:n.unref(r)},()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(r).rows,(p,m)=>(n.openBlock(),n.createBlock(O,{key:p.id||n.unref(v)(),row:p,rowIndex:m,tableid:n.unref(r).id},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(r).columns,(c,b)=>(n.openBlock(),n.createBlock(B,{key:`${b}:${m}`,tableid:n.unref(r).id,col:c,spellcheck:"false",rowIndex:m,colIndex:b+(n.unref(r).zeroColumn?0:-1),component:c.cellComponent,style:n.normalizeStyle({textAlign:(c==null?void 0:c.align)||"center",minWidth:(c==null?void 0:c.width)||"40ch",width:n.unref(r).config.fullWidth?"auto":null})},null,8,["tableid","col","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","tableid"]))),128))],!0)]),n.renderSlot(s.$slots,"footer",{data:n.unref(r)},void 0,!0),n.renderSlot(s.$slots,"modal",{data:n.unref(r)},()=>[n.withDirectives(n.createVNode(P,{colIndex:n.unref(r).modal.colIndex,rowIndex:n.unref(r).modal.rowIndex,tableid:n.unref(r).id,style:n.normalizeStyle({left:n.unref(r).modal.left+"px",top:n.unref(r).modal.top+"px",maxWidth:n.unref(r).modal.width+"px"})},{default:n.withCtx(()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(r).modal.component),n.mergeProps({key:`${n.unref(r).modal.rowIndex}:${n.unref(r).modal.colIndex}`,colIndex:n.unref(r).modal.colIndex,rowIndex:n.unref(r).modal.rowIndex,tableid:n.unref(r).id},n.unref(r).modal.componentProps),null,16,["colIndex","rowIndex","tableid"]))]),_:1},8,["colIndex","rowIndex","tableid","style"]),[[n.vShow,n.unref(r).modal.visible]])],!0)],4))}}),[["__scopeId","data-v-819abcc5"]]);function $e(t){t.component("ACell",B),t.component("AExpansionRow",Z),t.component("ARow",O),t.component("ATable",te),t.component("ATableHeader",R),t.component("ATableModal",P)}h.ACell=B,h.AExpansionRow=Z,h.ARow=O,h.ATable=te,h.ATableHeader=R,h.ATableModal=P,h.TableDataStore=ee,h.install=$e,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}); +(function(h,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(h=typeof globalThis<"u"?globalThis:h||self,n(h["@stonecrop/atable"]={},h.Vue))})(this,function(h,n){"use strict";var N;const H=typeof window<"u",ne=t=>typeof t=="string",oe=()=>{};H&&(N=window==null?void 0:window.navigator)!=null&&N.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function L(t){return typeof t=="function"?t():n.unref(t)}function le(t){return t}function re(t){return n.getCurrentScope()?(n.onScopeDispose(t),!0):!1}function _(t){var e;const o=L(t);return(e=o==null?void 0:o.$el)!=null?e:o}const V=H?window:void 0;function ae(...t){let e,o,l,a;if(ne(t[0])||Array.isArray(t[0])?([o,l,a]=t,e=V):[e,o,l,a]=t,!e)return oe;Array.isArray(o)||(o=[o]),Array.isArray(l)||(l=[l]);const r=[],i=()=>{r.forEach(m=>m()),r.length=0},s=(m,c,b,w)=>(m.addEventListener(c,b,w),()=>m.removeEventListener(c,b,w)),d=n.watch(()=>[_(e),L(a)],([m,c])=>{i(),m&&r.push(...o.flatMap(b=>l.map(w=>s(m,b,w,c))))},{immediate:!0,flush:"post"}),p=()=>{d(),i()};return re(p),p}const M=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},j="__vueuse_ssr_handlers__";M[j]=M[j]||{};function ie(t,{window:e=V,scrollTarget:o}={}){const l=n.ref(!1),a=()=>{if(!e)return;const r=e.document,i=_(t);if(!i)l.value=!1;else{const s=i.getBoundingClientRect();l.value=s.top<=(e.innerHeight||r.documentElement.clientHeight)&&s.left<=(e.innerWidth||r.documentElement.clientWidth)&&s.bottom>=0&&s.right>=0}};return n.watch(()=>_(t),()=>a(),{immediate:!0,flush:"post"}),e&&ae(o||e,"scroll",a,{capture:!1,passive:!0}),l}var U;(function(t){t.UP="UP",t.RIGHT="RIGHT",t.DOWN="DOWN",t.LEFT="LEFT",t.NONE="NONE"})(U||(U={}));var se=Object.defineProperty,W=Object.getOwnPropertySymbols,de=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,F=(t,e,o)=>e in t?se(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,fe=(t,e)=>{for(var o in e||(e={}))de.call(e,o)&&F(t,o,e[o]);if(W)for(var o of W(e))ce.call(e,o)&&F(t,o,e[o]);return t};fe({linear:le},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const y=t=>{let e=ie(t).value;return e=e&&t.offsetHeight>0,e},x=t=>t.tabIndex>=0,Q=t=>{const e=t.target;return S(e)},S=t=>{var e;let o;if(t instanceof HTMLTableCellElement){const l=(e=t.parentElement)==null?void 0:e.previousElementSibling;if(l){const a=Array.from(l.children)[t.cellIndex];a&&(o=a)}}else if(t instanceof HTMLTableRowElement){const l=t.previousElementSibling;l&&(o=l)}return o&&(!x(o)||!y(o))?S(o):o},pe=t=>{var e;const o=t.target;let l;if(o instanceof HTMLTableCellElement){const a=(e=o.parentElement)==null?void 0:e.parentElement;if(a){const r=a.firstElementChild.children[o.cellIndex];r&&(l=r)}}else if(o instanceof HTMLTableRowElement){const a=o.parentElement;if(a){const r=a.firstElementChild;r&&(l=r)}}return l&&(!x(l)||!y(l))?A(l):l},z=t=>{const e=t.target;return A(e)},A=t=>{var e;let o;if(t instanceof HTMLTableCellElement){const l=(e=t.parentElement)==null?void 0:e.nextElementSibling;if(l){const a=Array.from(l.children)[t.cellIndex];a&&(o=a)}}else if(t instanceof HTMLTableRowElement){const l=t.nextElementSibling;l&&(o=l)}return o&&(!x(o)||!y(o))?A(o):o},me=t=>{var e;const o=t.target;let l;if(o instanceof HTMLTableCellElement){const a=(e=o.parentElement)==null?void 0:e.parentElement;if(a){const r=a.lastElementChild.children[o.cellIndex];r&&(l=r)}}else if(o instanceof HTMLTableRowElement){const a=o.parentElement;if(a){const r=a.lastElementChild;r&&(l=r)}}return l&&(!x(l)||!y(l))?S(l):l},q=t=>{const e=t.target;return T(e)},T=t=>{var e;let o;if(t.previousElementSibling)o=t.previousElementSibling;else{const l=(e=t.parentElement)==null?void 0:e.previousElementSibling;o=l==null?void 0:l.lastElementChild}return o&&(!x(o)||!y(o))?T(o):o},G=t=>{const e=t.target;return $(e)},$=t=>{var e;let o;if(t.nextElementSibling)o=t.nextElementSibling;else{const l=(e=t.parentElement)==null?void 0:e.nextElementSibling;o=l==null?void 0:l.firstElementChild}return o&&(!x(o)||!y(o))?$(o):o},J=t=>{const e=t.target.parentElement.firstElementChild;return e&&(!x(e)||!y(e))?$(e):e},X=t=>{const e=t.target.parentElement.lastElementChild;return e&&(!x(e)||!y(e))?T(e):e},k=["alt","control","shift","meta"],ue={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},Y={"keydown.up":t=>{const e=Q(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.down":t=>{const e=z(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.left":t=>{const e=q(t);t.preventDefault(),t.stopPropagation(),e&&e.focus()},"keydown.right":t=>{const e=G(t);t.preventDefault(),t.stopPropagation(),e&&e.focus()},"keydown.control.up":t=>{const e=pe(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.down":t=>{const e=me(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.left":t=>{const e=J(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.control.right":t=>{const e=X(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.end":t=>{const e=X(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.enter":t=>{if(t.target instanceof HTMLTableCellElement){t.preventDefault(),t.stopPropagation();const e=z(t);e&&e.focus()}},"keydown.shift.enter":t=>{if(t.target instanceof HTMLTableCellElement){t.preventDefault(),t.stopPropagation();const e=Q(t);e&&e.focus()}},"keydown.home":t=>{const e=J(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.tab":t=>{const e=G(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())},"keydown.shift.tab":t=>{const e=q(t);e&&(t.preventDefault(),t.stopPropagation(),e.focus())}};function D(t){const e=l=>{let a=null;l.parent&&(typeof l.parent=="string"?a=document.querySelector(l.parent):l.parent instanceof Element?a=l.parent:a=l.parent.value);let r=[];if(l.selectors)if(typeof l.selectors=="string")r=a?Array.from(a.querySelectorAll(l.selectors)):Array.from(document.querySelectorAll(l.selectors));else if(l.selectors instanceof Element)r.push(l.selectors);else if(Array.isArray(l.selectors.value))for(const i of l.selectors.value)i instanceof Element?r.push(i):r.push(i.$el);else r.push(l.selectors.value);else r=Array.from(a.children).filter(i=>x(i)&&y(i));return r},o=l=>a=>{const r=ue[a.key]||a.key.toLowerCase();if(k.includes(r))return;const i=l.handlers||Y;for(const s of Object.keys(i)){const[d,...p]=s.split(".");if(d==="keydown"&&p.includes(r)){const m=i[s],c=p.filter(w=>k.includes(w)),b=k.some(w=>{const E=w.charAt(0).toUpperCase()+w.slice(1);return a.getModifierState(E)});if(c.length>0){if(b){for(const w of k)if(p.includes(w)){const E=w.charAt(0).toUpperCase()+w.slice(1);a.getModifierState(E)&&m(a)}}}else b||m(a)}}};n.onMounted(()=>{for(const l of t){const a=e(l);for(const r of a)r.addEventListener("keydown",o(l))}}),n.onBeforeUnmount(()=>{for(const l of t){const a=e(l);for(const r of a)r.removeEventListener("keydown",o(l))}})}const we=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],he={key:1},ge=n.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},tableid:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},clickHandler:{}},setup(t){var E;const e=t,o=n.inject(e.tableid),l=n.ref(null);let a=n.ref(!1);const r=n.computed(()=>{const f=o.cellData(e.colIndex,e.rowIndex);if(o.columns[e.colIndex].format){const g=o.columns[e.colIndex].format;return typeof g=="function"?g(f):typeof g=="string"?Function(`"use strict";return (${g})`)()(f):f}else return f}),i=f=>{if(e.clickHandler){e.clickHandler(f);return}if(o.columns[e.colIndex].mask,o.columns[e.colIndex].modalComponent){const g=l.value.getBoundingClientRect();o.modal.visible=!0,o.modal.colIndex=e.colIndex,o.modal.rowIndex=e.rowIndex,o.modal.parent=l.value,o.modal.top=g.top+g.height,o.modal.left=g.left,o.modal.width=d.value,o.modal.component=o.columns[e.colIndex].modalComponent,o.modal.componentProps=o.columns[e.colIndex].modalComponentProps}};if(e.addNavigation){let f={...Y,"keydown.f2":i,"keydown.alt.up":i,"keydown.alt.down":i,"keydown.alt.left":i,"keydown.alt.right":i};typeof e.addNavigation=="object"&&(f={...f,...e.addNavigation}),D([{selectors:l,handlers:f}])}const s=n.computed(()=>o.columns[e.colIndex].align||"center"),d=n.computed(()=>o.columns[e.colIndex].width||"40ch");let p="";const m=()=>{l.value&&(p=l.value.innerText)},c=()=>{l.value&&l.value.innerHTML!==p&&(p=l.value.innerText,l.value.dispatchEvent(new Event("change")),a.value=!0,o.columns[e.colIndex].format||o.setCellData(e.rowIndex,e.colIndex,p))},b=(f,g)=>g&&f===0&&g>0?`${g}ch`:"inherit",w={textAlign:s.value,width:d.value,backgroundColor:a.value?"var(--cell-modified-color)":"inherit",fontWeight:a.value?"bold":"inherit",paddingLeft:b(e.colIndex,(E=o.display[e.rowIndex])==null?void 0:E.indent)};return(f,g)=>(n.openBlock(),n.createElementBlock("td",{ref_key:"cell",ref:l,"data-colindex":f.colIndex,"data-rowindex":f.rowIndex,"data-editable":n.unref(o).columns[f.colIndex].edit,contenteditable:n.unref(o).columns[f.colIndex].edit,tabindex:f.tabIndex,spellcheck:!1,style:w,onFocus:m,onPaste:c,onBlur:c,onInput:c,onClick:i,onMousedown:i},[n.unref(o).columns[f.colIndex].cellComponent?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(o).columns[f.colIndex].cellComponent),n.mergeProps({key:0,value:r.value},n.unref(o).columns[f.colIndex].cellComponentProps),null,16,["value"])):(n.openBlock(),n.createElementBlock("span",he,n.toDisplayString(r.value),1))],40,we))}}),I=(t,e)=>{const o=t.__vccOpts||t;for(const[l,a]of e)o[l]=a;return o},B=I(ge,[["__scopeId","data-v-07dfe445"]]),be=["tabindex"],ye=["tabindex"],xe=["colspan"],Z=I(n.defineComponent({__name:"AExpansionRow",props:{row:{},rowIndex:{},tableid:{},tabIndex:{default:-1},addNavigation:{}},setup(t){const e=t,o=n.inject(e.tableid),l=n.ref(null),a=n.ref(null),r=()=>o.display[e.rowIndex].expanded?"▼":"►";if(e.addNavigation!==void 0){const i=Object.assign({},e.addNavigation);i["keydown.control.g"]=s=>{s.stopPropagation(),s.preventDefault(),o.toggleRowExpand(e.rowIndex)},D([{selectors:l,handlers:i}])}return(i,s)=>(n.openBlock(),n.createElementBlock(n.Fragment,null,[n.createElementVNode("tr",n.mergeProps(i.$attrs,{ref_key:"rowEl",ref:l,tabindex:i.tabIndex,class:"expandable-row"}),[n.createElementVNode("td",{tabIndex:-1,onClick:s[0]||(s[0]=d=>n.unref(o).toggleRowExpand(i.rowIndex)),class:"row-index"},n.toDisplayString(r()),1),n.renderSlot(i.$slots,"row",{},void 0,!0)],16,be),n.unref(o).display[e.rowIndex].expanded?(n.openBlock(),n.createElementBlock("tr",{key:0,ref_key:"rowExpanded",ref:a,tabindex:i.tabIndex,class:"expanded-row"},[n.createElementVNode("td",{tabIndex:-1,colspan:n.unref(o).columns.length+1,class:"expanded-row-content"},[n.renderSlot(i.$slots,"content",{},void 0,!0)],8,xe)],8,ye)):n.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-b2e2ed2d"]]),Ie=["tabindex"],Ee={key:0,tabIndex:-1,class:"list-index"},O=I(n.defineComponent({__name:"ARow",props:{row:{},rowIndex:{},tableid:{},tabIndex:{default:-1},addNavigation:{}},setup(t){n.useCssVars(d=>({"5b18ee03":n.unref(a)}));const e=t,o=n.inject(e.tableid),l=n.ref(null),a=o.numberedRowWidth.value,r=()=>o.config.view!=="tree"?"":o.display[e.rowIndex].isRoot||o.display[e.rowIndex].isParent?o.display[e.rowIndex].childrenOpen?"-":"+":"",i=()=>o.config.view!=="tree"||o.display[e.rowIndex].isRoot||o.display[e.rowIndex].open,s=d=>{o.toggleRowExpand(d)};return e.addNavigation&&D([{selectors:l,handlers:e.addNavigation}]),(d,p)=>n.withDirectives((n.openBlock(),n.createElementBlock("tr",{ref_key:"rowEl",ref:l,tabindex:d.tabIndex,class:"table-row"},[n.unref(o).config.view==="list"?(n.openBlock(),n.createElementBlock("td",Ee,n.toDisplayString(d.rowIndex+1),1)):n.unref(o).config.view==="tree"?(n.openBlock(),n.createElementBlock("td",{key:1,tabIndex:-1,class:"tree-index",onClick:p[0]||(p[0]=m=>s(d.rowIndex))},n.toDisplayString(r()),1)):n.renderSlot(d.$slots,"indexCell",{key:2},void 0,!0),n.renderSlot(d.$slots,"default",{},void 0,!0)],8,Ie)),[[n.vShow,i()]])}}),[["__scopeId","data-v-4c71a067"]]);let C;const ke=new Uint8Array(16);function Ce(){if(!C&&(C=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!C))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return C(ke)}const u=[];for(let t=0;t<256;++t)u.push((t+256).toString(16).slice(1));function _e(t,e=0){return u[t[e+0]]+u[t[e+1]]+u[t[e+2]]+u[t[e+3]]+"-"+u[t[e+4]]+u[t[e+5]]+"-"+u[t[e+6]]+u[t[e+7]]+"-"+u[t[e+8]]+u[t[e+9]]+"-"+u[t[e+10]]+u[t[e+11]]+u[t[e+12]]+u[t[e+13]]+u[t[e+14]]+u[t[e+15]]}const K={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function v(t,e,o){if(K.randomUUID&&!e&&!t)return K.randomUUID();t=t||{};const l=t.random||(t.rng||Ce)();if(l[6]=l[6]&15|64,l[8]=l[8]&63|128,e){o=o||0;for(let a=0;a<16;++a)e[o+a]=l[a];return e}return _e(l)}class ee{constructor(e,o,l,a,r,i){this.id=e||v(),this.rows=l,this.columns=n.reactive(o),this.config=n.reactive(a),this.table=r||n.reactive(this.createTableObject()),this.display=this.createDisplayObject(i),this.modal=n.reactive({visible:!1})}createTableObject(){const e={};for(const[o,l]of this.columns.entries())for(const[a,r]of this.rows.entries())e[`${o}:${a}`]=r[l.name];return e}createDisplayObject(e){const o=[Object.assign({},{modified:!1})];if(e&&"0:0"in e)return e;const l=new Set;for(let a=this.rows.length-1;a>=0;a--){const r=this.rows[a];r.parent&&l.add(r.parent),o[a]={childrenOpen:!1,expanded:!1,indent:r.indent||null,isParent:l.has(a),isRoot:r.parent===null||r.parent===void 0,modified:!1,open:r.parent===null||r.parent===void 0,parent:r.parent}}return n.reactive(o)}get zeroColumn(){return["list","tree","list-expansion"].includes(this.config.view)}get numberedRowWidth(){return n.computed(()=>String(Math.ceil(this.rows.length/100)+1)+"ch")}cellData(e,o){return this.table[`${e}:${o}`]}setCellData(e,o,l){this.table[`${o}:${e}`]!==l&&(this.display[e].modified=!0),this.table[`${o}:${e}`]=l;const a=this.columns[o];return this.rows[e][a.name]=l,this.table[`${o}:${e}`]}toggleRowExpand(e){if(this.config.view==="tree"){this.display[e].childrenOpen=!this.display[e].childrenOpen;for(let o=this.rows.length-1;o>=0;o--)this.display[o].parent===e&&(this.display[o].open=!this.display[o].open,this.display[o].childrenOpen&&this.toggleRowExpand(o))}else this.config.view==="list-expansion"&&(this.display[e].expanded=!this.display[e].expanded)}}const Se={key:0},Ae={class:"atable-header-row",tabindex:"-1"},Te={key:0,id:"header-index"},R=I(n.defineComponent({__name:"ATableHeader",props:{columns:{},config:{},tableid:{}},setup(t){n.useCssVars(r=>({"12d06943":n.unref(l)}));const e=t,o=n.inject(e.tableid),l=o.numberedRowWidth.value,a=r=>({minWidth:r.width||"40ch",textAlign:r.align||"center",width:o.config.fullWidth?"auto":null});return(r,i)=>r.columns.length?(n.openBlock(),n.createElementBlock("thead",Se,[n.createElementVNode("tr",Ae,[n.unref(o).zeroColumn?(n.openBlock(),n.createElementBlock("th",Te)):n.createCommentVNode("",!0),(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(r.columns,(s,d)=>(n.openBlock(),n.createElementBlock("th",{key:d,tabindex:"-1",style:n.normalizeStyle(a(s))},[n.renderSlot(r.$slots,"default",{},()=>[n.createTextVNode(n.toDisplayString(s.label||String.fromCharCode(d+97).toUpperCase()),1)],!0)],4))),128))])])):n.createCommentVNode("",!0)}}),[["__scopeId","data-v-16e66636"]]),P=I(n.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},tableid:{}},setup(t){const e=t;n.inject(e.tableid);const o=l=>{l.stopPropagation()};return(l,a)=>(n.openBlock(),n.createElementBlock("div",{ref:"amodal",class:"amodal",tabindex:"-1",onClick:o,onInput:o},[n.renderSlot(l.$slots,"default",{},void 0,!0)],544))}}),[["__scopeId","data-v-10a48b2a"]]),te=I(n.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object},tableid:{}},emits:["update:modelValue"],setup(t,{emit:e}){const o=t,l=e;let a=o.modelValue?o.modelValue:o.rows,r=new ee(o.id,o.columns,a,o.config);n.provide(r.id,r),n.watch(()=>r.rows,s=>{l("update:modelValue",s)},{deep:!0});const i=s=>{var d;(d=r.modal.parent)!=null&&d.contains(s.target)||r.modal.visible&&(r.modal.visible=!1)};return window.addEventListener("click",i),window.addEventListener("keydown",s=>{if(s.key==="Escape"&&r.modal.visible){r.modal.visible=!1;const d=r.modal.parent;d&&n.nextTick().then(()=>{const p=d.dataset.rowindex,m=d.dataset.colindex,c=document.querySelectorAll(`[data-rowindex='${p}'][data-colindex='${m}']`);c&&c[0].focus()})}}),(s,d)=>(n.openBlock(),n.createElementBlock("table",{class:"atable",style:n.normalizeStyle({width:n.unref(r).config.fullWidth?"100%":"auto"})},[n.renderSlot(s.$slots,"header",{data:n.unref(r)},()=>[n.createVNode(R,{columns:n.unref(r).columns,config:n.unref(r).config,tableid:n.unref(r).id},null,8,["columns","config","tableid"])],!0),n.createElementVNode("tbody",null,[n.renderSlot(s.$slots,"body",{data:n.unref(r)},()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(r).rows,(p,m)=>(n.openBlock(),n.createBlock(O,{key:p.id||n.unref(v)(),row:p,rowIndex:m,tableid:n.unref(r).id},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(r).columns,(c,b)=>(n.openBlock(),n.createBlock(B,{key:`${b}:${m}`,tableid:n.unref(r).id,col:c,spellcheck:"false",rowIndex:m,colIndex:b+(n.unref(r).zeroColumn?0:-1),component:c.cellComponent,style:n.normalizeStyle({textAlign:(c==null?void 0:c.align)||"center",minWidth:(c==null?void 0:c.width)||"40ch",width:n.unref(r).config.fullWidth?"auto":null})},null,8,["tableid","col","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","tableid"]))),128))],!0)]),n.renderSlot(s.$slots,"footer",{data:n.unref(r)},void 0,!0),n.renderSlot(s.$slots,"modal",{data:n.unref(r)},()=>[n.withDirectives(n.createVNode(P,{colIndex:n.unref(r).modal.colIndex,rowIndex:n.unref(r).modal.rowIndex,tableid:n.unref(r).id,style:n.normalizeStyle({left:n.unref(r).modal.left+"px",top:n.unref(r).modal.top+"px",maxWidth:n.unref(r).modal.width+"px"})},{default:n.withCtx(()=>[(n.openBlock(),n.createBlock(n.resolveDynamicComponent(n.unref(r).modal.component),n.mergeProps({key:`${n.unref(r).modal.rowIndex}:${n.unref(r).modal.colIndex}`,colIndex:n.unref(r).modal.colIndex,rowIndex:n.unref(r).modal.rowIndex,tableid:n.unref(r).id},n.unref(r).modal.componentProps),null,16,["colIndex","rowIndex","tableid"]))]),_:1},8,["colIndex","rowIndex","tableid","style"]),[[n.vShow,n.unref(r).modal.visible]])],!0)],4))}}),[["__scopeId","data-v-55d8ba05"]]);function $e(t){t.component("ACell",B),t.component("AExpansionRow",Z),t.component("ARow",O),t.component("ATable",te),t.component("ATableHeader",R),t.component("ATableModal",P)}h.ACell=B,h.AExpansionRow=Z,h.ARow=O,h.ATable=te,h.ATableHeader=R,h.ATableModal=P,h.TableDataStore=ee,h.install=$e,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}); //# sourceMappingURL=atable.umd.cjs.map diff --git a/atable/dist/atable.umd.cjs.map b/atable/dist/atable.umd.cjs.map index 0d8ca2ba..57283ee1 100644 --- a/atable/dist/atable.umd.cjs.map +++ b/atable/dist/atable.umd.cjs.map @@ -1 +1 @@ -{"version":3,"file":"atable.umd.cjs","sources":["../../utilities/dist/utilities.js","../src/components/ACell.vue","../src/components/AExpansionRow.vue","../src/components/ARow.vue","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../src/components/index.ts","../src/components/ATableHeader.vue","../src/components/ATableModal.vue","../src/components/ATable.vue","../src/index.ts"],"sourcesContent":["import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 } from 'uuid'\nimport { computed, reactive } from 'vue'\n\nimport type { TableDisplay, TableRow, TableColumn, TableConfig, TableModal } from '../../types'\n\nexport default class TableDataStore {\n\tid: string\n\trows: TableRow[]\n\tcolumns: TableColumn[]\n\tconfig: TableConfig\n\ttable: { [key: string]: any }\n\tdisplay: TableDisplay[]\n\tmodal: TableModal\n\n\tconstructor(\n\t\tid?: string,\n\t\tcolumns?: TableColumn[],\n\t\trows?: TableRow[],\n\t\tconfig?: TableConfig,\n\t\ttable?: { [key: string]: any },\n\t\tdisplay?: TableDisplay[]\n\t) {\n\t\tthis.id = id || v4()\n\t\tthis.rows = rows\n\t\tthis.columns = reactive(columns)\n\t\tthis.config = reactive(config)\n\t\tthis.table = table || reactive(this.createTableObject())\n\t\tthis.display = this.createDisplayObject(display)\n\t\tthis.modal = reactive({ visible: false })\n\t}\n\n\tcreateTableObject() {\n\t\tconst table = {}\n\t\tfor (const [colIndex, column] of this.columns.entries()) {\n\t\t\tfor (const [rowIndex, row] of this.rows.entries()) {\n\t\t\t\ttable[`${colIndex}:${rowIndex}`] = row[column.name]\n\t\t\t}\n\t\t}\n\t\treturn table\n\t}\n\n\tcreateDisplayObject(display?: TableDisplay[]) {\n\t\tconst defaultDisplay: TableDisplay[] = [Object.assign({}, { modified: false })]\n\n\t\t// TODO: (typing) what is the type of `display` here?\n\t\tif (display) {\n\t\t\tif ('0:0' in display) {\n\t\t\t\treturn display\n\t\t\t}\n\t\t\t// else if ('default' in display) {\n\t\t\t// \t// TODO: (typing) what is the possible input here for 'default'?\n\t\t\t// \tdefaultDisplay = display.default\n\t\t\t// }\n\t\t}\n\n\t\t// TODO: (typing) is this type correct for the parent set?\n\t\tconst parents = new Set()\n\t\tfor (let rowIndex = this.rows.length - 1; rowIndex >= 0; rowIndex--) {\n\t\t\tconst row = this.rows[rowIndex]\n\t\t\tif (row.parent) {\n\t\t\t\tparents.add(row.parent)\n\t\t\t}\n\n\t\t\tdefaultDisplay[rowIndex] = {\n\t\t\t\tchildrenOpen: false,\n\t\t\t\texpanded: false,\n\t\t\t\tindent: row.indent || null,\n\t\t\t\tisParent: parents.has(rowIndex),\n\t\t\t\tisRoot: row.parent === null || row.parent === undefined,\n\t\t\t\tmodified: false,\n\t\t\t\topen: row.parent === null || row.parent === undefined,\n\t\t\t\tparent: row.parent,\n\t\t\t}\n\t\t}\n\n\t\treturn reactive(defaultDisplay)\n\t}\n\n\tget zeroColumn() {\n\t\treturn ['list', 'tree', 'list-expansion'].includes(this.config.view)\n\t}\n\n\tget numberedRowWidth() {\n\t\treturn computed(() => {\n\t\t\treturn String(Math.ceil(this.rows.length / 100) + 1) + 'ch'\n\t\t})\n\t}\n\n\tcellData(colIndex: number, rowIndex: number): T {\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\tsetCellData(rowIndex: number, colIndex: number, value: any) {\n\t\tif (this.table[`${colIndex}:${rowIndex}`] !== value) {\n\t\t\tthis.display[rowIndex].modified = true\n\t\t}\n\t\tthis.table[`${colIndex}:${rowIndex}`] = value\n\t\tconst col = this.columns[colIndex]\n\t\tthis.rows[rowIndex][col.name] = value\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\ttoggleRowExpand(rowIndex: number) {\n\t\tif (this.config.view === 'tree') {\n\t\t\tthis.display[rowIndex].childrenOpen = !this.display[rowIndex].childrenOpen\n\t\t\tfor (let index = this.rows.length - 1; index >= 0; index--) {\n\t\t\t\tif (this.display[index].parent === rowIndex) {\n\t\t\t\t\tthis.display[index].open = !this.display[index].open\n\t\t\t\t\tif (this.display[index].childrenOpen) {\n\t\t\t\t\t\tthis.toggleRowExpand(index)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.config.view === 'list-expansion') {\n\t\t\tthis.display[rowIndex].expanded = !this.display[rowIndex].expanded\n\t\t}\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACell from '@/components/ACell.vue'\nimport AExpansionRow from '@/components/AExpansionRow.vue'\nimport ARow from '@/components/ARow.vue'\nimport ATable from '@/components/ATable.vue'\nimport ATableHeader from '@/components/ATableHeader.vue'\nimport ATableModal from '@/components/ATableModal.vue'\nimport TableDataStore from './components'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACell', ACell)\n\tapp.component('AExpansionRow', AExpansionRow)\n\tapp.component('ARow', ARow)\n\tapp.component('ATable', ATable)\n\tapp.component('ATableHeader', ATableHeader)\n\tapp.component('ATableModal', ATableModal)\n}\n\nexport { install, ACell, AExpansionRow, ARow, ATable, ATableHeader, ATableModal, TableDataStore }\n"],"names":["v","M","F","e","j","H","Q","q","G","U","K","y","t","r","N","z","n","o","l","s","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","f","u","A","E","ne","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","props","__props","tableData","inject","cell","ref","cellModified","displayValue","computed","data","format","handleInput","event","domRect","cellWidth","handlers","defaultKeypressHandlers","useKeyboardNav","textAlign","currentData","onFocus","onChange","getIndent","colKey","indent","cellStyle","_a","rowEl","rowExpanded","getRowExpandSymbol","keyboardNav","numberedRowWidth","rowVisible","toggleRowExpand","rowIndex","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","arr","offset","native","v4","options","buf","rnds","TableDataStore","id","columns","rows","config","table","display","reactive","colIndex","column","row","defaultDisplay","parents","value","col","index","getHeaderCellStyle","emit","__emit","provide","watch","newValue","oldValue","clickOutside","$parent","nextTick","$parentCell","install","app","ACell","AExpansionRow","ARow","ATable","ATableHeader","ATableModal"],"mappings":"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","x_google_ignoreList":[4,5,6,7]} \ No newline at end of file +{"version":3,"file":"atable.umd.cjs","sources":["../../utilities/dist/utilities.js","../src/components/ACell.vue","../src/components/AExpansionRow.vue","../src/components/ARow.vue","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/rng.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/stringify.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/native.js","../../common/temp/node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js","../src/components/index.ts","../src/components/ATableHeader.vue","../src/components/ATableModal.vue","../src/components/ATable.vue","../src/index.ts"],"sourcesContent":["import { unref as Q, getCurrentScope as U, onScopeDispose as K, ref as B, watch as D, onMounted as W, onBeforeUnmount as V } from \"vue\";\nvar v;\nconst M = typeof window < \"u\", F = (e) => typeof e == \"string\", j = () => {\n};\nM && ((v = window == null ? void 0 : window.navigator) != null && v.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction H(e) {\n return typeof e == \"function\" ? e() : Q(e);\n}\nfunction q(e) {\n return e;\n}\nfunction G(e) {\n return U() ? (K(e), !0) : !1;\n}\nfunction y(e) {\n var t;\n const r = H(e);\n return (t = r == null ? void 0 : r.$el) != null ? t : r;\n}\nconst N = M ? window : void 0;\nfunction z(...e) {\n let t, r, n, o;\n if (F(e[0]) || Array.isArray(e[0]) ? ([r, n, o] = e, t = N) : [t, r, n, o] = e, !t)\n return j;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const l = [], s = () => {\n l.forEach((c) => c()), l.length = 0;\n }, a = (c, g, p, i) => (c.addEventListener(g, p, i), () => c.removeEventListener(g, p, i)), C = D(() => [y(t), H(o)], ([c, g]) => {\n s(), c && l.push(...r.flatMap((p) => n.map((i) => a(c, p, i, g))));\n }, { immediate: !0, flush: \"post\" }), d = () => {\n C(), s();\n };\n return G(d), d;\n}\nconst O = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, T = \"__vueuse_ssr_handlers__\";\nO[T] = O[T] || {};\nfunction J(e, { window: t = N, scrollTarget: r } = {}) {\n const n = B(!1), o = () => {\n if (!t)\n return;\n const l = t.document, s = y(e);\n if (!s)\n n.value = !1;\n else {\n const a = s.getBoundingClientRect();\n n.value = a.top <= (t.innerHeight || l.documentElement.clientHeight) && a.left <= (t.innerWidth || l.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;\n }\n };\n return D(() => y(e), () => o(), { immediate: !0, flush: \"post\" }), t && z(r || t, \"scroll\", o, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar P;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(P || (P = {}));\nvar X = Object.defineProperty, I = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, _ = (e, t, r) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ee = (e, t) => {\n for (var r in t || (t = {}))\n Y.call(t, r) && _(e, r, t[r]);\n if (I)\n for (var r of I(t))\n Z.call(t, r) && _(e, r, t[r]);\n return e;\n};\nconst te = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nee({\n linear: q\n}, te);\nconst f = (e) => {\n let t = J(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, u = (e) => e.tabIndex >= 0, A = (e) => {\n const t = e.target;\n return E(t);\n}, E = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? E(t) : t;\n}, ne = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.firstElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.firstElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? w(r) : r;\n}, x = (e) => {\n const t = e.target;\n return w(t);\n}, w = (e) => {\n var r;\n let t;\n if (e instanceof HTMLTableCellElement) {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n if (n) {\n const l = Array.from(n.children)[e.cellIndex];\n l && (t = l);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (t = n);\n }\n return t && (!u(t) || !f(t)) ? w(t) : t;\n}, re = (e) => {\n var n;\n const t = e.target;\n let r;\n if (t instanceof HTMLTableCellElement) {\n const o = (n = t.parentElement) == null ? void 0 : n.parentElement;\n if (o) {\n const s = o.lastElementChild.children[t.cellIndex];\n s && (r = s);\n }\n } else if (t instanceof HTMLTableRowElement) {\n const o = t.parentElement;\n if (o) {\n const l = o.lastElementChild;\n l && (r = l);\n }\n }\n return r && (!u(r) || !f(r)) ? E(r) : r;\n}, k = (e) => {\n const t = e.target;\n return h(t);\n}, h = (e) => {\n var r;\n let t;\n if (e.previousElementSibling)\n t = e.previousElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.previousElementSibling;\n t = n == null ? void 0 : n.lastElementChild;\n }\n return t && (!u(t) || !f(t)) ? h(t) : t;\n}, S = (e) => {\n const t = e.target;\n return b(t);\n}, b = (e) => {\n var r;\n let t;\n if (e.nextElementSibling)\n t = e.nextElementSibling;\n else {\n const n = (r = e.parentElement) == null ? void 0 : r.nextElementSibling;\n t = n == null ? void 0 : n.firstElementChild;\n }\n return t && (!u(t) || !f(t)) ? b(t) : t;\n}, L = (e) => {\n const n = e.target.parentElement.firstElementChild;\n return n && (!u(n) || !f(n)) ? b(n) : n;\n}, R = (e) => {\n const n = e.target.parentElement.lastElementChild;\n return n && (!u(n) || !f(n)) ? h(n) : n;\n}, m = [\"alt\", \"control\", \"shift\", \"meta\"], oe = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, le = {\n \"keydown.up\": (e) => {\n const t = A(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = x(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = k(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = S(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = re(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = R(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = R(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 r = x(e);\n r && r.focus();\n }\n },\n \"keydown.shift.enter\": (e) => {\n if (e.target instanceof HTMLTableCellElement) {\n e.preventDefault(), e.stopPropagation();\n const r = A(e);\n r && r.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = L(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = S(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = k(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction ie(e) {\n const t = (n) => {\n let o = null;\n n.parent && (typeof n.parent == \"string\" ? o = document.querySelector(n.parent) : n.parent instanceof Element ? o = n.parent : o = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = o ? Array.from(o.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const s of n.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(o.children).filter((a) => u(a) && f(a));\n return l;\n }, r = (n) => (o) => {\n const l = oe[o.key] || o.key.toLowerCase();\n if (m.includes(l))\n return;\n const s = n.handlers || le;\n for (const a of Object.keys(s)) {\n const [C, ...d] = a.split(\".\");\n if (C === \"keydown\" && d.includes(l)) {\n const c = s[a], g = d.filter((i) => m.includes(i)), p = m.some((i) => {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n return o.getModifierState($);\n });\n if (g.length > 0) {\n if (p) {\n for (const i of m)\n if (d.includes(i)) {\n const $ = i.charAt(0).toUpperCase() + i.slice(1);\n o.getModifierState($) && c(o);\n }\n }\n } else\n p || c(o);\n }\n }\n };\n W(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.addEventListener(\"keydown\", r(n));\n }\n }), V(() => {\n for (const n of e) {\n const o = t(n);\n for (const l of o)\n l.removeEventListener(\"keydown\", r(n));\n }\n });\n}\nfunction ae(e) {\n}\nexport {\n le as defaultKeypressHandlers,\n ae as install,\n ie as useKeyboardNav\n};\n//# sourceMappingURL=utilities.js.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 } from 'uuid'\nimport { computed, reactive } from 'vue'\n\nimport type { TableDisplay, TableRow, TableColumn, TableConfig, TableModal } from '../../types'\n\nexport default class TableDataStore {\n\tid: string\n\trows: TableRow[]\n\tcolumns: TableColumn[]\n\tconfig: TableConfig\n\ttable: { [key: string]: any }\n\tdisplay: TableDisplay[]\n\tmodal: TableModal\n\n\tconstructor(\n\t\tid?: string,\n\t\tcolumns?: TableColumn[],\n\t\trows?: TableRow[],\n\t\tconfig?: TableConfig,\n\t\ttable?: { [key: string]: any },\n\t\tdisplay?: TableDisplay[]\n\t) {\n\t\tthis.id = id || v4()\n\t\tthis.rows = rows\n\t\tthis.columns = reactive(columns)\n\t\tthis.config = reactive(config)\n\t\tthis.table = table || reactive(this.createTableObject())\n\t\tthis.display = this.createDisplayObject(display)\n\t\tthis.modal = reactive({ visible: false })\n\t}\n\n\tcreateTableObject() {\n\t\tconst table = {}\n\t\tfor (const [colIndex, column] of this.columns.entries()) {\n\t\t\tfor (const [rowIndex, row] of this.rows.entries()) {\n\t\t\t\ttable[`${colIndex}:${rowIndex}`] = row[column.name]\n\t\t\t}\n\t\t}\n\t\treturn table\n\t}\n\n\tcreateDisplayObject(display?: TableDisplay[]) {\n\t\tconst defaultDisplay: TableDisplay[] = [Object.assign({}, { modified: false })]\n\n\t\t// TODO: (typing) what is the type of `display` here?\n\t\tif (display) {\n\t\t\tif ('0:0' in display) {\n\t\t\t\treturn display\n\t\t\t}\n\t\t\t// else if ('default' in display) {\n\t\t\t// \t// TODO: (typing) what is the possible input here for 'default'?\n\t\t\t// \tdefaultDisplay = display.default\n\t\t\t// }\n\t\t}\n\n\t\t// TODO: (typing) is this type correct for the parent set?\n\t\tconst parents = new Set()\n\t\tfor (let rowIndex = this.rows.length - 1; rowIndex >= 0; rowIndex--) {\n\t\t\tconst row = this.rows[rowIndex]\n\t\t\tif (row.parent) {\n\t\t\t\tparents.add(row.parent)\n\t\t\t}\n\n\t\t\tdefaultDisplay[rowIndex] = {\n\t\t\t\tchildrenOpen: false,\n\t\t\t\texpanded: false,\n\t\t\t\tindent: row.indent || null,\n\t\t\t\tisParent: parents.has(rowIndex),\n\t\t\t\tisRoot: row.parent === null || row.parent === undefined,\n\t\t\t\tmodified: false,\n\t\t\t\topen: row.parent === null || row.parent === undefined,\n\t\t\t\tparent: row.parent,\n\t\t\t}\n\t\t}\n\n\t\treturn reactive(defaultDisplay)\n\t}\n\n\tget zeroColumn() {\n\t\treturn ['list', 'tree', 'list-expansion'].includes(this.config.view)\n\t}\n\n\tget numberedRowWidth() {\n\t\treturn computed(() => {\n\t\t\treturn String(Math.ceil(this.rows.length / 100) + 1) + 'ch'\n\t\t})\n\t}\n\n\tcellData(colIndex: number, rowIndex: number): T {\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\tsetCellData(rowIndex: number, colIndex: number, value: any) {\n\t\tif (this.table[`${colIndex}:${rowIndex}`] !== value) {\n\t\t\tthis.display[rowIndex].modified = true\n\t\t}\n\t\tthis.table[`${colIndex}:${rowIndex}`] = value\n\t\tconst col = this.columns[colIndex]\n\t\tthis.rows[rowIndex][col.name] = value\n\t\treturn this.table[`${colIndex}:${rowIndex}`]\n\t}\n\n\ttoggleRowExpand(rowIndex: number) {\n\t\tif (this.config.view === 'tree') {\n\t\t\tthis.display[rowIndex].childrenOpen = !this.display[rowIndex].childrenOpen\n\t\t\tfor (let index = this.rows.length - 1; index >= 0; index--) {\n\t\t\t\tif (this.display[index].parent === rowIndex) {\n\t\t\t\t\tthis.display[index].open = !this.display[index].open\n\t\t\t\t\tif (this.display[index].childrenOpen) {\n\t\t\t\t\t\tthis.toggleRowExpand(index)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.config.view === 'list-expansion') {\n\t\t\tthis.display[rowIndex].expanded = !this.display[rowIndex].expanded\n\t\t}\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { App } from 'vue'\n\nimport ACell from '@/components/ACell.vue'\nimport AExpansionRow from '@/components/AExpansionRow.vue'\nimport ARow from '@/components/ARow.vue'\nimport ATable from '@/components/ATable.vue'\nimport ATableHeader from '@/components/ATableHeader.vue'\nimport ATableModal from '@/components/ATableModal.vue'\nimport TableDataStore from './components'\n\nfunction install(app: App /* options */) {\n\tapp.component('ACell', ACell)\n\tapp.component('AExpansionRow', AExpansionRow)\n\tapp.component('ARow', ARow)\n\tapp.component('ATable', ATable)\n\tapp.component('ATableHeader', ATableHeader)\n\tapp.component('ATableModal', ATableModal)\n}\n\nexport { install, ACell, AExpansionRow, ARow, ATable, ATableHeader, ATableModal, TableDataStore }\n"],"names":["v","M","F","e","j","H","Q","q","G","U","K","y","t","r","N","z","n","o","l","s","c","a","g","p","i","C","D","d","O","T","J","B","P","X","I","Y","Z","_","ee","f","u","A","E","ne","w","x","re","k","h","S","b","L","R","m","oe","le","ie","$","W","V","props","__props","tableData","inject","cell","ref","cellModified","displayValue","computed","data","format","handleInput","event","domRect","cellWidth","handlers","defaultKeypressHandlers","useKeyboardNav","textAlign","currentData","onFocus","onChange","getIndent","colKey","indent","cellStyle","_a","rowEl","rowExpanded","getRowExpandSymbol","keyboardNav","numberedRowWidth","rowVisible","toggleRowExpand","rowIndex","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","arr","offset","native","v4","options","buf","rnds","TableDataStore","id","columns","rows","config","table","display","reactive","colIndex","column","row","defaultDisplay","parents","value","col","index","getHeaderCellStyle","emit","__emit","provide","watch","newValue","clickOutside","$parent","nextTick","$parentCell","install","app","ACell","AExpansionRow","ARow","ATable","ATableHeader","ATableModal"],"mappings":"yQACA,IAAIA,EACJ,MAAMC,EAAI,OAAO,OAAS,IAAKC,GAAKC,GAAM,OAAOA,GAAK,SAAUC,GAAI,IAAM,CAC1E,EACAH,IAAOD,EAAI,QAAU,KAAO,OAAS,OAAO,YAAc,MAAQA,EAAE,WAAc,iBAAiB,KAAK,OAAO,UAAU,SAAS,EAClI,SAASK,EAAEF,EAAG,CACZ,OAAO,OAAOA,GAAK,WAAaA,EAAC,EAAKG,EAAAA,MAAEH,CAAC,CAC3C,CACA,SAASI,GAAEJ,EAAG,CACZ,OAAOA,CACT,CACA,SAASK,GAAEL,EAAG,CACZ,OAAOM,EAAAA,gBAAG,GAAIC,iBAAEP,CAAC,EAAG,IAAM,EAC5B,CACA,SAASQ,EAAER,EAAG,CACZ,IAAIS,EACJ,MAAMC,EAAIR,EAAEF,CAAC,EACb,OAAQS,EAAIC,GAAK,KAAO,OAASA,EAAE,MAAQ,KAAOD,EAAIC,CACxD,CACA,MAAMC,EAAIb,EAAI,OAAS,OACvB,SAASc,MAAKZ,EAAG,CACf,IAAIS,EAAGC,EAAGG,EAAGC,EACb,GAAIf,GAAEC,EAAE,CAAC,CAAC,GAAK,MAAM,QAAQA,EAAE,CAAC,CAAC,GAAK,CAACU,EAAGG,EAAGC,CAAC,EAAId,EAAGS,EAAIE,GAAK,CAACF,EAAGC,EAAGG,EAAGC,CAAC,EAAId,EAAG,CAACS,EAC/E,OAAOR,GACT,MAAM,QAAQS,CAAC,IAAMA,EAAI,CAACA,CAAC,GAAI,MAAM,QAAQG,CAAC,IAAMA,EAAI,CAACA,CAAC,GAC1D,MAAME,EAAI,GAAIC,EAAI,IAAM,CACtBD,EAAE,QAASE,GAAMA,EAAG,CAAA,EAAGF,EAAE,OAAS,CACnC,EAAEG,EAAI,CAACD,EAAGE,EAAGC,EAAGC,KAAOJ,EAAE,iBAAiBE,EAAGC,EAAGC,CAAC,EAAG,IAAMJ,EAAE,oBAAoBE,EAAGC,EAAGC,CAAC,GAAIC,EAAIC,EAAAA,MAAE,IAAM,CAACf,EAAEC,CAAC,EAAGP,EAAEY,CAAC,CAAC,EAAG,CAAC,CAACG,EAAGE,CAAC,IAAM,CAChIH,EAAG,EAAEC,GAAKF,EAAE,KAAK,GAAGL,EAAE,QAASU,GAAMP,EAAE,IAAKQ,GAAMH,EAAED,EAAGG,EAAGC,EAAGF,CAAC,CAAC,CAAC,CAAC,CACrE,EAAK,CAAE,UAAW,GAAI,MAAO,MAAQ,CAAA,EAAGK,EAAI,IAAM,CAC9CF,EAAC,EAAIN,GACT,EACE,OAAOX,GAAEmB,CAAC,EAAGA,CACf,CACA,MAAMC,EAAI,OAAO,WAAa,IAAM,WAAa,OAAO,OAAS,IAAM,OAAS,OAAO,OAAS,IAAM,OAAS,OAAO,KAAO,IAAM,KAAO,CAAE,EAAEC,EAAI,0BAClJD,EAAEC,CAAC,EAAID,EAAEC,CAAC,GAAK,CAAA,EACf,SAASC,GAAE3B,EAAG,CAAE,OAAQS,EAAIE,EAAG,aAAcD,CAAG,EAAG,GAAI,CACrD,MAAMG,EAAIe,EAAC,IAAC,EAAE,EAAGd,EAAI,IAAM,CACzB,GAAI,CAACL,EACH,OACF,MAAMM,EAAIN,EAAE,SAAUO,EAAIR,EAAER,CAAC,EAC7B,GAAI,CAACgB,EACHH,EAAE,MAAQ,OACP,CACH,MAAMK,EAAIF,EAAE,wBACZH,EAAE,MAAQK,EAAE,MAAQT,EAAE,aAAeM,EAAE,gBAAgB,eAAiBG,EAAE,OAAST,EAAE,YAAcM,EAAE,gBAAgB,cAAgBG,EAAE,QAAU,GAAKA,EAAE,OAAS,CAClK,CACL,EACE,OAAOK,EAAC,MAAC,IAAMf,EAAER,CAAC,EAAG,IAAMc,EAAG,EAAE,CAAE,UAAW,GAAI,MAAO,MAAM,CAAE,EAAGL,GAAKG,GAAEF,GAAKD,EAAG,SAAUK,EAAG,CAC7F,QAAS,GACT,QAAS,EACV,CAAA,EAAGD,CACN,CACA,IAAIgB,GACH,SAAS7B,EAAG,CACXA,EAAE,GAAK,KAAMA,EAAE,MAAQ,QAASA,EAAE,KAAO,OAAQA,EAAE,KAAO,OAAQA,EAAE,KAAO,MAC7E,GAAG6B,IAAMA,EAAI,CAAE,EAAC,EAChB,IAAIC,GAAI,OAAO,eAAgBC,EAAI,OAAO,sBAAuBC,GAAI,OAAO,UAAU,eAAgBC,GAAI,OAAO,UAAU,qBAAsBC,EAAI,CAAClC,EAAGS,EAAGC,IAAMD,KAAKT,EAAI8B,GAAE9B,EAAGS,EAAG,CAAE,WAAY,GAAI,aAAc,GAAI,SAAU,GAAI,MAAOC,CAAC,CAAE,EAAIV,EAAES,CAAC,EAAIC,EAAGyB,GAAK,CAACnC,EAAGS,IAAM,CAC1Q,QAASC,KAAKD,IAAMA,EAAI,CAAA,GACtBuB,GAAE,KAAKvB,EAAGC,CAAC,GAAKwB,EAAElC,EAAGU,EAAGD,EAAEC,CAAC,CAAC,EAC9B,GAAIqB,EACF,QAASrB,KAAKqB,EAAEtB,CAAC,EACfwB,GAAE,KAAKxB,EAAGC,CAAC,GAAKwB,EAAElC,EAAGU,EAAGD,EAAEC,CAAC,CAAC,EAChC,OAAOV,CACT,EA2BAmC,GAAG,CACD,OAAQ/B,EACV,EA5BW,CACT,WAAY,CAAC,IAAM,EAAG,IAAM,CAAC,EAC7B,YAAa,CAAC,IAAM,EAAG,IAAM,CAAC,EAC9B,cAAe,CAAC,IAAM,EAAG,IAAM,CAAC,EAChC,WAAY,CAAC,IAAM,EAAG,GAAK,CAAC,EAC5B,YAAa,CAAC,GAAK,EAAG,IAAM,CAAC,EAC7B,cAAe,CAAC,IAAM,EAAG,IAAM,CAAC,EAChC,YAAa,CAAC,IAAM,EAAG,IAAM,CAAC,EAC9B,aAAc,CAAC,IAAM,EAAG,IAAM,CAAC,EAC/B,eAAgB,CAAC,IAAM,EAAG,IAAM,CAAC,EACjC,YAAa,CAAC,GAAK,EAAG,IAAM,CAAC,EAC7B,aAAc,CAAC,IAAM,EAAG,GAAK,CAAC,EAC9B,eAAgB,CAAC,IAAM,EAAG,IAAM,CAAC,EACjC,YAAa,CAAC,IAAM,EAAG,IAAM,CAAC,EAC9B,aAAc,CAAC,IAAM,EAAG,IAAM,CAAC,EAC/B,eAAgB,CAAC,IAAM,EAAG,IAAM,CAAC,EACjC,WAAY,CAAC,GAAK,EAAG,IAAM,CAAC,EAC5B,YAAa,CAAC,IAAM,EAAG,GAAK,CAAC,EAC7B,cAAe,CAAC,IAAM,EAAG,IAAM,CAAC,EAChC,WAAY,CAAC,IAAM,EAAG,EAAG,GAAI,EAC7B,YAAa,CAAC,EAAG,IAAM,IAAM,CAAC,EAC9B,cAAe,CAAC,IAAM,EAAG,IAAM,CAAC,EAChC,WAAY,CAAC,IAAM,EAAG,IAAM,IAAK,EACjC,YAAa,CAAC,IAAM,KAAM,IAAM,CAAC,EACjC,cAAe,CAAC,IAAM,IAAM,IAAM,GAAG,CACvC,CAGK,EACL,MAAMgC,EAAKpC,GAAM,CACf,IAAIS,EAAIkB,GAAE3B,CAAC,EAAE,MACb,OAAOS,EAAIA,GAAKT,EAAE,aAAe,EAAGS,CACtC,EAAG4B,EAAKrC,GAAMA,EAAE,UAAY,EAAGsC,EAAKtC,GAAM,CACxC,MAAMS,EAAIT,EAAE,OACZ,OAAOuC,EAAE9B,CAAC,CACZ,EAAG8B,EAAKvC,GAAM,CACZ,IAAIU,EACJ,IAAID,EACJ,GAAIT,aAAa,qBAAsB,CACrC,MAAMa,GAAKH,EAAIV,EAAE,gBAAkB,KAAO,OAASU,EAAE,uBACrD,GAAIG,EAAG,CACL,MAAME,EAAI,MAAM,KAAKF,EAAE,QAAQ,EAAEb,EAAE,SAAS,EAC5Ce,IAAMN,EAAIM,EACX,CACL,SAAaf,aAAa,oBAAqB,CAC3C,MAAMa,EAAIb,EAAE,uBACZa,IAAMJ,EAAII,EACX,CACD,OAAOJ,IAAM,CAAC4B,EAAE5B,CAAC,GAAK,CAAC2B,EAAE3B,CAAC,GAAK8B,EAAE9B,CAAC,EAAIA,CACxC,EAAG+B,GAAMxC,GAAM,CACb,IAAIa,EACJ,MAAMJ,EAAIT,EAAE,OACZ,IAAIU,EACJ,GAAID,aAAa,qBAAsB,CACrC,MAAMK,GAAKD,EAAIJ,EAAE,gBAAkB,KAAO,OAASI,EAAE,cACrD,GAAIC,EAAG,CACL,MAAME,EAAIF,EAAE,kBAAkB,SAASL,EAAE,SAAS,EAClDO,IAAMN,EAAIM,EACX,CACL,SAAaP,aAAa,oBAAqB,CAC3C,MAAMK,EAAIL,EAAE,cACZ,GAAIK,EAAG,CACL,MAAMC,EAAID,EAAE,kBACZC,IAAML,EAAIK,EACX,CACF,CACD,OAAOL,IAAM,CAAC2B,EAAE3B,CAAC,GAAK,CAAC0B,EAAE1B,CAAC,GAAK+B,EAAE/B,CAAC,EAAIA,CACxC,EAAGgC,EAAK1C,GAAM,CACZ,MAAMS,EAAIT,EAAE,OACZ,OAAOyC,EAAEhC,CAAC,CACZ,EAAGgC,EAAKzC,GAAM,CACZ,IAAIU,EACJ,IAAID,EACJ,GAAIT,aAAa,qBAAsB,CACrC,MAAMa,GAAKH,EAAIV,EAAE,gBAAkB,KAAO,OAASU,EAAE,mBACrD,GAAIG,EAAG,CACL,MAAME,EAAI,MAAM,KAAKF,EAAE,QAAQ,EAAEb,EAAE,SAAS,EAC5Ce,IAAMN,EAAIM,EACX,CACL,SAAaf,aAAa,oBAAqB,CAC3C,MAAMa,EAAIb,EAAE,mBACZa,IAAMJ,EAAII,EACX,CACD,OAAOJ,IAAM,CAAC4B,EAAE5B,CAAC,GAAK,CAAC2B,EAAE3B,CAAC,GAAKgC,EAAEhC,CAAC,EAAIA,CACxC,EAAGkC,GAAM3C,GAAM,CACb,IAAIa,EACJ,MAAMJ,EAAIT,EAAE,OACZ,IAAIU,EACJ,GAAID,aAAa,qBAAsB,CACrC,MAAMK,GAAKD,EAAIJ,EAAE,gBAAkB,KAAO,OAASI,EAAE,cACrD,GAAIC,EAAG,CACL,MAAME,EAAIF,EAAE,iBAAiB,SAASL,EAAE,SAAS,EACjDO,IAAMN,EAAIM,EACX,CACL,SAAaP,aAAa,oBAAqB,CAC3C,MAAMK,EAAIL,EAAE,cACZ,GAAIK,EAAG,CACL,MAAMC,EAAID,EAAE,iBACZC,IAAML,EAAIK,EACX,CACF,CACD,OAAOL,IAAM,CAAC2B,EAAE3B,CAAC,GAAK,CAAC0B,EAAE1B,CAAC,GAAK6B,EAAE7B,CAAC,EAAIA,CACxC,EAAGkC,EAAK5C,GAAM,CACZ,MAAMS,EAAIT,EAAE,OACZ,OAAO6C,EAAEpC,CAAC,CACZ,EAAGoC,EAAK7C,GAAM,CACZ,IAAIU,EACJ,IAAID,EACJ,GAAIT,EAAE,uBACJS,EAAIT,EAAE,2BACH,CACH,MAAMa,GAAKH,EAAIV,EAAE,gBAAkB,KAAO,OAASU,EAAE,uBACrDD,EAAII,GAAK,KAAO,OAASA,EAAE,gBAC5B,CACD,OAAOJ,IAAM,CAAC4B,EAAE5B,CAAC,GAAK,CAAC2B,EAAE3B,CAAC,GAAKoC,EAAEpC,CAAC,EAAIA,CACxC,EAAGqC,EAAK9C,GAAM,CACZ,MAAMS,EAAIT,EAAE,OACZ,OAAO+C,EAAEtC,CAAC,CACZ,EAAGsC,EAAK/C,GAAM,CACZ,IAAIU,EACJ,IAAID,EACJ,GAAIT,EAAE,mBACJS,EAAIT,EAAE,uBACH,CACH,MAAMa,GAAKH,EAAIV,EAAE,gBAAkB,KAAO,OAASU,EAAE,mBACrDD,EAAII,GAAK,KAAO,OAASA,EAAE,iBAC5B,CACD,OAAOJ,IAAM,CAAC4B,EAAE5B,CAAC,GAAK,CAAC2B,EAAE3B,CAAC,GAAKsC,EAAEtC,CAAC,EAAIA,CACxC,EAAGuC,EAAKhD,GAAM,CACZ,MAAMa,EAAIb,EAAE,OAAO,cAAc,kBACjC,OAAOa,IAAM,CAACwB,EAAExB,CAAC,GAAK,CAACuB,EAAEvB,CAAC,GAAKkC,EAAElC,CAAC,EAAIA,CACxC,EAAGoC,EAAKjD,GAAM,CACZ,MAAMa,EAAIb,EAAE,OAAO,cAAc,iBACjC,OAAOa,IAAM,CAACwB,EAAExB,CAAC,GAAK,CAACuB,EAAEvB,CAAC,GAAKgC,EAAEhC,CAAC,EAAIA,CACxC,EAAGqC,EAAI,CAAC,MAAO,UAAW,QAAS,MAAM,EAAGC,GAAK,CAC/C,QAAS,KACT,UAAW,OACX,UAAW,OACX,WAAY,OACd,EAAGC,EAAK,CACN,aAAepD,GAAM,CACnB,MAAMS,EAAI6B,EAAEtC,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,eAAiBT,GAAM,CACrB,MAAMS,EAAIiC,EAAE1C,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,eAAiBT,GAAM,CACrB,MAAMS,EAAImC,EAAE5C,CAAC,EACbA,EAAE,eAAgB,EAAEA,EAAE,gBAAiB,EAAES,GAAKA,EAAE,OACjD,EACD,gBAAkBT,GAAM,CACtB,MAAMS,EAAIqC,EAAE9C,CAAC,EACbA,EAAE,eAAgB,EAAEA,EAAE,gBAAiB,EAAES,GAAKA,EAAE,OACjD,EACD,qBAAuBT,GAAM,CAC3B,MAAMS,EAAI+B,GAAGxC,CAAC,EACdS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,uBAAyBT,GAAM,CAC7B,MAAMS,EAAIkC,GAAG3C,CAAC,EACdS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,uBAAyBT,GAAM,CAC7B,MAAMS,EAAIuC,EAAEhD,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,wBAA0BT,GAAM,CAC9B,MAAMS,EAAIwC,EAAEjD,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,cAAgBT,GAAM,CACpB,MAAMS,EAAIwC,EAAEjD,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,gBAAkBT,GAAM,CACtB,GAAIA,EAAE,kBAAkB,qBAAsB,CAC5CA,EAAE,eAAc,EAAIA,EAAE,gBAAe,EACrC,MAAMU,EAAIgC,EAAE1C,CAAC,EACbU,GAAKA,EAAE,OACR,CACF,EACD,sBAAwBV,GAAM,CAC5B,GAAIA,EAAE,kBAAkB,qBAAsB,CAC5CA,EAAE,eAAc,EAAIA,EAAE,gBAAe,EACrC,MAAMU,EAAI4B,EAAEtC,CAAC,EACbU,GAAKA,EAAE,OACR,CACF,EACD,eAAiBV,GAAM,CACrB,MAAMS,EAAIuC,EAAEhD,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,cAAgBT,GAAM,CACpB,MAAMS,EAAIqC,EAAE9C,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,EACD,oBAAsBT,GAAM,CAC1B,MAAMS,EAAImC,EAAE5C,CAAC,EACbS,IAAMT,EAAE,iBAAkBA,EAAE,kBAAmBS,EAAE,MAAK,EACvD,CACH,EACA,SAAS4C,EAAGrD,EAAG,CACb,MAAMS,EAAKI,GAAM,CACf,IAAIC,EAAI,KACRD,EAAE,SAAW,OAAOA,EAAE,QAAU,SAAWC,EAAI,SAAS,cAAcD,EAAE,MAAM,EAAIA,EAAE,kBAAkB,QAAUC,EAAID,EAAE,OAASC,EAAID,EAAE,OAAO,OAC5I,IAAIE,EAAI,CAAA,EACR,GAAIF,EAAE,UACJ,GAAI,OAAOA,EAAE,WAAa,SACxBE,EAAID,EAAI,MAAM,KAAKA,EAAE,iBAAiBD,EAAE,SAAS,CAAC,EAAI,MAAM,KAAK,SAAS,iBAAiBA,EAAE,SAAS,CAAC,UAChGA,EAAE,qBAAqB,QAC9BE,EAAE,KAAKF,EAAE,SAAS,UACX,MAAM,QAAQA,EAAE,UAAU,KAAK,EACtC,UAAWG,KAAKH,EAAE,UAAU,MAC1BG,aAAa,QAAUD,EAAE,KAAKC,CAAC,EAAID,EAAE,KAAKC,EAAE,GAAG,OAEjDD,EAAE,KAAKF,EAAE,UAAU,KAAK,OAE1BE,EAAI,MAAM,KAAKD,EAAE,QAAQ,EAAE,OAAQI,GAAMmB,EAAEnB,CAAC,GAAKkB,EAAElB,CAAC,CAAC,EACvD,OAAOH,CACR,EAAEL,EAAKG,GAAOC,GAAM,CACnB,MAAMC,EAAIoC,GAAGrC,EAAE,GAAG,GAAKA,EAAE,IAAI,cAC7B,GAAIoC,EAAE,SAASnC,CAAC,EACd,OACF,MAAMC,EAAIH,EAAE,UAAYuC,EACxB,UAAWlC,KAAK,OAAO,KAAKF,CAAC,EAAG,CAC9B,KAAM,CAACM,EAAG,GAAGE,CAAC,EAAIN,EAAE,MAAM,GAAG,EAC7B,GAAII,IAAM,WAAaE,EAAE,SAAST,CAAC,EAAG,CACpC,MAAME,EAAID,EAAEE,CAAC,EAAGC,EAAIK,EAAE,OAAQH,GAAM6B,EAAE,SAAS7B,CAAC,CAAC,EAAGD,EAAI8B,EAAE,KAAM7B,GAAM,CACpE,MAAMiC,EAAIjC,EAAE,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,CAAC,EAC/C,OAAOP,EAAE,iBAAiBwC,CAAC,CACrC,CAAS,EACD,GAAInC,EAAE,OAAS,GACb,GAAIC,GACF,UAAWC,KAAK6B,EACd,GAAI1B,EAAE,SAASH,CAAC,EAAG,CACjB,MAAMiC,EAAIjC,EAAE,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,CAAC,EAC/CP,EAAE,iBAAiBwC,CAAC,GAAKrC,EAAEH,CAAC,CAC7B,QAGLM,GAAKH,EAAEH,CAAC,CACX,CACF,CACL,EACEyC,EAAAA,UAAE,IAAM,CACN,UAAW1C,KAAKb,EAAG,CACjB,MAAMc,EAAIL,EAAEI,CAAC,EACb,UAAWE,KAAKD,EACdC,EAAE,iBAAiB,UAAWL,EAAEG,CAAC,CAAC,CACrC,CACL,CAAG,EAAG2C,EAAC,gBAAC,IAAM,CACV,UAAW3C,KAAKb,EAAG,CACjB,MAAMc,EAAIL,EAAEI,CAAC,EACb,UAAWE,KAAKD,EACdC,EAAE,oBAAoB,UAAWL,EAAEG,CAAC,CAAC,CACxC,CACL,CAAG,CACH,yRCpSA,MAAM4C,EAAQC,EAeRC,EAAYC,EAAAA,OAAuBH,EAAM,OAAO,EAChDI,EAAOC,MAA0B,IAAI,EAEvC,IAAAC,EAAeD,MAAI,EAAK,EACtB,MAAAE,EAAeC,EAAAA,SAAS,IAAM,CACnC,MAAMC,EAAOP,EAAU,SAAcF,EAAM,SAAUA,EAAM,QAAQ,EACnE,GAAIE,EAAU,QAAQF,EAAM,QAAQ,EAAE,OAAQ,CAC7C,MAAMU,EAASR,EAAU,QAAQF,EAAM,QAAQ,EAAE,OAC7C,OAAA,OAAOU,GAAW,WACdA,EAAOD,CAAI,EACR,OAAOC,GAAW,SAGS,SAAS,wBAAwBA,CAAM,GAAG,IAC/DD,CAAI,EAEbA,CACR,KAEO,QAAAA,CACR,CACA,EAEKE,EAAeC,GAAsB,CAE1C,GAAIZ,EAAM,aAAc,CACvBA,EAAM,aAAaY,CAAK,EACxB,MACD,CAOA,GALIV,EAAU,QAAQF,EAAM,QAAQ,EAAE,KAKlCE,EAAU,QAAQF,EAAM,QAAQ,EAAE,eAAgB,CAC/C,MAAAa,EAAUT,EAAK,MAAM,sBAAsB,EACjDF,EAAU,MAAM,QAAU,GAChBA,EAAA,MAAM,SAAWF,EAAM,SACvBE,EAAA,MAAM,SAAWF,EAAM,SACvBE,EAAA,MAAM,OAASE,EAAK,MAC9BF,EAAU,MAAM,IAAMW,EAAQ,IAAMA,EAAQ,OAClCX,EAAA,MAAM,KAAOW,EAAQ,KACrBX,EAAA,MAAM,MAAQY,EAAU,MAClCZ,EAAU,MAAM,UAAYA,EAAU,QAAQF,EAAM,QAAQ,EAAE,eAC9DE,EAAU,MAAM,eAAiBA,EAAU,QAAQF,EAAM,QAAQ,EAAE,mBACpE,CAAA,EAGD,GAAIA,EAAM,cAAe,CACxB,IAAIe,EAAW,CACd,GAAGC,EAEF,aAAcL,EACd,iBAAkBA,EAClB,mBAAoBA,EACpB,mBAAoBA,EACpB,oBAAqBA,CACtB,EAGG,OAAOX,EAAM,eAAkB,WACvBe,EAAA,CACV,GAAGA,EACH,GAAGf,EAAM,aAAA,GAIIiB,EAAA,CACd,CACC,UAAWb,EACX,SAAAW,CACD,CAAA,CACA,CACF,CAYM,MAAAG,EAAYV,EAAAA,SAAS,IACnBN,EAAU,QAAQF,EAAM,QAAQ,EAAE,OAAS,QAClD,EAEKc,EAAYN,EAAAA,SAAS,IACnBN,EAAU,QAAQF,EAAM,QAAQ,EAAE,OAAS,MAClD,EAED,IAAImB,EAAc,GAClB,MAAMC,EAAU,IAAM,CACjBhB,EAAK,QACRe,EAAcf,EAAK,MAAM,UAC1B,EAGKiB,EAAW,IAAM,CAClBjB,EAAK,OACJA,EAAK,MAAM,YAAce,IAC5BA,EAAcf,EAAK,MAAM,UACzBA,EAAK,MAAM,cAAc,IAAI,MAAM,QAAQ,CAAC,EAC5CE,EAAa,MAAQ,GAChBJ,EAAU,QAAQF,EAAM,QAAQ,EAAE,QAEtCE,EAAU,YAAYF,EAAM,SAAUA,EAAM,SAAUmB,CAAW,EAGpE,EAGKG,EAAY,CAACC,EAAgBC,IAC9BA,GAAUD,IAAW,GAAKC,EAAS,EAC/B,GAAGA,CAAM,KAET,UAIHC,EAA2B,CAChC,UAAWP,EAAU,MACrB,MAAOJ,EAAU,MACjB,gBAAkBR,EAAa,MAAoB,6BAAZ,UACvC,WAAaA,EAAa,MAAoB,OAAZ,UAClC,YAAagB,EAAUtB,EAAM,UAAU0B,EAAAxB,EAAU,QAAQF,EAAM,QAAQ,IAAhC,YAAA0B,EAAmC,MAAM,CAAA,88BCzJjF,MAAM1B,EAAQC,EAeRC,EAAYC,EAAAA,OAAuBH,EAAM,OAAO,EAChD2B,EAAQtB,MAAyB,IAAI,EACrCuB,EAAcvB,MAAoB,IAAI,EAEtCwB,EAAqB,IACnB3B,EAAU,QAAQF,EAAM,QAAQ,EAAE,SAAW,IAAM,IAGvD,GAAAA,EAAM,gBAAkB,OAAW,CACtC,MAAM8B,EAAc,OAAO,OAAO,CAAA,EAAI9B,EAAM,aAAa,EAC7C8B,EAAA,mBAAmB,EAAKlB,GAAyB,CAC5DA,EAAM,gBAAgB,EACtBA,EAAM,eAAe,EACXV,EAAA,gBAAgBF,EAAM,QAAQ,CAAA,EAG1BiB,EAAA,CACd,CACC,UAAWU,EACX,SAAUG,CACX,CAAA,CACA,CACF,2+BChCA,MAAM9B,EAAQC,EAaRC,EAAYC,EAAAA,OAAuBH,EAAM,OAAO,EAChD2B,EAAQtB,MAAyB,IAAI,EACrC0B,EAAmB7B,EAAU,iBAAiB,MAE9C2B,EAAqB,IACtB3B,EAAU,OAAO,OAAS,OACtB,GAGJA,EAAU,QAAQF,EAAM,QAAQ,EAAE,QAQlCE,EAAU,QAAQF,EAAM,QAAQ,EAAE,SACjCE,EAAU,QAAQF,EAAM,QAAQ,EAAE,aAC9B,IAEA,IAGD,GAIHgC,EAAa,IAEjB9B,EAAU,OAAO,OAAS,QAC1BA,EAAU,QAAQF,EAAM,QAAQ,EAAE,QAClCE,EAAU,QAAQF,EAAM,QAAQ,EAAE,KAI9BiC,EAAmBC,GAAqB,CAC7ChC,EAAU,gBAAgBgC,CAAQ,CAAA,EAGnC,OAAIlC,EAAM,eACMiB,EAAA,CACd,CACC,UAAWU,EACX,SAAU3B,EAAM,aACjB,CAAA,CACA,qkBCnFF,IAAImC,EACJ,MAAMC,GAAQ,IAAI,WAAW,EAAE,EAChB,SAASC,IAAM,CAE5B,GAAI,CAACF,IAEHA,EAAkB,OAAO,OAAW,KAAe,OAAO,iBAAmB,OAAO,gBAAgB,KAAK,MAAM,EAE3G,CAACA,GACH,MAAM,IAAI,MAAM,0GAA0G,EAI9H,OAAOA,EAAgBC,EAAK,CAC9B,CCXA,MAAME,EAAY,CAAA,EAElB,QAAS1E,EAAI,EAAGA,EAAI,IAAK,EAAEA,EACzB0E,EAAU,MAAM1E,EAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,EAG3C,SAAS2E,GAAgBC,EAAKC,EAAS,EAAG,CAG/C,OAAOH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAIH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAIH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAIH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAIH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAIH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAIH,EAAUE,EAAIC,EAAS,CAAC,CAAC,EAAI,IAAMH,EAAUE,EAAIC,EAAS,EAAE,CAAC,EAAIH,EAAUE,EAAIC,EAAS,EAAE,CAAC,EAAIH,EAAUE,EAAIC,EAAS,EAAE,CAAC,EAAIH,EAAUE,EAAIC,EAAS,EAAE,CAAC,EAAIH,EAAUE,EAAIC,EAAS,EAAE,CAAC,EAAIH,EAAUE,EAAIC,EAAS,EAAE,CAAC,CACnf,CCfe,MAAAC,EAAA,CACb,WAFiB,OAAO,OAAW,KAAe,OAAO,YAAc,OAAO,WAAW,KAAK,MAAM,CAGtG,ECCA,SAASC,EAAGC,EAASC,EAAKJ,EAAQ,CAChC,GAAIC,EAAO,YAAc,CAACG,GAAO,CAACD,EAChC,OAAOF,EAAO,aAGhBE,EAAUA,GAAW,GACrB,MAAME,EAAOF,EAAQ,SAAWA,EAAQ,KAAOP,MAK/C,GAHAS,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,GAC3BA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,IAEvBD,EAAK,CACPJ,EAASA,GAAU,EAEnB,QAAS7E,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxBiF,EAAIJ,EAAS7E,CAAC,EAAIkF,EAAKlF,CAAC,EAG1B,OAAOiF,CACR,CAED,OAAON,GAAgBO,CAAI,CAC7B,CCrBA,MAAqBC,EAAe,CASnC,YACCC,EACAC,EACAC,EACAC,EACAC,EACAC,EACC,CACI,KAAA,GAAKL,GAAML,IAChB,KAAK,KAAOO,EACP,KAAA,QAAUI,WAASL,CAAO,EAC1B,KAAA,OAASK,WAASH,CAAM,EAC7B,KAAK,MAAQC,GAASE,EAAS,SAAA,KAAK,mBAAmB,EAClD,KAAA,QAAU,KAAK,oBAAoBD,CAAO,EAC/C,KAAK,MAAQC,EAAA,SAAS,CAAE,QAAS,EAAO,CAAA,CACzC,CAEA,mBAAoB,CACnB,MAAMF,EAAQ,CAAA,EACd,SAAW,CAACG,EAAUC,CAAM,IAAK,KAAK,QAAQ,UAC7C,SAAW,CAACtB,EAAUuB,CAAG,IAAK,KAAK,KAAK,UACjCL,EAAA,GAAGG,CAAQ,IAAIrB,CAAQ,EAAE,EAAIuB,EAAID,EAAO,IAAI,EAG7C,OAAAJ,CACR,CAEA,oBAAoBC,EAA0B,CACvC,MAAAK,EAAiC,CAAC,OAAO,OAAO,GAAI,CAAE,SAAU,EAAO,CAAA,CAAC,EAG9E,GAAIL,GACC,QAASA,EACL,OAAAA,EASH,MAAAM,MAAc,IACpB,QAASzB,EAAW,KAAK,KAAK,OAAS,EAAGA,GAAY,EAAGA,IAAY,CAC9D,MAAAuB,EAAM,KAAK,KAAKvB,CAAQ,EAC1BuB,EAAI,QACCE,EAAA,IAAIF,EAAI,MAAM,EAGvBC,EAAexB,CAAQ,EAAI,CAC1B,aAAc,GACd,SAAU,GACV,OAAQuB,EAAI,QAAU,KACtB,SAAUE,EAAQ,IAAIzB,CAAQ,EAC9B,OAAQuB,EAAI,SAAW,MAAQA,EAAI,SAAW,OAC9C,SAAU,GACV,KAAMA,EAAI,SAAW,MAAQA,EAAI,SAAW,OAC5C,OAAQA,EAAI,MAAA,CAEd,CAEA,OAAOH,EAAAA,SAASI,CAAc,CAC/B,CAEA,IAAI,YAAa,CACT,MAAA,CAAC,OAAQ,OAAQ,gBAAgB,EAAE,SAAS,KAAK,OAAO,IAAI,CACpE,CAEA,IAAI,kBAAmB,CACtB,OAAOlD,WAAS,IACR,OAAO,KAAK,KAAK,KAAK,KAAK,OAAS,GAAG,EAAI,CAAC,EAAI,IACvD,CACF,CAEA,SAAY+C,EAAkBrB,EAAqB,CAClD,OAAO,KAAK,MAAM,GAAGqB,CAAQ,IAAIrB,CAAQ,EAAE,CAC5C,CAEA,YAAYA,EAAkBqB,EAAkBK,EAAY,CACvD,KAAK,MAAM,GAAGL,CAAQ,IAAIrB,CAAQ,EAAE,IAAM0B,IACxC,KAAA,QAAQ1B,CAAQ,EAAE,SAAW,IAEnC,KAAK,MAAM,GAAGqB,CAAQ,IAAIrB,CAAQ,EAAE,EAAI0B,EAClC,MAAAC,EAAM,KAAK,QAAQN,CAAQ,EACjC,YAAK,KAAKrB,CAAQ,EAAE2B,EAAI,IAAI,EAAID,EACzB,KAAK,MAAM,GAAGL,CAAQ,IAAIrB,CAAQ,EAAE,CAC5C,CAEA,gBAAgBA,EAAkB,CAC7B,GAAA,KAAK,OAAO,OAAS,OAAQ,CAC3B,KAAA,QAAQA,CAAQ,EAAE,aAAe,CAAC,KAAK,QAAQA,CAAQ,EAAE,aAC9D,QAAS4B,EAAQ,KAAK,KAAK,OAAS,EAAGA,GAAS,EAAGA,IAC9C,KAAK,QAAQA,CAAK,EAAE,SAAW5B,IAC7B,KAAA,QAAQ4B,CAAK,EAAE,KAAO,CAAC,KAAK,QAAQA,CAAK,EAAE,KAC5C,KAAK,QAAQA,CAAK,EAAE,cACvB,KAAK,gBAAgBA,CAAK,EAInB,MAAA,KAAK,OAAO,OAAS,mBAC1B,KAAA,QAAQ5B,CAAQ,EAAE,SAAW,CAAC,KAAK,QAAQA,CAAQ,EAAE,SAE5D,CACD,qOCpGA,MAAMlC,EAAQC,EAMRC,EAAYC,EAAAA,OAAuBH,EAAM,OAAO,EAEhD+B,EAAmB7B,EAAU,iBAAiB,MAC9C6D,EAAsBP,IAAwC,CACnE,SAAUA,EAAO,OAAS,OAC1B,UAAWA,EAAO,OAAS,SAC3B,MAAOtD,EAAU,OAAO,UAAY,OAAS,IAAA,yrBClB9C,MAAMF,EAAQC,EAMIE,EAAuB,OAAAH,EAAM,OAAO,EAEhD,MAAAW,EAAeC,GAAiB,CACrCA,EAAM,gBAAgB,CAAA,mZCiDvB,MAAMZ,EAAQC,EAeR+D,EAAOC,EAEb,IAAIf,EAAOlD,EAAM,WAAaA,EAAM,WAAaA,EAAM,KAEnDE,EAAY,IAAI6C,GAAe/C,EAAM,GAAIA,EAAM,QAASkD,EAAMlD,EAAM,MAAM,EACtEkE,EAAAA,QAAAhE,EAAU,GAAIA,CAAS,EAE/BiE,EAAA,MACC,IAAMjE,EAAU,KACJkE,GAAA,CACXJ,EAAK,oBAAqBI,CAAQ,CACnC,EACA,CAAE,KAAM,EAAK,CAAA,EAmDR,MAAAC,EAAgBzD,GAAsB,QACtCc,EAAAxB,EAAU,MAAM,SAAhB,MAAAwB,EAAwB,SAASd,EAAM,SACvCV,EAAU,MAAM,UAEnBA,EAAU,MAAM,QAAU,GAE5B,EAGM,cAAA,iBAAiB,QAASmE,CAAY,EACtC,OAAA,iBAAiB,UAAYzD,GAAyB,CACxD,GAAAA,EAAM,MAAQ,UACbV,EAAU,MAAM,QAAS,CAC5BA,EAAU,MAAM,QAAU,GAGpB,MAAAoE,EAAUpE,EAAU,MAAM,OAC5BoE,GAEEC,EAAA,SAAA,EAAW,KAAK,IAAM,CAGpB,MAAArC,EAAWoC,EAAQ,QAAQ,SAC3Bf,EAAWe,EAAQ,QAAQ,SAC3BE,EAAc,SAAS,iBAAiB,mBAAmBtC,CAAQ,qBAAqBqB,CAAQ,IAAI,EACtGiB,GACDA,EAAY,CAAC,EAA2B,OAC3C,CACA,CAEH,CACD,CACA,+/DCzKD,SAASC,GAAQC,EAAwB,CACpCA,EAAA,UAAU,QAASC,CAAK,EACxBD,EAAA,UAAU,gBAAiBE,CAAa,EACxCF,EAAA,UAAU,OAAQG,CAAI,EACtBH,EAAA,UAAU,SAAUI,EAAM,EAC1BJ,EAAA,UAAU,eAAgBK,CAAY,EACtCL,EAAA,UAAU,cAAeM,CAAW,CACzC","x_google_ignoreList":[4,5,6,7]} \ No newline at end of file diff --git a/atable/dist/style.css b/atable/dist/style.css index 8a47cadf..efc1bfc3 100644 --- a/atable/dist/style.css +++ b/atable/dist/style.css @@ -1 +1 @@ -[data-v-07dfe445]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}td[data-v-07dfe445]{border-radius:0;box-sizing:border-box;margin:0;outline:none;box-shadow:none;color:var(--cell-text-color);text-overflow:ellipsis;overflow:hidden;padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--atable-row-padding);padding-bottom:var(--atable-row-padding);border-spacing:0px;border-collapse:collapse}td[data-v-07dfe445]:focus,td[data-v-07dfe445]:focus-within{background-color:var(--focus-cell-background);outline-width:2px;outline-style:solid;outline-color:var(--focus-cell-outline);box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}[data-v-b2e2ed2d]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}.row-index[data-v-b2e2ed2d]{color:var(--header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}.expandable-row[data-v-b2e2ed2d]{border-top:1px solid var(--row-border-color);height:var(--atable-row-height)}.expanded-row[data-v-b2e2ed2d]{border-bottom:1px solid var(--row-border-color);border-top:1px solid var(--row-border-color)}.expanded-row-content[data-v-b2e2ed2d]{border-bottom:1px solid var(--row-border-color);border-top:1px solid var(--row-border-color);padding:1.5rem}[data-v-4c71a067]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}.table-row[data-v-4c71a067]{border-top:1px solid var(--row-border-color);height:var(--atable-row-height)}.list-index[data-v-4c71a067]{color:var(--header-text-color);font-weight:700;padding-left:var(--atable-row-padding);padding-right:1em;text-align:center;-webkit-user-select:none;user-select:none;width:var(--5b18ee03);max-width:var(--5b18ee03)}.tree-index[data-v-4c71a067]{color:var(--header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}[data-v-16e66636]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}thead[data-v-16e66636]{background-color:var(--gray-5)}#header-index[data-v-16e66636]{width:var(--12d06943);max-width:var(--12d06943)}th[data-v-16e66636]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--atable-row-padding);padding-bottom:var(--atable-row-padding);color:var(--gray-60);height:var(--atable-row-height)}th[data-v-16e66636]:focus{outline:none}[data-v-10a48b2a]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}div[data-v-10a48b2a]{z-index:100;position:absolute;background-color:var(--row-color-zebra-dark)}[data-v-819abcc5]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}table[data-v-819abcc5]{display:table;border-collapse:collapse;caret-color:var(--brand-color)}table.atable[data-v-819abcc5],.atable[data-v-819abcc5]{font-family:var(--atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--table-font-size);border-collapse:collapse}th[data-v-819abcc5]{box-sizing:border-box;background-color:var(--brand-color);border-width:1px;border-style:solid;border-color:var(--header-border-color);border-radius:0;color:var(--header-text-color)} +[data-v-07dfe445]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}td[data-v-07dfe445]{border-radius:0;box-sizing:border-box;margin:0;outline:none;box-shadow:none;color:var(--cell-text-color);text-overflow:ellipsis;overflow:hidden;padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--atable-row-padding);padding-bottom:var(--atable-row-padding);border-spacing:0px;border-collapse:collapse}td[data-v-07dfe445]:focus,td[data-v-07dfe445]:focus-within{background-color:var(--focus-cell-background);outline-width:2px;outline-style:solid;outline-color:var(--focus-cell-outline);box-shadow:none;min-height:1.15em;max-height:1.15em;overflow:hidden}[data-v-b2e2ed2d]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}.row-index[data-v-b2e2ed2d]{color:var(--header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}.expandable-row[data-v-b2e2ed2d]{border-top:1px solid var(--row-border-color);height:var(--atable-row-height)}.expanded-row[data-v-b2e2ed2d]{border-bottom:1px solid var(--row-border-color);border-top:1px solid var(--row-border-color)}.expanded-row-content[data-v-b2e2ed2d]{border-bottom:1px solid var(--row-border-color);border-top:1px solid var(--row-border-color);padding:1.5rem}[data-v-4c71a067]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}.table-row[data-v-4c71a067]{border-top:1px solid var(--row-border-color);height:var(--atable-row-height)}.list-index[data-v-4c71a067]{color:var(--header-text-color);font-weight:700;padding-left:var(--atable-row-padding);padding-right:1em;text-align:center;-webkit-user-select:none;user-select:none;width:var(--5b18ee03);max-width:var(--5b18ee03)}.tree-index[data-v-4c71a067]{color:var(--header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch}[data-v-16e66636]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}thead[data-v-16e66636]{background-color:var(--gray-5)}#header-index[data-v-16e66636]{width:var(--12d06943);max-width:var(--12d06943)}th[data-v-16e66636]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--atable-row-padding);padding-bottom:var(--atable-row-padding);color:var(--gray-60);height:var(--atable-row-height)}th[data-v-16e66636]:focus{outline:none}[data-v-10a48b2a]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}div[data-v-10a48b2a]{z-index:100;position:absolute;background-color:var(--row-color-zebra-dark)}[data-v-55d8ba05]:root{--primary-color: #0098c9;--primary-text-color: #ffffff;--brand-color: #202a44;--gray-5: #f2f2f2;--gray-10: #e6e6e6;--gray-20: #cccccc;--gray-50: #808080;--gray-60: #666666;--gray-80: #333333;--row-color-zebra-light: #eeeeee;--row-color-zebra-dark: #dddddd;--focus-cell-background: #ffffff;--focus-cell-outline: #000000;--cell-border-color: #ffffff;--cell-text-color: #3a3c41;--active-cell-background: #ffffff;--active-cell-outline: #e6a92d;--row-border-color: var(--gray-20);--header-border-color: #ffffff;--header-text-color: var(--gray-20);--row-number-background-color: #ffffff;--input-border-color: var(--gray-20);--input-label-color: var(--gray-80);--input-active-border-color: #000000;--input-active-label-color: #000000;--required-border: #e63c28;--font-size: 11pt;--font-family: Arimo, Arial, sans-serif;--table-font-size: 11pt;--atable-font-family: "Arimo", sans-serif;--atable-row-padding: 0px;--atable-row-height: 1.5em}table[data-v-55d8ba05]{display:table;border-collapse:collapse;caret-color:var(--brand-color)}table.atable[data-v-55d8ba05],.atable[data-v-55d8ba05]{font-family:var(--atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--table-font-size);border-collapse:collapse}th[data-v-55d8ba05]{box-sizing:border-box;background-color:var(--brand-color);border-width:1px;border-style:solid;border-color:var(--header-border-color);border-radius:0;color:var(--header-text-color)} diff --git a/atable/src/components/ATable.vue b/atable/src/components/ATable.vue index 9c116296..532ccf35 100644 --- a/atable/src/components/ATable.vue +++ b/atable/src/components/ATable.vue @@ -91,7 +91,7 @@ provide(tableData.id, tableData) watch( () => tableData.rows, - (newValue, oldValue) => { + newValue => { emit('update:modelValue', newValue) }, { deep: true } @@ -139,11 +139,11 @@ const formatCell = (event?: KeyboardEvent, column?: TableColumn, cellData?: any) } } -const moveCursorToEnd = (target: HTMLElement) => { - target.focus() - document.execCommand('selectAll', false, null) - document.getSelection().collapseToEnd() -} +// const moveCursorToEnd = (target: HTMLElement) => { +// target.focus() +// document.execCommand('selectAll', false, null) +// document.getSelection().collapseToEnd() +// } const clickOutside = (event: MouseEvent) => { if (!tableData.modal.parent?.contains(event.target as HTMLElement)) { diff --git a/atable/stories/list.story.vue b/atable/stories/list.story.vue index 0a9108e2..b43f894c 100644 --- a/atable/stories/list.story.vue +++ b/atable/stories/list.story.vue @@ -228,7 +228,7 @@ const inbox = ref({ const chooseRandomData = (rows: any[]) => { return Array(3) .fill(0) - .map((_, i) => rows[Math.floor(Math.random() * rows.length)]) + .map(() => rows[Math.floor(Math.random() * rows.length)]) } const getRowCellStyle = (column: TableColumn): CSSProperties => { diff --git a/atable/vite.config.ts b/atable/vite.config.ts index c27e1748..8997bdeb 100644 --- a/atable/vite.config.ts +++ b/atable/vite.config.ts @@ -45,10 +45,10 @@ export default defineConfig({ coverage: { provider: 'v8', thresholds: { - lines: 40, - branches: 40, - functions: 40, - statements: 40, + lines: 70, + branches: 70, + functions: 70, + statements: 70, autoUpdate: true, }, // required for Github Actions CI @@ -71,7 +71,6 @@ export default defineConfig({ '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*', '**/.{eslint,mocha,prettier}rc.{js,cjs,yml}', ], - all: true, skipFull: true, }, }, diff --git a/common/changes/@stonecrop/aform/feat-vitest-workspace_2024-04-17-05-53.json b/common/changes/@stonecrop/aform/feat-vitest-workspace_2024-04-17-05-53.json new file mode 100644 index 00000000..3da481b6 --- /dev/null +++ b/common/changes/@stonecrop/aform/feat-vitest-workspace_2024-04-17-05-53.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "update coverage report", + "type": "patch", + "packageName": "@stonecrop/aform" + } + ], + "packageName": "@stonecrop/aform", + "email": "rohan@agritheory.dev" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/atable/feat-vitest-workspace_2024-04-17-05-53.json b/common/changes/@stonecrop/atable/feat-vitest-workspace_2024-04-17-05-53.json new file mode 100644 index 00000000..00caaf37 --- /dev/null +++ b/common/changes/@stonecrop/atable/feat-vitest-workspace_2024-04-17-05-53.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "update coverage report", + "type": "patch", + "packageName": "@stonecrop/atable" + } + ], + "packageName": "@stonecrop/atable", + "email": "rohan@agritheory.dev" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/code-editor/feat-vitest-workspace_2024-04-17-12-47.json b/common/changes/@stonecrop/code-editor/feat-vitest-workspace_2024-04-17-12-47.json new file mode 100644 index 00000000..83172d95 --- /dev/null +++ b/common/changes/@stonecrop/code-editor/feat-vitest-workspace_2024-04-17-12-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/code-editor", + "comment": "", + "type": "none" + } + ], + "packageName": "@stonecrop/code-editor" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/desktop/feat-vitest-workspace_2024-04-17-12-47.json b/common/changes/@stonecrop/desktop/feat-vitest-workspace_2024-04-17-12-47.json new file mode 100644 index 00000000..1c443b91 --- /dev/null +++ b/common/changes/@stonecrop/desktop/feat-vitest-workspace_2024-04-17-12-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/desktop", + "comment": "", + "type": "none" + } + ], + "packageName": "@stonecrop/desktop" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/node-editor/feat-vitest-workspace_2024-04-17-12-47.json b/common/changes/@stonecrop/node-editor/feat-vitest-workspace_2024-04-17-12-47.json new file mode 100644 index 00000000..9b01842a --- /dev/null +++ b/common/changes/@stonecrop/node-editor/feat-vitest-workspace_2024-04-17-12-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/node-editor", + "comment": "", + "type": "none" + } + ], + "packageName": "@stonecrop/node-editor" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/stonecrop/feat-vitest-workspace_2024-04-17-12-47.json b/common/changes/@stonecrop/stonecrop/feat-vitest-workspace_2024-04-17-12-47.json new file mode 100644 index 00000000..1aae51f2 --- /dev/null +++ b/common/changes/@stonecrop/stonecrop/feat-vitest-workspace_2024-04-17-12-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/stonecrop", + "comment": "", + "type": "none" + } + ], + "packageName": "@stonecrop/stonecrop" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/themes/feat-vitest-workspace_2024-04-17-12-47.json b/common/changes/@stonecrop/themes/feat-vitest-workspace_2024-04-17-12-47.json new file mode 100644 index 00000000..ba50d755 --- /dev/null +++ b/common/changes/@stonecrop/themes/feat-vitest-workspace_2024-04-17-12-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/themes", + "comment": "", + "type": "none" + } + ], + "packageName": "@stonecrop/themes" +} \ No newline at end of file diff --git a/common/changes/@stonecrop/utilities/feat-vitest-workspace_2024-04-17-12-47.json b/common/changes/@stonecrop/utilities/feat-vitest-workspace_2024-04-17-12-47.json new file mode 100644 index 00000000..1360f068 --- /dev/null +++ b/common/changes/@stonecrop/utilities/feat-vitest-workspace_2024-04-17-12-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@stonecrop/utilities", + "comment": "", + "type": "none" + } + ], + "packageName": "@stonecrop/utilities" +} \ No newline at end of file diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index e9230602..7cdef0d4 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -2,6 +2,18 @@ { "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json", "packages": [ + { + "name": "@histoire/plugin-vue", + "allowedCategories": [ "prototype", "utilities" ] + }, + { + "name": "@miragejs/graphql", + "allowedCategories": [ "prototype", "utilities" ] + }, + { + "name": "@monaco-editor/loader", + "allowedCategories": [ "prototype" ] + }, { "name": "@stonecrop/aform", "allowedCategories": [ "prototype" ] @@ -30,18 +42,6 @@ "name": "@stonecrop/utilities", "allowedCategories": [ "prototype" ] }, - { - "name": "@histoire/plugin-vue", - "allowedCategories": [ "prototype", "utilities" ] - }, - { - "name": "@miragejs/graphql", - "allowedCategories": [ "prototype", "utilities" ] - }, - { - "name": "@monaco-editor/loader", - "allowedCategories": [ "prototype" ] - }, { "name": "@typescript-eslint/eslint-plugin", "allowedCategories": [ "prototype", "utilities" ] diff --git a/desktop/dist/desktop.js b/desktop/dist/desktop.js index 2dbd9678..fd9aad69 100644 --- a/desktop/dist/desktop.js +++ b/desktop/dist/desktop.js @@ -279,7 +279,7 @@ const Zr = /* @__PURE__ */ q({ }, s(u)), null, 16, ["schema", "modelValue", "onUpdate:modelValue", "data", "readonly"]))), 128)) ])); } -}), es = /* @__PURE__ */ Gr(Zr, [["__scopeId", "data-v-74d66cf2"]]), yn = { +}), es = /* @__PURE__ */ Gr(Zr, [["__scopeId", "data-v-82492bb4"]]), yn = { date: "##/##/####", datetime: "####/##/## ##:##", time: "##:##", @@ -4723,7 +4723,7 @@ const Lc = { key: 0 }, jc = { let r = n.modelValue ? n.modelValue : n.rows, s = new Mc(n.id, n.columns, r, n.config); nt(s.id, s), ue( () => s.rows, - (a, l) => { + (a) => { o("update:modelValue", a); }, { deep: !0 } @@ -4807,7 +4807,7 @@ const Lc = { key: 0 }, jc = { ], !0) ], 4)); } -}), zc = /* @__PURE__ */ qe(Gc, [["__scopeId", "data-v-819abcc5"]]), Qc = /* @__PURE__ */ q({ +}), zc = /* @__PURE__ */ qe(Gc, [["__scopeId", "data-v-55d8ba05"]]), Qc = /* @__PURE__ */ q({ __name: "Records", setup(e) { const { stonecrop: t, isReady: n } = No(), o = { view: "list" }; diff --git a/desktop/dist/desktop.js.map b/desktop/dist/desktop.js.map index eab83a61..272447ca 100644 --- a/desktop/dist/desktop.js.map +++ b/desktop/dist/desktop.js.map @@ -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":["\n\n\n\n\n","\n\n\n","import { defineComponent as D, computed as S, openBlock as f, createElementBlock as v, createElementVNode as i, withDirectives as C, vModelCheckbox as ge, toDisplayString as k, vShow as $, resolveComponent as ye, createBlock as H, withCtx as be, onMounted as se, onBeforeUnmount as we, ref as y, watch as F, unref as O, getCurrentScope as Ce, onScopeDispose as ke, inject as ae, nextTick as De, Fragment as V, renderList as x, normalizeStyle as Ee, withModifiers as Ae, normalizeClass as B, createCommentVNode as re, withKeys as P, vModelText as R, resolveDynamicComponent as Ie, mergeProps as Me, createTextVNode as Te, renderSlot as _e, createVNode as Se, resolveDirective as Oe } from \"vue\";\nconst $e = { id: \"checkbox-container\" }, Le = [\"id\", \"readonly\", \"required\"], Ve = { id: \"custom-checkbox\" }, xe = [\"for\"], Be = [\"innerHTML\"], Pe = /* @__PURE__ */ D({\n __name: \"ACheckbox\",\n props: {\n label: {},\n value: {},\n required: { type: Boolean },\n readOnly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:value\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get() {\n return o.value;\n },\n set(l) {\n n(\"update:value\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n i(\"label\", $e, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"checkbox\",\n id: l.uuid,\n class: \"checkbox\",\n readonly: l.readOnly,\n required: l.required\n }, null, 8, Le), [\n [ge, s.value]\n ]),\n i(\"span\", Ve, k(s.value), 1)\n ]),\n i(\"label\", {\n for: l.uuid,\n id: \"checkbox-label\"\n }, k(l.label), 9, xe),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Be), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), M = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [n, s] of t)\n o[n] = s;\n return o;\n}, qe = /* @__PURE__ */ M(Pe, [[\"__scopeId\", \"data-v-743cd4db\"]]), He = /* @__PURE__ */ i(\"div\", null, [\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" })\n], -1), Fe = /* @__PURE__ */ D({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, o) => {\n const n = ye(\"ATableModal\");\n return f(), H(n, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: be(() => [\n He\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n});\nvar W;\nconst ie = typeof window < \"u\", Re = (e) => typeof e == \"string\", Ue = () => {\n};\nie && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction ue(e) {\n return typeof e == \"function\" ? e() : O(e);\n}\nfunction Qe(e) {\n return e;\n}\nfunction Ye(e) {\n return Ce() ? (ke(e), !0) : !1;\n}\nfunction q(e) {\n var t;\n const o = ue(e);\n return (t = o == null ? void 0 : o.$el) != null ? t : o;\n}\nconst ce = ie ? window : void 0;\nfunction je(...e) {\n let t, o, n, s;\n if (Re(e[0]) || Array.isArray(e[0]) ? ([o, n, s] = e, t = ce) : [t, o, n, s] = e, !t)\n return Ue;\n Array.isArray(o) || (o = [o]), Array.isArray(n) || (n = [n]);\n const l = [], a = () => {\n l.forEach((c) => c()), l.length = 0;\n }, r = (c, g, b, m) => (c.addEventListener(g, b, m), () => c.removeEventListener(g, b, m)), p = F(() => [q(t), ue(s)], ([c, g]) => {\n a(), c && l.push(...o.flatMap((b) => n.map((m) => r(c, b, m, g))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n p(), a();\n };\n return Ye(u), u;\n}\nconst N = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, z = \"__vueuse_ssr_handlers__\";\nN[z] = N[z] || {};\nfunction We(e, { window: t = ce, scrollTarget: o } = {}) {\n const n = y(!1), s = () => {\n if (!t)\n return;\n const l = t.document, a = q(e);\n if (!a)\n n.value = !1;\n else {\n const r = a.getBoundingClientRect();\n n.value = r.top <= (t.innerHeight || l.documentElement.clientHeight) && r.left <= (t.innerWidth || l.documentElement.clientWidth) && r.bottom >= 0 && r.right >= 0;\n }\n };\n return F(() => q(e), () => s(), { immediate: !0, flush: \"post\" }), t && je(o || t, \"scroll\", s, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar G;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(G || (G = {}));\nvar Ne = Object.defineProperty, K = Object.getOwnPropertySymbols, ze = Object.prototype.hasOwnProperty, Ge = Object.prototype.propertyIsEnumerable, J = (e, t, o) => t in e ? Ne(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Ke = (e, t) => {\n for (var o in t || (t = {}))\n ze.call(t, o) && J(e, o, t[o]);\n if (K)\n for (var o of K(t))\n Ge.call(t, o) && J(e, o, t[o]);\n return e;\n};\nconst Je = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nKe({\n linear: Qe\n}, Je);\nconst E = (e) => {\n let t = We(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, A = (e) => e.tabIndex >= 0, X = (e) => {\n const t = e.target;\n return U(t);\n}, U = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? U(o) : o;\n}, Xe = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.firstElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.firstElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? Q(n) : n;\n}, Z = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? Q(o) : o;\n}, Ze = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.lastElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.lastElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? U(n) : n;\n}, ee = (e) => {\n const t = e.target;\n return Y(t);\n}, Y = (e) => {\n var t;\n let o;\n if (e.previousElementSibling)\n o = e.previousElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n o = n == null ? void 0 : n.lastElementChild;\n }\n return o && (!A(o) || !E(o)) ? Y(o) : o;\n}, te = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let o;\n if (e.nextElementSibling)\n o = e.nextElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n o = n == null ? void 0 : n.firstElementChild;\n }\n return o && (!A(o) || !E(o)) ? j(o) : o;\n}, ne = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!A(t) || !E(t)) ? j(t) : t;\n}, oe = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!A(t) || !E(t)) ? Y(t) : t;\n}, L = [\"alt\", \"control\", \"shift\", \"meta\"], et = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, de = {\n \"keydown.up\": (e) => {\n const t = X(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = ee(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Xe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = oe(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 = Z(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 = X(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction tt(e) {\n const t = (n) => {\n let s = null;\n n.parent && (typeof n.parent == \"string\" ? s = document.querySelector(n.parent) : n.parent instanceof Element ? s = n.parent : s = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = s ? Array.from(s.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const a of n.selectors.value)\n a instanceof Element ? l.push(a) : l.push(a.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(s.children).filter((a) => A(a) && E(a));\n return l;\n }, o = (n) => (s) => {\n const l = et[s.key] || s.key.toLowerCase();\n if (L.includes(l))\n return;\n const a = n.handlers || de;\n for (const r of Object.keys(a)) {\n const [p, ...u] = r.split(\".\");\n if (p === \"keydown\" && u.includes(l)) {\n const c = a[r], g = u.filter((m) => L.includes(m)), b = L.some((m) => {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n return s.getModifierState(_);\n });\n if (g.length > 0) {\n if (b) {\n for (const m of L)\n if (u.includes(m)) {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n s.getModifierState(_) && c(s);\n }\n }\n } else\n b || c(s);\n }\n }\n };\n se(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.addEventListener(\"keydown\", o(n));\n }\n }), we(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.removeEventListener(\"keydown\", o(n));\n }\n });\n}\nconst nt = [\"event\", \"colIndex\", \"rowIndex\", \"tableid\"], ot = { colspan: \"5\" }, lt = [\"onClick\"], st = 6, I = 7, at = /* @__PURE__ */ D({\n __name: \"ADate\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n event: {},\n indent: {},\n readonly: { type: Boolean }\n },\n setup(e) {\n const t = e, o = ae(t.tableid), n = /* @__PURE__ */ new Date(), s = y(), l = y(), a = y(), r = y([]);\n se(async () => {\n let d = o.cellData(t.colIndex, t.rowIndex);\n d ? (d instanceof Date || (d = new Date(d)), s.value = d, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = n.getMonth(), a.value = n.getFullYear()), p(), await De();\n const T = document.getElementsByClassName(\"selecteddate\");\n if (T.length > 0)\n T[0].focus();\n else {\n const h = document.getElementsByClassName(\"todaysdate\");\n h.length > 0 && h[0].focus();\n }\n }), F([l, a], () => {\n p();\n });\n const p = () => {\n r.value = [];\n const d = new Date(a.value, l.value, 1), T = d.getDay(), h = d.setDate(d.getDate() - T);\n for (let w of Array(43).keys())\n r.value.push(h + w * 864e5);\n }, u = () => {\n a.value -= 1;\n }, c = () => {\n a.value += 1;\n }, g = () => {\n l.value == 0 ? (l.value = 11, u()) : l.value -= 1;\n }, b = () => {\n l.value == 11 ? (l.value = 0, c()) : l.value += 1;\n }, m = (d) => {\n if (l.value === n.getMonth())\n return n.toDateString() === new Date(d).toDateString();\n }, _ = (d) => new Date(d).toDateString() === new Date(s.value).toDateString(), fe = (d, T) => {\n s.value = new Date(r.value[T]), me();\n }, me = () => {\n o.setCellData(t.rowIndex, t.colIndex, s.value.getTime());\n }, ve = S(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return tt([\n {\n parent: \"table.adate\",\n selectors: \"td\",\n handlers: {\n ...de,\n \"keydown.pageup\": g,\n \"keydown.shift.pageup\": u,\n \"keydown.pagedown\": b,\n \"keydown.shift.pagedown\": c\n }\n }\n ]), (d, T) => d.readonly ? re(\"\", !0) : (f(), v(\"div\", {\n key: 0,\n event: d.event,\n colIndex: d.colIndex,\n rowIndex: d.rowIndex,\n tableid: d.tableid,\n class: \"adate\",\n tabindex: \"0\",\n ref: \"adatepicker\"\n }, [\n i(\"table\", null, [\n i(\"tr\", null, [\n i(\"td\", {\n onClick: g,\n tabindex: -1\n }, \"<\"),\n i(\"th\", ot, k(ve.value), 1),\n i(\"td\", {\n onClick: b,\n tabindex: -1\n }, \">\")\n ]),\n (f(), v(V, null, x(st, (h) => i(\"tr\", { key: h }, [\n (f(), v(V, null, x(I, (w) => i(\"td\", {\n key: (h - 1) * I + w,\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n style: Ee({\n border: _(r.value[(h - 1) * I + w]) ? \"2px solid var(--focus-cell-outline)\" : \"none\",\n borderBottomColor: m(r.value[(h - 1) * I + w]) ? \"var(--focus-cell-outline)\" : \"none\"\n }),\n onClick: Ae((he) => fe(he, (h - 1) * I + w), [\"prevent\", \"stop\"]),\n class: B({\n todaysdate: m(r.value[(h - 1) * I + w]),\n selecteddate: _(r.value[(h - 1) * I + w])\n })\n }, k(new Date(r.value[(h - 1) * I + w]).getDate()), 15, lt)), 64))\n ])), 64))\n ])\n ], 8, nt));\n }\n}), rt = /* @__PURE__ */ M(at, [[\"__scopeId\", \"data-v-169f1184\"]]), it = D({\n name: \"ADropdown\",\n props: {\n modelValue: {\n type: String,\n required: !1,\n default: \"\"\n },\n label: {\n type: String,\n required: !0\n },\n value: String,\n items: {\n type: Array,\n required: !1,\n default: () => []\n },\n isAsync: {\n type: Boolean,\n required: !1,\n default: !1\n }\n },\n emits: [\"update:modelValue\", \"filterChanged\"],\n data() {\n return {\n results: [],\n search: this.modelValue,\n isLoading: !1,\n arrowCounter: 0,\n isOpen: !1\n };\n },\n watch: {\n items: function(e, t) {\n this.isLoading = !1, this.results = e;\n }\n },\n mounted() {\n document.addEventListener(\"click\", this.handleClickOutside), this.filterResults();\n },\n destroyed() {\n document.removeEventListener(\"click\", this.handleClickOutside);\n },\n methods: {\n setResult(e) {\n this.search = e, this.closeResults();\n },\n filterResults() {\n this.results = this.items.filter((e) => e.toLowerCase().indexOf(this.search.toLowerCase()) > -1);\n },\n onChange() {\n this.isOpen = !0, this.isAsync ? (this.isLoading = !0, this.$emit(\"filterChanged\", this.search)) : this.filterResults();\n },\n handleClickOutside(e) {\n this.$el.contains(e.target) || (this.closeResults(), this.arrowCounter = 0);\n },\n closeResults() {\n this.isOpen = !1, this.items.includes(this.search) || (this.search = \"\"), this.$emit(\"update:modelValue\", this.search);\n },\n onArrowDown() {\n this.arrowCounter < this.results.length && (this.arrowCounter = this.arrowCounter + 1);\n },\n onArrowUp() {\n this.arrowCounter > 0 && (this.arrowCounter = this.arrowCounter - 1);\n },\n onEnter() {\n this.search = this.results[this.arrowCounter], this.closeResults(), this.arrowCounter = 0;\n },\n openWithSearch() {\n this.search = \"\", this.onChange(), this.$refs.mopInput.focus();\n }\n }\n}), ut = { class: \"input-wrapper\" }, ct = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, dt = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, pt = [\"onClick\"];\nfunction ft(e, t, o, n, s, l) {\n return f(), v(\"div\", {\n class: B([\"autocomplete\", { isOpen: e.isOpen }])\n }, [\n i(\"div\", ut, [\n C(i(\"input\", {\n ref: \"mopInput\",\n type: \"text\",\n onInput: t[0] || (t[0] = (...a) => e.onChange && e.onChange(...a)),\n onFocus: t[1] || (t[1] = (...a) => e.onChange && e.onChange(...a)),\n \"onUpdate:modelValue\": t[2] || (t[2] = (a) => e.search = a),\n onKeydown: [\n t[3] || (t[3] = P((...a) => e.onArrowDown && e.onArrowDown(...a), [\"down\"])),\n t[4] || (t[4] = P((...a) => e.onArrowUp && e.onArrowUp(...a), [\"up\"])),\n t[5] || (t[5] = P((...a) => e.onEnter && e.onEnter(...a), [\"enter\"]))\n ]\n }, null, 544), [\n [R, e.search]\n ]),\n C(i(\"ul\", ct, [\n e.isLoading ? (f(), v(\"li\", dt, \"Loading results...\")) : (f(!0), v(V, { key: 1 }, x(e.results, (a, r) => (f(), v(\"li\", {\n key: r,\n onClick: (p) => e.setResult(a),\n class: B([\"autocomplete-result\", { \"is-active\": r === e.arrowCounter }])\n }, k(a), 11, pt))), 128))\n ], 512), [\n [$, e.isOpen]\n ]),\n i(\"label\", null, k(e.label), 1)\n ])\n ], 2);\n}\nconst mt = /* @__PURE__ */ M(it, [[\"render\", ft]]), vt = /* @__PURE__ */ D({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, o) => (f(), v(\"button\", {\n class: B([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), ht = /* @__PURE__ */ M(vt, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), gt = /* @__PURE__ */ D({\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 o = e, n = t, s = y(o.data || {}), l = (r) => {\n let p = {};\n for (const [u, c] of Object.entries(r))\n [\"component\", \"fieldtype\"].includes(u) || (p[u] = c), u === \"rows\" && c && c.length === 0 && (p.rows = s.value[r.fieldname]);\n return p;\n }, a = S({\n get: () => o.modelValue.map((r, p) => S({\n get() {\n return r.value;\n },\n set: (u) => {\n o.modelValue[p].value = u, n(\"update:modelValue\", o.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (r, p) => (f(), v(\"form\", null, [\n (f(!0), v(V, null, x(r.modelValue, (u, c) => (f(), H(Ie(u.component), Me({\n key: c,\n schema: u,\n modelValue: a.value[c].value,\n \"onUpdate:modelValue\": (g) => a.value[c].value = g,\n data: s.value[u.fieldname],\n readonly: r.readonly\n }, l(u)), null, 16, [\"schema\", \"modelValue\", \"onUpdate:modelValue\", \"data\", \"readonly\"]))), 128))\n ]));\n }\n}), pe = /* @__PURE__ */ M(gt, [[\"__scopeId\", \"data-v-74d66cf2\"]]), yt = /* @__PURE__ */ D({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, o = y(t.data || []);\n let n = y(!1), s = y(t.collapsible);\n const l = y(t.schema);\n function a(r) {\n r.preventDefault(), s.value && (n.value = !n.value);\n }\n return (r, p) => (f(), v(\"fieldset\", null, [\n i(\"legend\", {\n onClick: a,\n onSubmit: a\n }, [\n Te(k(r.label) + \" \", 1),\n O(s) ? (f(), H(ht, {\n key: 0,\n collapsed: O(n)\n }, null, 8, [\"collapsed\"])) : re(\"\", !0)\n ], 32),\n _e(r.$slots, \"default\", { collapsed: O(n) }, () => [\n C(Se(pe, {\n modelValue: l.value,\n \"onUpdate:modelValue\": p[0] || (p[0] = (u) => l.value = u),\n data: o.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [$, !O(n)]\n ])\n ], !0)\n ]));\n }\n}), bt = /* @__PURE__ */ M(yt, [[\"__scopeId\", \"data-v-cad9b578\"]]), wt = [\"id\", \"disabled\", \"required\"], Ct = [\"for\"], kt = [\"innerHTML\"], Dt = /* @__PURE__ */ D({\n __name: \"ANumericInput\",\n props: {\n label: {},\n modelValue: {},\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get: () => o.modelValue,\n set: (l) => {\n n(\"update:modelValue\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"number\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required\n }, null, 8, wt), [\n [R, s.value]\n ]),\n i(\"label\", { for: l.uuid }, k(l.label), 9, Ct),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, kt), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), Et = /* @__PURE__ */ M(Dt, [[\"__scopeId\", \"data-v-be33e6c4\"]]), le = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction At(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction It(e) {\n var o;\n let t = e.value;\n if (t) {\n const n = At(t);\n if (n) {\n const s = e.instance.locale;\n t = n(s);\n }\n } else {\n const s = (o = e.instance.schema.fieldtype) == null ? void 0 : o.toLowerCase();\n s && le[s] && (t = le[s]);\n }\n return t;\n}\nfunction Mt(e, t) {\n t || (t = \"#\");\n let o = e;\n const n = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const s of n)\n o = o.replaceAll(s, \"\");\n return o;\n}\nfunction Tt(e, t, o) {\n o || (o = \"#\");\n let n = t;\n for (const s of e) {\n const l = n.indexOf(o);\n if (l !== -1) {\n const a = n.substring(0, l), r = n.substring(l + 1);\n n = a + s + r;\n }\n }\n return n.slice(0, t.length);\n}\nfunction _t(e, t) {\n const o = It(t);\n if (!o)\n return;\n const n = \"#\", s = e.value, l = Mt(s, n);\n if (l) {\n const a = Tt(l, o, n);\n t.instance.maskFilled && (t.instance.maskFilled = !a.includes(n)), e.value = a;\n } else\n e.value = o;\n}\nconst St = D({\n name: \"ATextInput\",\n props: {\n schema: {\n type: Object,\n required: !0\n },\n label: {\n type: String,\n required: !0\n },\n modelValue: {\n type: null\n },\n mask: {\n type: String\n },\n required: {\n type: Boolean\n },\n readonly: {\n type: Boolean\n },\n uuid: {\n type: String\n },\n validation: {\n type: Object,\n default: () => ({ errorMessage: \" \" })\n }\n },\n setup(e, t) {\n const o = y(!1), n = ae(\"locale\", \"\");\n return { inputText: S({\n get() {\n return e.modelValue;\n },\n set(l) {\n t.emit(\"update:modelValue\", l);\n }\n }), locale: n, maskFilled: o };\n },\n directives: {\n mask: _t\n }\n}), Ot = [\"id\", \"disabled\", \"maxlength\", \"required\"], $t = [\"for\"], Lt = [\"innerHTML\"];\nfunction Vt(e, t, o, n, s, l) {\n const a = Oe(\"mask\");\n return f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": t[0] || (t[0] = (r) => e.inputText = r),\n id: e.uuid,\n disabled: e.readonly,\n maxlength: e.mask ? e.maskFilled && e.mask.length : void 0,\n required: e.required\n }, null, 8, Ot), [\n [R, e.inputText],\n [a, e.mask]\n ]),\n i(\"label\", { for: e.uuid }, k(e.label), 9, $t),\n C(i(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Lt), [\n [$, e.validation.errorMessage]\n ])\n ]);\n}\nconst xt = /* @__PURE__ */ M(St, [[\"render\", Vt], [\"__scopeId\", \"data-v-76dba9b8\"]]);\nfunction Pt(e) {\n e.component(\"ACheckbox\", qe), e.component(\"ACombobox\", Fe), e.component(\"ADate\", rt), e.component(\"ADropdown\", mt), e.component(\"AFieldset\", bt), e.component(\"AForm\", pe), e.component(\"ANumericInput\", Et), e.component(\"ATextInput\", xt);\n}\nexport {\n qe as ACheckbox,\n Fe as AComboBox,\n rt as ADate,\n mt as ADropdown,\n bt as AFieldset,\n pe as AForm,\n Et as ANumericInput,\n xt as ATextInput,\n Pt 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} 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}\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}\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 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 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(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\n \n \n`);\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 <router-view>\",\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","\n\n\n","import { onMounted as xe, onBeforeUnmount as Ie, ref as k, watch as j, unref as r, getCurrentScope as Ee, onScopeDispose as ke, defineComponent as C, inject as O, computed as R, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as V, toDisplayString as T, Fragment as L, createElementVNode as A, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as $, renderList as N, normalizeStyle as H, createTextVNode as Ce, provide as _e, nextTick as $e, createVNode as z, withCtx as G } from \"vue\";\nvar J;\nconst pe = typeof window < \"u\", Ae = (t) => typeof t == \"string\", Te = () => {\n};\npe && (J = window == null ? void 0 : window.navigator) != null && J.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction fe(t) {\n return typeof t == \"function\" ? t() : r(t);\n}\nfunction Oe(t) {\n return t;\n}\nfunction De(t) {\n return Ee() ? (ke(t), !0) : !1;\n}\nfunction U(t) {\n var e;\n const n = fe(t);\n return (e = n == null ? void 0 : n.$el) != null ? e : n;\n}\nconst me = pe ? window : void 0;\nfunction Se(...t) {\n let e, n, o, a;\n if (Ae(t[0]) || Array.isArray(t[0]) ? ([n, o, a] = t, e = me) : [e, n, o, a] = t, !e)\n return Te;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], s = () => {\n l.forEach((f) => f()), l.length = 0;\n }, i = (f, c, v, h) => (f.addEventListener(c, v, h), () => f.removeEventListener(c, v, h)), d = j(() => [U(e), fe(a)], ([f, c]) => {\n s(), f && l.push(...n.flatMap((v) => o.map((h) => i(f, v, h, c))));\n }, { immediate: !0, flush: \"post\" }), p = () => {\n d(), s();\n };\n return De(p), p;\n}\nconst X = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Y = \"__vueuse_ssr_handlers__\";\nX[Y] = X[Y] || {};\nfunction Re(t, { window: e = me, scrollTarget: n } = {}) {\n const o = k(!1), a = () => {\n if (!e)\n return;\n const l = e.document, s = U(t);\n if (!s)\n o.value = !1;\n else {\n const i = s.getBoundingClientRect();\n o.value = i.top <= (e.innerHeight || l.documentElement.clientHeight) && i.left <= (e.innerWidth || l.documentElement.clientWidth) && i.bottom >= 0 && i.right >= 0;\n }\n };\n return j(() => U(t), () => a(), { immediate: !0, flush: \"post\" }), e && Se(n || e, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), o;\n}\nvar Z;\n(function(t) {\n t.UP = \"UP\", t.RIGHT = \"RIGHT\", t.DOWN = \"DOWN\", t.LEFT = \"LEFT\", t.NONE = \"NONE\";\n})(Z || (Z = {}));\nvar Pe = Object.defineProperty, K = Object.getOwnPropertySymbols, He = Object.prototype.hasOwnProperty, Le = Object.prototype.propertyIsEnumerable, ee = (t, e, n) => e in t ? Pe(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, Me = (t, e) => {\n for (var n in e || (e = {}))\n He.call(e, n) && ee(t, n, e[n]);\n if (K)\n for (var n of K(e))\n Le.call(e, n) && ee(t, n, e[n]);\n return t;\n};\nconst Ne = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nMe({\n linear: Oe\n}, Ne);\nconst x = (t) => {\n let e = Re(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, I = (t) => t.tabIndex >= 0, te = (t) => {\n const e = t.target;\n return W(e);\n}, W = (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 && (!I(n) || !x(n)) ? W(n) : n;\n}, Ue = (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 && (!I(o) || !x(o)) ? B(o) : o;\n}, ne = (t) => {\n const e = t.target;\n return B(e);\n}, B = (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 && (!I(n) || !x(n)) ? B(n) : n;\n}, je = (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 && (!I(o) || !x(o)) ? W(o) : o;\n}, oe = (t) => {\n const e = t.target;\n return Q(e);\n}, Q = (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 && (!I(n) || !x(n)) ? Q(n) : n;\n}, le = (t) => {\n const e = t.target;\n return F(e);\n}, F = (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 && (!I(n) || !x(n)) ? F(n) : n;\n}, ae = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!I(e) || !x(e)) ? F(e) : e;\n}, re = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!I(e) || !x(e)) ? Q(e) : e;\n}, D = [\"alt\", \"control\", \"shift\", \"meta\"], Ve = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, we = {\n \"keydown.up\": (t) => {\n const e = te(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.down\": (t) => {\n const e = ne(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.left\": (t) => {\n const e = oe(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.right\": (t) => {\n const e = le(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.control.up\": (t) => {\n const e = Ue(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.down\": (t) => {\n const e = je(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.left\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.right\": (t) => {\n const e = re(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.end\": (t) => {\n const e = re(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 = ne(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 = te(t);\n e && e.focus();\n }\n },\n \"keydown.home\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.tab\": (t) => {\n const e = le(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.shift.tab\": (t) => {\n const e = oe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n }\n};\nfunction q(t) {\n const e = (o) => {\n let a = null;\n o.parent && (typeof o.parent == \"string\" ? a = document.querySelector(o.parent) : o.parent instanceof Element ? a = o.parent : a = o.parent.value);\n let l = [];\n if (o.selectors)\n if (typeof o.selectors == \"string\")\n l = a ? Array.from(a.querySelectorAll(o.selectors)) : Array.from(document.querySelectorAll(o.selectors));\n else if (o.selectors instanceof Element)\n l.push(o.selectors);\n else if (Array.isArray(o.selectors.value))\n for (const s of o.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(o.selectors.value);\n else\n l = Array.from(a.children).filter((s) => I(s) && x(s));\n return l;\n }, n = (o) => (a) => {\n const l = Ve[a.key] || a.key.toLowerCase();\n if (D.includes(l))\n return;\n const s = o.handlers || we;\n for (const i of Object.keys(s)) {\n const [d, ...p] = i.split(\".\");\n if (d === \"keydown\" && p.includes(l)) {\n const f = s[i], c = p.filter((h) => D.includes(h)), v = D.some((h) => {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n return a.getModifierState(E);\n });\n if (c.length > 0) {\n if (v) {\n for (const h of D)\n if (p.includes(h)) {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n a.getModifierState(E) && f(a);\n }\n }\n } else\n v || f(a);\n }\n }\n };\n xe(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.addEventListener(\"keydown\", n(o));\n }\n }), Ie(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.removeEventListener(\"keydown\", n(o));\n }\n });\n}\nconst We = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], Be = { key: 1 }, Qe = /* @__PURE__ */ C({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 },\n clickHandler: {}\n },\n setup(t) {\n var E;\n const e = t, n = O(e.tableid), o = k(null);\n let a = k(!1);\n const l = R(() => {\n const u = n.cellData(e.colIndex, e.rowIndex);\n if (n.columns[e.colIndex].format) {\n const g = n.columns[e.colIndex].format;\n return typeof g == \"function\" ? g(u) : typeof g == \"string\" ? Function(`\"use strict\";return (${g})`)()(u) : u;\n } else\n return u;\n }), s = (u) => {\n if (e.clickHandler) {\n e.clickHandler(u);\n return;\n }\n if (n.columns[e.colIndex].mask, n.columns[e.colIndex].modalComponent) {\n const g = 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 = g.top + g.height, n.modal.left = g.left, n.modal.width = d.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 u = {\n ...we,\n \"keydown.f2\": s,\n \"keydown.alt.up\": s,\n \"keydown.alt.down\": s,\n \"keydown.alt.left\": s,\n \"keydown.alt.right\": s\n };\n typeof e.addNavigation == \"object\" && (u = {\n ...u,\n ...e.addNavigation\n }), q([\n {\n selectors: o,\n handlers: u\n }\n ]);\n }\n const i = R(() => n.columns[e.colIndex].align || \"center\"), d = R(() => n.columns[e.colIndex].width || \"40ch\");\n let p = \"\";\n const f = () => {\n o.value && (p = o.value.innerText);\n }, c = () => {\n o.value && o.value.innerHTML !== p && (p = o.value.innerText, o.value.dispatchEvent(new Event(\"change\")), a.value = !0, n.columns[e.colIndex].format || n.setCellData(e.rowIndex, e.colIndex, p));\n }, v = (u, g) => g && u === 0 && g > 0 ? `${g}ch` : \"inherit\", h = {\n textAlign: i.value,\n width: d.value,\n backgroundColor: a.value ? \"var(--cell-modified-color)\" : \"inherit\",\n fontWeight: a.value ? \"bold\" : \"inherit\",\n paddingLeft: v(e.colIndex, (E = n.display[e.rowIndex]) == null ? void 0 : E.indent)\n };\n return (u, g) => (m(), b(\"td\", {\n ref_key: \"cell\",\n ref: o,\n \"data-colindex\": u.colIndex,\n \"data-rowindex\": u.rowIndex,\n \"data-editable\": r(n).columns[u.colIndex].edit,\n contenteditable: r(n).columns[u.colIndex].edit,\n tabindex: u.tabIndex,\n spellcheck: !1,\n style: h,\n onFocus: f,\n onPaste: c,\n onBlur: c,\n onInput: c,\n onClick: s,\n onMousedown: s\n }, [\n r(n).columns[u.colIndex].cellComponent ? (m(), P(ie(r(n).columns[u.colIndex].cellComponent), V({\n key: 0,\n value: l.value\n }, r(n).columns[u.colIndex].cellComponentProps), null, 16, [\"value\"])) : (m(), b(\"span\", Be, T(l.value), 1))\n ], 40, We));\n }\n}), _ = (t, e) => {\n const n = t.__vccOpts || t;\n for (const [o, a] of e)\n n[o] = a;\n return n;\n}, he = /* @__PURE__ */ _(Qe, [[\"__scopeId\", \"data-v-07dfe445\"]]), Fe = [\"tabindex\"], qe = [\"tabindex\"], ze = [\"colspan\"], Ge = /* @__PURE__ */ C({\n __name: \"AExpansionRow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n const e = t, n = O(e.tableid), o = k(null), a = k(null), l = () => n.display[e.rowIndex].expanded ? \"▼\" : \"►\";\n if (e.addNavigation !== void 0) {\n const s = Object.assign({}, e.addNavigation);\n s[\"keydown.control.g\"] = (i) => {\n i.stopPropagation(), i.preventDefault(), n.toggleRowExpand(e.rowIndex);\n }, q([\n {\n selectors: o,\n handlers: s\n }\n ]);\n }\n return (s, i) => (m(), b(L, null, [\n A(\"tr\", V(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n A(\"td\", {\n tabIndex: -1,\n onClick: i[0] || (i[0] = (d) => r(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, T(l()), 1),\n y(s.$slots, \"row\", {}, void 0, !0)\n ], 16, Fe),\n r(n).display[e.rowIndex].expanded ? (m(), b(\"tr\", {\n key: 0,\n ref_key: \"rowExpanded\",\n ref: a,\n tabindex: s.tabIndex,\n class: \"expanded-row\"\n }, [\n A(\"td\", {\n tabIndex: -1,\n colspan: r(n).columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n y(s.$slots, \"content\", {}, void 0, !0)\n ], 8, ze)\n ], 8, qe)) : M(\"\", !0)\n ], 64));\n }\n}), Je = /* @__PURE__ */ _(Ge, [[\"__scopeId\", \"data-v-b2e2ed2d\"]]), Xe = [\"tabindex\"], Ye = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, Ze = /* @__PURE__ */ C({\n __name: \"ARow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n de((d) => ({\n \"5b18ee03\": r(a)\n }));\n const e = t, n = O(e.tableid), o = k(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, i = (d) => {\n n.toggleRowExpand(d);\n };\n return e.addNavigation && q([\n {\n selectors: o,\n handlers: e.addNavigation\n }\n ]), (d, p) => ce((m(), b(\"tr\", {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: d.tabIndex,\n class: \"table-row\"\n }, [\n r(n).config.view === \"list\" ? (m(), b(\"td\", Ye, T(d.rowIndex + 1), 1)) : r(n).config.view === \"tree\" ? (m(), b(\"td\", {\n key: 1,\n tabIndex: -1,\n class: \"tree-index\",\n onClick: p[0] || (p[0] = (f) => i(d.rowIndex))\n }, T(l()), 1)) : y(d.$slots, \"indexCell\", { key: 2 }, void 0, !0),\n y(d.$slots, \"default\", {}, void 0, !0)\n ], 8, Xe)), [\n [ue, s()]\n ]);\n }\n}), be = /* @__PURE__ */ _(Ze, [[\"__scopeId\", \"data-v-4c71a067\"]]);\nlet S;\nconst Ke = new Uint8Array(16);\nfunction et() {\n if (!S && (S = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !S))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return S(Ke);\n}\nconst w = [];\nfor (let t = 0; t < 256; ++t)\n w.push((t + 256).toString(16).slice(1));\nfunction tt(t, e = 0) {\n return w[t[e + 0]] + w[t[e + 1]] + w[t[e + 2]] + w[t[e + 3]] + \"-\" + w[t[e + 4]] + w[t[e + 5]] + \"-\" + w[t[e + 6]] + w[t[e + 7]] + \"-\" + w[t[e + 8]] + w[t[e + 9]] + \"-\" + w[t[e + 10]] + w[t[e + 11]] + w[t[e + 12]] + w[t[e + 13]] + w[t[e + 14]] + w[t[e + 15]];\n}\nconst nt = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), se = {\n randomUUID: nt\n};\nfunction ge(t, e, n) {\n if (se.randomUUID && !e && !t)\n return se.randomUUID();\n t = t || {};\n const o = t.random || (t.rng || et)();\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 tt(o);\n}\nclass ot {\n constructor(e, n, o, a, l, s) {\n this.id = e || ge(), this.rows = o, this.columns = $(n), this.config = $(a), this.table = l || $(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = $({ 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 $(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return R(() => 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 lt = { key: 0 }, at = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, rt = {\n key: 0,\n id: \"header-index\"\n}, st = /* @__PURE__ */ C({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n config: {},\n tableid: {}\n },\n setup(t) {\n de((l) => ({\n \"12d06943\": r(o)\n }));\n const n = O(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 ? (m(), b(\"thead\", lt, [\n A(\"tr\", at, [\n r(n).zeroColumn ? (m(), b(\"th\", rt)) : M(\"\", !0),\n (m(!0), b(L, null, N(l.columns, (i, d) => (m(), b(\"th\", {\n key: d,\n tabindex: \"-1\",\n style: H(a(i))\n }, [\n y(l.$slots, \"default\", {}, () => [\n Ce(T(i.label || String.fromCharCode(d + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : M(\"\", !0);\n }\n}), ve = /* @__PURE__ */ _(st, [[\"__scopeId\", \"data-v-16e66636\"]]), it = /* @__PURE__ */ C({\n __name: \"ATableModal\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {}\n },\n setup(t) {\n O(t.tableid);\n const n = (o) => {\n o.stopPropagation();\n };\n return (o, a) => (m(), b(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n onClick: n,\n onInput: n\n }, [\n y(o.$slots, \"default\", {}, void 0, !0)\n ], 544));\n }\n}), ye = /* @__PURE__ */ _(it, [[\"__scopeId\", \"data-v-10a48b2a\"]]), dt = /* @__PURE__ */ C({\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 ot(n.id, n.columns, a, n.config);\n _e(l.id, l), j(\n () => l.rows,\n (i, d) => {\n o(\"update:modelValue\", i);\n },\n { deep: !0 }\n );\n const s = (i) => {\n var d;\n (d = l.modal.parent) != null && d.contains(i.target) || l.modal.visible && (l.modal.visible = !1);\n };\n return window.addEventListener(\"click\", s), window.addEventListener(\"keydown\", (i) => {\n if (i.key === \"Escape\" && l.modal.visible) {\n l.modal.visible = !1;\n const d = l.modal.parent;\n d && $e().then(() => {\n const p = d.dataset.rowindex, f = d.dataset.colindex, c = document.querySelectorAll(`[data-rowindex='${p}'][data-colindex='${f}']`);\n c && c[0].focus();\n });\n }\n }), (i, d) => (m(), b(\"table\", {\n class: \"atable\",\n style: H({ width: r(l).config.fullWidth ? \"100%\" : \"auto\" })\n }, [\n y(i.$slots, \"header\", { data: r(l) }, () => [\n z(ve, {\n columns: r(l).columns,\n config: r(l).config,\n tableid: r(l).id\n }, null, 8, [\"columns\", \"config\", \"tableid\"])\n ], !0),\n A(\"tbody\", null, [\n y(i.$slots, \"body\", { data: r(l) }, () => [\n (m(!0), b(L, null, N(r(l).rows, (p, f) => (m(), P(be, {\n key: p.id || r(ge)(),\n row: p,\n rowIndex: f,\n tableid: r(l).id\n }, {\n default: G(() => [\n (m(!0), b(L, null, N(r(l).columns, (c, v) => (m(), P(he, {\n key: `${v}:${f}`,\n tableid: r(l).id,\n col: c,\n spellcheck: \"false\",\n rowIndex: f,\n colIndex: v + (r(l).zeroColumn ? 0 : -1),\n component: c.cellComponent,\n style: H({\n textAlign: (c == null ? void 0 : c.align) || \"center\",\n minWidth: (c == null ? void 0 : c.width) || \"40ch\",\n width: r(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 y(i.$slots, \"footer\", { data: r(l) }, void 0, !0),\n y(i.$slots, \"modal\", { data: r(l) }, () => [\n ce(z(ye, {\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id,\n style: H({\n left: r(l).modal.left + \"px\",\n top: r(l).modal.top + \"px\",\n maxWidth: r(l).modal.width + \"px\"\n })\n }, {\n default: G(() => [\n (m(), P(ie(r(l).modal.component), V({\n key: `${r(l).modal.rowIndex}:${r(l).modal.colIndex}`,\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id\n }, r(l).modal.componentProps), null, 16, [\"colIndex\", \"rowIndex\", \"tableid\"]))\n ]),\n _: 1\n }, 8, [\"colIndex\", \"rowIndex\", \"tableid\", \"style\"]), [\n [ue, r(l).modal.visible]\n ])\n ], !0)\n ], 4));\n }\n}), ct = /* @__PURE__ */ _(dt, [[\"__scopeId\", \"data-v-819abcc5\"]]);\nfunction ft(t) {\n t.component(\"ACell\", he), t.component(\"AExpansionRow\", Je), t.component(\"ARow\", be), t.component(\"ATable\", ct), t.component(\"ATableHeader\", ve), t.component(\"ATableModal\", ye);\n}\nexport {\n he as ACell,\n Je as AExpansionRow,\n be as ARow,\n ct as ATable,\n ve as ATableHeader,\n ye as ATableModal,\n ot as TableDataStore,\n ft as install\n};\n//# sourceMappingURL=atable.js.map\n","\n\n\n","\n\n\n\n\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","M","o","n","s","W","ie","Qe","N","z","G","Ne","K","ze","Ge","J","Ke","Je","D","gt","y","l","r","p","a","S","f","v","V","x","H","Ie","Me","g","pe","le","At","It","t","Mt","Tt","_t","ae","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","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","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","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","i","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","object","stringify","reducers","stringified","indexes","custom","flatten","index3","stringify_primitive","source","flags","m","d","u","h","_a2","pinia","newSchema","fieldValue","Ae","Te","fe","Oe","De","Ee","ke","U","me","Se","c","j","X","Y","Re","Z","Pe","He","Le","ee","I","te","Ue","B","ne","je","oe","Q","F","Ve","we","q","E","xe","We","Be","C","O","R","P","T","_","he","Xe","Ye","Ze","de","ce","ue","be","et","w","tt","nt","se","ge","ot","$","lt","at","rt","st","A","L","Ce","ve","it","ye","dt","_e","$e","ct","config","breadcrumbs","breadcrumbsVisibile","searchVisibile","searchText","searchinput","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","ActionSet","CommandPalette","Doctype","Records","SheetNav"],"mappings":"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"} \ No newline at end of file +{"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":["\n\n\n\n\n","\n\n\n","import { defineComponent as D, computed as S, openBlock as f, createElementBlock as v, createElementVNode as i, withDirectives as C, vModelCheckbox as ge, toDisplayString as k, vShow as $, resolveComponent as ye, createBlock as H, withCtx as be, onMounted as se, onBeforeUnmount as we, ref as y, watch as F, unref as O, getCurrentScope as Ce, onScopeDispose as ke, inject as ae, nextTick as De, Fragment as V, renderList as x, normalizeStyle as Ee, withModifiers as Ae, normalizeClass as B, createCommentVNode as re, withKeys as P, vModelText as R, resolveDynamicComponent as Ie, mergeProps as Me, createTextVNode as Te, renderSlot as _e, createVNode as Se, resolveDirective as Oe } from \"vue\";\nconst $e = { id: \"checkbox-container\" }, Le = [\"id\", \"readonly\", \"required\"], Ve = { id: \"custom-checkbox\" }, xe = [\"for\"], Be = [\"innerHTML\"], Pe = /* @__PURE__ */ D({\n __name: \"ACheckbox\",\n props: {\n label: {},\n value: {},\n required: { type: Boolean },\n readOnly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:value\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get() {\n return o.value;\n },\n set(l) {\n n(\"update:value\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n i(\"label\", $e, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"checkbox\",\n id: l.uuid,\n class: \"checkbox\",\n readonly: l.readOnly,\n required: l.required\n }, null, 8, Le), [\n [ge, s.value]\n ]),\n i(\"span\", Ve, k(s.value), 1)\n ]),\n i(\"label\", {\n for: l.uuid,\n id: \"checkbox-label\"\n }, k(l.label), 9, xe),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Be), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), M = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [n, s] of t)\n o[n] = s;\n return o;\n}, qe = /* @__PURE__ */ M(Pe, [[\"__scopeId\", \"data-v-743cd4db\"]]), He = /* @__PURE__ */ i(\"div\", null, [\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" })\n], -1), Fe = /* @__PURE__ */ D({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, o) => {\n const n = ye(\"ATableModal\");\n return f(), H(n, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: be(() => [\n He\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n});\nvar W;\nconst ie = typeof window < \"u\", Re = (e) => typeof e == \"string\", Ue = () => {\n};\nie && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction ue(e) {\n return typeof e == \"function\" ? e() : O(e);\n}\nfunction Qe(e) {\n return e;\n}\nfunction Ye(e) {\n return Ce() ? (ke(e), !0) : !1;\n}\nfunction q(e) {\n var t;\n const o = ue(e);\n return (t = o == null ? void 0 : o.$el) != null ? t : o;\n}\nconst ce = ie ? window : void 0;\nfunction je(...e) {\n let t, o, n, s;\n if (Re(e[0]) || Array.isArray(e[0]) ? ([o, n, s] = e, t = ce) : [t, o, n, s] = e, !t)\n return Ue;\n Array.isArray(o) || (o = [o]), Array.isArray(n) || (n = [n]);\n const l = [], a = () => {\n l.forEach((c) => c()), l.length = 0;\n }, r = (c, g, b, m) => (c.addEventListener(g, b, m), () => c.removeEventListener(g, b, m)), p = F(() => [q(t), ue(s)], ([c, g]) => {\n a(), c && l.push(...o.flatMap((b) => n.map((m) => r(c, b, m, g))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n p(), a();\n };\n return Ye(u), u;\n}\nconst N = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, z = \"__vueuse_ssr_handlers__\";\nN[z] = N[z] || {};\nfunction We(e, { window: t = ce, scrollTarget: o } = {}) {\n const n = y(!1), s = () => {\n if (!t)\n return;\n const l = t.document, a = q(e);\n if (!a)\n n.value = !1;\n else {\n const r = a.getBoundingClientRect();\n n.value = r.top <= (t.innerHeight || l.documentElement.clientHeight) && r.left <= (t.innerWidth || l.documentElement.clientWidth) && r.bottom >= 0 && r.right >= 0;\n }\n };\n return F(() => q(e), () => s(), { immediate: !0, flush: \"post\" }), t && je(o || t, \"scroll\", s, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar G;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(G || (G = {}));\nvar Ne = Object.defineProperty, K = Object.getOwnPropertySymbols, ze = Object.prototype.hasOwnProperty, Ge = Object.prototype.propertyIsEnumerable, J = (e, t, o) => t in e ? Ne(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Ke = (e, t) => {\n for (var o in t || (t = {}))\n ze.call(t, o) && J(e, o, t[o]);\n if (K)\n for (var o of K(t))\n Ge.call(t, o) && J(e, o, t[o]);\n return e;\n};\nconst Je = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nKe({\n linear: Qe\n}, Je);\nconst E = (e) => {\n let t = We(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, A = (e) => e.tabIndex >= 0, X = (e) => {\n const t = e.target;\n return U(t);\n}, U = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? U(o) : o;\n}, Xe = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.firstElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.firstElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? Q(n) : n;\n}, Z = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? Q(o) : o;\n}, Ze = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.lastElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.lastElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? U(n) : n;\n}, ee = (e) => {\n const t = e.target;\n return Y(t);\n}, Y = (e) => {\n var t;\n let o;\n if (e.previousElementSibling)\n o = e.previousElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n o = n == null ? void 0 : n.lastElementChild;\n }\n return o && (!A(o) || !E(o)) ? Y(o) : o;\n}, te = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let o;\n if (e.nextElementSibling)\n o = e.nextElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n o = n == null ? void 0 : n.firstElementChild;\n }\n return o && (!A(o) || !E(o)) ? j(o) : o;\n}, ne = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!A(t) || !E(t)) ? j(t) : t;\n}, oe = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!A(t) || !E(t)) ? Y(t) : t;\n}, L = [\"alt\", \"control\", \"shift\", \"meta\"], et = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, de = {\n \"keydown.up\": (e) => {\n const t = X(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = ee(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Xe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = oe(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 = Z(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 = X(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction tt(e) {\n const t = (n) => {\n let s = null;\n n.parent && (typeof n.parent == \"string\" ? s = document.querySelector(n.parent) : n.parent instanceof Element ? s = n.parent : s = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = s ? Array.from(s.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const a of n.selectors.value)\n a instanceof Element ? l.push(a) : l.push(a.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(s.children).filter((a) => A(a) && E(a));\n return l;\n }, o = (n) => (s) => {\n const l = et[s.key] || s.key.toLowerCase();\n if (L.includes(l))\n return;\n const a = n.handlers || de;\n for (const r of Object.keys(a)) {\n const [p, ...u] = r.split(\".\");\n if (p === \"keydown\" && u.includes(l)) {\n const c = a[r], g = u.filter((m) => L.includes(m)), b = L.some((m) => {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n return s.getModifierState(_);\n });\n if (g.length > 0) {\n if (b) {\n for (const m of L)\n if (u.includes(m)) {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n s.getModifierState(_) && c(s);\n }\n }\n } else\n b || c(s);\n }\n }\n };\n se(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.addEventListener(\"keydown\", o(n));\n }\n }), we(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.removeEventListener(\"keydown\", o(n));\n }\n });\n}\nconst nt = [\"event\", \"colIndex\", \"rowIndex\", \"tableid\"], ot = { colspan: \"5\" }, lt = [\"onClick\"], st = 6, I = 7, at = /* @__PURE__ */ D({\n __name: \"ADate\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n event: {},\n indent: {},\n readonly: { type: Boolean }\n },\n setup(e) {\n const t = e, o = ae(t.tableid), n = /* @__PURE__ */ new Date(), s = y(), l = y(), a = y(), r = y([]);\n se(async () => {\n let d = o.cellData(t.colIndex, t.rowIndex);\n d ? (d instanceof Date || (d = new Date(d)), s.value = d, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = n.getMonth(), a.value = n.getFullYear()), p(), await De();\n const T = document.getElementsByClassName(\"selecteddate\");\n if (T.length > 0)\n T[0].focus();\n else {\n const h = document.getElementsByClassName(\"todaysdate\");\n h.length > 0 && h[0].focus();\n }\n }), F([l, a], () => {\n p();\n });\n const p = () => {\n r.value = [];\n const d = new Date(a.value, l.value, 1), T = d.getDay(), h = d.setDate(d.getDate() - T);\n for (let w of Array(43).keys())\n r.value.push(h + w * 864e5);\n }, u = () => {\n a.value -= 1;\n }, c = () => {\n a.value += 1;\n }, g = () => {\n l.value == 0 ? (l.value = 11, u()) : l.value -= 1;\n }, b = () => {\n l.value == 11 ? (l.value = 0, c()) : l.value += 1;\n }, m = (d) => {\n if (l.value === n.getMonth())\n return n.toDateString() === new Date(d).toDateString();\n }, _ = (d) => new Date(d).toDateString() === new Date(s.value).toDateString(), fe = (d, T) => {\n s.value = new Date(r.value[T]), me();\n }, me = () => {\n o.setCellData(t.rowIndex, t.colIndex, s.value.getTime());\n }, ve = S(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return tt([\n {\n parent: \"table.adate\",\n selectors: \"td\",\n handlers: {\n ...de,\n \"keydown.pageup\": g,\n \"keydown.shift.pageup\": u,\n \"keydown.pagedown\": b,\n \"keydown.shift.pagedown\": c\n }\n }\n ]), (d, T) => d.readonly ? re(\"\", !0) : (f(), v(\"div\", {\n key: 0,\n event: d.event,\n colIndex: d.colIndex,\n rowIndex: d.rowIndex,\n tableid: d.tableid,\n class: \"adate\",\n tabindex: \"0\",\n ref: \"adatepicker\"\n }, [\n i(\"table\", null, [\n i(\"tr\", null, [\n i(\"td\", {\n onClick: g,\n tabindex: -1\n }, \"<\"),\n i(\"th\", ot, k(ve.value), 1),\n i(\"td\", {\n onClick: b,\n tabindex: -1\n }, \">\")\n ]),\n (f(), v(V, null, x(st, (h) => i(\"tr\", { key: h }, [\n (f(), v(V, null, x(I, (w) => i(\"td\", {\n key: (h - 1) * I + w,\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n style: Ee({\n border: _(r.value[(h - 1) * I + w]) ? \"2px solid var(--focus-cell-outline)\" : \"none\",\n borderBottomColor: m(r.value[(h - 1) * I + w]) ? \"var(--focus-cell-outline)\" : \"none\"\n }),\n onClick: Ae((he) => fe(he, (h - 1) * I + w), [\"prevent\", \"stop\"]),\n class: B({\n todaysdate: m(r.value[(h - 1) * I + w]),\n selecteddate: _(r.value[(h - 1) * I + w])\n })\n }, k(new Date(r.value[(h - 1) * I + w]).getDate()), 15, lt)), 64))\n ])), 64))\n ])\n ], 8, nt));\n }\n}), rt = /* @__PURE__ */ M(at, [[\"__scopeId\", \"data-v-169f1184\"]]), it = D({\n name: \"ADropdown\",\n props: {\n modelValue: {\n type: String,\n required: !1,\n default: \"\"\n },\n label: {\n type: String,\n required: !0\n },\n value: String,\n items: {\n type: Array,\n required: !1,\n default: () => []\n },\n isAsync: {\n type: Boolean,\n required: !1,\n default: !1\n }\n },\n emits: [\"update:modelValue\", \"filterChanged\"],\n data() {\n return {\n results: [],\n search: this.modelValue,\n isLoading: !1,\n arrowCounter: 0,\n isOpen: !1\n };\n },\n watch: {\n items: function(e, t) {\n this.isLoading = !1, this.results = e;\n }\n },\n mounted() {\n document.addEventListener(\"click\", this.handleClickOutside), this.filterResults();\n },\n destroyed() {\n document.removeEventListener(\"click\", this.handleClickOutside);\n },\n methods: {\n setResult(e) {\n this.search = e, this.closeResults();\n },\n filterResults() {\n this.results = this.items.filter((e) => e.toLowerCase().indexOf(this.search.toLowerCase()) > -1);\n },\n onChange() {\n this.isOpen = !0, this.isAsync ? (this.isLoading = !0, this.$emit(\"filterChanged\", this.search)) : this.filterResults();\n },\n handleClickOutside(e) {\n this.$el.contains(e.target) || (this.closeResults(), this.arrowCounter = 0);\n },\n closeResults() {\n this.isOpen = !1, this.items.includes(this.search) || (this.search = \"\"), this.$emit(\"update:modelValue\", this.search);\n },\n onArrowDown() {\n this.arrowCounter < this.results.length && (this.arrowCounter = this.arrowCounter + 1);\n },\n onArrowUp() {\n this.arrowCounter > 0 && (this.arrowCounter = this.arrowCounter - 1);\n },\n onEnter() {\n this.search = this.results[this.arrowCounter], this.closeResults(), this.arrowCounter = 0;\n },\n openWithSearch() {\n this.search = \"\", this.onChange(), this.$refs.mopInput.focus();\n }\n }\n}), ut = { class: \"input-wrapper\" }, ct = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, dt = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, pt = [\"onClick\"];\nfunction ft(e, t, o, n, s, l) {\n return f(), v(\"div\", {\n class: B([\"autocomplete\", { isOpen: e.isOpen }])\n }, [\n i(\"div\", ut, [\n C(i(\"input\", {\n ref: \"mopInput\",\n type: \"text\",\n onInput: t[0] || (t[0] = (...a) => e.onChange && e.onChange(...a)),\n onFocus: t[1] || (t[1] = (...a) => e.onChange && e.onChange(...a)),\n \"onUpdate:modelValue\": t[2] || (t[2] = (a) => e.search = a),\n onKeydown: [\n t[3] || (t[3] = P((...a) => e.onArrowDown && e.onArrowDown(...a), [\"down\"])),\n t[4] || (t[4] = P((...a) => e.onArrowUp && e.onArrowUp(...a), [\"up\"])),\n t[5] || (t[5] = P((...a) => e.onEnter && e.onEnter(...a), [\"enter\"]))\n ]\n }, null, 544), [\n [R, e.search]\n ]),\n C(i(\"ul\", ct, [\n e.isLoading ? (f(), v(\"li\", dt, \"Loading results...\")) : (f(!0), v(V, { key: 1 }, x(e.results, (a, r) => (f(), v(\"li\", {\n key: r,\n onClick: (p) => e.setResult(a),\n class: B([\"autocomplete-result\", { \"is-active\": r === e.arrowCounter }])\n }, k(a), 11, pt))), 128))\n ], 512), [\n [$, e.isOpen]\n ]),\n i(\"label\", null, k(e.label), 1)\n ])\n ], 2);\n}\nconst mt = /* @__PURE__ */ M(it, [[\"render\", ft]]), vt = /* @__PURE__ */ D({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, o) => (f(), v(\"button\", {\n class: B([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), ht = /* @__PURE__ */ M(vt, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), gt = /* @__PURE__ */ D({\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 o = e, n = t, s = y(o.data || {}), l = (r) => {\n let p = {};\n for (const [u, c] of Object.entries(r))\n [\"component\", \"fieldtype\"].includes(u) || (p[u] = c), u === \"rows\" && c && c.length === 0 && (p.rows = s.value[r.fieldname]);\n return p;\n }, a = S({\n get: () => o.modelValue.map((r, p) => S({\n get() {\n return r.value;\n },\n set: (u) => {\n o.modelValue[p].value = u, n(\"update:modelValue\", o.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (r, p) => (f(), v(\"form\", null, [\n (f(!0), v(V, null, x(r.modelValue, (u, c) => (f(), H(Ie(u.component), Me({\n key: c,\n schema: u,\n modelValue: a.value[c].value,\n \"onUpdate:modelValue\": (g) => a.value[c].value = g,\n data: s.value[u.fieldname],\n readonly: r.readonly\n }, l(u)), null, 16, [\"schema\", \"modelValue\", \"onUpdate:modelValue\", \"data\", \"readonly\"]))), 128))\n ]));\n }\n}), pe = /* @__PURE__ */ M(gt, [[\"__scopeId\", \"data-v-82492bb4\"]]), yt = /* @__PURE__ */ D({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, o = y(t.data || []);\n let n = y(!1), s = y(t.collapsible);\n const l = y(t.schema);\n function a(r) {\n r.preventDefault(), s.value && (n.value = !n.value);\n }\n return (r, p) => (f(), v(\"fieldset\", null, [\n i(\"legend\", {\n onClick: a,\n onSubmit: a\n }, [\n Te(k(r.label) + \" \", 1),\n O(s) ? (f(), H(ht, {\n key: 0,\n collapsed: O(n)\n }, null, 8, [\"collapsed\"])) : re(\"\", !0)\n ], 32),\n _e(r.$slots, \"default\", { collapsed: O(n) }, () => [\n C(Se(pe, {\n modelValue: l.value,\n \"onUpdate:modelValue\": p[0] || (p[0] = (u) => l.value = u),\n data: o.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [$, !O(n)]\n ])\n ], !0)\n ]));\n }\n}), bt = /* @__PURE__ */ M(yt, [[\"__scopeId\", \"data-v-cad9b578\"]]), wt = [\"id\", \"disabled\", \"required\"], Ct = [\"for\"], kt = [\"innerHTML\"], Dt = /* @__PURE__ */ D({\n __name: \"ANumericInput\",\n props: {\n label: {},\n modelValue: {},\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get: () => o.modelValue,\n set: (l) => {\n n(\"update:modelValue\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"number\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required\n }, null, 8, wt), [\n [R, s.value]\n ]),\n i(\"label\", { for: l.uuid }, k(l.label), 9, Ct),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, kt), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), Et = /* @__PURE__ */ M(Dt, [[\"__scopeId\", \"data-v-be33e6c4\"]]), le = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction At(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction It(e) {\n var o;\n let t = e.value;\n if (t) {\n const n = At(t);\n if (n) {\n const s = e.instance.locale;\n t = n(s);\n }\n } else {\n const s = (o = e.instance.schema.fieldtype) == null ? void 0 : o.toLowerCase();\n s && le[s] && (t = le[s]);\n }\n return t;\n}\nfunction Mt(e, t) {\n t || (t = \"#\");\n let o = e;\n const n = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const s of n)\n o = o.replaceAll(s, \"\");\n return o;\n}\nfunction Tt(e, t, o) {\n o || (o = \"#\");\n let n = t;\n for (const s of e) {\n const l = n.indexOf(o);\n if (l !== -1) {\n const a = n.substring(0, l), r = n.substring(l + 1);\n n = a + s + r;\n }\n }\n return n.slice(0, t.length);\n}\nfunction _t(e, t) {\n const o = It(t);\n if (!o)\n return;\n const n = \"#\", s = e.value, l = Mt(s, n);\n if (l) {\n const a = Tt(l, o, n);\n t.instance.maskFilled && (t.instance.maskFilled = !a.includes(n)), e.value = a;\n } else\n e.value = o;\n}\nconst St = D({\n name: \"ATextInput\",\n props: {\n schema: {\n type: Object,\n required: !0\n },\n label: {\n type: String,\n required: !0\n },\n modelValue: {\n type: null\n },\n mask: {\n type: String\n },\n required: {\n type: Boolean\n },\n readonly: {\n type: Boolean\n },\n uuid: {\n type: String\n },\n validation: {\n type: Object,\n default: () => ({ errorMessage: \" \" })\n }\n },\n setup(e, t) {\n const o = y(!1), n = ae(\"locale\", \"\");\n return { inputText: S({\n get() {\n return e.modelValue;\n },\n set(l) {\n t.emit(\"update:modelValue\", l);\n }\n }), locale: n, maskFilled: o };\n },\n directives: {\n mask: _t\n }\n}), Ot = [\"id\", \"disabled\", \"maxlength\", \"required\"], $t = [\"for\"], Lt = [\"innerHTML\"];\nfunction Vt(e, t, o, n, s, l) {\n const a = Oe(\"mask\");\n return f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": t[0] || (t[0] = (r) => e.inputText = r),\n id: e.uuid,\n disabled: e.readonly,\n maxlength: e.mask ? e.maskFilled && e.mask.length : void 0,\n required: e.required\n }, null, 8, Ot), [\n [R, e.inputText],\n [a, e.mask]\n ]),\n i(\"label\", { for: e.uuid }, k(e.label), 9, $t),\n C(i(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Lt), [\n [$, e.validation.errorMessage]\n ])\n ]);\n}\nconst xt = /* @__PURE__ */ M(St, [[\"render\", Vt], [\"__scopeId\", \"data-v-76dba9b8\"]]);\nfunction Pt(e) {\n e.component(\"ACheckbox\", qe), e.component(\"ACombobox\", Fe), e.component(\"ADate\", rt), e.component(\"ADropdown\", mt), e.component(\"AFieldset\", bt), e.component(\"AForm\", pe), e.component(\"ANumericInput\", Et), e.component(\"ATextInput\", xt);\n}\nexport {\n qe as ACheckbox,\n Fe as AComboBox,\n rt as ADate,\n mt as ADropdown,\n bt as AFieldset,\n pe as AForm,\n Et as ANumericInput,\n xt as ATextInput,\n Pt 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} 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}\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}\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 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 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(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\n \n \n`);\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 <router-view>\",\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","\n\n\n","import { onMounted as xe, onBeforeUnmount as Ie, ref as k, watch as j, unref as r, getCurrentScope as Ee, onScopeDispose as ke, defineComponent as C, inject as O, computed as R, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as W, toDisplayString as T, Fragment as L, createElementVNode as A, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as $, renderList as N, normalizeStyle as H, createTextVNode as Ce, provide as _e, nextTick as $e, createVNode as z, withCtx as G } from \"vue\";\nvar J;\nconst pe = typeof window < \"u\", Ae = (t) => typeof t == \"string\", Te = () => {\n};\npe && (J = window == null ? void 0 : window.navigator) != null && J.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction fe(t) {\n return typeof t == \"function\" ? t() : r(t);\n}\nfunction Oe(t) {\n return t;\n}\nfunction De(t) {\n return Ee() ? (ke(t), !0) : !1;\n}\nfunction U(t) {\n var e;\n const n = fe(t);\n return (e = n == null ? void 0 : n.$el) != null ? e : n;\n}\nconst me = pe ? window : void 0;\nfunction Se(...t) {\n let e, n, o, a;\n if (Ae(t[0]) || Array.isArray(t[0]) ? ([n, o, a] = t, e = me) : [e, n, o, a] = t, !e)\n return Te;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], s = () => {\n l.forEach((f) => f()), l.length = 0;\n }, i = (f, c, v, h) => (f.addEventListener(c, v, h), () => f.removeEventListener(c, v, h)), d = j(() => [U(e), fe(a)], ([f, c]) => {\n s(), f && l.push(...n.flatMap((v) => o.map((h) => i(f, v, h, c))));\n }, { immediate: !0, flush: \"post\" }), p = () => {\n d(), s();\n };\n return De(p), p;\n}\nconst X = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Y = \"__vueuse_ssr_handlers__\";\nX[Y] = X[Y] || {};\nfunction Re(t, { window: e = me, scrollTarget: n } = {}) {\n const o = k(!1), a = () => {\n if (!e)\n return;\n const l = e.document, s = U(t);\n if (!s)\n o.value = !1;\n else {\n const i = s.getBoundingClientRect();\n o.value = i.top <= (e.innerHeight || l.documentElement.clientHeight) && i.left <= (e.innerWidth || l.documentElement.clientWidth) && i.bottom >= 0 && i.right >= 0;\n }\n };\n return j(() => U(t), () => a(), { immediate: !0, flush: \"post\" }), e && Se(n || e, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), o;\n}\nvar Z;\n(function(t) {\n t.UP = \"UP\", t.RIGHT = \"RIGHT\", t.DOWN = \"DOWN\", t.LEFT = \"LEFT\", t.NONE = \"NONE\";\n})(Z || (Z = {}));\nvar Pe = Object.defineProperty, K = Object.getOwnPropertySymbols, He = Object.prototype.hasOwnProperty, Le = Object.prototype.propertyIsEnumerable, ee = (t, e, n) => e in t ? Pe(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, Me = (t, e) => {\n for (var n in e || (e = {}))\n He.call(e, n) && ee(t, n, e[n]);\n if (K)\n for (var n of K(e))\n Le.call(e, n) && ee(t, n, e[n]);\n return t;\n};\nconst Ne = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nMe({\n linear: Oe\n}, Ne);\nconst x = (t) => {\n let e = Re(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, I = (t) => t.tabIndex >= 0, te = (t) => {\n const e = t.target;\n return V(e);\n}, V = (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 && (!I(n) || !x(n)) ? V(n) : n;\n}, Ue = (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 && (!I(o) || !x(o)) ? B(o) : o;\n}, ne = (t) => {\n const e = t.target;\n return B(e);\n}, B = (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 && (!I(n) || !x(n)) ? B(n) : n;\n}, je = (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 && (!I(o) || !x(o)) ? V(o) : o;\n}, oe = (t) => {\n const e = t.target;\n return Q(e);\n}, Q = (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 && (!I(n) || !x(n)) ? Q(n) : n;\n}, le = (t) => {\n const e = t.target;\n return F(e);\n}, F = (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 && (!I(n) || !x(n)) ? F(n) : n;\n}, ae = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!I(e) || !x(e)) ? F(e) : e;\n}, re = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!I(e) || !x(e)) ? Q(e) : e;\n}, D = [\"alt\", \"control\", \"shift\", \"meta\"], We = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, we = {\n \"keydown.up\": (t) => {\n const e = te(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.down\": (t) => {\n const e = ne(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.left\": (t) => {\n const e = oe(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.right\": (t) => {\n const e = le(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.control.up\": (t) => {\n const e = Ue(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.down\": (t) => {\n const e = je(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.left\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.right\": (t) => {\n const e = re(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.end\": (t) => {\n const e = re(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 = ne(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 = te(t);\n e && e.focus();\n }\n },\n \"keydown.home\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.tab\": (t) => {\n const e = le(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.shift.tab\": (t) => {\n const e = oe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n }\n};\nfunction q(t) {\n const e = (o) => {\n let a = null;\n o.parent && (typeof o.parent == \"string\" ? a = document.querySelector(o.parent) : o.parent instanceof Element ? a = o.parent : a = o.parent.value);\n let l = [];\n if (o.selectors)\n if (typeof o.selectors == \"string\")\n l = a ? Array.from(a.querySelectorAll(o.selectors)) : Array.from(document.querySelectorAll(o.selectors));\n else if (o.selectors instanceof Element)\n l.push(o.selectors);\n else if (Array.isArray(o.selectors.value))\n for (const s of o.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(o.selectors.value);\n else\n l = Array.from(a.children).filter((s) => I(s) && x(s));\n return l;\n }, n = (o) => (a) => {\n const l = We[a.key] || a.key.toLowerCase();\n if (D.includes(l))\n return;\n const s = o.handlers || we;\n for (const i of Object.keys(s)) {\n const [d, ...p] = i.split(\".\");\n if (d === \"keydown\" && p.includes(l)) {\n const f = s[i], c = p.filter((h) => D.includes(h)), v = D.some((h) => {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n return a.getModifierState(E);\n });\n if (c.length > 0) {\n if (v) {\n for (const h of D)\n if (p.includes(h)) {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n a.getModifierState(E) && f(a);\n }\n }\n } else\n v || f(a);\n }\n }\n };\n xe(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.addEventListener(\"keydown\", n(o));\n }\n }), Ie(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.removeEventListener(\"keydown\", n(o));\n }\n });\n}\nconst Ve = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], Be = { key: 1 }, Qe = /* @__PURE__ */ C({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 },\n clickHandler: {}\n },\n setup(t) {\n var E;\n const e = t, n = O(e.tableid), o = k(null);\n let a = k(!1);\n const l = R(() => {\n const u = n.cellData(e.colIndex, e.rowIndex);\n if (n.columns[e.colIndex].format) {\n const g = n.columns[e.colIndex].format;\n return typeof g == \"function\" ? g(u) : typeof g == \"string\" ? Function(`\"use strict\";return (${g})`)()(u) : u;\n } else\n return u;\n }), s = (u) => {\n if (e.clickHandler) {\n e.clickHandler(u);\n return;\n }\n if (n.columns[e.colIndex].mask, n.columns[e.colIndex].modalComponent) {\n const g = 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 = g.top + g.height, n.modal.left = g.left, n.modal.width = d.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 u = {\n ...we,\n \"keydown.f2\": s,\n \"keydown.alt.up\": s,\n \"keydown.alt.down\": s,\n \"keydown.alt.left\": s,\n \"keydown.alt.right\": s\n };\n typeof e.addNavigation == \"object\" && (u = {\n ...u,\n ...e.addNavigation\n }), q([\n {\n selectors: o,\n handlers: u\n }\n ]);\n }\n const i = R(() => n.columns[e.colIndex].align || \"center\"), d = R(() => n.columns[e.colIndex].width || \"40ch\");\n let p = \"\";\n const f = () => {\n o.value && (p = o.value.innerText);\n }, c = () => {\n o.value && o.value.innerHTML !== p && (p = o.value.innerText, o.value.dispatchEvent(new Event(\"change\")), a.value = !0, n.columns[e.colIndex].format || n.setCellData(e.rowIndex, e.colIndex, p));\n }, v = (u, g) => g && u === 0 && g > 0 ? `${g}ch` : \"inherit\", h = {\n textAlign: i.value,\n width: d.value,\n backgroundColor: a.value ? \"var(--cell-modified-color)\" : \"inherit\",\n fontWeight: a.value ? \"bold\" : \"inherit\",\n paddingLeft: v(e.colIndex, (E = n.display[e.rowIndex]) == null ? void 0 : E.indent)\n };\n return (u, g) => (m(), b(\"td\", {\n ref_key: \"cell\",\n ref: o,\n \"data-colindex\": u.colIndex,\n \"data-rowindex\": u.rowIndex,\n \"data-editable\": r(n).columns[u.colIndex].edit,\n contenteditable: r(n).columns[u.colIndex].edit,\n tabindex: u.tabIndex,\n spellcheck: !1,\n style: h,\n onFocus: f,\n onPaste: c,\n onBlur: c,\n onInput: c,\n onClick: s,\n onMousedown: s\n }, [\n r(n).columns[u.colIndex].cellComponent ? (m(), P(ie(r(n).columns[u.colIndex].cellComponent), W({\n key: 0,\n value: l.value\n }, r(n).columns[u.colIndex].cellComponentProps), null, 16, [\"value\"])) : (m(), b(\"span\", Be, T(l.value), 1))\n ], 40, Ve));\n }\n}), _ = (t, e) => {\n const n = t.__vccOpts || t;\n for (const [o, a] of e)\n n[o] = a;\n return n;\n}, he = /* @__PURE__ */ _(Qe, [[\"__scopeId\", \"data-v-07dfe445\"]]), Fe = [\"tabindex\"], qe = [\"tabindex\"], ze = [\"colspan\"], Ge = /* @__PURE__ */ C({\n __name: \"AExpansionRow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n const e = t, n = O(e.tableid), o = k(null), a = k(null), l = () => n.display[e.rowIndex].expanded ? \"▼\" : \"►\";\n if (e.addNavigation !== void 0) {\n const s = Object.assign({}, e.addNavigation);\n s[\"keydown.control.g\"] = (i) => {\n i.stopPropagation(), i.preventDefault(), n.toggleRowExpand(e.rowIndex);\n }, q([\n {\n selectors: o,\n handlers: s\n }\n ]);\n }\n return (s, i) => (m(), b(L, null, [\n A(\"tr\", W(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n A(\"td\", {\n tabIndex: -1,\n onClick: i[0] || (i[0] = (d) => r(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, T(l()), 1),\n y(s.$slots, \"row\", {}, void 0, !0)\n ], 16, Fe),\n r(n).display[e.rowIndex].expanded ? (m(), b(\"tr\", {\n key: 0,\n ref_key: \"rowExpanded\",\n ref: a,\n tabindex: s.tabIndex,\n class: \"expanded-row\"\n }, [\n A(\"td\", {\n tabIndex: -1,\n colspan: r(n).columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n y(s.$slots, \"content\", {}, void 0, !0)\n ], 8, ze)\n ], 8, qe)) : M(\"\", !0)\n ], 64));\n }\n}), Je = /* @__PURE__ */ _(Ge, [[\"__scopeId\", \"data-v-b2e2ed2d\"]]), Xe = [\"tabindex\"], Ye = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, Ze = /* @__PURE__ */ C({\n __name: \"ARow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n de((d) => ({\n \"5b18ee03\": r(a)\n }));\n const e = t, n = O(e.tableid), o = k(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, i = (d) => {\n n.toggleRowExpand(d);\n };\n return e.addNavigation && q([\n {\n selectors: o,\n handlers: e.addNavigation\n }\n ]), (d, p) => ce((m(), b(\"tr\", {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: d.tabIndex,\n class: \"table-row\"\n }, [\n r(n).config.view === \"list\" ? (m(), b(\"td\", Ye, T(d.rowIndex + 1), 1)) : r(n).config.view === \"tree\" ? (m(), b(\"td\", {\n key: 1,\n tabIndex: -1,\n class: \"tree-index\",\n onClick: p[0] || (p[0] = (f) => i(d.rowIndex))\n }, T(l()), 1)) : y(d.$slots, \"indexCell\", { key: 2 }, void 0, !0),\n y(d.$slots, \"default\", {}, void 0, !0)\n ], 8, Xe)), [\n [ue, s()]\n ]);\n }\n}), be = /* @__PURE__ */ _(Ze, [[\"__scopeId\", \"data-v-4c71a067\"]]);\nlet S;\nconst Ke = new Uint8Array(16);\nfunction et() {\n if (!S && (S = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !S))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return S(Ke);\n}\nconst w = [];\nfor (let t = 0; t < 256; ++t)\n w.push((t + 256).toString(16).slice(1));\nfunction tt(t, e = 0) {\n return w[t[e + 0]] + w[t[e + 1]] + w[t[e + 2]] + w[t[e + 3]] + \"-\" + w[t[e + 4]] + w[t[e + 5]] + \"-\" + w[t[e + 6]] + w[t[e + 7]] + \"-\" + w[t[e + 8]] + w[t[e + 9]] + \"-\" + w[t[e + 10]] + w[t[e + 11]] + w[t[e + 12]] + w[t[e + 13]] + w[t[e + 14]] + w[t[e + 15]];\n}\nconst nt = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), se = {\n randomUUID: nt\n};\nfunction ge(t, e, n) {\n if (se.randomUUID && !e && !t)\n return se.randomUUID();\n t = t || {};\n const o = t.random || (t.rng || et)();\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 tt(o);\n}\nclass ot {\n constructor(e, n, o, a, l, s) {\n this.id = e || ge(), this.rows = o, this.columns = $(n), this.config = $(a), this.table = l || $(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = $({ 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 $(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return R(() => 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 lt = { key: 0 }, at = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, rt = {\n key: 0,\n id: \"header-index\"\n}, st = /* @__PURE__ */ C({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n config: {},\n tableid: {}\n },\n setup(t) {\n de((l) => ({\n \"12d06943\": r(o)\n }));\n const n = O(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 ? (m(), b(\"thead\", lt, [\n A(\"tr\", at, [\n r(n).zeroColumn ? (m(), b(\"th\", rt)) : M(\"\", !0),\n (m(!0), b(L, null, N(l.columns, (i, d) => (m(), b(\"th\", {\n key: d,\n tabindex: \"-1\",\n style: H(a(i))\n }, [\n y(l.$slots, \"default\", {}, () => [\n Ce(T(i.label || String.fromCharCode(d + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : M(\"\", !0);\n }\n}), ve = /* @__PURE__ */ _(st, [[\"__scopeId\", \"data-v-16e66636\"]]), it = /* @__PURE__ */ C({\n __name: \"ATableModal\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {}\n },\n setup(t) {\n O(t.tableid);\n const n = (o) => {\n o.stopPropagation();\n };\n return (o, a) => (m(), b(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n onClick: n,\n onInput: n\n }, [\n y(o.$slots, \"default\", {}, void 0, !0)\n ], 544));\n }\n}), ye = /* @__PURE__ */ _(it, [[\"__scopeId\", \"data-v-10a48b2a\"]]), dt = /* @__PURE__ */ C({\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 ot(n.id, n.columns, a, n.config);\n _e(l.id, l), j(\n () => l.rows,\n (i) => {\n o(\"update:modelValue\", i);\n },\n { deep: !0 }\n );\n const s = (i) => {\n var d;\n (d = l.modal.parent) != null && d.contains(i.target) || l.modal.visible && (l.modal.visible = !1);\n };\n return window.addEventListener(\"click\", s), window.addEventListener(\"keydown\", (i) => {\n if (i.key === \"Escape\" && l.modal.visible) {\n l.modal.visible = !1;\n const d = l.modal.parent;\n d && $e().then(() => {\n const p = d.dataset.rowindex, f = d.dataset.colindex, c = document.querySelectorAll(`[data-rowindex='${p}'][data-colindex='${f}']`);\n c && c[0].focus();\n });\n }\n }), (i, d) => (m(), b(\"table\", {\n class: \"atable\",\n style: H({ width: r(l).config.fullWidth ? \"100%\" : \"auto\" })\n }, [\n y(i.$slots, \"header\", { data: r(l) }, () => [\n z(ve, {\n columns: r(l).columns,\n config: r(l).config,\n tableid: r(l).id\n }, null, 8, [\"columns\", \"config\", \"tableid\"])\n ], !0),\n A(\"tbody\", null, [\n y(i.$slots, \"body\", { data: r(l) }, () => [\n (m(!0), b(L, null, N(r(l).rows, (p, f) => (m(), P(be, {\n key: p.id || r(ge)(),\n row: p,\n rowIndex: f,\n tableid: r(l).id\n }, {\n default: G(() => [\n (m(!0), b(L, null, N(r(l).columns, (c, v) => (m(), P(he, {\n key: `${v}:${f}`,\n tableid: r(l).id,\n col: c,\n spellcheck: \"false\",\n rowIndex: f,\n colIndex: v + (r(l).zeroColumn ? 0 : -1),\n component: c.cellComponent,\n style: H({\n textAlign: (c == null ? void 0 : c.align) || \"center\",\n minWidth: (c == null ? void 0 : c.width) || \"40ch\",\n width: r(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 y(i.$slots, \"footer\", { data: r(l) }, void 0, !0),\n y(i.$slots, \"modal\", { data: r(l) }, () => [\n ce(z(ye, {\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id,\n style: H({\n left: r(l).modal.left + \"px\",\n top: r(l).modal.top + \"px\",\n maxWidth: r(l).modal.width + \"px\"\n })\n }, {\n default: G(() => [\n (m(), P(ie(r(l).modal.component), W({\n key: `${r(l).modal.rowIndex}:${r(l).modal.colIndex}`,\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id\n }, r(l).modal.componentProps), null, 16, [\"colIndex\", \"rowIndex\", \"tableid\"]))\n ]),\n _: 1\n }, 8, [\"colIndex\", \"rowIndex\", \"tableid\", \"style\"]), [\n [ue, r(l).modal.visible]\n ])\n ], !0)\n ], 4));\n }\n}), ct = /* @__PURE__ */ _(dt, [[\"__scopeId\", \"data-v-55d8ba05\"]]);\nfunction ft(t) {\n t.component(\"ACell\", he), t.component(\"AExpansionRow\", Je), t.component(\"ARow\", be), t.component(\"ATable\", ct), t.component(\"ATableHeader\", ve), t.component(\"ATableModal\", ye);\n}\nexport {\n he as ACell,\n Je as AExpansionRow,\n be as ARow,\n ct as ATable,\n ve as ATableHeader,\n ye as ATableModal,\n ot as TableDataStore,\n ft as install\n};\n//# sourceMappingURL=atable.js.map\n","\n\n\n","\n\n\n\n\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","M","o","n","s","W","ie","Qe","N","z","G","Ne","K","ze","Ge","J","Ke","Je","D","gt","y","l","r","p","a","S","f","v","V","x","H","Ie","Me","g","pe","le","At","It","t","Mt","Tt","_t","ae","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","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","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","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","i","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","object","stringify","reducers","stringified","indexes","custom","flatten","index3","stringify_primitive","source","flags","m","d","u","h","_a2","pinia","newSchema","fieldValue","Ae","Te","fe","Oe","De","Ee","ke","U","me","Se","c","j","X","Y","Re","Z","Pe","He","Le","ee","I","te","Ue","B","ne","je","oe","Q","F","We","we","q","E","xe","Ve","Be","C","O","R","P","T","_","he","Xe","Ye","Ze","de","ce","ue","be","et","w","tt","nt","se","ge","ot","$","lt","at","rt","st","A","L","Ce","ve","it","ye","dt","_e","$e","ct","config","breadcrumbs","breadcrumbsVisibile","searchVisibile","searchText","searchinput","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","ActionSet","CommandPalette","Doctype","Records","SheetNav"],"mappings":"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"} \ No newline at end of file diff --git a/desktop/dist/desktop.umd.cjs b/desktop/dist/desktop.umd.cjs index c0a10f6b..00e33baa 100644 --- a/desktop/dist/desktop.umd.cjs +++ b/desktop/dist/desktop.umd.cjs @@ -1,4 +1,4 @@ -(function(W,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],s):(W=typeof globalThis<"u"?globalThis:W||self,s(W["@stonecrop/desktop"]={},W.Vue))})(this,function(W,s){"use strict";const ze=e=>(s.pushScopeId("data-v-b7fdfbec"),e=e(),s.popScopeId(),e),Do={class:"action-menu-icon"},Vo=[ze(()=>s.createElementVNode("svg",{class:"leftBar",version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[s.createElementVNode("polygon",{points:"54.2,33.4 29.2,58.8 25,54.6 50,29.2 "})],-1)),ze(()=>s.createElementVNode("svg",{class:"rightBar",version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[s.createElementVNode("polygon",{points:"70.8,58.8 45.8,33.4 50,29.2 75,54.6 "})],-1))],Bo=ze(()=>s.createElementVNode("div",{style:{"margin-right":"30px"}},null,-1)),Mo=["onclick"],Lo={key:1},jo=["onClick"],Uo={class:"dropdown-container"},Ho={class:"dropdown"},Fo=["onclick"],Wo=["href"],zo={class:"dropdown-item"},Go=s.defineComponent({__name:"ActionSet",props:{elements:{}},setup(e){const t=e,n=s.ref([]),o=s.ref(!1),r=s.ref(null),a=s.ref(!1),c=s.ref(!1);s.onMounted(()=>{n.value=t.elements,i()});const i=()=>{for(let f of n.value)f.elementType==="dropdown"&&(f.show=!1)},u=()=>{a.value=!0,r.value=setTimeout(()=>{a.value&&(o.value=!0)},500)},d=()=>{a.value=!1,c.value=!1,clearTimeout(r.value),o.value=!1},l=f=>{const p=!n.value[f].show;i(),n.value[f].show=p};return(f,p)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass([{"open-set":o.value,"hovered-and-closed":c.value},"action-set collapse"]),onMouseover:u,onMouseleave:d},[s.createElementVNode("div",Do,[s.createElementVNode("div",{id:"chevron",onClick:p[0]||(p[0]=h=>c.value=!c.value)},Vo)]),Bo,(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.value,(h,y)=>(s.openBlock(),s.createElementBlock("div",{class:"action-element",key:y},[h.elementType=="button"?(s.openBlock(),s.createElementBlock("button",{key:0,onclick:h.action,class:"button-default"},s.toDisplayString(h.label),9,Mo)):s.createCommentVNode("",!0),h.elementType=="dropdown"?(s.openBlock(),s.createElementBlock("div",Lo,[s.createElementVNode("button",{class:"button-default",onClick:g=>l(y)},s.toDisplayString(h.label),9,jo),s.withDirectives(s.createElementVNode("div",Uo,[s.createElementVNode("div",Ho,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.actions,g=>(s.openBlock(),s.createElementBlock("div",{key:g.label},[g.action!=null?(s.openBlock(),s.createElementBlock("button",{key:0,onclick:g.action,class:"dropdown-item"},s.toDisplayString(g.label),9,Fo)):g.link!=null?(s.openBlock(),s.createElementBlock("a",{key:1,href:g.link},[s.createElementVNode("button",zo,s.toDisplayString(g.label),1)],8,Wo)):s.createCommentVNode("",!0)]))),128))])],512),[[s.vShow,h.show]])])):s.createCommentVNode("",!0)]))),128))],34))}}),Ge=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},$t=Ge(Go,[["__scopeId","data-v-b7fdfbec"]]),Qo={};function qo(e,t){return s.openBlock(),s.createElementBlock("dialog")}const Rt=Ge(Qo,[["render",qo]]),Ko=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};var Tt;typeof window<"u"&&(Tt=window==null?void 0:window.navigator)!=null&&Tt.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Jo(e){return e}const At=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Dt="__vueuse_ssr_handlers__";At[Dt]=At[Dt]||{};var Vt;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Vt||(Vt={}));var Yo=Object.defineProperty,Bt=Object.getOwnPropertySymbols,Xo=Object.prototype.hasOwnProperty,Zo=Object.prototype.propertyIsEnumerable,Mt=(e,t,n)=>t in e?Yo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,er=(e,t)=>{for(var n in t||(t={}))Xo.call(t,n)&&Mt(e,n,t[n]);if(Bt)for(var n of Bt(t))Zo.call(t,n)&&Mt(e,n,t[n]);return e};er({linear:Jo},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]}),s.defineComponent({name:"ADropdown",props:{modelValue:{type:String,required:!1,default:""},label:{type:String,required:!0},value:String,items:{type:Array,required:!1,default:()=>[]},isAsync:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue","filterChanged"],data(){return{results:[],search:this.modelValue,isLoading:!1,arrowCounter:0,isOpen:!1}},watch:{items:function(e,t){this.isLoading=!1,this.results=e}},mounted(){document.addEventListener("click",this.handleClickOutside),this.filterResults()},destroyed(){document.removeEventListener("click",this.handleClickOutside)},methods:{setResult(e){this.search=e,this.closeResults()},filterResults(){this.results=this.items.filter(e=>e.toLowerCase().indexOf(this.search.toLowerCase())>-1)},onChange(){this.isOpen=!0,this.isAsync?(this.isLoading=!0,this.$emit("filterChanged",this.search)):this.filterResults()},handleClickOutside(e){this.$el.contains(e.target)||(this.closeResults(),this.arrowCounter=0)},closeResults(){this.isOpen=!1,this.items.includes(this.search)||(this.search=""),this.$emit("update:modelValue",this.search)},onArrowDown(){this.arrowCounter0&&(this.arrowCounter=this.arrowCounter-1)},onEnter(){this.search=this.results[this.arrowCounter],this.closeResults(),this.arrowCounter=0},openWithSearch(){this.search="",this.onChange(),this.$refs.mopInput.focus()}}});const tr=s.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readonly:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=s.ref(n.data||{}),a=i=>{let u={};for(const[d,l]of Object.entries(i))["component","fieldtype"].includes(d)||(u[d]=l),d==="rows"&&l&&l.length===0&&(u.rows=r.value[i.fieldname]);return u},c=s.computed({get:()=>n.modelValue.map((i,u)=>s.computed({get(){return i.value},set:d=>{n.modelValue[u].value=d,o("update:modelValue",n.modelValue)}})),set:()=>{}});return(i,u)=>(s.openBlock(),s.createElementBlock("form",null,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.modelValue,(d,l)=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(d.component),s.mergeProps({key:l,schema:d,modelValue:c.value[l].value,"onUpdate:modelValue":f=>c.value[l].value=f,data:r.value[d.fieldname],readonly:i.readonly},a(d)),null,16,["schema","modelValue","onUpdate:modelValue","data","readonly"]))),128))]))}}),nr=Ko(tr,[["__scopeId","data-v-74d66cf2"]]),Lt={date:"##/##/####",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"};function or(e){try{return Function(`"use strict";return (${e})`)()}catch{}}function rr(e){var t;let n=e.value;if(n){const o=or(n);if(o){const r=e.instance.locale;n=o(r)}}else{const o=(t=e.instance.schema.fieldtype)==null?void 0:t.toLowerCase();o&&Lt[o]&&(n=Lt[o])}return n}function sr(e,t){t||(t="#");let n=e;const o=[t,"/","-","(",")"," "];for(const r of o)n=n.replaceAll(r,"");return n}function ar(e,t,n){n||(n="#");let o=t;for(const r of e){const a=o.indexOf(n);if(a!==-1){const c=o.substring(0,a),i=o.substring(a+1);o=c+r+i}}return o.slice(0,t.length)}function ir(e,t){const n=rr(t);if(!n)return;const o="#",r=e.value,a=sr(r,o);if(a){const c=ar(a,n,o);t.instance.maskFilled&&(t.instance.maskFilled=!c.includes(o)),e.value=c}else e.value=n}s.defineComponent({name:"ATextInput",props:{schema:{type:Object,required:!0},label:{type:String,required:!0},modelValue:{type:null},mask:{type:String},required:{type:Boolean},readonly:{type:Boolean},uuid:{type:String},validation:{type:Object,default:()=>({errorMessage:" "})}},setup(e,t){const n=s.ref(!1),o=s.inject("locale","");return{inputText:s.computed({get(){return e.modelValue},set(r){t.emit("update:modelValue",r)}}),locale:o,maskFilled:n}},directives:{mask:ir}});function Qe(e){this.message=e||""}Qe.prototype=Object.create(Error.prototype,{constructor:{value:Qe},name:{value:"NotImplemented"},stack:{get:function(){return new Error().stack}}});class ve{constructor(t,n,o,r,a){if(this.name="Stonecrop",ve._root)return ve._root;ve._root=this,this.registry=t,this.store=n,this.schema=o,this.workflow=r,this.actions=a}setup(t){this.getMeta(t),this.getWorkflow(t),this.getActions(t)}getMeta(t){return this.registry.getMeta?this.registry.getMeta(t.doctype):new Qe(t.doctype)}getWorkflow(t){const n=this.registry.registry[t.slug];this.workflow=n.workflow}getActions(t){const n=this.registry.registry[t.slug];this.actions=n.actions}async getRecords(t,n){this.store.$patch({records:[]});const r=await(await fetch(`/${t.slug}`,n)).json();this.store.$patch({records:r})}async getRecord(t,n){this.store.$patch({record:{}});const r=await(await fetch(`/${t.slug}/${n}`)).json();this.store.$patch({record:r})}runAction(t,n,o){const a=this.registry.registry[t.slug].actions.get(n),{initialState:c}=this.workflow;this.workflow.transition(c,{type:n}),a.length>0&&a.forEach(i=>{new Function(i)(o)})}}var jt=!1;function $e(e,t,n){return Array.isArray(e)?(e.length=Math.max(e.length,t),e.splice(t,1,n),n):(e[t]=n,n)}function qe(e,t){if(Array.isArray(e)){e.splice(t,1);return}delete e[t]}function cr(){return Ut().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Ut(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const lr=typeof Proxy=="function",ur="devtools-plugin:setup",dr="plugin:settings:set";let pe,Ke;function fr(){var e;return pe!==void 0||(typeof window<"u"&&window.performance?(pe=!0,Ke=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(pe=!0,Ke=global.perf_hooks.performance):pe=!1),pe}function pr(){return fr()?Ke.now():Date.now()}class hr{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const o={};if(t.settings)for(const c in t.settings){const i=t.settings[c];o[c]=i.defaultValue}const r=`__vue-devtools-plugin-settings__${t.id}`;let a=Object.assign({},o);try{const c=localStorage.getItem(r),i=JSON.parse(c);Object.assign(a,i)}catch{}this.fallbacks={getSettings(){return a},setSettings(c){try{localStorage.setItem(r,JSON.stringify(c))}catch{}a=c},now(){return pr()}},n&&n.on(dr,(c,i)=>{c===this.plugin.id&&this.fallbacks.setSettings(i)}),this.proxiedOn=new Proxy({},{get:(c,i)=>this.target?this.target.on[i]:(...u)=>{this.onQueue.push({method:i,args:u})}}),this.proxiedTarget=new Proxy({},{get:(c,i)=>this.target?this.target[i]:i==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(i)?(...u)=>(this.targetQueue.push({method:i,args:u,resolve:()=>{}}),this.fallbacks[i](...u)):(...u)=>new Promise(d=>{this.targetQueue.push({method:i,args:u,resolve:d})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Je(e,t){const n=e,o=Ut(),r=cr(),a=lr&&n.enableEarlyProxy;if(r&&(o.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!a))r.emit(ur,e,t);else{const c=a?new hr(n,r):null;(o.__VUE_DEVTOOLS_PLUGINS__=o.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:c}),c&&t(c.proxiedTarget)}}/*! +(function(W,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],s):(W=typeof globalThis<"u"?globalThis:W||self,s(W["@stonecrop/desktop"]={},W.Vue))})(this,function(W,s){"use strict";const ze=e=>(s.pushScopeId("data-v-b7fdfbec"),e=e(),s.popScopeId(),e),Do={class:"action-menu-icon"},Vo=[ze(()=>s.createElementVNode("svg",{class:"leftBar",version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[s.createElementVNode("polygon",{points:"54.2,33.4 29.2,58.8 25,54.6 50,29.2 "})],-1)),ze(()=>s.createElementVNode("svg",{class:"rightBar",version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[s.createElementVNode("polygon",{points:"70.8,58.8 45.8,33.4 50,29.2 75,54.6 "})],-1))],Bo=ze(()=>s.createElementVNode("div",{style:{"margin-right":"30px"}},null,-1)),Mo=["onclick"],Lo={key:1},jo=["onClick"],Uo={class:"dropdown-container"},Ho={class:"dropdown"},Fo=["onclick"],Wo=["href"],zo={class:"dropdown-item"},Go=s.defineComponent({__name:"ActionSet",props:{elements:{}},setup(e){const t=e,n=s.ref([]),o=s.ref(!1),r=s.ref(null),a=s.ref(!1),c=s.ref(!1);s.onMounted(()=>{n.value=t.elements,i()});const i=()=>{for(let f of n.value)f.elementType==="dropdown"&&(f.show=!1)},u=()=>{a.value=!0,r.value=setTimeout(()=>{a.value&&(o.value=!0)},500)},d=()=>{a.value=!1,c.value=!1,clearTimeout(r.value),o.value=!1},l=f=>{const p=!n.value[f].show;i(),n.value[f].show=p};return(f,p)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass([{"open-set":o.value,"hovered-and-closed":c.value},"action-set collapse"]),onMouseover:u,onMouseleave:d},[s.createElementVNode("div",Do,[s.createElementVNode("div",{id:"chevron",onClick:p[0]||(p[0]=h=>c.value=!c.value)},Vo)]),Bo,(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.value,(h,y)=>(s.openBlock(),s.createElementBlock("div",{class:"action-element",key:y},[h.elementType=="button"?(s.openBlock(),s.createElementBlock("button",{key:0,onclick:h.action,class:"button-default"},s.toDisplayString(h.label),9,Mo)):s.createCommentVNode("",!0),h.elementType=="dropdown"?(s.openBlock(),s.createElementBlock("div",Lo,[s.createElementVNode("button",{class:"button-default",onClick:g=>l(y)},s.toDisplayString(h.label),9,jo),s.withDirectives(s.createElementVNode("div",Uo,[s.createElementVNode("div",Ho,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.actions,g=>(s.openBlock(),s.createElementBlock("div",{key:g.label},[g.action!=null?(s.openBlock(),s.createElementBlock("button",{key:0,onclick:g.action,class:"dropdown-item"},s.toDisplayString(g.label),9,Fo)):g.link!=null?(s.openBlock(),s.createElementBlock("a",{key:1,href:g.link},[s.createElementVNode("button",zo,s.toDisplayString(g.label),1)],8,Wo)):s.createCommentVNode("",!0)]))),128))])],512),[[s.vShow,h.show]])])):s.createCommentVNode("",!0)]))),128))],34))}}),Ge=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},$t=Ge(Go,[["__scopeId","data-v-b7fdfbec"]]),Qo={};function qo(e,t){return s.openBlock(),s.createElementBlock("dialog")}const Rt=Ge(Qo,[["render",qo]]),Ko=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};var Tt;typeof window<"u"&&(Tt=window==null?void 0:window.navigator)!=null&&Tt.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Jo(e){return e}const At=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Dt="__vueuse_ssr_handlers__";At[Dt]=At[Dt]||{};var Vt;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Vt||(Vt={}));var Yo=Object.defineProperty,Bt=Object.getOwnPropertySymbols,Xo=Object.prototype.hasOwnProperty,Zo=Object.prototype.propertyIsEnumerable,Mt=(e,t,n)=>t in e?Yo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,er=(e,t)=>{for(var n in t||(t={}))Xo.call(t,n)&&Mt(e,n,t[n]);if(Bt)for(var n of Bt(t))Zo.call(t,n)&&Mt(e,n,t[n]);return e};er({linear:Jo},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]}),s.defineComponent({name:"ADropdown",props:{modelValue:{type:String,required:!1,default:""},label:{type:String,required:!0},value:String,items:{type:Array,required:!1,default:()=>[]},isAsync:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue","filterChanged"],data(){return{results:[],search:this.modelValue,isLoading:!1,arrowCounter:0,isOpen:!1}},watch:{items:function(e,t){this.isLoading=!1,this.results=e}},mounted(){document.addEventListener("click",this.handleClickOutside),this.filterResults()},destroyed(){document.removeEventListener("click",this.handleClickOutside)},methods:{setResult(e){this.search=e,this.closeResults()},filterResults(){this.results=this.items.filter(e=>e.toLowerCase().indexOf(this.search.toLowerCase())>-1)},onChange(){this.isOpen=!0,this.isAsync?(this.isLoading=!0,this.$emit("filterChanged",this.search)):this.filterResults()},handleClickOutside(e){this.$el.contains(e.target)||(this.closeResults(),this.arrowCounter=0)},closeResults(){this.isOpen=!1,this.items.includes(this.search)||(this.search=""),this.$emit("update:modelValue",this.search)},onArrowDown(){this.arrowCounter0&&(this.arrowCounter=this.arrowCounter-1)},onEnter(){this.search=this.results[this.arrowCounter],this.closeResults(),this.arrowCounter=0},openWithSearch(){this.search="",this.onChange(),this.$refs.mopInput.focus()}}});const tr=s.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readonly:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=s.ref(n.data||{}),a=i=>{let u={};for(const[d,l]of Object.entries(i))["component","fieldtype"].includes(d)||(u[d]=l),d==="rows"&&l&&l.length===0&&(u.rows=r.value[i.fieldname]);return u},c=s.computed({get:()=>n.modelValue.map((i,u)=>s.computed({get(){return i.value},set:d=>{n.modelValue[u].value=d,o("update:modelValue",n.modelValue)}})),set:()=>{}});return(i,u)=>(s.openBlock(),s.createElementBlock("form",null,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.modelValue,(d,l)=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(d.component),s.mergeProps({key:l,schema:d,modelValue:c.value[l].value,"onUpdate:modelValue":f=>c.value[l].value=f,data:r.value[d.fieldname],readonly:i.readonly},a(d)),null,16,["schema","modelValue","onUpdate:modelValue","data","readonly"]))),128))]))}}),nr=Ko(tr,[["__scopeId","data-v-82492bb4"]]),Lt={date:"##/##/####",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"};function or(e){try{return Function(`"use strict";return (${e})`)()}catch{}}function rr(e){var t;let n=e.value;if(n){const o=or(n);if(o){const r=e.instance.locale;n=o(r)}}else{const o=(t=e.instance.schema.fieldtype)==null?void 0:t.toLowerCase();o&&Lt[o]&&(n=Lt[o])}return n}function sr(e,t){t||(t="#");let n=e;const o=[t,"/","-","(",")"," "];for(const r of o)n=n.replaceAll(r,"");return n}function ar(e,t,n){n||(n="#");let o=t;for(const r of e){const a=o.indexOf(n);if(a!==-1){const c=o.substring(0,a),i=o.substring(a+1);o=c+r+i}}return o.slice(0,t.length)}function ir(e,t){const n=rr(t);if(!n)return;const o="#",r=e.value,a=sr(r,o);if(a){const c=ar(a,n,o);t.instance.maskFilled&&(t.instance.maskFilled=!c.includes(o)),e.value=c}else e.value=n}s.defineComponent({name:"ATextInput",props:{schema:{type:Object,required:!0},label:{type:String,required:!0},modelValue:{type:null},mask:{type:String},required:{type:Boolean},readonly:{type:Boolean},uuid:{type:String},validation:{type:Object,default:()=>({errorMessage:" "})}},setup(e,t){const n=s.ref(!1),o=s.inject("locale","");return{inputText:s.computed({get(){return e.modelValue},set(r){t.emit("update:modelValue",r)}}),locale:o,maskFilled:n}},directives:{mask:ir}});function Qe(e){this.message=e||""}Qe.prototype=Object.create(Error.prototype,{constructor:{value:Qe},name:{value:"NotImplemented"},stack:{get:function(){return new Error().stack}}});class ve{constructor(t,n,o,r,a){if(this.name="Stonecrop",ve._root)return ve._root;ve._root=this,this.registry=t,this.store=n,this.schema=o,this.workflow=r,this.actions=a}setup(t){this.getMeta(t),this.getWorkflow(t),this.getActions(t)}getMeta(t){return this.registry.getMeta?this.registry.getMeta(t.doctype):new Qe(t.doctype)}getWorkflow(t){const n=this.registry.registry[t.slug];this.workflow=n.workflow}getActions(t){const n=this.registry.registry[t.slug];this.actions=n.actions}async getRecords(t,n){this.store.$patch({records:[]});const r=await(await fetch(`/${t.slug}`,n)).json();this.store.$patch({records:r})}async getRecord(t,n){this.store.$patch({record:{}});const r=await(await fetch(`/${t.slug}/${n}`)).json();this.store.$patch({record:r})}runAction(t,n,o){const a=this.registry.registry[t.slug].actions.get(n),{initialState:c}=this.workflow;this.workflow.transition(c,{type:n}),a.length>0&&a.forEach(i=>{new Function(i)(o)})}}var jt=!1;function $e(e,t,n){return Array.isArray(e)?(e.length=Math.max(e.length,t),e.splice(t,1,n),n):(e[t]=n,n)}function qe(e,t){if(Array.isArray(e)){e.splice(t,1);return}delete e[t]}function cr(){return Ut().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Ut(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const lr=typeof Proxy=="function",ur="devtools-plugin:setup",dr="plugin:settings:set";let pe,Ke;function fr(){var e;return pe!==void 0||(typeof window<"u"&&window.performance?(pe=!0,Ke=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(pe=!0,Ke=global.perf_hooks.performance):pe=!1),pe}function pr(){return fr()?Ke.now():Date.now()}class hr{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const o={};if(t.settings)for(const c in t.settings){const i=t.settings[c];o[c]=i.defaultValue}const r=`__vue-devtools-plugin-settings__${t.id}`;let a=Object.assign({},o);try{const c=localStorage.getItem(r),i=JSON.parse(c);Object.assign(a,i)}catch{}this.fallbacks={getSettings(){return a},setSettings(c){try{localStorage.setItem(r,JSON.stringify(c))}catch{}a=c},now(){return pr()}},n&&n.on(dr,(c,i)=>{c===this.plugin.id&&this.fallbacks.setSettings(i)}),this.proxiedOn=new Proxy({},{get:(c,i)=>this.target?this.target.on[i]:(...u)=>{this.onQueue.push({method:i,args:u})}}),this.proxiedTarget=new Proxy({},{get:(c,i)=>this.target?this.target[i]:i==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(i)?(...u)=>(this.targetQueue.push({method:i,args:u,resolve:()=>{}}),this.fallbacks[i](...u)):(...u)=>new Promise(d=>{this.targetQueue.push({method:i,args:u,resolve:d})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Je(e,t){const n=e,o=Ut(),r=cr(),a=lr&&n.enableEarlyProxy;if(r&&(o.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!a))r.emit(ur,e,t);else{const c=a?new hr(n,r):null;(o.__VUE_DEVTOOLS_PLUGINS__=o.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:c}),c&&t(c.proxiedTarget)}}/*! * pinia v2.1.7 * (c) 2023 Eduardo San Martin Morote * @license MIT @@ -33,7 +33,7 @@ Use slot props instead: ${JSON.stringify(E,null,2)} when navigating to "${m.fullPath}". A redirect must contain a name or path. This will break in production.`),new Error("Invalid redirect");return x({query:m.query,hash:m.hash,params:"path"in E?{}:m.params},E)}}function S(m,v){const w=d=I(m),E=u.value,$=m.state,D=m.force,N=m.replace===!0,C=Q(w);if(C)return S(x(O(C),{state:typeof C=="object"?x({},$,C.state):$,force:D,replace:N}),v||w);const A=w;A.redirectedFrom=v;let fe;return!D&&an(o,E,w)&&(fe=ge(16,{to:A,from:E}),Ao(E,E,!0,!1)),(fe?Promise.resolve(fe):k(A,E)).catch(H=>ee(H)?ee(H,2)?H:Nt(H):U(H,A,E)).then(H=>{if(H){if(ee(H,2))return process.env.NODE_ENV!=="production"&&an(o,I(H.to),A)&&v&&(v._count=v._count?v._count+1:1)>30?(P(`Detected a possibly infinite redirection in a navigation guard when going from "${E.fullPath}" to "${A.fullPath}". Aborting to avoid a Stack Overflow. 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.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):S(x({replace:N},O(H.to),{state:typeof H.to=="object"?x({},$,H.to.state):$,force:D}),v||A)}else H=R(A,E,!0,N,$);return b(A,E,H),H})}function To(m,v){const w=T(m,v);return w?Promise.reject(w):Promise.resolve()}function K(m){const v=We.values().next().value;return v&&typeof v.runWithContext=="function"?v.runWithContext(m):m()}function k(m,v){let w;const[E,$,D]=ta(m,v);w=dt(E.reverse(),"beforeRouteLeave",m,v);for(const C of E)C.leaveGuards.forEach(A=>{w.push(ie(A,m,v))});const N=To.bind(null,m,v);return w.push(N),we(w).then(()=>{w=[];for(const C of a.list())w.push(ie(C,m,v));return w.push(N),we(w)}).then(()=>{w=dt($,"beforeRouteUpdate",m,v);for(const C of $)C.updateGuards.forEach(A=>{w.push(ie(A,m,v))});return w.push(N),we(w)}).then(()=>{w=[];for(const C of D)if(C.beforeEnter)if(F(C.beforeEnter))for(const A of C.beforeEnter)w.push(ie(A,m,v));else w.push(ie(C.beforeEnter,m,v));return w.push(N),we(w)}).then(()=>(m.matched.forEach(C=>C.enterCallbacks={}),w=dt(D,"beforeRouteEnter",m,v),w.push(N),we(w))).then(()=>{w=[];for(const C of c.list())w.push(ie(C,m,v));return w.push(N),we(w)}).catch(C=>ee(C,8)?C:Promise.reject(C))}function b(m,v,w){i.list().forEach(E=>K(()=>E(m,v,w)))}function R(m,v,w,E,$){const D=T(m,v);if(D)return D;const N=v===ae,C=Z?history.state:{};w&&(E||N?r.replace(m.fullPath,x({scroll:N&&C&&C.scroll},$)):r.push(m.fullPath,$)),u.value=m,Ao(m,v,w,N),Nt()}let V;function de(){V||(V=r.listen((m,v,w)=>{const E=I(m),$=Q(E);if($){S(x($,{replace:!0}),E).catch(ke);return}d=E;const D=u.value;Z&&Kr(un(D.fullPath,w.delta),Be()),k(E,D).catch(N=>ee(N,12)?N:ee(N,2)?(S(N.to,E).then(C=>{ee(C,20)&&!w.delta&&w.type===Se.pop&&r.go(-1,!1)}).catch(ke),Promise.reject()):(w.delta&&r.go(-w.delta,!1),U(N,E,D))).then(N=>{N=N||R(E,D,!1),N&&(w.delta&&!ee(N,8)?r.go(-w.delta,!1):w.type===Se.pop&&ee(N,20)&&r.go(-1,!1)),b(E,D,N)}).catch(ke)}))}let xe=Ce(),Fe=Ce(),Y;function U(m,v,w){Nt(m);const E=Fe.list();return E.length?E.forEach($=>$(m,v,w)):(process.env.NODE_ENV!=="production"&&P("uncaught error during route navigation:"),console.error(m)),Promise.reject(m)}function Zi(){return Y&&u.value!==ae?Promise.resolve():new Promise((m,v)=>{xe.add([m,v])})}function Nt(m){return Y||(Y=!m,de(),xe.list().forEach(([v,w])=>m?w(m):v()),xe.reset()),m}function Ao(m,v,w,E){const{scrollBehavior:$}=e;if(!Z||!$)return Promise.resolve();const D=!w&&Jr(un(m.fullPath,0))||(E||!w)&&history.state&&history.state.scroll||null;return s.nextTick().then(()=>$(m,v,D)).then(N=>N&&qr(N)).catch(N=>U(N,m,v))}const Pt=m=>r.go(m);let xt;const We=new Set,ec={currentRoute:u,listening:!0,addRoute:h,removeRoute:y,hasRoute:_,getRoutes:g,resolve:I,options:e,push:L,replace:G,go:Pt,back:()=>Pt(-1),forward:()=>Pt(1),beforeEach:a.add,beforeResolve:c.add,afterEach:i.add,onError:Fe.add,isReady:Zi,install(m){const v=this;m.component("RouterLink",Ls),m.component("RouterView",Fs),m.config.globalProperties.$router=v,Object.defineProperty(m.config.globalProperties,"$route",{enumerable:!0,get:()=>s.unref(u)}),Z&&!xt&&u.value===ae&&(xt=!0,L(r.location).catch($=>{process.env.NODE_ENV!=="production"&&P("Unexpected error when starting the router:",$)}));const w={};for(const $ in ae)Object.defineProperty(w,$,{get:()=>u.value[$],enumerable:!0});m.provide(lt,v),m.provide(Nn,s.shallowReactive(w)),m.provide(ut,u);const E=m.unmount;We.add(m),m.unmount=function(){We.delete(m),We.size<1&&(d=ae,V&&V(),V=null,u.value=ae,xt=!1,Y=!1),E()},process.env.NODE_ENV!=="production"&&Z&&Gs(m,v,t)}};function we(m){return m.reduce((v,w)=>v.then(()=>K(w)),Promise.resolve())}return ec}function ta(e,t){const n=[],o=[],r=[],a=Math.max(t.matched.length,e.matched.length);for(let c=0;cse(d,i))?o.push(i):n.push(i));const u=e.matched[c];u&&(t.matched.find(d=>se(d,u))||r.push(u))}return[n,o,r]}ea({history:es(),routes:[]});function na(e){return e&&typeof e.then=="function"}Promise.resolve(!1),Promise.resolve(!0);var ue=Promise.resolve();function jn(e,t){return e||(e=0),new Promise(function(n){return setTimeout(function(){return n(t)},e)})}function oa(e,t){return Math.floor(Math.random()*(t-e+1)+e)}function pt(){return Math.random().toString(36).substring(2)}var Un=0,ht=0;function Le(){var e=new Date().getTime();return e===Un?(ht++,e*1e3+ht):(Un=e,ht=0,e*1e3)}var ra=Le,sa="native";function aa(e){var t={messagesCallback:null,bc:new BroadcastChannel(e),subFns:[]};return t.bc.onmessage=function(n){t.messagesCallback&&t.messagesCallback(n.data)},t}function ia(e){e.bc.close(),e.subFns=[]}function ca(e,t){try{return e.bc.postMessage(t,!1),ue}catch(n){return Promise.reject(n)}}function la(e,t){e.messagesCallback=t}function ua(){if(typeof window>"u")return!1;if(typeof BroadcastChannel=="function"){if(BroadcastChannel._pubkey)throw new Error("BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill");return!0}else return!1}function da(){return 150}var fa={create:aa,close:ia,onMessage:la,postMessage:ca,canBeUsed:ua,type:sa,averageResponseTime:da,microSeconds:ra},Hn=function(){function e(t){this.ttl=t,this.map=new Map,this._to=!1}return e.prototype.has=function(t){return this.map.has(t)},e.prototype.add=function(t){var n=this;this.map.set(t,Fn()),this._to||(this._to=!0,setTimeout(function(){n._to=!1,pa(n)},0))},e.prototype.clear=function(){this.map.clear()},e}();function pa(e){for(var t=Fn()-e.ttl,n=e.map[Symbol.iterator]();;){var o=n.next().value;if(!o)return;var r=o[0],a=o[1];if(a0&&arguments[0]!==void 0?arguments[0]:{},t=JSON.parse(JSON.stringify(e));return typeof t.webWorkerSupport>"u"&&(t.webWorkerSupport=!0),t.idb||(t.idb={}),t.idb.ttl||(t.idb.ttl=1e3*45),t.idb.fallbackInterval||(t.idb.fallbackInterval=150),e.idb&&typeof e.idb.onclose=="function"&&(t.idb.onclose=e.idb.onclose),t.localstorage||(t.localstorage={}),t.localstorage.removeTimeout||(t.localstorage.removeTimeout=1e3*60),e.methods&&(t.methods=e.methods),t.node||(t.node={}),t.node.ttl||(t.node.ttl=1e3*60*2),t.node.maxParallelWrites||(t.node.maxParallelWrites=2048),typeof t.node.useFastPath>"u"&&(t.node.useFastPath=!0),t}var ha=Le,ma="pubkey.broadcast-channel-0-",te="messages",je={durability:"relaxed"},ga="idb";function Wn(){if(typeof indexedDB<"u")return indexedDB;if(typeof window<"u"){if(typeof window.mozIndexedDB<"u")return window.mozIndexedDB;if(typeof window.webkitIndexedDB<"u")return window.webkitIndexedDB;if(typeof window.msIndexedDB<"u")return window.msIndexedDB}return!1}function gt(e){e.commit&&e.commit()}function ya(e){var t=Wn(),n=ma+e,o=t.open(n);return o.onupgradeneeded=function(r){var a=r.target.result;a.createObjectStore(te,{keyPath:"id",autoIncrement:!0})},new Promise(function(r,a){o.onerror=function(c){return a(c)},o.onsuccess=function(){r(o.result)}})}function wa(e,t,n){var o=new Date().getTime(),r={uuid:t,time:o,data:n},a=e.transaction([te],"readwrite",je);return new Promise(function(c,i){a.oncomplete=function(){return c()},a.onerror=function(d){return i(d)};var u=a.objectStore(te);u.add(r),gt(a)})}function va(e,t){var n=e.transaction(te,"readonly",je),o=n.objectStore(te),r=[],a=IDBKeyRange.bound(t+1,1/0);if(o.getAll){var c=o.getAll(a);return new Promise(function(u,d){c.onerror=function(l){return d(l)},c.onsuccess=function(l){u(l.target.result)}})}function i(){try{return a=IDBKeyRange.bound(t+1,1/0),o.openCursor(a)}catch{return o.openCursor()}}return new Promise(function(u,d){var l=i();l.onerror=function(f){return d(f)},l.onsuccess=function(f){var p=f.target.result;p?p.value.ide.lastCursorId&&(e.lastCursorId=o.id),o}).filter(function(o){return Sa(o,e)}).sort(function(o,r){return o.time-r.time});return n.forEach(function(o){e.messagesCallback&&(e.eMIs.add(o.id),e.messagesCallback(o.data))}),ue})}function Ia(e){e.closed=!0,e.db.close()}function Oa(e,t){return e.writeBlockPromise=e.writeBlockPromise.then(function(){return wa(e.db,e.uuid,t)}).then(function(){oa(0,10)===0&&Ea(e)}),e.writeBlockPromise}function Ca(e,t,n){e.messagesCallbackTime=n,e.messagesCallback=t,Gn(e)}function Na(){return!!Wn()}function Pa(e){return e.idb.fallbackInterval*2}var xa={create:ka,close:Ia,onMessage:Ca,postMessage:Oa,canBeUsed:Na,type:ga,averageResponseTime:Pa,microSeconds:ha},$a=Le,Ra="pubkey.broadcastChannel-",Ta="localstorage";function Qn(){var e;if(typeof window>"u")return null;try{e=window.localStorage,e=window["ie8-eventlistener/storage"]||window.localStorage}catch{}return e}function qn(e){return Ra+e}function Aa(e,t){return new Promise(function(n){jn().then(function(){var o=qn(e.channelName),r={token:pt(),time:new Date().getTime(),data:t,uuid:e.uuid},a=JSON.stringify(r);Qn().setItem(o,a);var c=document.createEvent("Event");c.initEvent("storage",!0,!0),c.key=o,c.newValue=a,window.dispatchEvent(c),n()})})}function Da(e,t){var n=qn(e),o=function(a){a.key===n&&t(JSON.parse(a.newValue))};return window.addEventListener("storage",o),o}function Va(e){window.removeEventListener("storage",e)}function Ba(e,t){if(t=mt(t),!Kn())throw new Error("BroadcastChannel: localstorage cannot be used");var n=pt(),o=new Hn(t.localstorage.removeTimeout),r={channelName:e,uuid:n,eMIs:o};return r.listener=Da(e,function(a){r.messagesCallback&&a.uuid!==n&&(!a.token||o.has(a.token)||a.data.time&&a.data.time0||e._addEL.internal.length>0}function eo(e,t,n){e._addEL[t].push(n),ei(e)}function to(e,t,n){e._addEL[t]=e._addEL[t].filter(function(o){return o!==n}),ti(e)}function ei(e){if(!e._iL&&Zn(e)){var t=function(r){e._addEL[r.type].forEach(function(a){var c=1e5,i=a.time-c;r.time>=i&&a.fn(r.data)})},n=e.method.microSeconds();e._prepP?e._prepP.then(function(){e._iL=!0,e.method.onMessage(e._state,t,n)}):(e._iL=!0,e.method.onMessage(e._state,t,n))}}function ti(e){if(e._iL&&!Zn(e)){e._iL=!1;var t=e.method.microSeconds();e.method.onMessage(e._state,null,t)}}class vt extends Error{constructor(t,n){super(t),this.name="DevalueError",this.path=n.join("")}}function no(e){return Object(e)!==e}const ni=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function oi(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===ni}function ri(e){return Object.prototype.toString.call(e).slice(8,-1)}function si(e){switch(e){case'"':return'\\"';case"<":return"\\u003C";case"\\":return"\\\\";case` -`:return"\\n";case"\r":return"\\r";case" ":return"\\t";case"\b":return"\\b";case"\f":return"\\f";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return e<" "?`\\u${e.charCodeAt(0).toString(16).padStart(4,"0")}`:""}}function ye(e){let t="",n=0;const o=e.length;for(let r=0;r0&&(f+=","),g in d?(a.push(`[${g}]`),f+=i(d[g]),a.pop()):f+=oo;f+="]";break;case"Set":f='["Set"';for(const g of d)f+=`,${i(g)}`;f+="]";break;case"Map":f='["Map"';for(const[g,_]of d)a.push(`.get(${no(g)?Et(g):"..."})`),f+=`,${i(g)},${i(_)}`;f+="]";break;default:if(!oi(d))throw new vt("Cannot stringify arbitrary non-POJOs",a);if(Object.getOwnPropertySymbols(d).length>0)throw new vt("Cannot stringify POJOs with symbolic keys",a);if(Object.getPrototypeOf(d)===null){f='["null"';for(const g in d)a.push(`.${g}`),f+=`,${ye(g)},${i(d[g])}`,a.pop();f+="]"}else{f="{";let g=!1;for(const _ in d)g&&(f+=","),g=!0,a.push(`.${_}`),f+=`${ye(_)}:${i(d[_])}`,a.pop();f+="}"}}return n[l]=f,l}const u=i(e);return u<0?`${u}`:`[${n.join(",")}]`}function Et(e){const t=typeof e;return t==="string"?ye(e):e instanceof String?ye(e.toString()):e===void 0?_t.toString():e===0&&1/e<0?bt.toString():t==="bigint"?`["BigInt","${e}"]`:String(e)}function ii(e,t,{initialize:n,type:o}){let r=`${t.$id}-${e.toString()}`,a=new wt(r,{type:o}),c=!1,i=0;s.watch(()=>t[e],l=>{c||(i=Date.now(),a.postMessage({timestamp:i,state:io(co(l))})),c=!1},{deep:!0}),a.onmessage=l=>{if(l===void 0){a.postMessage({timestamp:i,state:io(co(t[e]))});return}l.timestamp<=i||(c=!0,i=l.timestamp,t[e]=l.state)};let u=()=>a.postMessage(void 0),d=()=>a.close();return n&&u(),{sync:u,unshare:d}}var ci=(e,t)=>Object.keys(t).includes(e),li=({initialize:e=!0,enable:t=!0,type:n})=>({store:o,options:r})=>{var a,c;let i=((a=r==null?void 0:r.share)==null?void 0:a.enable)??t,u=((c=r==null?void 0:r.share)==null?void 0:c.omit)??[];!i||Object.keys(o.$state).forEach(d=>{var l;u.includes(d)||!ci(d,o.$state)||ii(d,o,{initialize:((l=r==null?void 0:r.share)==null?void 0:l.initialize)??e,type:n})})};Rr().use(li({enable:!0,initialize:!0}));const lo=s.defineComponent({__name:"Doctype",setup(e){const{stonecrop:t,isReady:n}=rn(),o=s.ref([]);return s.watch(n,()=>{if(n.value){let r=t.value.schema.schema.toArray();r.forEach((a,c)=>{const u=t.value.store.record[a.fieldname];r[c].value=u}),o.value=r}}),(r,a)=>s.unref(n)?(s.openBlock(),s.createBlock(s.unref(nr),{key:0,class:"aform-main",modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=c=>o.value=c)},null,8,["modelValue"])):s.createCommentVNode("",!0)}});var uo;const fo=typeof window<"u",ui=e=>typeof e=="string",di=()=>{};fo&&(uo=window==null?void 0:window.navigator)!=null&&uo.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function po(e){return typeof e=="function"?e():s.unref(e)}function fi(e){return e}function pi(e){return s.getCurrentScope()?(s.onScopeDispose(e),!0):!1}function kt(e){var t;const n=po(e);return(t=n==null?void 0:n.$el)!=null?t:n}const ho=fo?window:void 0;function hi(...e){let t,n,o,r;if(ui(e[0])||Array.isArray(e[0])?([n,o,r]=e,t=ho):[t,n,o,r]=e,!t)return di;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const a=[],c=()=>{a.forEach(l=>l()),a.length=0},i=(l,f,p,h)=>(l.addEventListener(f,p,h),()=>l.removeEventListener(f,p,h)),u=s.watch(()=>[kt(t),po(r)],([l,f])=>{c(),l&&a.push(...n.flatMap(p=>o.map(h=>i(l,p,h,f))))},{immediate:!0,flush:"post"}),d=()=>{u(),c()};return pi(d),d}const mo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},go="__vueuse_ssr_handlers__";mo[go]=mo[go]||{};function mi(e,{window:t=ho,scrollTarget:n}={}){const o=s.ref(!1),r=()=>{if(!t)return;const a=t.document,c=kt(e);if(!c)o.value=!1;else{const i=c.getBoundingClientRect();o.value=i.top<=(t.innerHeight||a.documentElement.clientHeight)&&i.left<=(t.innerWidth||a.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return s.watch(()=>kt(e),()=>r(),{immediate:!0,flush:"post"}),t&&hi(n||t,"scroll",r,{capture:!1,passive:!0}),o}var yo;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(yo||(yo={}));var gi=Object.defineProperty,wo=Object.getOwnPropertySymbols,yi=Object.prototype.hasOwnProperty,wi=Object.prototype.propertyIsEnumerable,vo=(e,t,n)=>t in e?gi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,vi=(e,t)=>{for(var n in t||(t={}))yi.call(t,n)&&vo(e,n,t[n]);if(wo)for(var n of wo(t))wi.call(t,n)&&vo(e,n,t[n]);return e};vi({linear:fi},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const ne=e=>{let t=mi(e).value;return t=t&&e.offsetHeight>0,t},oe=e=>e.tabIndex>=0,_o=e=>{const t=e.target;return St(t)},St=e=>{var t;let n;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(n=r)}}else if(e instanceof HTMLTableRowElement){const o=e.previousElementSibling;o&&(n=o)}return n&&(!oe(n)||!ne(n))?St(n):n},_i=e=>{var t;const n=e.target;let o;if(n instanceof HTMLTableCellElement){const r=(t=n.parentElement)==null?void 0:t.parentElement;if(r){const a=r.firstElementChild.children[n.cellIndex];a&&(o=a)}}else if(n instanceof HTMLTableRowElement){const r=n.parentElement;if(r){const a=r.firstElementChild;a&&(o=a)}}return o&&(!oe(o)||!ne(o))?It(o):o},bo=e=>{const t=e.target;return It(t)},It=e=>{var t;let n;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(n=r)}}else if(e instanceof HTMLTableRowElement){const o=e.nextElementSibling;o&&(n=o)}return n&&(!oe(n)||!ne(n))?It(n):n},bi=e=>{var t;const n=e.target;let o;if(n instanceof HTMLTableCellElement){const r=(t=n.parentElement)==null?void 0:t.parentElement;if(r){const a=r.lastElementChild.children[n.cellIndex];a&&(o=a)}}else if(n instanceof HTMLTableRowElement){const r=n.parentElement;if(r){const a=r.lastElementChild;a&&(o=a)}}return o&&(!oe(o)||!ne(o))?St(o):o},Eo=e=>{const t=e.target;return Ot(t)},Ot=e=>{var t;let n;if(e.previousElementSibling)n=e.previousElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;n=o==null?void 0:o.lastElementChild}return n&&(!oe(n)||!ne(n))?Ot(n):n},ko=e=>{const t=e.target;return Ct(t)},Ct=e=>{var t;let n;if(e.nextElementSibling)n=e.nextElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;n=o==null?void 0:o.firstElementChild}return n&&(!oe(n)||!ne(n))?Ct(n):n},So=e=>{const t=e.target.parentElement.firstElementChild;return t&&(!oe(t)||!ne(t))?Ct(t):t},Io=e=>{const t=e.target.parentElement.lastElementChild;return t&&(!oe(t)||!ne(t))?Ot(t):t},Ue=["alt","control","shift","meta"],Ei={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},Oo={"keydown.up":e=>{const t=_o(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=bo(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=Eo(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=ko(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=_i(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=bi(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=So(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=Io(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=Io(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=bo(e);t&&t.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=_o(e);t&&t.focus()}},"keydown.home":e=>{const t=So(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=ko(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=Eo(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function Co(e){const t=o=>{let r=null;o.parent&&(typeof o.parent=="string"?r=document.querySelector(o.parent):o.parent instanceof Element?r=o.parent:r=o.parent.value);let a=[];if(o.selectors)if(typeof o.selectors=="string")a=r?Array.from(r.querySelectorAll(o.selectors)):Array.from(document.querySelectorAll(o.selectors));else if(o.selectors instanceof Element)a.push(o.selectors);else if(Array.isArray(o.selectors.value))for(const c of o.selectors.value)c instanceof Element?a.push(c):a.push(c.$el);else a.push(o.selectors.value);else a=Array.from(r.children).filter(c=>oe(c)&&ne(c));return a},n=o=>r=>{const a=Ei[r.key]||r.key.toLowerCase();if(Ue.includes(a))return;const c=o.handlers||Oo;for(const i of Object.keys(c)){const[u,...d]=i.split(".");if(u==="keydown"&&d.includes(a)){const l=c[i],f=d.filter(h=>Ue.includes(h)),p=Ue.some(h=>{const y=h.charAt(0).toUpperCase()+h.slice(1);return r.getModifierState(y)});if(f.length>0){if(p){for(const h of Ue)if(d.includes(h)){const y=h.charAt(0).toUpperCase()+h.slice(1);r.getModifierState(y)&&l(r)}}}else p||l(r)}}};s.onMounted(()=>{for(const o of e){const r=t(o);for(const a of r)a.addEventListener("keydown",n(o))}}),s.onBeforeUnmount(()=>{for(const o of e){const r=t(o);for(const a of r)a.removeEventListener("keydown",n(o))}})}const ki=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Si={key:1},Ii=s.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},tableid:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},clickHandler:{}},setup(e){var t;const n=e,o=s.inject(n.tableid),r=s.ref(null);let a=s.ref(!1);const c=s.computed(()=>{const g=o.cellData(n.colIndex,n.rowIndex);if(o.columns[n.colIndex].format){const _=o.columns[n.colIndex].format;return typeof _=="function"?_(g):typeof _=="string"?Function(`"use strict";return (${_})`)()(g):g}else return g}),i=g=>{if(n.clickHandler){n.clickHandler(g);return}if(o.columns[n.colIndex].mask,o.columns[n.colIndex].modalComponent){const _=r.value.getBoundingClientRect();o.modal.visible=!0,o.modal.colIndex=n.colIndex,o.modal.rowIndex=n.rowIndex,o.modal.parent=r.value,o.modal.top=_.top+_.height,o.modal.left=_.left,o.modal.width=d.value,o.modal.component=o.columns[n.colIndex].modalComponent,o.modal.componentProps=o.columns[n.colIndex].modalComponentProps}};if(n.addNavigation){let g={...Oo,"keydown.f2":i,"keydown.alt.up":i,"keydown.alt.down":i,"keydown.alt.left":i,"keydown.alt.right":i};typeof n.addNavigation=="object"&&(g={...g,...n.addNavigation}),Co([{selectors:r,handlers:g}])}const u=s.computed(()=>o.columns[n.colIndex].align||"center"),d=s.computed(()=>o.columns[n.colIndex].width||"40ch");let l="";const f=()=>{r.value&&(l=r.value.innerText)},p=()=>{r.value&&r.value.innerHTML!==l&&(l=r.value.innerText,r.value.dispatchEvent(new Event("change")),a.value=!0,o.columns[n.colIndex].format||o.setCellData(n.rowIndex,n.colIndex,l))},h=(g,_)=>_&&g===0&&_>0?`${_}ch`:"inherit",y={textAlign:u.value,width:d.value,backgroundColor:a.value?"var(--cell-modified-color)":"inherit",fontWeight:a.value?"bold":"inherit",paddingLeft:h(n.colIndex,(t=o.display[n.rowIndex])==null?void 0:t.indent)};return(g,_)=>(s.openBlock(),s.createElementBlock("td",{ref_key:"cell",ref:r,"data-colindex":g.colIndex,"data-rowindex":g.rowIndex,"data-editable":s.unref(o).columns[g.colIndex].edit,contenteditable:s.unref(o).columns[g.colIndex].edit,tabindex:g.tabIndex,spellcheck:!1,style:y,onFocus:f,onPaste:p,onBlur:p,onInput:p,onClick:i,onMousedown:i},[s.unref(o).columns[g.colIndex].cellComponent?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(s.unref(o).columns[g.colIndex].cellComponent),s.mergeProps({key:0,value:c.value},s.unref(o).columns[g.colIndex].cellComponentProps),null,16,["value"])):(s.openBlock(),s.createElementBlock("span",Si,s.toDisplayString(c.value),1))],40,ki))}}),Pe=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},Oi=Pe(Ii,[["__scopeId","data-v-07dfe445"]]),Ci=["tabindex"],Ni={key:0,tabIndex:-1,class:"list-index"},Pi=s.defineComponent({__name:"ARow",props:{row:{},rowIndex:{},tableid:{},tabIndex:{default:-1},addNavigation:{}},setup(e){s.useCssVars(u=>({"5b18ee03":s.unref(r)}));const t=e,n=s.inject(t.tableid),o=s.ref(null),r=n.numberedRowWidth.value,a=()=>n.config.view!=="tree"?"":n.display[t.rowIndex].isRoot||n.display[t.rowIndex].isParent?n.display[t.rowIndex].childrenOpen?"-":"+":"",c=()=>n.config.view!=="tree"||n.display[t.rowIndex].isRoot||n.display[t.rowIndex].open,i=u=>{n.toggleRowExpand(u)};return t.addNavigation&&Co([{selectors:o,handlers:t.addNavigation}]),(u,d)=>s.withDirectives((s.openBlock(),s.createElementBlock("tr",{ref_key:"rowEl",ref:o,tabindex:u.tabIndex,class:"table-row"},[s.unref(n).config.view==="list"?(s.openBlock(),s.createElementBlock("td",Ni,s.toDisplayString(u.rowIndex+1),1)):s.unref(n).config.view==="tree"?(s.openBlock(),s.createElementBlock("td",{key:1,tabIndex:-1,class:"tree-index",onClick:d[0]||(d[0]=l=>i(u.rowIndex))},s.toDisplayString(a()),1)):s.renderSlot(u.$slots,"indexCell",{key:2},void 0,!0),s.renderSlot(u.$slots,"default",{},void 0,!0)],8,Ci)),[[s.vShow,c()]])}}),xi=Pe(Pi,[["__scopeId","data-v-4c71a067"]]);let He;const $i=new Uint8Array(16);function Ri(){if(!He&&(He=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!He))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return He($i)}const M=[];for(let e=0;e<256;++e)M.push((e+256).toString(16).slice(1));function Ti(e,t=0){return M[e[t+0]]+M[e[t+1]]+M[e[t+2]]+M[e[t+3]]+"-"+M[e[t+4]]+M[e[t+5]]+"-"+M[e[t+6]]+M[e[t+7]]+"-"+M[e[t+8]]+M[e[t+9]]+"-"+M[e[t+10]]+M[e[t+11]]+M[e[t+12]]+M[e[t+13]]+M[e[t+14]]+M[e[t+15]]}const Ai=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),No={randomUUID:Ai};function Po(e,t,n){if(No.randomUUID&&!t&&!e)return No.randomUUID();e=e||{};const o=e.random||(e.rng||Ri)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,t){n=n||0;for(let r=0;r<16;++r)t[n+r]=o[r];return t}return Ti(o)}class Di{constructor(t,n,o,r,a,c){this.id=t||Po(),this.rows=o,this.columns=s.reactive(n),this.config=s.reactive(r),this.table=a||s.reactive(this.createTableObject()),this.display=this.createDisplayObject(c),this.modal=s.reactive({visible:!1})}createTableObject(){const t={};for(const[n,o]of this.columns.entries())for(const[r,a]of this.rows.entries())t[`${n}:${r}`]=a[o.name];return t}createDisplayObject(t){const n=[Object.assign({},{modified:!1})];if(t&&"0:0"in t)return t;const o=new Set;for(let r=this.rows.length-1;r>=0;r--){const a=this.rows[r];a.parent&&o.add(a.parent),n[r]={childrenOpen:!1,expanded:!1,indent:a.indent||null,isParent:o.has(r),isRoot:a.parent===null||a.parent===void 0,modified:!1,open:a.parent===null||a.parent===void 0,parent:a.parent}}return s.reactive(n)}get zeroColumn(){return["list","tree","list-expansion"].includes(this.config.view)}get numberedRowWidth(){return s.computed(()=>String(Math.ceil(this.rows.length/100)+1)+"ch")}cellData(t,n){return this.table[`${t}:${n}`]}setCellData(t,n,o){this.table[`${n}:${t}`]!==o&&(this.display[t].modified=!0),this.table[`${n}:${t}`]=o;const r=this.columns[n];return this.rows[t][r.name]=o,this.table[`${n}:${t}`]}toggleRowExpand(t){if(this.config.view==="tree"){this.display[t].childrenOpen=!this.display[t].childrenOpen;for(let n=this.rows.length-1;n>=0;n--)this.display[n].parent===t&&(this.display[n].open=!this.display[n].open,this.display[n].childrenOpen&&this.toggleRowExpand(n))}else this.config.view==="list-expansion"&&(this.display[t].expanded=!this.display[t].expanded)}}const Vi={key:0},Bi={class:"atable-header-row",tabindex:"-1"},Mi={key:0,id:"header-index"},Li=s.defineComponent({__name:"ATableHeader",props:{columns:{},config:{},tableid:{}},setup(e){s.useCssVars(r=>({"12d06943":s.unref(n)}));const t=s.inject(e.tableid),n=t.numberedRowWidth.value,o=r=>({minWidth:r.width||"40ch",textAlign:r.align||"center",width:t.config.fullWidth?"auto":null});return(r,a)=>r.columns.length?(s.openBlock(),s.createElementBlock("thead",Vi,[s.createElementVNode("tr",Bi,[s.unref(t).zeroColumn?(s.openBlock(),s.createElementBlock("th",Mi)):s.createCommentVNode("",!0),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(r.columns,(c,i)=>(s.openBlock(),s.createElementBlock("th",{key:i,tabindex:"-1",style:s.normalizeStyle(o(c))},[s.renderSlot(r.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(c.label||String.fromCharCode(i+97).toUpperCase()),1)],!0)],4))),128))])])):s.createCommentVNode("",!0)}}),ji=Pe(Li,[["__scopeId","data-v-16e66636"]]),Ui=s.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},tableid:{}},setup(e){s.inject(e.tableid);const t=n=>{n.stopPropagation()};return(n,o)=>(s.openBlock(),s.createElementBlock("div",{ref:"amodal",class:"amodal",tabindex:"-1",onClick:t,onInput:t},[s.renderSlot(n.$slots,"default",{},void 0,!0)],544))}}),Hi=Pe(Ui,[["__scopeId","data-v-10a48b2a"]]),Fi=s.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object},tableid:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t;let r=n.modelValue?n.modelValue:n.rows,a=new Di(n.id,n.columns,r,n.config);s.provide(a.id,a),s.watch(()=>a.rows,(i,u)=>{o("update:modelValue",i)},{deep:!0});const c=i=>{var u;(u=a.modal.parent)!=null&&u.contains(i.target)||a.modal.visible&&(a.modal.visible=!1)};return window.addEventListener("click",c),window.addEventListener("keydown",i=>{if(i.key==="Escape"&&a.modal.visible){a.modal.visible=!1;const u=a.modal.parent;u&&s.nextTick().then(()=>{const d=u.dataset.rowindex,l=u.dataset.colindex,f=document.querySelectorAll(`[data-rowindex='${d}'][data-colindex='${l}']`);f&&f[0].focus()})}}),(i,u)=>(s.openBlock(),s.createElementBlock("table",{class:"atable",style:s.normalizeStyle({width:s.unref(a).config.fullWidth?"100%":"auto"})},[s.renderSlot(i.$slots,"header",{data:s.unref(a)},()=>[s.createVNode(ji,{columns:s.unref(a).columns,config:s.unref(a).config,tableid:s.unref(a).id},null,8,["columns","config","tableid"])],!0),s.createElementVNode("tbody",null,[s.renderSlot(i.$slots,"body",{data:s.unref(a)},()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(a).rows,(d,l)=>(s.openBlock(),s.createBlock(xi,{key:d.id||s.unref(Po)(),row:d,rowIndex:l,tableid:s.unref(a).id},{default:s.withCtx(()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(a).columns,(f,p)=>(s.openBlock(),s.createBlock(Oi,{key:`${p}:${l}`,tableid:s.unref(a).id,col:f,spellcheck:"false",rowIndex:l,colIndex:p+(s.unref(a).zeroColumn?0:-1),component:f.cellComponent,style:s.normalizeStyle({textAlign:(f==null?void 0:f.align)||"center",minWidth:(f==null?void 0:f.width)||"40ch",width:s.unref(a).config.fullWidth?"auto":null})},null,8,["tableid","col","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","tableid"]))),128))],!0)]),s.renderSlot(i.$slots,"footer",{data:s.unref(a)},void 0,!0),s.renderSlot(i.$slots,"modal",{data:s.unref(a)},()=>[s.withDirectives(s.createVNode(Hi,{colIndex:s.unref(a).modal.colIndex,rowIndex:s.unref(a).modal.rowIndex,tableid:s.unref(a).id,style:s.normalizeStyle({left:s.unref(a).modal.left+"px",top:s.unref(a).modal.top+"px",maxWidth:s.unref(a).modal.width+"px"})},{default:s.withCtx(()=>[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(s.unref(a).modal.component),s.mergeProps({key:`${s.unref(a).modal.rowIndex}:${s.unref(a).modal.colIndex}`,colIndex:s.unref(a).modal.colIndex,rowIndex:s.unref(a).modal.rowIndex,tableid:s.unref(a).id},s.unref(a).modal.componentProps),null,16,["colIndex","rowIndex","tableid"]))]),_:1},8,["colIndex","rowIndex","tableid","style"]),[[s.vShow,s.unref(a).modal.visible]])],!0)],4))}}),Wi=Pe(Fi,[["__scopeId","data-v-819abcc5"]]),xo=s.defineComponent({__name:"Records",setup(e){const{stonecrop:t,isReady:n}=rn(),o={view:"list"};return(r,a)=>s.unref(n)?(s.openBlock(),s.createBlock(s.unref(Wi),{key:0,columns:s.unref(t).schema.schema.toArray(),rows:s.unref(t).store.records,config:o},null,8,["columns","rows"])):s.createCommentVNode("",!0)}}),$o=e=>(s.pushScopeId("data-v-18bfde6e"),e=e(),s.popScopeId(),e),zi={class:"tabs"},Gi={tabindex:"0"},Qi={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 424.098 424.098",style:{"enable-background":"new 0 0 424.098 424.098"},"xml:space":"preserve"},qi=[$o(()=>s.createElementVNode("g",null,[s.createElementVNode("path",{style:{fill:"#010002"},d:`M351.191,401.923H72.901c-4.487,0-8.129-3.633-8.129-8.129V242.262l-56.664-0.114 +`:return"\\n";case"\r":return"\\r";case" ":return"\\t";case"\b":return"\\b";case"\f":return"\\f";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return e<" "?`\\u${e.charCodeAt(0).toString(16).padStart(4,"0")}`:""}}function ye(e){let t="",n=0;const o=e.length;for(let r=0;r0&&(f+=","),g in d?(a.push(`[${g}]`),f+=i(d[g]),a.pop()):f+=oo;f+="]";break;case"Set":f='["Set"';for(const g of d)f+=`,${i(g)}`;f+="]";break;case"Map":f='["Map"';for(const[g,_]of d)a.push(`.get(${no(g)?Et(g):"..."})`),f+=`,${i(g)},${i(_)}`;f+="]";break;default:if(!oi(d))throw new vt("Cannot stringify arbitrary non-POJOs",a);if(Object.getOwnPropertySymbols(d).length>0)throw new vt("Cannot stringify POJOs with symbolic keys",a);if(Object.getPrototypeOf(d)===null){f='["null"';for(const g in d)a.push(`.${g}`),f+=`,${ye(g)},${i(d[g])}`,a.pop();f+="]"}else{f="{";let g=!1;for(const _ in d)g&&(f+=","),g=!0,a.push(`.${_}`),f+=`${ye(_)}:${i(d[_])}`,a.pop();f+="}"}}return n[l]=f,l}const u=i(e);return u<0?`${u}`:`[${n.join(",")}]`}function Et(e){const t=typeof e;return t==="string"?ye(e):e instanceof String?ye(e.toString()):e===void 0?_t.toString():e===0&&1/e<0?bt.toString():t==="bigint"?`["BigInt","${e}"]`:String(e)}function ii(e,t,{initialize:n,type:o}){let r=`${t.$id}-${e.toString()}`,a=new wt(r,{type:o}),c=!1,i=0;s.watch(()=>t[e],l=>{c||(i=Date.now(),a.postMessage({timestamp:i,state:io(co(l))})),c=!1},{deep:!0}),a.onmessage=l=>{if(l===void 0){a.postMessage({timestamp:i,state:io(co(t[e]))});return}l.timestamp<=i||(c=!0,i=l.timestamp,t[e]=l.state)};let u=()=>a.postMessage(void 0),d=()=>a.close();return n&&u(),{sync:u,unshare:d}}var ci=(e,t)=>Object.keys(t).includes(e),li=({initialize:e=!0,enable:t=!0,type:n})=>({store:o,options:r})=>{var a,c;let i=((a=r==null?void 0:r.share)==null?void 0:a.enable)??t,u=((c=r==null?void 0:r.share)==null?void 0:c.omit)??[];!i||Object.keys(o.$state).forEach(d=>{var l;u.includes(d)||!ci(d,o.$state)||ii(d,o,{initialize:((l=r==null?void 0:r.share)==null?void 0:l.initialize)??e,type:n})})};Rr().use(li({enable:!0,initialize:!0}));const lo=s.defineComponent({__name:"Doctype",setup(e){const{stonecrop:t,isReady:n}=rn(),o=s.ref([]);return s.watch(n,()=>{if(n.value){let r=t.value.schema.schema.toArray();r.forEach((a,c)=>{const u=t.value.store.record[a.fieldname];r[c].value=u}),o.value=r}}),(r,a)=>s.unref(n)?(s.openBlock(),s.createBlock(s.unref(nr),{key:0,class:"aform-main",modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=c=>o.value=c)},null,8,["modelValue"])):s.createCommentVNode("",!0)}});var uo;const fo=typeof window<"u",ui=e=>typeof e=="string",di=()=>{};fo&&(uo=window==null?void 0:window.navigator)!=null&&uo.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function po(e){return typeof e=="function"?e():s.unref(e)}function fi(e){return e}function pi(e){return s.getCurrentScope()?(s.onScopeDispose(e),!0):!1}function kt(e){var t;const n=po(e);return(t=n==null?void 0:n.$el)!=null?t:n}const ho=fo?window:void 0;function hi(...e){let t,n,o,r;if(ui(e[0])||Array.isArray(e[0])?([n,o,r]=e,t=ho):[t,n,o,r]=e,!t)return di;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const a=[],c=()=>{a.forEach(l=>l()),a.length=0},i=(l,f,p,h)=>(l.addEventListener(f,p,h),()=>l.removeEventListener(f,p,h)),u=s.watch(()=>[kt(t),po(r)],([l,f])=>{c(),l&&a.push(...n.flatMap(p=>o.map(h=>i(l,p,h,f))))},{immediate:!0,flush:"post"}),d=()=>{u(),c()};return pi(d),d}const mo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},go="__vueuse_ssr_handlers__";mo[go]=mo[go]||{};function mi(e,{window:t=ho,scrollTarget:n}={}){const o=s.ref(!1),r=()=>{if(!t)return;const a=t.document,c=kt(e);if(!c)o.value=!1;else{const i=c.getBoundingClientRect();o.value=i.top<=(t.innerHeight||a.documentElement.clientHeight)&&i.left<=(t.innerWidth||a.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return s.watch(()=>kt(e),()=>r(),{immediate:!0,flush:"post"}),t&&hi(n||t,"scroll",r,{capture:!1,passive:!0}),o}var yo;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(yo||(yo={}));var gi=Object.defineProperty,wo=Object.getOwnPropertySymbols,yi=Object.prototype.hasOwnProperty,wi=Object.prototype.propertyIsEnumerable,vo=(e,t,n)=>t in e?gi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,vi=(e,t)=>{for(var n in t||(t={}))yi.call(t,n)&&vo(e,n,t[n]);if(wo)for(var n of wo(t))wi.call(t,n)&&vo(e,n,t[n]);return e};vi({linear:fi},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const ne=e=>{let t=mi(e).value;return t=t&&e.offsetHeight>0,t},oe=e=>e.tabIndex>=0,_o=e=>{const t=e.target;return St(t)},St=e=>{var t;let n;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(n=r)}}else if(e instanceof HTMLTableRowElement){const o=e.previousElementSibling;o&&(n=o)}return n&&(!oe(n)||!ne(n))?St(n):n},_i=e=>{var t;const n=e.target;let o;if(n instanceof HTMLTableCellElement){const r=(t=n.parentElement)==null?void 0:t.parentElement;if(r){const a=r.firstElementChild.children[n.cellIndex];a&&(o=a)}}else if(n instanceof HTMLTableRowElement){const r=n.parentElement;if(r){const a=r.firstElementChild;a&&(o=a)}}return o&&(!oe(o)||!ne(o))?It(o):o},bo=e=>{const t=e.target;return It(t)},It=e=>{var t;let n;if(e instanceof HTMLTableCellElement){const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;if(o){const r=Array.from(o.children)[e.cellIndex];r&&(n=r)}}else if(e instanceof HTMLTableRowElement){const o=e.nextElementSibling;o&&(n=o)}return n&&(!oe(n)||!ne(n))?It(n):n},bi=e=>{var t;const n=e.target;let o;if(n instanceof HTMLTableCellElement){const r=(t=n.parentElement)==null?void 0:t.parentElement;if(r){const a=r.lastElementChild.children[n.cellIndex];a&&(o=a)}}else if(n instanceof HTMLTableRowElement){const r=n.parentElement;if(r){const a=r.lastElementChild;a&&(o=a)}}return o&&(!oe(o)||!ne(o))?St(o):o},Eo=e=>{const t=e.target;return Ot(t)},Ot=e=>{var t;let n;if(e.previousElementSibling)n=e.previousElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.previousElementSibling;n=o==null?void 0:o.lastElementChild}return n&&(!oe(n)||!ne(n))?Ot(n):n},ko=e=>{const t=e.target;return Ct(t)},Ct=e=>{var t;let n;if(e.nextElementSibling)n=e.nextElementSibling;else{const o=(t=e.parentElement)==null?void 0:t.nextElementSibling;n=o==null?void 0:o.firstElementChild}return n&&(!oe(n)||!ne(n))?Ct(n):n},So=e=>{const t=e.target.parentElement.firstElementChild;return t&&(!oe(t)||!ne(t))?Ct(t):t},Io=e=>{const t=e.target.parentElement.lastElementChild;return t&&(!oe(t)||!ne(t))?Ot(t):t},Ue=["alt","control","shift","meta"],Ei={ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"},Oo={"keydown.up":e=>{const t=_o(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.down":e=>{const t=bo(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.left":e=>{const t=Eo(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.right":e=>{const t=ko(e);e.preventDefault(),e.stopPropagation(),t&&t.focus()},"keydown.control.up":e=>{const t=_i(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.down":e=>{const t=bi(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.left":e=>{const t=So(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.control.right":e=>{const t=Io(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.end":e=>{const t=Io(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=bo(e);t&&t.focus()}},"keydown.shift.enter":e=>{if(e.target instanceof HTMLTableCellElement){e.preventDefault(),e.stopPropagation();const t=_o(e);t&&t.focus()}},"keydown.home":e=>{const t=So(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.tab":e=>{const t=ko(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())},"keydown.shift.tab":e=>{const t=Eo(e);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}};function Co(e){const t=o=>{let r=null;o.parent&&(typeof o.parent=="string"?r=document.querySelector(o.parent):o.parent instanceof Element?r=o.parent:r=o.parent.value);let a=[];if(o.selectors)if(typeof o.selectors=="string")a=r?Array.from(r.querySelectorAll(o.selectors)):Array.from(document.querySelectorAll(o.selectors));else if(o.selectors instanceof Element)a.push(o.selectors);else if(Array.isArray(o.selectors.value))for(const c of o.selectors.value)c instanceof Element?a.push(c):a.push(c.$el);else a.push(o.selectors.value);else a=Array.from(r.children).filter(c=>oe(c)&&ne(c));return a},n=o=>r=>{const a=Ei[r.key]||r.key.toLowerCase();if(Ue.includes(a))return;const c=o.handlers||Oo;for(const i of Object.keys(c)){const[u,...d]=i.split(".");if(u==="keydown"&&d.includes(a)){const l=c[i],f=d.filter(h=>Ue.includes(h)),p=Ue.some(h=>{const y=h.charAt(0).toUpperCase()+h.slice(1);return r.getModifierState(y)});if(f.length>0){if(p){for(const h of Ue)if(d.includes(h)){const y=h.charAt(0).toUpperCase()+h.slice(1);r.getModifierState(y)&&l(r)}}}else p||l(r)}}};s.onMounted(()=>{for(const o of e){const r=t(o);for(const a of r)a.addEventListener("keydown",n(o))}}),s.onBeforeUnmount(()=>{for(const o of e){const r=t(o);for(const a of r)a.removeEventListener("keydown",n(o))}})}const ki=["data-colindex","data-rowindex","data-editable","contenteditable","tabindex"],Si={key:1},Ii=s.defineComponent({__name:"ACell",props:{colIndex:{},rowIndex:{},tableid:{},addNavigation:{type:[Boolean,Object],default:!0},tabIndex:{default:0},clickHandler:{}},setup(e){var t;const n=e,o=s.inject(n.tableid),r=s.ref(null);let a=s.ref(!1);const c=s.computed(()=>{const g=o.cellData(n.colIndex,n.rowIndex);if(o.columns[n.colIndex].format){const _=o.columns[n.colIndex].format;return typeof _=="function"?_(g):typeof _=="string"?Function(`"use strict";return (${_})`)()(g):g}else return g}),i=g=>{if(n.clickHandler){n.clickHandler(g);return}if(o.columns[n.colIndex].mask,o.columns[n.colIndex].modalComponent){const _=r.value.getBoundingClientRect();o.modal.visible=!0,o.modal.colIndex=n.colIndex,o.modal.rowIndex=n.rowIndex,o.modal.parent=r.value,o.modal.top=_.top+_.height,o.modal.left=_.left,o.modal.width=d.value,o.modal.component=o.columns[n.colIndex].modalComponent,o.modal.componentProps=o.columns[n.colIndex].modalComponentProps}};if(n.addNavigation){let g={...Oo,"keydown.f2":i,"keydown.alt.up":i,"keydown.alt.down":i,"keydown.alt.left":i,"keydown.alt.right":i};typeof n.addNavigation=="object"&&(g={...g,...n.addNavigation}),Co([{selectors:r,handlers:g}])}const u=s.computed(()=>o.columns[n.colIndex].align||"center"),d=s.computed(()=>o.columns[n.colIndex].width||"40ch");let l="";const f=()=>{r.value&&(l=r.value.innerText)},p=()=>{r.value&&r.value.innerHTML!==l&&(l=r.value.innerText,r.value.dispatchEvent(new Event("change")),a.value=!0,o.columns[n.colIndex].format||o.setCellData(n.rowIndex,n.colIndex,l))},h=(g,_)=>_&&g===0&&_>0?`${_}ch`:"inherit",y={textAlign:u.value,width:d.value,backgroundColor:a.value?"var(--cell-modified-color)":"inherit",fontWeight:a.value?"bold":"inherit",paddingLeft:h(n.colIndex,(t=o.display[n.rowIndex])==null?void 0:t.indent)};return(g,_)=>(s.openBlock(),s.createElementBlock("td",{ref_key:"cell",ref:r,"data-colindex":g.colIndex,"data-rowindex":g.rowIndex,"data-editable":s.unref(o).columns[g.colIndex].edit,contenteditable:s.unref(o).columns[g.colIndex].edit,tabindex:g.tabIndex,spellcheck:!1,style:y,onFocus:f,onPaste:p,onBlur:p,onInput:p,onClick:i,onMousedown:i},[s.unref(o).columns[g.colIndex].cellComponent?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(s.unref(o).columns[g.colIndex].cellComponent),s.mergeProps({key:0,value:c.value},s.unref(o).columns[g.colIndex].cellComponentProps),null,16,["value"])):(s.openBlock(),s.createElementBlock("span",Si,s.toDisplayString(c.value),1))],40,ki))}}),Pe=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},Oi=Pe(Ii,[["__scopeId","data-v-07dfe445"]]),Ci=["tabindex"],Ni={key:0,tabIndex:-1,class:"list-index"},Pi=s.defineComponent({__name:"ARow",props:{row:{},rowIndex:{},tableid:{},tabIndex:{default:-1},addNavigation:{}},setup(e){s.useCssVars(u=>({"5b18ee03":s.unref(r)}));const t=e,n=s.inject(t.tableid),o=s.ref(null),r=n.numberedRowWidth.value,a=()=>n.config.view!=="tree"?"":n.display[t.rowIndex].isRoot||n.display[t.rowIndex].isParent?n.display[t.rowIndex].childrenOpen?"-":"+":"",c=()=>n.config.view!=="tree"||n.display[t.rowIndex].isRoot||n.display[t.rowIndex].open,i=u=>{n.toggleRowExpand(u)};return t.addNavigation&&Co([{selectors:o,handlers:t.addNavigation}]),(u,d)=>s.withDirectives((s.openBlock(),s.createElementBlock("tr",{ref_key:"rowEl",ref:o,tabindex:u.tabIndex,class:"table-row"},[s.unref(n).config.view==="list"?(s.openBlock(),s.createElementBlock("td",Ni,s.toDisplayString(u.rowIndex+1),1)):s.unref(n).config.view==="tree"?(s.openBlock(),s.createElementBlock("td",{key:1,tabIndex:-1,class:"tree-index",onClick:d[0]||(d[0]=l=>i(u.rowIndex))},s.toDisplayString(a()),1)):s.renderSlot(u.$slots,"indexCell",{key:2},void 0,!0),s.renderSlot(u.$slots,"default",{},void 0,!0)],8,Ci)),[[s.vShow,c()]])}}),xi=Pe(Pi,[["__scopeId","data-v-4c71a067"]]);let He;const $i=new Uint8Array(16);function Ri(){if(!He&&(He=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!He))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return He($i)}const M=[];for(let e=0;e<256;++e)M.push((e+256).toString(16).slice(1));function Ti(e,t=0){return M[e[t+0]]+M[e[t+1]]+M[e[t+2]]+M[e[t+3]]+"-"+M[e[t+4]]+M[e[t+5]]+"-"+M[e[t+6]]+M[e[t+7]]+"-"+M[e[t+8]]+M[e[t+9]]+"-"+M[e[t+10]]+M[e[t+11]]+M[e[t+12]]+M[e[t+13]]+M[e[t+14]]+M[e[t+15]]}const Ai=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),No={randomUUID:Ai};function Po(e,t,n){if(No.randomUUID&&!t&&!e)return No.randomUUID();e=e||{};const o=e.random||(e.rng||Ri)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,t){n=n||0;for(let r=0;r<16;++r)t[n+r]=o[r];return t}return Ti(o)}class Di{constructor(t,n,o,r,a,c){this.id=t||Po(),this.rows=o,this.columns=s.reactive(n),this.config=s.reactive(r),this.table=a||s.reactive(this.createTableObject()),this.display=this.createDisplayObject(c),this.modal=s.reactive({visible:!1})}createTableObject(){const t={};for(const[n,o]of this.columns.entries())for(const[r,a]of this.rows.entries())t[`${n}:${r}`]=a[o.name];return t}createDisplayObject(t){const n=[Object.assign({},{modified:!1})];if(t&&"0:0"in t)return t;const o=new Set;for(let r=this.rows.length-1;r>=0;r--){const a=this.rows[r];a.parent&&o.add(a.parent),n[r]={childrenOpen:!1,expanded:!1,indent:a.indent||null,isParent:o.has(r),isRoot:a.parent===null||a.parent===void 0,modified:!1,open:a.parent===null||a.parent===void 0,parent:a.parent}}return s.reactive(n)}get zeroColumn(){return["list","tree","list-expansion"].includes(this.config.view)}get numberedRowWidth(){return s.computed(()=>String(Math.ceil(this.rows.length/100)+1)+"ch")}cellData(t,n){return this.table[`${t}:${n}`]}setCellData(t,n,o){this.table[`${n}:${t}`]!==o&&(this.display[t].modified=!0),this.table[`${n}:${t}`]=o;const r=this.columns[n];return this.rows[t][r.name]=o,this.table[`${n}:${t}`]}toggleRowExpand(t){if(this.config.view==="tree"){this.display[t].childrenOpen=!this.display[t].childrenOpen;for(let n=this.rows.length-1;n>=0;n--)this.display[n].parent===t&&(this.display[n].open=!this.display[n].open,this.display[n].childrenOpen&&this.toggleRowExpand(n))}else this.config.view==="list-expansion"&&(this.display[t].expanded=!this.display[t].expanded)}}const Vi={key:0},Bi={class:"atable-header-row",tabindex:"-1"},Mi={key:0,id:"header-index"},Li=s.defineComponent({__name:"ATableHeader",props:{columns:{},config:{},tableid:{}},setup(e){s.useCssVars(r=>({"12d06943":s.unref(n)}));const t=s.inject(e.tableid),n=t.numberedRowWidth.value,o=r=>({minWidth:r.width||"40ch",textAlign:r.align||"center",width:t.config.fullWidth?"auto":null});return(r,a)=>r.columns.length?(s.openBlock(),s.createElementBlock("thead",Vi,[s.createElementVNode("tr",Bi,[s.unref(t).zeroColumn?(s.openBlock(),s.createElementBlock("th",Mi)):s.createCommentVNode("",!0),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(r.columns,(c,i)=>(s.openBlock(),s.createElementBlock("th",{key:i,tabindex:"-1",style:s.normalizeStyle(o(c))},[s.renderSlot(r.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(c.label||String.fromCharCode(i+97).toUpperCase()),1)],!0)],4))),128))])])):s.createCommentVNode("",!0)}}),ji=Pe(Li,[["__scopeId","data-v-16e66636"]]),Ui=s.defineComponent({__name:"ATableModal",props:{colIndex:{},rowIndex:{},tableid:{}},setup(e){s.inject(e.tableid);const t=n=>{n.stopPropagation()};return(n,o)=>(s.openBlock(),s.createElementBlock("div",{ref:"amodal",class:"amodal",tabindex:"-1",onClick:t,onInput:t},[s.renderSlot(n.$slots,"default",{},void 0,!0)],544))}}),Hi=Pe(Ui,[["__scopeId","data-v-10a48b2a"]]),Fi=s.defineComponent({__name:"ATable",props:{id:{},modelValue:{},columns:{},rows:{default:()=>[]},config:{default:()=>new Object},tableid:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t;let r=n.modelValue?n.modelValue:n.rows,a=new Di(n.id,n.columns,r,n.config);s.provide(a.id,a),s.watch(()=>a.rows,i=>{o("update:modelValue",i)},{deep:!0});const c=i=>{var u;(u=a.modal.parent)!=null&&u.contains(i.target)||a.modal.visible&&(a.modal.visible=!1)};return window.addEventListener("click",c),window.addEventListener("keydown",i=>{if(i.key==="Escape"&&a.modal.visible){a.modal.visible=!1;const u=a.modal.parent;u&&s.nextTick().then(()=>{const d=u.dataset.rowindex,l=u.dataset.colindex,f=document.querySelectorAll(`[data-rowindex='${d}'][data-colindex='${l}']`);f&&f[0].focus()})}}),(i,u)=>(s.openBlock(),s.createElementBlock("table",{class:"atable",style:s.normalizeStyle({width:s.unref(a).config.fullWidth?"100%":"auto"})},[s.renderSlot(i.$slots,"header",{data:s.unref(a)},()=>[s.createVNode(ji,{columns:s.unref(a).columns,config:s.unref(a).config,tableid:s.unref(a).id},null,8,["columns","config","tableid"])],!0),s.createElementVNode("tbody",null,[s.renderSlot(i.$slots,"body",{data:s.unref(a)},()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(a).rows,(d,l)=>(s.openBlock(),s.createBlock(xi,{key:d.id||s.unref(Po)(),row:d,rowIndex:l,tableid:s.unref(a).id},{default:s.withCtx(()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(a).columns,(f,p)=>(s.openBlock(),s.createBlock(Oi,{key:`${p}:${l}`,tableid:s.unref(a).id,col:f,spellcheck:"false",rowIndex:l,colIndex:p+(s.unref(a).zeroColumn?0:-1),component:f.cellComponent,style:s.normalizeStyle({textAlign:(f==null?void 0:f.align)||"center",minWidth:(f==null?void 0:f.width)||"40ch",width:s.unref(a).config.fullWidth?"auto":null})},null,8,["tableid","col","rowIndex","colIndex","component","style"]))),128))]),_:2},1032,["row","rowIndex","tableid"]))),128))],!0)]),s.renderSlot(i.$slots,"footer",{data:s.unref(a)},void 0,!0),s.renderSlot(i.$slots,"modal",{data:s.unref(a)},()=>[s.withDirectives(s.createVNode(Hi,{colIndex:s.unref(a).modal.colIndex,rowIndex:s.unref(a).modal.rowIndex,tableid:s.unref(a).id,style:s.normalizeStyle({left:s.unref(a).modal.left+"px",top:s.unref(a).modal.top+"px",maxWidth:s.unref(a).modal.width+"px"})},{default:s.withCtx(()=>[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(s.unref(a).modal.component),s.mergeProps({key:`${s.unref(a).modal.rowIndex}:${s.unref(a).modal.colIndex}`,colIndex:s.unref(a).modal.colIndex,rowIndex:s.unref(a).modal.rowIndex,tableid:s.unref(a).id},s.unref(a).modal.componentProps),null,16,["colIndex","rowIndex","tableid"]))]),_:1},8,["colIndex","rowIndex","tableid","style"]),[[s.vShow,s.unref(a).modal.visible]])],!0)],4))}}),Wi=Pe(Fi,[["__scopeId","data-v-55d8ba05"]]),xo=s.defineComponent({__name:"Records",setup(e){const{stonecrop:t,isReady:n}=rn(),o={view:"list"};return(r,a)=>s.unref(n)?(s.openBlock(),s.createBlock(s.unref(Wi),{key:0,columns:s.unref(t).schema.schema.toArray(),rows:s.unref(t).store.records,config:o},null,8,["columns","rows"])):s.createCommentVNode("",!0)}}),$o=e=>(s.pushScopeId("data-v-18bfde6e"),e=e(),s.popScopeId(),e),zi={class:"tabs"},Gi={tabindex:"0"},Qi={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 424.098 424.098",style:{"enable-background":"new 0 0 424.098 424.098"},"xml:space":"preserve"},qi=[$o(()=>s.createElementVNode("g",null,[s.createElementVNode("path",{style:{fill:"#010002"},d:`M351.191,401.923H72.901c-4.487,0-8.129-3.633-8.129-8.129V242.262l-56.664-0.114 c-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 c2.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 v79.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 diff --git a/desktop/dist/desktop.umd.cjs.map b/desktop/dist/desktop.umd.cjs.map index f3387c50..89d1e04c 100644 --- a/desktop/dist/desktop.umd.cjs.map +++ b/desktop/dist/desktop.umd.cjs.map @@ -1 +1 @@ -{"version":3,"file":"desktop.umd.cjs","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":["\n\n\n\n\n","\n\n\n","import { defineComponent as D, computed as S, openBlock as f, createElementBlock as v, createElementVNode as i, withDirectives as C, vModelCheckbox as ge, toDisplayString as k, vShow as $, resolveComponent as ye, createBlock as H, withCtx as be, onMounted as se, onBeforeUnmount as we, ref as y, watch as F, unref as O, getCurrentScope as Ce, onScopeDispose as ke, inject as ae, nextTick as De, Fragment as V, renderList as x, normalizeStyle as Ee, withModifiers as Ae, normalizeClass as B, createCommentVNode as re, withKeys as P, vModelText as R, resolveDynamicComponent as Ie, mergeProps as Me, createTextVNode as Te, renderSlot as _e, createVNode as Se, resolveDirective as Oe } from \"vue\";\nconst $e = { id: \"checkbox-container\" }, Le = [\"id\", \"readonly\", \"required\"], Ve = { id: \"custom-checkbox\" }, xe = [\"for\"], Be = [\"innerHTML\"], Pe = /* @__PURE__ */ D({\n __name: \"ACheckbox\",\n props: {\n label: {},\n value: {},\n required: { type: Boolean },\n readOnly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:value\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get() {\n return o.value;\n },\n set(l) {\n n(\"update:value\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n i(\"label\", $e, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"checkbox\",\n id: l.uuid,\n class: \"checkbox\",\n readonly: l.readOnly,\n required: l.required\n }, null, 8, Le), [\n [ge, s.value]\n ]),\n i(\"span\", Ve, k(s.value), 1)\n ]),\n i(\"label\", {\n for: l.uuid,\n id: \"checkbox-label\"\n }, k(l.label), 9, xe),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Be), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), M = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [n, s] of t)\n o[n] = s;\n return o;\n}, qe = /* @__PURE__ */ M(Pe, [[\"__scopeId\", \"data-v-743cd4db\"]]), He = /* @__PURE__ */ i(\"div\", null, [\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" })\n], -1), Fe = /* @__PURE__ */ D({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, o) => {\n const n = ye(\"ATableModal\");\n return f(), H(n, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: be(() => [\n He\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n});\nvar W;\nconst ie = typeof window < \"u\", Re = (e) => typeof e == \"string\", Ue = () => {\n};\nie && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction ue(e) {\n return typeof e == \"function\" ? e() : O(e);\n}\nfunction Qe(e) {\n return e;\n}\nfunction Ye(e) {\n return Ce() ? (ke(e), !0) : !1;\n}\nfunction q(e) {\n var t;\n const o = ue(e);\n return (t = o == null ? void 0 : o.$el) != null ? t : o;\n}\nconst ce = ie ? window : void 0;\nfunction je(...e) {\n let t, o, n, s;\n if (Re(e[0]) || Array.isArray(e[0]) ? ([o, n, s] = e, t = ce) : [t, o, n, s] = e, !t)\n return Ue;\n Array.isArray(o) || (o = [o]), Array.isArray(n) || (n = [n]);\n const l = [], a = () => {\n l.forEach((c) => c()), l.length = 0;\n }, r = (c, g, b, m) => (c.addEventListener(g, b, m), () => c.removeEventListener(g, b, m)), p = F(() => [q(t), ue(s)], ([c, g]) => {\n a(), c && l.push(...o.flatMap((b) => n.map((m) => r(c, b, m, g))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n p(), a();\n };\n return Ye(u), u;\n}\nconst N = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, z = \"__vueuse_ssr_handlers__\";\nN[z] = N[z] || {};\nfunction We(e, { window: t = ce, scrollTarget: o } = {}) {\n const n = y(!1), s = () => {\n if (!t)\n return;\n const l = t.document, a = q(e);\n if (!a)\n n.value = !1;\n else {\n const r = a.getBoundingClientRect();\n n.value = r.top <= (t.innerHeight || l.documentElement.clientHeight) && r.left <= (t.innerWidth || l.documentElement.clientWidth) && r.bottom >= 0 && r.right >= 0;\n }\n };\n return F(() => q(e), () => s(), { immediate: !0, flush: \"post\" }), t && je(o || t, \"scroll\", s, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar G;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(G || (G = {}));\nvar Ne = Object.defineProperty, K = Object.getOwnPropertySymbols, ze = Object.prototype.hasOwnProperty, Ge = Object.prototype.propertyIsEnumerable, J = (e, t, o) => t in e ? Ne(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Ke = (e, t) => {\n for (var o in t || (t = {}))\n ze.call(t, o) && J(e, o, t[o]);\n if (K)\n for (var o of K(t))\n Ge.call(t, o) && J(e, o, t[o]);\n return e;\n};\nconst Je = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nKe({\n linear: Qe\n}, Je);\nconst E = (e) => {\n let t = We(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, A = (e) => e.tabIndex >= 0, X = (e) => {\n const t = e.target;\n return U(t);\n}, U = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? U(o) : o;\n}, Xe = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.firstElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.firstElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? Q(n) : n;\n}, Z = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? Q(o) : o;\n}, Ze = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.lastElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.lastElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? U(n) : n;\n}, ee = (e) => {\n const t = e.target;\n return Y(t);\n}, Y = (e) => {\n var t;\n let o;\n if (e.previousElementSibling)\n o = e.previousElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n o = n == null ? void 0 : n.lastElementChild;\n }\n return o && (!A(o) || !E(o)) ? Y(o) : o;\n}, te = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let o;\n if (e.nextElementSibling)\n o = e.nextElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n o = n == null ? void 0 : n.firstElementChild;\n }\n return o && (!A(o) || !E(o)) ? j(o) : o;\n}, ne = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!A(t) || !E(t)) ? j(t) : t;\n}, oe = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!A(t) || !E(t)) ? Y(t) : t;\n}, L = [\"alt\", \"control\", \"shift\", \"meta\"], et = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, de = {\n \"keydown.up\": (e) => {\n const t = X(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = ee(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Xe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = oe(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 = Z(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 = X(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction tt(e) {\n const t = (n) => {\n let s = null;\n n.parent && (typeof n.parent == \"string\" ? s = document.querySelector(n.parent) : n.parent instanceof Element ? s = n.parent : s = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = s ? Array.from(s.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const a of n.selectors.value)\n a instanceof Element ? l.push(a) : l.push(a.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(s.children).filter((a) => A(a) && E(a));\n return l;\n }, o = (n) => (s) => {\n const l = et[s.key] || s.key.toLowerCase();\n if (L.includes(l))\n return;\n const a = n.handlers || de;\n for (const r of Object.keys(a)) {\n const [p, ...u] = r.split(\".\");\n if (p === \"keydown\" && u.includes(l)) {\n const c = a[r], g = u.filter((m) => L.includes(m)), b = L.some((m) => {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n return s.getModifierState(_);\n });\n if (g.length > 0) {\n if (b) {\n for (const m of L)\n if (u.includes(m)) {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n s.getModifierState(_) && c(s);\n }\n }\n } else\n b || c(s);\n }\n }\n };\n se(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.addEventListener(\"keydown\", o(n));\n }\n }), we(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.removeEventListener(\"keydown\", o(n));\n }\n });\n}\nconst nt = [\"event\", \"colIndex\", \"rowIndex\", \"tableid\"], ot = { colspan: \"5\" }, lt = [\"onClick\"], st = 6, I = 7, at = /* @__PURE__ */ D({\n __name: \"ADate\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n event: {},\n indent: {},\n readonly: { type: Boolean }\n },\n setup(e) {\n const t = e, o = ae(t.tableid), n = /* @__PURE__ */ new Date(), s = y(), l = y(), a = y(), r = y([]);\n se(async () => {\n let d = o.cellData(t.colIndex, t.rowIndex);\n d ? (d instanceof Date || (d = new Date(d)), s.value = d, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = n.getMonth(), a.value = n.getFullYear()), p(), await De();\n const T = document.getElementsByClassName(\"selecteddate\");\n if (T.length > 0)\n T[0].focus();\n else {\n const h = document.getElementsByClassName(\"todaysdate\");\n h.length > 0 && h[0].focus();\n }\n }), F([l, a], () => {\n p();\n });\n const p = () => {\n r.value = [];\n const d = new Date(a.value, l.value, 1), T = d.getDay(), h = d.setDate(d.getDate() - T);\n for (let w of Array(43).keys())\n r.value.push(h + w * 864e5);\n }, u = () => {\n a.value -= 1;\n }, c = () => {\n a.value += 1;\n }, g = () => {\n l.value == 0 ? (l.value = 11, u()) : l.value -= 1;\n }, b = () => {\n l.value == 11 ? (l.value = 0, c()) : l.value += 1;\n }, m = (d) => {\n if (l.value === n.getMonth())\n return n.toDateString() === new Date(d).toDateString();\n }, _ = (d) => new Date(d).toDateString() === new Date(s.value).toDateString(), fe = (d, T) => {\n s.value = new Date(r.value[T]), me();\n }, me = () => {\n o.setCellData(t.rowIndex, t.colIndex, s.value.getTime());\n }, ve = S(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return tt([\n {\n parent: \"table.adate\",\n selectors: \"td\",\n handlers: {\n ...de,\n \"keydown.pageup\": g,\n \"keydown.shift.pageup\": u,\n \"keydown.pagedown\": b,\n \"keydown.shift.pagedown\": c\n }\n }\n ]), (d, T) => d.readonly ? re(\"\", !0) : (f(), v(\"div\", {\n key: 0,\n event: d.event,\n colIndex: d.colIndex,\n rowIndex: d.rowIndex,\n tableid: d.tableid,\n class: \"adate\",\n tabindex: \"0\",\n ref: \"adatepicker\"\n }, [\n i(\"table\", null, [\n i(\"tr\", null, [\n i(\"td\", {\n onClick: g,\n tabindex: -1\n }, \"<\"),\n i(\"th\", ot, k(ve.value), 1),\n i(\"td\", {\n onClick: b,\n tabindex: -1\n }, \">\")\n ]),\n (f(), v(V, null, x(st, (h) => i(\"tr\", { key: h }, [\n (f(), v(V, null, x(I, (w) => i(\"td\", {\n key: (h - 1) * I + w,\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n style: Ee({\n border: _(r.value[(h - 1) * I + w]) ? \"2px solid var(--focus-cell-outline)\" : \"none\",\n borderBottomColor: m(r.value[(h - 1) * I + w]) ? \"var(--focus-cell-outline)\" : \"none\"\n }),\n onClick: Ae((he) => fe(he, (h - 1) * I + w), [\"prevent\", \"stop\"]),\n class: B({\n todaysdate: m(r.value[(h - 1) * I + w]),\n selecteddate: _(r.value[(h - 1) * I + w])\n })\n }, k(new Date(r.value[(h - 1) * I + w]).getDate()), 15, lt)), 64))\n ])), 64))\n ])\n ], 8, nt));\n }\n}), rt = /* @__PURE__ */ M(at, [[\"__scopeId\", \"data-v-169f1184\"]]), it = D({\n name: \"ADropdown\",\n props: {\n modelValue: {\n type: String,\n required: !1,\n default: \"\"\n },\n label: {\n type: String,\n required: !0\n },\n value: String,\n items: {\n type: Array,\n required: !1,\n default: () => []\n },\n isAsync: {\n type: Boolean,\n required: !1,\n default: !1\n }\n },\n emits: [\"update:modelValue\", \"filterChanged\"],\n data() {\n return {\n results: [],\n search: this.modelValue,\n isLoading: !1,\n arrowCounter: 0,\n isOpen: !1\n };\n },\n watch: {\n items: function(e, t) {\n this.isLoading = !1, this.results = e;\n }\n },\n mounted() {\n document.addEventListener(\"click\", this.handleClickOutside), this.filterResults();\n },\n destroyed() {\n document.removeEventListener(\"click\", this.handleClickOutside);\n },\n methods: {\n setResult(e) {\n this.search = e, this.closeResults();\n },\n filterResults() {\n this.results = this.items.filter((e) => e.toLowerCase().indexOf(this.search.toLowerCase()) > -1);\n },\n onChange() {\n this.isOpen = !0, this.isAsync ? (this.isLoading = !0, this.$emit(\"filterChanged\", this.search)) : this.filterResults();\n },\n handleClickOutside(e) {\n this.$el.contains(e.target) || (this.closeResults(), this.arrowCounter = 0);\n },\n closeResults() {\n this.isOpen = !1, this.items.includes(this.search) || (this.search = \"\"), this.$emit(\"update:modelValue\", this.search);\n },\n onArrowDown() {\n this.arrowCounter < this.results.length && (this.arrowCounter = this.arrowCounter + 1);\n },\n onArrowUp() {\n this.arrowCounter > 0 && (this.arrowCounter = this.arrowCounter - 1);\n },\n onEnter() {\n this.search = this.results[this.arrowCounter], this.closeResults(), this.arrowCounter = 0;\n },\n openWithSearch() {\n this.search = \"\", this.onChange(), this.$refs.mopInput.focus();\n }\n }\n}), ut = { class: \"input-wrapper\" }, ct = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, dt = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, pt = [\"onClick\"];\nfunction ft(e, t, o, n, s, l) {\n return f(), v(\"div\", {\n class: B([\"autocomplete\", { isOpen: e.isOpen }])\n }, [\n i(\"div\", ut, [\n C(i(\"input\", {\n ref: \"mopInput\",\n type: \"text\",\n onInput: t[0] || (t[0] = (...a) => e.onChange && e.onChange(...a)),\n onFocus: t[1] || (t[1] = (...a) => e.onChange && e.onChange(...a)),\n \"onUpdate:modelValue\": t[2] || (t[2] = (a) => e.search = a),\n onKeydown: [\n t[3] || (t[3] = P((...a) => e.onArrowDown && e.onArrowDown(...a), [\"down\"])),\n t[4] || (t[4] = P((...a) => e.onArrowUp && e.onArrowUp(...a), [\"up\"])),\n t[5] || (t[5] = P((...a) => e.onEnter && e.onEnter(...a), [\"enter\"]))\n ]\n }, null, 544), [\n [R, e.search]\n ]),\n C(i(\"ul\", ct, [\n e.isLoading ? (f(), v(\"li\", dt, \"Loading results...\")) : (f(!0), v(V, { key: 1 }, x(e.results, (a, r) => (f(), v(\"li\", {\n key: r,\n onClick: (p) => e.setResult(a),\n class: B([\"autocomplete-result\", { \"is-active\": r === e.arrowCounter }])\n }, k(a), 11, pt))), 128))\n ], 512), [\n [$, e.isOpen]\n ]),\n i(\"label\", null, k(e.label), 1)\n ])\n ], 2);\n}\nconst mt = /* @__PURE__ */ M(it, [[\"render\", ft]]), vt = /* @__PURE__ */ D({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, o) => (f(), v(\"button\", {\n class: B([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), ht = /* @__PURE__ */ M(vt, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), gt = /* @__PURE__ */ D({\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 o = e, n = t, s = y(o.data || {}), l = (r) => {\n let p = {};\n for (const [u, c] of Object.entries(r))\n [\"component\", \"fieldtype\"].includes(u) || (p[u] = c), u === \"rows\" && c && c.length === 0 && (p.rows = s.value[r.fieldname]);\n return p;\n }, a = S({\n get: () => o.modelValue.map((r, p) => S({\n get() {\n return r.value;\n },\n set: (u) => {\n o.modelValue[p].value = u, n(\"update:modelValue\", o.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (r, p) => (f(), v(\"form\", null, [\n (f(!0), v(V, null, x(r.modelValue, (u, c) => (f(), H(Ie(u.component), Me({\n key: c,\n schema: u,\n modelValue: a.value[c].value,\n \"onUpdate:modelValue\": (g) => a.value[c].value = g,\n data: s.value[u.fieldname],\n readonly: r.readonly\n }, l(u)), null, 16, [\"schema\", \"modelValue\", \"onUpdate:modelValue\", \"data\", \"readonly\"]))), 128))\n ]));\n }\n}), pe = /* @__PURE__ */ M(gt, [[\"__scopeId\", \"data-v-74d66cf2\"]]), yt = /* @__PURE__ */ D({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, o = y(t.data || []);\n let n = y(!1), s = y(t.collapsible);\n const l = y(t.schema);\n function a(r) {\n r.preventDefault(), s.value && (n.value = !n.value);\n }\n return (r, p) => (f(), v(\"fieldset\", null, [\n i(\"legend\", {\n onClick: a,\n onSubmit: a\n }, [\n Te(k(r.label) + \" \", 1),\n O(s) ? (f(), H(ht, {\n key: 0,\n collapsed: O(n)\n }, null, 8, [\"collapsed\"])) : re(\"\", !0)\n ], 32),\n _e(r.$slots, \"default\", { collapsed: O(n) }, () => [\n C(Se(pe, {\n modelValue: l.value,\n \"onUpdate:modelValue\": p[0] || (p[0] = (u) => l.value = u),\n data: o.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [$, !O(n)]\n ])\n ], !0)\n ]));\n }\n}), bt = /* @__PURE__ */ M(yt, [[\"__scopeId\", \"data-v-cad9b578\"]]), wt = [\"id\", \"disabled\", \"required\"], Ct = [\"for\"], kt = [\"innerHTML\"], Dt = /* @__PURE__ */ D({\n __name: \"ANumericInput\",\n props: {\n label: {},\n modelValue: {},\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get: () => o.modelValue,\n set: (l) => {\n n(\"update:modelValue\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"number\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required\n }, null, 8, wt), [\n [R, s.value]\n ]),\n i(\"label\", { for: l.uuid }, k(l.label), 9, Ct),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, kt), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), Et = /* @__PURE__ */ M(Dt, [[\"__scopeId\", \"data-v-be33e6c4\"]]), le = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction At(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction It(e) {\n var o;\n let t = e.value;\n if (t) {\n const n = At(t);\n if (n) {\n const s = e.instance.locale;\n t = n(s);\n }\n } else {\n const s = (o = e.instance.schema.fieldtype) == null ? void 0 : o.toLowerCase();\n s && le[s] && (t = le[s]);\n }\n return t;\n}\nfunction Mt(e, t) {\n t || (t = \"#\");\n let o = e;\n const n = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const s of n)\n o = o.replaceAll(s, \"\");\n return o;\n}\nfunction Tt(e, t, o) {\n o || (o = \"#\");\n let n = t;\n for (const s of e) {\n const l = n.indexOf(o);\n if (l !== -1) {\n const a = n.substring(0, l), r = n.substring(l + 1);\n n = a + s + r;\n }\n }\n return n.slice(0, t.length);\n}\nfunction _t(e, t) {\n const o = It(t);\n if (!o)\n return;\n const n = \"#\", s = e.value, l = Mt(s, n);\n if (l) {\n const a = Tt(l, o, n);\n t.instance.maskFilled && (t.instance.maskFilled = !a.includes(n)), e.value = a;\n } else\n e.value = o;\n}\nconst St = D({\n name: \"ATextInput\",\n props: {\n schema: {\n type: Object,\n required: !0\n },\n label: {\n type: String,\n required: !0\n },\n modelValue: {\n type: null\n },\n mask: {\n type: String\n },\n required: {\n type: Boolean\n },\n readonly: {\n type: Boolean\n },\n uuid: {\n type: String\n },\n validation: {\n type: Object,\n default: () => ({ errorMessage: \" \" })\n }\n },\n setup(e, t) {\n const o = y(!1), n = ae(\"locale\", \"\");\n return { inputText: S({\n get() {\n return e.modelValue;\n },\n set(l) {\n t.emit(\"update:modelValue\", l);\n }\n }), locale: n, maskFilled: o };\n },\n directives: {\n mask: _t\n }\n}), Ot = [\"id\", \"disabled\", \"maxlength\", \"required\"], $t = [\"for\"], Lt = [\"innerHTML\"];\nfunction Vt(e, t, o, n, s, l) {\n const a = Oe(\"mask\");\n return f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": t[0] || (t[0] = (r) => e.inputText = r),\n id: e.uuid,\n disabled: e.readonly,\n maxlength: e.mask ? e.maskFilled && e.mask.length : void 0,\n required: e.required\n }, null, 8, Ot), [\n [R, e.inputText],\n [a, e.mask]\n ]),\n i(\"label\", { for: e.uuid }, k(e.label), 9, $t),\n C(i(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Lt), [\n [$, e.validation.errorMessage]\n ])\n ]);\n}\nconst xt = /* @__PURE__ */ M(St, [[\"render\", Vt], [\"__scopeId\", \"data-v-76dba9b8\"]]);\nfunction Pt(e) {\n e.component(\"ACheckbox\", qe), e.component(\"ACombobox\", Fe), e.component(\"ADate\", rt), e.component(\"ADropdown\", mt), e.component(\"AFieldset\", bt), e.component(\"AForm\", pe), e.component(\"ANumericInput\", Et), e.component(\"ATextInput\", xt);\n}\nexport {\n qe as ACheckbox,\n Fe as AComboBox,\n rt as ADate,\n mt as ADropdown,\n bt as AFieldset,\n pe as AForm,\n Et as ANumericInput,\n xt as ATextInput,\n Pt 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} 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}\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}\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 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 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(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\n \n \n`);\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 <router-view>\",\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","\n\n\n","import { onMounted as xe, onBeforeUnmount as Ie, ref as k, watch as j, unref as r, getCurrentScope as Ee, onScopeDispose as ke, defineComponent as C, inject as O, computed as R, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as V, toDisplayString as T, Fragment as L, createElementVNode as A, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as $, renderList as N, normalizeStyle as H, createTextVNode as Ce, provide as _e, nextTick as $e, createVNode as z, withCtx as G } from \"vue\";\nvar J;\nconst pe = typeof window < \"u\", Ae = (t) => typeof t == \"string\", Te = () => {\n};\npe && (J = window == null ? void 0 : window.navigator) != null && J.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction fe(t) {\n return typeof t == \"function\" ? t() : r(t);\n}\nfunction Oe(t) {\n return t;\n}\nfunction De(t) {\n return Ee() ? (ke(t), !0) : !1;\n}\nfunction U(t) {\n var e;\n const n = fe(t);\n return (e = n == null ? void 0 : n.$el) != null ? e : n;\n}\nconst me = pe ? window : void 0;\nfunction Se(...t) {\n let e, n, o, a;\n if (Ae(t[0]) || Array.isArray(t[0]) ? ([n, o, a] = t, e = me) : [e, n, o, a] = t, !e)\n return Te;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], s = () => {\n l.forEach((f) => f()), l.length = 0;\n }, i = (f, c, v, h) => (f.addEventListener(c, v, h), () => f.removeEventListener(c, v, h)), d = j(() => [U(e), fe(a)], ([f, c]) => {\n s(), f && l.push(...n.flatMap((v) => o.map((h) => i(f, v, h, c))));\n }, { immediate: !0, flush: \"post\" }), p = () => {\n d(), s();\n };\n return De(p), p;\n}\nconst X = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Y = \"__vueuse_ssr_handlers__\";\nX[Y] = X[Y] || {};\nfunction Re(t, { window: e = me, scrollTarget: n } = {}) {\n const o = k(!1), a = () => {\n if (!e)\n return;\n const l = e.document, s = U(t);\n if (!s)\n o.value = !1;\n else {\n const i = s.getBoundingClientRect();\n o.value = i.top <= (e.innerHeight || l.documentElement.clientHeight) && i.left <= (e.innerWidth || l.documentElement.clientWidth) && i.bottom >= 0 && i.right >= 0;\n }\n };\n return j(() => U(t), () => a(), { immediate: !0, flush: \"post\" }), e && Se(n || e, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), o;\n}\nvar Z;\n(function(t) {\n t.UP = \"UP\", t.RIGHT = \"RIGHT\", t.DOWN = \"DOWN\", t.LEFT = \"LEFT\", t.NONE = \"NONE\";\n})(Z || (Z = {}));\nvar Pe = Object.defineProperty, K = Object.getOwnPropertySymbols, He = Object.prototype.hasOwnProperty, Le = Object.prototype.propertyIsEnumerable, ee = (t, e, n) => e in t ? Pe(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, Me = (t, e) => {\n for (var n in e || (e = {}))\n He.call(e, n) && ee(t, n, e[n]);\n if (K)\n for (var n of K(e))\n Le.call(e, n) && ee(t, n, e[n]);\n return t;\n};\nconst Ne = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nMe({\n linear: Oe\n}, Ne);\nconst x = (t) => {\n let e = Re(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, I = (t) => t.tabIndex >= 0, te = (t) => {\n const e = t.target;\n return W(e);\n}, W = (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 && (!I(n) || !x(n)) ? W(n) : n;\n}, Ue = (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 && (!I(o) || !x(o)) ? B(o) : o;\n}, ne = (t) => {\n const e = t.target;\n return B(e);\n}, B = (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 && (!I(n) || !x(n)) ? B(n) : n;\n}, je = (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 && (!I(o) || !x(o)) ? W(o) : o;\n}, oe = (t) => {\n const e = t.target;\n return Q(e);\n}, Q = (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 && (!I(n) || !x(n)) ? Q(n) : n;\n}, le = (t) => {\n const e = t.target;\n return F(e);\n}, F = (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 && (!I(n) || !x(n)) ? F(n) : n;\n}, ae = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!I(e) || !x(e)) ? F(e) : e;\n}, re = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!I(e) || !x(e)) ? Q(e) : e;\n}, D = [\"alt\", \"control\", \"shift\", \"meta\"], Ve = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, we = {\n \"keydown.up\": (t) => {\n const e = te(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.down\": (t) => {\n const e = ne(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.left\": (t) => {\n const e = oe(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.right\": (t) => {\n const e = le(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.control.up\": (t) => {\n const e = Ue(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.down\": (t) => {\n const e = je(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.left\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.right\": (t) => {\n const e = re(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.end\": (t) => {\n const e = re(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 = ne(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 = te(t);\n e && e.focus();\n }\n },\n \"keydown.home\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.tab\": (t) => {\n const e = le(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.shift.tab\": (t) => {\n const e = oe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n }\n};\nfunction q(t) {\n const e = (o) => {\n let a = null;\n o.parent && (typeof o.parent == \"string\" ? a = document.querySelector(o.parent) : o.parent instanceof Element ? a = o.parent : a = o.parent.value);\n let l = [];\n if (o.selectors)\n if (typeof o.selectors == \"string\")\n l = a ? Array.from(a.querySelectorAll(o.selectors)) : Array.from(document.querySelectorAll(o.selectors));\n else if (o.selectors instanceof Element)\n l.push(o.selectors);\n else if (Array.isArray(o.selectors.value))\n for (const s of o.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(o.selectors.value);\n else\n l = Array.from(a.children).filter((s) => I(s) && x(s));\n return l;\n }, n = (o) => (a) => {\n const l = Ve[a.key] || a.key.toLowerCase();\n if (D.includes(l))\n return;\n const s = o.handlers || we;\n for (const i of Object.keys(s)) {\n const [d, ...p] = i.split(\".\");\n if (d === \"keydown\" && p.includes(l)) {\n const f = s[i], c = p.filter((h) => D.includes(h)), v = D.some((h) => {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n return a.getModifierState(E);\n });\n if (c.length > 0) {\n if (v) {\n for (const h of D)\n if (p.includes(h)) {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n a.getModifierState(E) && f(a);\n }\n }\n } else\n v || f(a);\n }\n }\n };\n xe(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.addEventListener(\"keydown\", n(o));\n }\n }), Ie(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.removeEventListener(\"keydown\", n(o));\n }\n });\n}\nconst We = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], Be = { key: 1 }, Qe = /* @__PURE__ */ C({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 },\n clickHandler: {}\n },\n setup(t) {\n var E;\n const e = t, n = O(e.tableid), o = k(null);\n let a = k(!1);\n const l = R(() => {\n const u = n.cellData(e.colIndex, e.rowIndex);\n if (n.columns[e.colIndex].format) {\n const g = n.columns[e.colIndex].format;\n return typeof g == \"function\" ? g(u) : typeof g == \"string\" ? Function(`\"use strict\";return (${g})`)()(u) : u;\n } else\n return u;\n }), s = (u) => {\n if (e.clickHandler) {\n e.clickHandler(u);\n return;\n }\n if (n.columns[e.colIndex].mask, n.columns[e.colIndex].modalComponent) {\n const g = 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 = g.top + g.height, n.modal.left = g.left, n.modal.width = d.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 u = {\n ...we,\n \"keydown.f2\": s,\n \"keydown.alt.up\": s,\n \"keydown.alt.down\": s,\n \"keydown.alt.left\": s,\n \"keydown.alt.right\": s\n };\n typeof e.addNavigation == \"object\" && (u = {\n ...u,\n ...e.addNavigation\n }), q([\n {\n selectors: o,\n handlers: u\n }\n ]);\n }\n const i = R(() => n.columns[e.colIndex].align || \"center\"), d = R(() => n.columns[e.colIndex].width || \"40ch\");\n let p = \"\";\n const f = () => {\n o.value && (p = o.value.innerText);\n }, c = () => {\n o.value && o.value.innerHTML !== p && (p = o.value.innerText, o.value.dispatchEvent(new Event(\"change\")), a.value = !0, n.columns[e.colIndex].format || n.setCellData(e.rowIndex, e.colIndex, p));\n }, v = (u, g) => g && u === 0 && g > 0 ? `${g}ch` : \"inherit\", h = {\n textAlign: i.value,\n width: d.value,\n backgroundColor: a.value ? \"var(--cell-modified-color)\" : \"inherit\",\n fontWeight: a.value ? \"bold\" : \"inherit\",\n paddingLeft: v(e.colIndex, (E = n.display[e.rowIndex]) == null ? void 0 : E.indent)\n };\n return (u, g) => (m(), b(\"td\", {\n ref_key: \"cell\",\n ref: o,\n \"data-colindex\": u.colIndex,\n \"data-rowindex\": u.rowIndex,\n \"data-editable\": r(n).columns[u.colIndex].edit,\n contenteditable: r(n).columns[u.colIndex].edit,\n tabindex: u.tabIndex,\n spellcheck: !1,\n style: h,\n onFocus: f,\n onPaste: c,\n onBlur: c,\n onInput: c,\n onClick: s,\n onMousedown: s\n }, [\n r(n).columns[u.colIndex].cellComponent ? (m(), P(ie(r(n).columns[u.colIndex].cellComponent), V({\n key: 0,\n value: l.value\n }, r(n).columns[u.colIndex].cellComponentProps), null, 16, [\"value\"])) : (m(), b(\"span\", Be, T(l.value), 1))\n ], 40, We));\n }\n}), _ = (t, e) => {\n const n = t.__vccOpts || t;\n for (const [o, a] of e)\n n[o] = a;\n return n;\n}, he = /* @__PURE__ */ _(Qe, [[\"__scopeId\", \"data-v-07dfe445\"]]), Fe = [\"tabindex\"], qe = [\"tabindex\"], ze = [\"colspan\"], Ge = /* @__PURE__ */ C({\n __name: \"AExpansionRow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n const e = t, n = O(e.tableid), o = k(null), a = k(null), l = () => n.display[e.rowIndex].expanded ? \"▼\" : \"►\";\n if (e.addNavigation !== void 0) {\n const s = Object.assign({}, e.addNavigation);\n s[\"keydown.control.g\"] = (i) => {\n i.stopPropagation(), i.preventDefault(), n.toggleRowExpand(e.rowIndex);\n }, q([\n {\n selectors: o,\n handlers: s\n }\n ]);\n }\n return (s, i) => (m(), b(L, null, [\n A(\"tr\", V(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n A(\"td\", {\n tabIndex: -1,\n onClick: i[0] || (i[0] = (d) => r(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, T(l()), 1),\n y(s.$slots, \"row\", {}, void 0, !0)\n ], 16, Fe),\n r(n).display[e.rowIndex].expanded ? (m(), b(\"tr\", {\n key: 0,\n ref_key: \"rowExpanded\",\n ref: a,\n tabindex: s.tabIndex,\n class: \"expanded-row\"\n }, [\n A(\"td\", {\n tabIndex: -1,\n colspan: r(n).columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n y(s.$slots, \"content\", {}, void 0, !0)\n ], 8, ze)\n ], 8, qe)) : M(\"\", !0)\n ], 64));\n }\n}), Je = /* @__PURE__ */ _(Ge, [[\"__scopeId\", \"data-v-b2e2ed2d\"]]), Xe = [\"tabindex\"], Ye = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, Ze = /* @__PURE__ */ C({\n __name: \"ARow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n de((d) => ({\n \"5b18ee03\": r(a)\n }));\n const e = t, n = O(e.tableid), o = k(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, i = (d) => {\n n.toggleRowExpand(d);\n };\n return e.addNavigation && q([\n {\n selectors: o,\n handlers: e.addNavigation\n }\n ]), (d, p) => ce((m(), b(\"tr\", {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: d.tabIndex,\n class: \"table-row\"\n }, [\n r(n).config.view === \"list\" ? (m(), b(\"td\", Ye, T(d.rowIndex + 1), 1)) : r(n).config.view === \"tree\" ? (m(), b(\"td\", {\n key: 1,\n tabIndex: -1,\n class: \"tree-index\",\n onClick: p[0] || (p[0] = (f) => i(d.rowIndex))\n }, T(l()), 1)) : y(d.$slots, \"indexCell\", { key: 2 }, void 0, !0),\n y(d.$slots, \"default\", {}, void 0, !0)\n ], 8, Xe)), [\n [ue, s()]\n ]);\n }\n}), be = /* @__PURE__ */ _(Ze, [[\"__scopeId\", \"data-v-4c71a067\"]]);\nlet S;\nconst Ke = new Uint8Array(16);\nfunction et() {\n if (!S && (S = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !S))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return S(Ke);\n}\nconst w = [];\nfor (let t = 0; t < 256; ++t)\n w.push((t + 256).toString(16).slice(1));\nfunction tt(t, e = 0) {\n return w[t[e + 0]] + w[t[e + 1]] + w[t[e + 2]] + w[t[e + 3]] + \"-\" + w[t[e + 4]] + w[t[e + 5]] + \"-\" + w[t[e + 6]] + w[t[e + 7]] + \"-\" + w[t[e + 8]] + w[t[e + 9]] + \"-\" + w[t[e + 10]] + w[t[e + 11]] + w[t[e + 12]] + w[t[e + 13]] + w[t[e + 14]] + w[t[e + 15]];\n}\nconst nt = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), se = {\n randomUUID: nt\n};\nfunction ge(t, e, n) {\n if (se.randomUUID && !e && !t)\n return se.randomUUID();\n t = t || {};\n const o = t.random || (t.rng || et)();\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 tt(o);\n}\nclass ot {\n constructor(e, n, o, a, l, s) {\n this.id = e || ge(), this.rows = o, this.columns = $(n), this.config = $(a), this.table = l || $(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = $({ 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 $(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return R(() => 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 lt = { key: 0 }, at = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, rt = {\n key: 0,\n id: \"header-index\"\n}, st = /* @__PURE__ */ C({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n config: {},\n tableid: {}\n },\n setup(t) {\n de((l) => ({\n \"12d06943\": r(o)\n }));\n const n = O(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 ? (m(), b(\"thead\", lt, [\n A(\"tr\", at, [\n r(n).zeroColumn ? (m(), b(\"th\", rt)) : M(\"\", !0),\n (m(!0), b(L, null, N(l.columns, (i, d) => (m(), b(\"th\", {\n key: d,\n tabindex: \"-1\",\n style: H(a(i))\n }, [\n y(l.$slots, \"default\", {}, () => [\n Ce(T(i.label || String.fromCharCode(d + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : M(\"\", !0);\n }\n}), ve = /* @__PURE__ */ _(st, [[\"__scopeId\", \"data-v-16e66636\"]]), it = /* @__PURE__ */ C({\n __name: \"ATableModal\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {}\n },\n setup(t) {\n O(t.tableid);\n const n = (o) => {\n o.stopPropagation();\n };\n return (o, a) => (m(), b(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n onClick: n,\n onInput: n\n }, [\n y(o.$slots, \"default\", {}, void 0, !0)\n ], 544));\n }\n}), ye = /* @__PURE__ */ _(it, [[\"__scopeId\", \"data-v-10a48b2a\"]]), dt = /* @__PURE__ */ C({\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 ot(n.id, n.columns, a, n.config);\n _e(l.id, l), j(\n () => l.rows,\n (i, d) => {\n o(\"update:modelValue\", i);\n },\n { deep: !0 }\n );\n const s = (i) => {\n var d;\n (d = l.modal.parent) != null && d.contains(i.target) || l.modal.visible && (l.modal.visible = !1);\n };\n return window.addEventListener(\"click\", s), window.addEventListener(\"keydown\", (i) => {\n if (i.key === \"Escape\" && l.modal.visible) {\n l.modal.visible = !1;\n const d = l.modal.parent;\n d && $e().then(() => {\n const p = d.dataset.rowindex, f = d.dataset.colindex, c = document.querySelectorAll(`[data-rowindex='${p}'][data-colindex='${f}']`);\n c && c[0].focus();\n });\n }\n }), (i, d) => (m(), b(\"table\", {\n class: \"atable\",\n style: H({ width: r(l).config.fullWidth ? \"100%\" : \"auto\" })\n }, [\n y(i.$slots, \"header\", { data: r(l) }, () => [\n z(ve, {\n columns: r(l).columns,\n config: r(l).config,\n tableid: r(l).id\n }, null, 8, [\"columns\", \"config\", \"tableid\"])\n ], !0),\n A(\"tbody\", null, [\n y(i.$slots, \"body\", { data: r(l) }, () => [\n (m(!0), b(L, null, N(r(l).rows, (p, f) => (m(), P(be, {\n key: p.id || r(ge)(),\n row: p,\n rowIndex: f,\n tableid: r(l).id\n }, {\n default: G(() => [\n (m(!0), b(L, null, N(r(l).columns, (c, v) => (m(), P(he, {\n key: `${v}:${f}`,\n tableid: r(l).id,\n col: c,\n spellcheck: \"false\",\n rowIndex: f,\n colIndex: v + (r(l).zeroColumn ? 0 : -1),\n component: c.cellComponent,\n style: H({\n textAlign: (c == null ? void 0 : c.align) || \"center\",\n minWidth: (c == null ? void 0 : c.width) || \"40ch\",\n width: r(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 y(i.$slots, \"footer\", { data: r(l) }, void 0, !0),\n y(i.$slots, \"modal\", { data: r(l) }, () => [\n ce(z(ye, {\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id,\n style: H({\n left: r(l).modal.left + \"px\",\n top: r(l).modal.top + \"px\",\n maxWidth: r(l).modal.width + \"px\"\n })\n }, {\n default: G(() => [\n (m(), P(ie(r(l).modal.component), V({\n key: `${r(l).modal.rowIndex}:${r(l).modal.colIndex}`,\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id\n }, r(l).modal.componentProps), null, 16, [\"colIndex\", \"rowIndex\", \"tableid\"]))\n ]),\n _: 1\n }, 8, [\"colIndex\", \"rowIndex\", \"tableid\", \"style\"]), [\n [ue, r(l).modal.visible]\n ])\n ], !0)\n ], 4));\n }\n}), ct = /* @__PURE__ */ _(dt, [[\"__scopeId\", \"data-v-819abcc5\"]]);\nfunction ft(t) {\n t.component(\"ACell\", he), t.component(\"AExpansionRow\", Je), t.component(\"ARow\", be), t.component(\"ATable\", ct), t.component(\"ATableHeader\", ve), t.component(\"ATableModal\", ye);\n}\nexport {\n he as ACell,\n Je as AExpansionRow,\n be as ARow,\n ct as ATable,\n ve as ATableHeader,\n ye as ATableModal,\n ot as TableDataStore,\n ft as install\n};\n//# sourceMappingURL=atable.js.map\n","\n\n\n","\n\n\n\n\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","M","o","n","s","W","Qe","N","z","G","Ne","K","ze","Ge","J","Ke","D","gt","y","l","r","p","u","c","a","S","f","v","V","x","H","Ie","Me","g","pe","le","At","It","t","Mt","Tt","_t","ae","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","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","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","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","i","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","RouterLink","defineComponent","slots","link","elClass","getLinkClass","h$1","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","onVnodeUnmounted","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","object","stringify","reducers","stringified","indexes","custom","flatten","index3","stringify_primitive","source","flags","m","d","h","_a2","newSchema","fieldValue","Ae","Te","fe","Oe","De","Ee","ke","U","me","Se","j","X","Y","Re","Z","Pe","He","Le","ee","I","te","Ue","B","ne","je","oe","Q","F","Ve","we","q","E","xe","We","Be","C","O","R","P","ie","T","_","he","Xe","Ye","Ze","de","ce","ue","be","et","w","tt","nt","se","ge","ot","$","lt","at","rt","st","A","L","Ce","ve","it","ye","dt","_e","$e","ct","config","breadcrumbs","breadcrumbsVisibile","searchVisibile","searchText","searchinput","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","ActionSet","CommandPalette","Doctype","Records","SheetNav"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"desktop.umd.cjs","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":["\n\n\n\n\n","\n\n\n","import { defineComponent as D, computed as S, openBlock as f, createElementBlock as v, createElementVNode as i, withDirectives as C, vModelCheckbox as ge, toDisplayString as k, vShow as $, resolveComponent as ye, createBlock as H, withCtx as be, onMounted as se, onBeforeUnmount as we, ref as y, watch as F, unref as O, getCurrentScope as Ce, onScopeDispose as ke, inject as ae, nextTick as De, Fragment as V, renderList as x, normalizeStyle as Ee, withModifiers as Ae, normalizeClass as B, createCommentVNode as re, withKeys as P, vModelText as R, resolveDynamicComponent as Ie, mergeProps as Me, createTextVNode as Te, renderSlot as _e, createVNode as Se, resolveDirective as Oe } from \"vue\";\nconst $e = { id: \"checkbox-container\" }, Le = [\"id\", \"readonly\", \"required\"], Ve = { id: \"custom-checkbox\" }, xe = [\"for\"], Be = [\"innerHTML\"], Pe = /* @__PURE__ */ D({\n __name: \"ACheckbox\",\n props: {\n label: {},\n value: {},\n required: { type: Boolean },\n readOnly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:value\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get() {\n return o.value;\n },\n set(l) {\n n(\"update:value\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n i(\"label\", $e, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"checkbox\",\n id: l.uuid,\n class: \"checkbox\",\n readonly: l.readOnly,\n required: l.required\n }, null, 8, Le), [\n [ge, s.value]\n ]),\n i(\"span\", Ve, k(s.value), 1)\n ]),\n i(\"label\", {\n for: l.uuid,\n id: \"checkbox-label\"\n }, k(l.label), 9, xe),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, Be), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), M = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [n, s] of t)\n o[n] = s;\n return o;\n}, qe = /* @__PURE__ */ M(Pe, [[\"__scopeId\", \"data-v-743cd4db\"]]), He = /* @__PURE__ */ i(\"div\", null, [\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" }),\n /* @__PURE__ */ i(\"input\", { type: \"text\" })\n], -1), Fe = /* @__PURE__ */ D({\n __name: \"AComboBox\",\n props: [\"event\", \"cellData\", \"tableID\"],\n setup(e) {\n return (t, o) => {\n const n = ye(\"ATableModal\");\n return f(), H(n, {\n event: e.event,\n cellData: e.cellData,\n class: \"amodal\"\n }, {\n default: be(() => [\n He\n ]),\n _: 1\n }, 8, [\"event\", \"cellData\"]);\n };\n }\n});\nvar W;\nconst ie = typeof window < \"u\", Re = (e) => typeof e == \"string\", Ue = () => {\n};\nie && (W = window == null ? void 0 : window.navigator) != null && W.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction ue(e) {\n return typeof e == \"function\" ? e() : O(e);\n}\nfunction Qe(e) {\n return e;\n}\nfunction Ye(e) {\n return Ce() ? (ke(e), !0) : !1;\n}\nfunction q(e) {\n var t;\n const o = ue(e);\n return (t = o == null ? void 0 : o.$el) != null ? t : o;\n}\nconst ce = ie ? window : void 0;\nfunction je(...e) {\n let t, o, n, s;\n if (Re(e[0]) || Array.isArray(e[0]) ? ([o, n, s] = e, t = ce) : [t, o, n, s] = e, !t)\n return Ue;\n Array.isArray(o) || (o = [o]), Array.isArray(n) || (n = [n]);\n const l = [], a = () => {\n l.forEach((c) => c()), l.length = 0;\n }, r = (c, g, b, m) => (c.addEventListener(g, b, m), () => c.removeEventListener(g, b, m)), p = F(() => [q(t), ue(s)], ([c, g]) => {\n a(), c && l.push(...o.flatMap((b) => n.map((m) => r(c, b, m, g))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n p(), a();\n };\n return Ye(u), u;\n}\nconst N = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, z = \"__vueuse_ssr_handlers__\";\nN[z] = N[z] || {};\nfunction We(e, { window: t = ce, scrollTarget: o } = {}) {\n const n = y(!1), s = () => {\n if (!t)\n return;\n const l = t.document, a = q(e);\n if (!a)\n n.value = !1;\n else {\n const r = a.getBoundingClientRect();\n n.value = r.top <= (t.innerHeight || l.documentElement.clientHeight) && r.left <= (t.innerWidth || l.documentElement.clientWidth) && r.bottom >= 0 && r.right >= 0;\n }\n };\n return F(() => q(e), () => s(), { immediate: !0, flush: \"post\" }), t && je(o || t, \"scroll\", s, {\n capture: !1,\n passive: !0\n }), n;\n}\nvar G;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(G || (G = {}));\nvar Ne = Object.defineProperty, K = Object.getOwnPropertySymbols, ze = Object.prototype.hasOwnProperty, Ge = Object.prototype.propertyIsEnumerable, J = (e, t, o) => t in e ? Ne(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Ke = (e, t) => {\n for (var o in t || (t = {}))\n ze.call(t, o) && J(e, o, t[o]);\n if (K)\n for (var o of K(t))\n Ge.call(t, o) && J(e, o, t[o]);\n return e;\n};\nconst Je = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nKe({\n linear: Qe\n}, Je);\nconst E = (e) => {\n let t = We(e).value;\n return t = t && e.offsetHeight > 0, t;\n}, A = (e) => e.tabIndex >= 0, X = (e) => {\n const t = e.target;\n return U(t);\n}, U = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.previousElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? U(o) : o;\n}, Xe = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.firstElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.firstElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? Q(n) : n;\n}, Z = (e) => {\n const t = e.target;\n return Q(t);\n}, Q = (e) => {\n var t;\n let o;\n if (e instanceof HTMLTableCellElement) {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n if (n) {\n const s = Array.from(n.children)[e.cellIndex];\n s && (o = s);\n }\n } else if (e instanceof HTMLTableRowElement) {\n const n = e.nextElementSibling;\n n && (o = n);\n }\n return o && (!A(o) || !E(o)) ? Q(o) : o;\n}, Ze = (e) => {\n var t;\n const o = e.target;\n let n;\n if (o instanceof HTMLTableCellElement) {\n const s = (t = o.parentElement) == null ? void 0 : t.parentElement;\n if (s) {\n const l = s.lastElementChild.children[o.cellIndex];\n l && (n = l);\n }\n } else if (o instanceof HTMLTableRowElement) {\n const s = o.parentElement;\n if (s) {\n const l = s.lastElementChild;\n l && (n = l);\n }\n }\n return n && (!A(n) || !E(n)) ? U(n) : n;\n}, ee = (e) => {\n const t = e.target;\n return Y(t);\n}, Y = (e) => {\n var t;\n let o;\n if (e.previousElementSibling)\n o = e.previousElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.previousElementSibling;\n o = n == null ? void 0 : n.lastElementChild;\n }\n return o && (!A(o) || !E(o)) ? Y(o) : o;\n}, te = (e) => {\n const t = e.target;\n return j(t);\n}, j = (e) => {\n var t;\n let o;\n if (e.nextElementSibling)\n o = e.nextElementSibling;\n else {\n const n = (t = e.parentElement) == null ? void 0 : t.nextElementSibling;\n o = n == null ? void 0 : n.firstElementChild;\n }\n return o && (!A(o) || !E(o)) ? j(o) : o;\n}, ne = (e) => {\n const t = e.target.parentElement.firstElementChild;\n return t && (!A(t) || !E(t)) ? j(t) : t;\n}, oe = (e) => {\n const t = e.target.parentElement.lastElementChild;\n return t && (!A(t) || !E(t)) ? Y(t) : t;\n}, L = [\"alt\", \"control\", \"shift\", \"meta\"], et = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, de = {\n \"keydown.up\": (e) => {\n const t = X(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.down\": (e) => {\n const t = Z(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.left\": (e) => {\n const t = ee(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.right\": (e) => {\n const t = te(e);\n e.preventDefault(), e.stopPropagation(), t && t.focus();\n },\n \"keydown.control.up\": (e) => {\n const t = Xe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.down\": (e) => {\n const t = Ze(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.left\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.control.right\": (e) => {\n const t = oe(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.end\": (e) => {\n const t = oe(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 = Z(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 = X(e);\n t && t.focus();\n }\n },\n \"keydown.home\": (e) => {\n const t = ne(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.tab\": (e) => {\n const t = te(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n },\n \"keydown.shift.tab\": (e) => {\n const t = ee(e);\n t && (e.preventDefault(), e.stopPropagation(), t.focus());\n }\n};\nfunction tt(e) {\n const t = (n) => {\n let s = null;\n n.parent && (typeof n.parent == \"string\" ? s = document.querySelector(n.parent) : n.parent instanceof Element ? s = n.parent : s = n.parent.value);\n let l = [];\n if (n.selectors)\n if (typeof n.selectors == \"string\")\n l = s ? Array.from(s.querySelectorAll(n.selectors)) : Array.from(document.querySelectorAll(n.selectors));\n else if (n.selectors instanceof Element)\n l.push(n.selectors);\n else if (Array.isArray(n.selectors.value))\n for (const a of n.selectors.value)\n a instanceof Element ? l.push(a) : l.push(a.$el);\n else\n l.push(n.selectors.value);\n else\n l = Array.from(s.children).filter((a) => A(a) && E(a));\n return l;\n }, o = (n) => (s) => {\n const l = et[s.key] || s.key.toLowerCase();\n if (L.includes(l))\n return;\n const a = n.handlers || de;\n for (const r of Object.keys(a)) {\n const [p, ...u] = r.split(\".\");\n if (p === \"keydown\" && u.includes(l)) {\n const c = a[r], g = u.filter((m) => L.includes(m)), b = L.some((m) => {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n return s.getModifierState(_);\n });\n if (g.length > 0) {\n if (b) {\n for (const m of L)\n if (u.includes(m)) {\n const _ = m.charAt(0).toUpperCase() + m.slice(1);\n s.getModifierState(_) && c(s);\n }\n }\n } else\n b || c(s);\n }\n }\n };\n se(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.addEventListener(\"keydown\", o(n));\n }\n }), we(() => {\n for (const n of e) {\n const s = t(n);\n for (const l of s)\n l.removeEventListener(\"keydown\", o(n));\n }\n });\n}\nconst nt = [\"event\", \"colIndex\", \"rowIndex\", \"tableid\"], ot = { colspan: \"5\" }, lt = [\"onClick\"], st = 6, I = 7, at = /* @__PURE__ */ D({\n __name: \"ADate\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n event: {},\n indent: {},\n readonly: { type: Boolean }\n },\n setup(e) {\n const t = e, o = ae(t.tableid), n = /* @__PURE__ */ new Date(), s = y(), l = y(), a = y(), r = y([]);\n se(async () => {\n let d = o.cellData(t.colIndex, t.rowIndex);\n d ? (d instanceof Date || (d = new Date(d)), s.value = d, l.value = s.value.getMonth(), a.value = s.value.getFullYear()) : (l.value = n.getMonth(), a.value = n.getFullYear()), p(), await De();\n const T = document.getElementsByClassName(\"selecteddate\");\n if (T.length > 0)\n T[0].focus();\n else {\n const h = document.getElementsByClassName(\"todaysdate\");\n h.length > 0 && h[0].focus();\n }\n }), F([l, a], () => {\n p();\n });\n const p = () => {\n r.value = [];\n const d = new Date(a.value, l.value, 1), T = d.getDay(), h = d.setDate(d.getDate() - T);\n for (let w of Array(43).keys())\n r.value.push(h + w * 864e5);\n }, u = () => {\n a.value -= 1;\n }, c = () => {\n a.value += 1;\n }, g = () => {\n l.value == 0 ? (l.value = 11, u()) : l.value -= 1;\n }, b = () => {\n l.value == 11 ? (l.value = 0, c()) : l.value += 1;\n }, m = (d) => {\n if (l.value === n.getMonth())\n return n.toDateString() === new Date(d).toDateString();\n }, _ = (d) => new Date(d).toDateString() === new Date(s.value).toDateString(), fe = (d, T) => {\n s.value = new Date(r.value[T]), me();\n }, me = () => {\n o.setCellData(t.rowIndex, t.colIndex, s.value.getTime());\n }, ve = S(() => new Date(a.value, l.value, 1).toLocaleDateString(void 0, {\n year: \"numeric\",\n month: \"long\"\n }));\n return tt([\n {\n parent: \"table.adate\",\n selectors: \"td\",\n handlers: {\n ...de,\n \"keydown.pageup\": g,\n \"keydown.shift.pageup\": u,\n \"keydown.pagedown\": b,\n \"keydown.shift.pagedown\": c\n }\n }\n ]), (d, T) => d.readonly ? re(\"\", !0) : (f(), v(\"div\", {\n key: 0,\n event: d.event,\n colIndex: d.colIndex,\n rowIndex: d.rowIndex,\n tableid: d.tableid,\n class: \"adate\",\n tabindex: \"0\",\n ref: \"adatepicker\"\n }, [\n i(\"table\", null, [\n i(\"tr\", null, [\n i(\"td\", {\n onClick: g,\n tabindex: -1\n }, \"<\"),\n i(\"th\", ot, k(ve.value), 1),\n i(\"td\", {\n onClick: b,\n tabindex: -1\n }, \">\")\n ]),\n (f(), v(V, null, x(st, (h) => i(\"tr\", { key: h }, [\n (f(), v(V, null, x(I, (w) => i(\"td\", {\n key: (h - 1) * I + w,\n contenteditable: !1,\n spellcheck: !1,\n tabindex: 0,\n style: Ee({\n border: _(r.value[(h - 1) * I + w]) ? \"2px solid var(--focus-cell-outline)\" : \"none\",\n borderBottomColor: m(r.value[(h - 1) * I + w]) ? \"var(--focus-cell-outline)\" : \"none\"\n }),\n onClick: Ae((he) => fe(he, (h - 1) * I + w), [\"prevent\", \"stop\"]),\n class: B({\n todaysdate: m(r.value[(h - 1) * I + w]),\n selecteddate: _(r.value[(h - 1) * I + w])\n })\n }, k(new Date(r.value[(h - 1) * I + w]).getDate()), 15, lt)), 64))\n ])), 64))\n ])\n ], 8, nt));\n }\n}), rt = /* @__PURE__ */ M(at, [[\"__scopeId\", \"data-v-169f1184\"]]), it = D({\n name: \"ADropdown\",\n props: {\n modelValue: {\n type: String,\n required: !1,\n default: \"\"\n },\n label: {\n type: String,\n required: !0\n },\n value: String,\n items: {\n type: Array,\n required: !1,\n default: () => []\n },\n isAsync: {\n type: Boolean,\n required: !1,\n default: !1\n }\n },\n emits: [\"update:modelValue\", \"filterChanged\"],\n data() {\n return {\n results: [],\n search: this.modelValue,\n isLoading: !1,\n arrowCounter: 0,\n isOpen: !1\n };\n },\n watch: {\n items: function(e, t) {\n this.isLoading = !1, this.results = e;\n }\n },\n mounted() {\n document.addEventListener(\"click\", this.handleClickOutside), this.filterResults();\n },\n destroyed() {\n document.removeEventListener(\"click\", this.handleClickOutside);\n },\n methods: {\n setResult(e) {\n this.search = e, this.closeResults();\n },\n filterResults() {\n this.results = this.items.filter((e) => e.toLowerCase().indexOf(this.search.toLowerCase()) > -1);\n },\n onChange() {\n this.isOpen = !0, this.isAsync ? (this.isLoading = !0, this.$emit(\"filterChanged\", this.search)) : this.filterResults();\n },\n handleClickOutside(e) {\n this.$el.contains(e.target) || (this.closeResults(), this.arrowCounter = 0);\n },\n closeResults() {\n this.isOpen = !1, this.items.includes(this.search) || (this.search = \"\"), this.$emit(\"update:modelValue\", this.search);\n },\n onArrowDown() {\n this.arrowCounter < this.results.length && (this.arrowCounter = this.arrowCounter + 1);\n },\n onArrowUp() {\n this.arrowCounter > 0 && (this.arrowCounter = this.arrowCounter - 1);\n },\n onEnter() {\n this.search = this.results[this.arrowCounter], this.closeResults(), this.arrowCounter = 0;\n },\n openWithSearch() {\n this.search = \"\", this.onChange(), this.$refs.mopInput.focus();\n }\n }\n}), ut = { class: \"input-wrapper\" }, ct = {\n id: \"autocomplete-results\",\n class: \"autocomplete-results\"\n}, dt = {\n key: 0,\n class: \"loading autocomplete-result\"\n}, pt = [\"onClick\"];\nfunction ft(e, t, o, n, s, l) {\n return f(), v(\"div\", {\n class: B([\"autocomplete\", { isOpen: e.isOpen }])\n }, [\n i(\"div\", ut, [\n C(i(\"input\", {\n ref: \"mopInput\",\n type: \"text\",\n onInput: t[0] || (t[0] = (...a) => e.onChange && e.onChange(...a)),\n onFocus: t[1] || (t[1] = (...a) => e.onChange && e.onChange(...a)),\n \"onUpdate:modelValue\": t[2] || (t[2] = (a) => e.search = a),\n onKeydown: [\n t[3] || (t[3] = P((...a) => e.onArrowDown && e.onArrowDown(...a), [\"down\"])),\n t[4] || (t[4] = P((...a) => e.onArrowUp && e.onArrowUp(...a), [\"up\"])),\n t[5] || (t[5] = P((...a) => e.onEnter && e.onEnter(...a), [\"enter\"]))\n ]\n }, null, 544), [\n [R, e.search]\n ]),\n C(i(\"ul\", ct, [\n e.isLoading ? (f(), v(\"li\", dt, \"Loading results...\")) : (f(!0), v(V, { key: 1 }, x(e.results, (a, r) => (f(), v(\"li\", {\n key: r,\n onClick: (p) => e.setResult(a),\n class: B([\"autocomplete-result\", { \"is-active\": r === e.arrowCounter }])\n }, k(a), 11, pt))), 128))\n ], 512), [\n [$, e.isOpen]\n ]),\n i(\"label\", null, k(e.label), 1)\n ])\n ], 2);\n}\nconst mt = /* @__PURE__ */ M(it, [[\"render\", ft]]), vt = /* @__PURE__ */ D({\n __name: \"CollapseButton\",\n props: {\n collapsed: { type: Boolean }\n },\n setup(e) {\n return (t, o) => (f(), v(\"button\", {\n class: B([\"collapse-button\", t.collapsed ? \"rotated\" : \"unrotated\"])\n }, \"×\", 2));\n }\n}), ht = /* @__PURE__ */ M(vt, [[\"__scopeId\", \"data-v-6f1c1b45\"]]), gt = /* @__PURE__ */ D({\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 o = e, n = t, s = y(o.data || {}), l = (r) => {\n let p = {};\n for (const [u, c] of Object.entries(r))\n [\"component\", \"fieldtype\"].includes(u) || (p[u] = c), u === \"rows\" && c && c.length === 0 && (p.rows = s.value[r.fieldname]);\n return p;\n }, a = S({\n get: () => o.modelValue.map((r, p) => S({\n get() {\n return r.value;\n },\n set: (u) => {\n o.modelValue[p].value = u, n(\"update:modelValue\", o.modelValue);\n }\n })),\n set: () => {\n }\n });\n return (r, p) => (f(), v(\"form\", null, [\n (f(!0), v(V, null, x(r.modelValue, (u, c) => (f(), H(Ie(u.component), Me({\n key: c,\n schema: u,\n modelValue: a.value[c].value,\n \"onUpdate:modelValue\": (g) => a.value[c].value = g,\n data: s.value[u.fieldname],\n readonly: r.readonly\n }, l(u)), null, 16, [\"schema\", \"modelValue\", \"onUpdate:modelValue\", \"data\", \"readonly\"]))), 128))\n ]));\n }\n}), pe = /* @__PURE__ */ M(gt, [[\"__scopeId\", \"data-v-82492bb4\"]]), yt = /* @__PURE__ */ D({\n __name: \"AFieldset\",\n props: {\n schema: {},\n label: {},\n collapsible: { type: Boolean },\n data: {}\n },\n setup(e) {\n const t = e, o = y(t.data || []);\n let n = y(!1), s = y(t.collapsible);\n const l = y(t.schema);\n function a(r) {\n r.preventDefault(), s.value && (n.value = !n.value);\n }\n return (r, p) => (f(), v(\"fieldset\", null, [\n i(\"legend\", {\n onClick: a,\n onSubmit: a\n }, [\n Te(k(r.label) + \" \", 1),\n O(s) ? (f(), H(ht, {\n key: 0,\n collapsed: O(n)\n }, null, 8, [\"collapsed\"])) : re(\"\", !0)\n ], 32),\n _e(r.$slots, \"default\", { collapsed: O(n) }, () => [\n C(Se(pe, {\n modelValue: l.value,\n \"onUpdate:modelValue\": p[0] || (p[0] = (u) => l.value = u),\n data: o.value\n }, null, 8, [\"modelValue\", \"data\"]), [\n [$, !O(n)]\n ])\n ], !0)\n ]));\n }\n}), bt = /* @__PURE__ */ M(yt, [[\"__scopeId\", \"data-v-cad9b578\"]]), wt = [\"id\", \"disabled\", \"required\"], Ct = [\"for\"], kt = [\"innerHTML\"], Dt = /* @__PURE__ */ D({\n __name: \"ANumericInput\",\n props: {\n label: {},\n modelValue: {},\n required: { type: Boolean },\n readonly: { type: Boolean },\n uuid: {},\n validation: { default: () => ({ errorMessage: \" \" }) }\n },\n emits: [\"update:modelValue\"],\n setup(e, { emit: t }) {\n const o = e, n = t, s = S({\n get: () => o.modelValue,\n set: (l) => {\n n(\"update:modelValue\", l);\n }\n });\n return (l, a) => (f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": a[0] || (a[0] = (r) => s.value = r),\n type: \"number\",\n id: l.uuid,\n disabled: l.readonly,\n required: l.required\n }, null, 8, wt), [\n [R, s.value]\n ]),\n i(\"label\", { for: l.uuid }, k(l.label), 9, Ct),\n C(i(\"p\", {\n innerHTML: l.validation.errorMessage\n }, null, 8, kt), [\n [$, l.validation.errorMessage]\n ])\n ]));\n }\n}), Et = /* @__PURE__ */ M(Dt, [[\"__scopeId\", \"data-v-be33e6c4\"]]), le = {\n date: \"##/##/####\",\n datetime: \"####/##/## ##:##\",\n time: \"##:##\",\n fulltime: \"##:##:##\",\n phone: \"(###) ### - ####\",\n card: \"#### #### #### ####\"\n};\nfunction At(e) {\n try {\n return Function(`\"use strict\";return (${e})`)();\n } catch {\n }\n}\nfunction It(e) {\n var o;\n let t = e.value;\n if (t) {\n const n = At(t);\n if (n) {\n const s = e.instance.locale;\n t = n(s);\n }\n } else {\n const s = (o = e.instance.schema.fieldtype) == null ? void 0 : o.toLowerCase();\n s && le[s] && (t = le[s]);\n }\n return t;\n}\nfunction Mt(e, t) {\n t || (t = \"#\");\n let o = e;\n const n = [t, \"/\", \"-\", \"(\", \")\", \" \"];\n for (const s of n)\n o = o.replaceAll(s, \"\");\n return o;\n}\nfunction Tt(e, t, o) {\n o || (o = \"#\");\n let n = t;\n for (const s of e) {\n const l = n.indexOf(o);\n if (l !== -1) {\n const a = n.substring(0, l), r = n.substring(l + 1);\n n = a + s + r;\n }\n }\n return n.slice(0, t.length);\n}\nfunction _t(e, t) {\n const o = It(t);\n if (!o)\n return;\n const n = \"#\", s = e.value, l = Mt(s, n);\n if (l) {\n const a = Tt(l, o, n);\n t.instance.maskFilled && (t.instance.maskFilled = !a.includes(n)), e.value = a;\n } else\n e.value = o;\n}\nconst St = D({\n name: \"ATextInput\",\n props: {\n schema: {\n type: Object,\n required: !0\n },\n label: {\n type: String,\n required: !0\n },\n modelValue: {\n type: null\n },\n mask: {\n type: String\n },\n required: {\n type: Boolean\n },\n readonly: {\n type: Boolean\n },\n uuid: {\n type: String\n },\n validation: {\n type: Object,\n default: () => ({ errorMessage: \" \" })\n }\n },\n setup(e, t) {\n const o = y(!1), n = ae(\"locale\", \"\");\n return { inputText: S({\n get() {\n return e.modelValue;\n },\n set(l) {\n t.emit(\"update:modelValue\", l);\n }\n }), locale: n, maskFilled: o };\n },\n directives: {\n mask: _t\n }\n}), Ot = [\"id\", \"disabled\", \"maxlength\", \"required\"], $t = [\"for\"], Lt = [\"innerHTML\"];\nfunction Vt(e, t, o, n, s, l) {\n const a = Oe(\"mask\");\n return f(), v(\"div\", null, [\n C(i(\"input\", {\n \"onUpdate:modelValue\": t[0] || (t[0] = (r) => e.inputText = r),\n id: e.uuid,\n disabled: e.readonly,\n maxlength: e.mask ? e.maskFilled && e.mask.length : void 0,\n required: e.required\n }, null, 8, Ot), [\n [R, e.inputText],\n [a, e.mask]\n ]),\n i(\"label\", { for: e.uuid }, k(e.label), 9, $t),\n C(i(\"p\", {\n innerHTML: e.validation.errorMessage\n }, null, 8, Lt), [\n [$, e.validation.errorMessage]\n ])\n ]);\n}\nconst xt = /* @__PURE__ */ M(St, [[\"render\", Vt], [\"__scopeId\", \"data-v-76dba9b8\"]]);\nfunction Pt(e) {\n e.component(\"ACheckbox\", qe), e.component(\"ACombobox\", Fe), e.component(\"ADate\", rt), e.component(\"ADropdown\", mt), e.component(\"AFieldset\", bt), e.component(\"AForm\", pe), e.component(\"ANumericInput\", Et), e.component(\"ATextInput\", xt);\n}\nexport {\n qe as ACheckbox,\n Fe as AComboBox,\n rt as ADate,\n mt as ADropdown,\n bt as AFieldset,\n pe as AForm,\n Et as ANumericInput,\n xt as ATextInput,\n Pt 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} 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}\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}\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 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 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(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\n \n \n`);\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 <router-view>\",\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","\n\n\n","import { onMounted as xe, onBeforeUnmount as Ie, ref as k, watch as j, unref as r, getCurrentScope as Ee, onScopeDispose as ke, defineComponent as C, inject as O, computed as R, openBlock as m, createElementBlock as b, createBlock as P, resolveDynamicComponent as ie, mergeProps as W, toDisplayString as T, Fragment as L, createElementVNode as A, renderSlot as y, createCommentVNode as M, useCssVars as de, withDirectives as ce, vShow as ue, reactive as $, renderList as N, normalizeStyle as H, createTextVNode as Ce, provide as _e, nextTick as $e, createVNode as z, withCtx as G } from \"vue\";\nvar J;\nconst pe = typeof window < \"u\", Ae = (t) => typeof t == \"string\", Te = () => {\n};\npe && (J = window == null ? void 0 : window.navigator) != null && J.userAgent && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction fe(t) {\n return typeof t == \"function\" ? t() : r(t);\n}\nfunction Oe(t) {\n return t;\n}\nfunction De(t) {\n return Ee() ? (ke(t), !0) : !1;\n}\nfunction U(t) {\n var e;\n const n = fe(t);\n return (e = n == null ? void 0 : n.$el) != null ? e : n;\n}\nconst me = pe ? window : void 0;\nfunction Se(...t) {\n let e, n, o, a;\n if (Ae(t[0]) || Array.isArray(t[0]) ? ([n, o, a] = t, e = me) : [e, n, o, a] = t, !e)\n return Te;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const l = [], s = () => {\n l.forEach((f) => f()), l.length = 0;\n }, i = (f, c, v, h) => (f.addEventListener(c, v, h), () => f.removeEventListener(c, v, h)), d = j(() => [U(e), fe(a)], ([f, c]) => {\n s(), f && l.push(...n.flatMap((v) => o.map((h) => i(f, v, h, c))));\n }, { immediate: !0, flush: \"post\" }), p = () => {\n d(), s();\n };\n return De(p), p;\n}\nconst X = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Y = \"__vueuse_ssr_handlers__\";\nX[Y] = X[Y] || {};\nfunction Re(t, { window: e = me, scrollTarget: n } = {}) {\n const o = k(!1), a = () => {\n if (!e)\n return;\n const l = e.document, s = U(t);\n if (!s)\n o.value = !1;\n else {\n const i = s.getBoundingClientRect();\n o.value = i.top <= (e.innerHeight || l.documentElement.clientHeight) && i.left <= (e.innerWidth || l.documentElement.clientWidth) && i.bottom >= 0 && i.right >= 0;\n }\n };\n return j(() => U(t), () => a(), { immediate: !0, flush: \"post\" }), e && Se(n || e, \"scroll\", a, {\n capture: !1,\n passive: !0\n }), o;\n}\nvar Z;\n(function(t) {\n t.UP = \"UP\", t.RIGHT = \"RIGHT\", t.DOWN = \"DOWN\", t.LEFT = \"LEFT\", t.NONE = \"NONE\";\n})(Z || (Z = {}));\nvar Pe = Object.defineProperty, K = Object.getOwnPropertySymbols, He = Object.prototype.hasOwnProperty, Le = Object.prototype.propertyIsEnumerable, ee = (t, e, n) => e in t ? Pe(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, Me = (t, e) => {\n for (var n in e || (e = {}))\n He.call(e, n) && ee(t, n, e[n]);\n if (K)\n for (var n of K(e))\n Le.call(e, n) && ee(t, n, e[n]);\n return t;\n};\nconst Ne = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nMe({\n linear: Oe\n}, Ne);\nconst x = (t) => {\n let e = Re(t).value;\n return e = e && t.offsetHeight > 0, e;\n}, I = (t) => t.tabIndex >= 0, te = (t) => {\n const e = t.target;\n return V(e);\n}, V = (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 && (!I(n) || !x(n)) ? V(n) : n;\n}, Ue = (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 && (!I(o) || !x(o)) ? B(o) : o;\n}, ne = (t) => {\n const e = t.target;\n return B(e);\n}, B = (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 && (!I(n) || !x(n)) ? B(n) : n;\n}, je = (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 && (!I(o) || !x(o)) ? V(o) : o;\n}, oe = (t) => {\n const e = t.target;\n return Q(e);\n}, Q = (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 && (!I(n) || !x(n)) ? Q(n) : n;\n}, le = (t) => {\n const e = t.target;\n return F(e);\n}, F = (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 && (!I(n) || !x(n)) ? F(n) : n;\n}, ae = (t) => {\n const e = t.target.parentElement.firstElementChild;\n return e && (!I(e) || !x(e)) ? F(e) : e;\n}, re = (t) => {\n const e = t.target.parentElement.lastElementChild;\n return e && (!I(e) || !x(e)) ? Q(e) : e;\n}, D = [\"alt\", \"control\", \"shift\", \"meta\"], We = {\n ArrowUp: \"up\",\n ArrowDown: \"down\",\n ArrowLeft: \"left\",\n ArrowRight: \"right\"\n}, we = {\n \"keydown.up\": (t) => {\n const e = te(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.down\": (t) => {\n const e = ne(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.left\": (t) => {\n const e = oe(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.right\": (t) => {\n const e = le(t);\n t.preventDefault(), t.stopPropagation(), e && e.focus();\n },\n \"keydown.control.up\": (t) => {\n const e = Ue(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.down\": (t) => {\n const e = je(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.left\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.control.right\": (t) => {\n const e = re(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.end\": (t) => {\n const e = re(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 = ne(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 = te(t);\n e && e.focus();\n }\n },\n \"keydown.home\": (t) => {\n const e = ae(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.tab\": (t) => {\n const e = le(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n },\n \"keydown.shift.tab\": (t) => {\n const e = oe(t);\n e && (t.preventDefault(), t.stopPropagation(), e.focus());\n }\n};\nfunction q(t) {\n const e = (o) => {\n let a = null;\n o.parent && (typeof o.parent == \"string\" ? a = document.querySelector(o.parent) : o.parent instanceof Element ? a = o.parent : a = o.parent.value);\n let l = [];\n if (o.selectors)\n if (typeof o.selectors == \"string\")\n l = a ? Array.from(a.querySelectorAll(o.selectors)) : Array.from(document.querySelectorAll(o.selectors));\n else if (o.selectors instanceof Element)\n l.push(o.selectors);\n else if (Array.isArray(o.selectors.value))\n for (const s of o.selectors.value)\n s instanceof Element ? l.push(s) : l.push(s.$el);\n else\n l.push(o.selectors.value);\n else\n l = Array.from(a.children).filter((s) => I(s) && x(s));\n return l;\n }, n = (o) => (a) => {\n const l = We[a.key] || a.key.toLowerCase();\n if (D.includes(l))\n return;\n const s = o.handlers || we;\n for (const i of Object.keys(s)) {\n const [d, ...p] = i.split(\".\");\n if (d === \"keydown\" && p.includes(l)) {\n const f = s[i], c = p.filter((h) => D.includes(h)), v = D.some((h) => {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n return a.getModifierState(E);\n });\n if (c.length > 0) {\n if (v) {\n for (const h of D)\n if (p.includes(h)) {\n const E = h.charAt(0).toUpperCase() + h.slice(1);\n a.getModifierState(E) && f(a);\n }\n }\n } else\n v || f(a);\n }\n }\n };\n xe(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.addEventListener(\"keydown\", n(o));\n }\n }), Ie(() => {\n for (const o of t) {\n const a = e(o);\n for (const l of a)\n l.removeEventListener(\"keydown\", n(o));\n }\n });\n}\nconst Ve = [\"data-colindex\", \"data-rowindex\", \"data-editable\", \"contenteditable\", \"tabindex\"], Be = { key: 1 }, Qe = /* @__PURE__ */ C({\n __name: \"ACell\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {},\n addNavigation: { type: [Boolean, Object], default: !0 },\n tabIndex: { default: 0 },\n clickHandler: {}\n },\n setup(t) {\n var E;\n const e = t, n = O(e.tableid), o = k(null);\n let a = k(!1);\n const l = R(() => {\n const u = n.cellData(e.colIndex, e.rowIndex);\n if (n.columns[e.colIndex].format) {\n const g = n.columns[e.colIndex].format;\n return typeof g == \"function\" ? g(u) : typeof g == \"string\" ? Function(`\"use strict\";return (${g})`)()(u) : u;\n } else\n return u;\n }), s = (u) => {\n if (e.clickHandler) {\n e.clickHandler(u);\n return;\n }\n if (n.columns[e.colIndex].mask, n.columns[e.colIndex].modalComponent) {\n const g = 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 = g.top + g.height, n.modal.left = g.left, n.modal.width = d.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 u = {\n ...we,\n \"keydown.f2\": s,\n \"keydown.alt.up\": s,\n \"keydown.alt.down\": s,\n \"keydown.alt.left\": s,\n \"keydown.alt.right\": s\n };\n typeof e.addNavigation == \"object\" && (u = {\n ...u,\n ...e.addNavigation\n }), q([\n {\n selectors: o,\n handlers: u\n }\n ]);\n }\n const i = R(() => n.columns[e.colIndex].align || \"center\"), d = R(() => n.columns[e.colIndex].width || \"40ch\");\n let p = \"\";\n const f = () => {\n o.value && (p = o.value.innerText);\n }, c = () => {\n o.value && o.value.innerHTML !== p && (p = o.value.innerText, o.value.dispatchEvent(new Event(\"change\")), a.value = !0, n.columns[e.colIndex].format || n.setCellData(e.rowIndex, e.colIndex, p));\n }, v = (u, g) => g && u === 0 && g > 0 ? `${g}ch` : \"inherit\", h = {\n textAlign: i.value,\n width: d.value,\n backgroundColor: a.value ? \"var(--cell-modified-color)\" : \"inherit\",\n fontWeight: a.value ? \"bold\" : \"inherit\",\n paddingLeft: v(e.colIndex, (E = n.display[e.rowIndex]) == null ? void 0 : E.indent)\n };\n return (u, g) => (m(), b(\"td\", {\n ref_key: \"cell\",\n ref: o,\n \"data-colindex\": u.colIndex,\n \"data-rowindex\": u.rowIndex,\n \"data-editable\": r(n).columns[u.colIndex].edit,\n contenteditable: r(n).columns[u.colIndex].edit,\n tabindex: u.tabIndex,\n spellcheck: !1,\n style: h,\n onFocus: f,\n onPaste: c,\n onBlur: c,\n onInput: c,\n onClick: s,\n onMousedown: s\n }, [\n r(n).columns[u.colIndex].cellComponent ? (m(), P(ie(r(n).columns[u.colIndex].cellComponent), W({\n key: 0,\n value: l.value\n }, r(n).columns[u.colIndex].cellComponentProps), null, 16, [\"value\"])) : (m(), b(\"span\", Be, T(l.value), 1))\n ], 40, Ve));\n }\n}), _ = (t, e) => {\n const n = t.__vccOpts || t;\n for (const [o, a] of e)\n n[o] = a;\n return n;\n}, he = /* @__PURE__ */ _(Qe, [[\"__scopeId\", \"data-v-07dfe445\"]]), Fe = [\"tabindex\"], qe = [\"tabindex\"], ze = [\"colspan\"], Ge = /* @__PURE__ */ C({\n __name: \"AExpansionRow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n const e = t, n = O(e.tableid), o = k(null), a = k(null), l = () => n.display[e.rowIndex].expanded ? \"▼\" : \"►\";\n if (e.addNavigation !== void 0) {\n const s = Object.assign({}, e.addNavigation);\n s[\"keydown.control.g\"] = (i) => {\n i.stopPropagation(), i.preventDefault(), n.toggleRowExpand(e.rowIndex);\n }, q([\n {\n selectors: o,\n handlers: s\n }\n ]);\n }\n return (s, i) => (m(), b(L, null, [\n A(\"tr\", W(s.$attrs, {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: s.tabIndex,\n class: \"expandable-row\"\n }), [\n A(\"td\", {\n tabIndex: -1,\n onClick: i[0] || (i[0] = (d) => r(n).toggleRowExpand(s.rowIndex)),\n class: \"row-index\"\n }, T(l()), 1),\n y(s.$slots, \"row\", {}, void 0, !0)\n ], 16, Fe),\n r(n).display[e.rowIndex].expanded ? (m(), b(\"tr\", {\n key: 0,\n ref_key: \"rowExpanded\",\n ref: a,\n tabindex: s.tabIndex,\n class: \"expanded-row\"\n }, [\n A(\"td\", {\n tabIndex: -1,\n colspan: r(n).columns.length + 1,\n class: \"expanded-row-content\"\n }, [\n y(s.$slots, \"content\", {}, void 0, !0)\n ], 8, ze)\n ], 8, qe)) : M(\"\", !0)\n ], 64));\n }\n}), Je = /* @__PURE__ */ _(Ge, [[\"__scopeId\", \"data-v-b2e2ed2d\"]]), Xe = [\"tabindex\"], Ye = {\n key: 0,\n tabIndex: -1,\n class: \"list-index\"\n}, Ze = /* @__PURE__ */ C({\n __name: \"ARow\",\n props: {\n row: {},\n rowIndex: {},\n tableid: {},\n tabIndex: { default: -1 },\n addNavigation: {}\n },\n setup(t) {\n de((d) => ({\n \"5b18ee03\": r(a)\n }));\n const e = t, n = O(e.tableid), o = k(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, i = (d) => {\n n.toggleRowExpand(d);\n };\n return e.addNavigation && q([\n {\n selectors: o,\n handlers: e.addNavigation\n }\n ]), (d, p) => ce((m(), b(\"tr\", {\n ref_key: \"rowEl\",\n ref: o,\n tabindex: d.tabIndex,\n class: \"table-row\"\n }, [\n r(n).config.view === \"list\" ? (m(), b(\"td\", Ye, T(d.rowIndex + 1), 1)) : r(n).config.view === \"tree\" ? (m(), b(\"td\", {\n key: 1,\n tabIndex: -1,\n class: \"tree-index\",\n onClick: p[0] || (p[0] = (f) => i(d.rowIndex))\n }, T(l()), 1)) : y(d.$slots, \"indexCell\", { key: 2 }, void 0, !0),\n y(d.$slots, \"default\", {}, void 0, !0)\n ], 8, Xe)), [\n [ue, s()]\n ]);\n }\n}), be = /* @__PURE__ */ _(Ze, [[\"__scopeId\", \"data-v-4c71a067\"]]);\nlet S;\nconst Ke = new Uint8Array(16);\nfunction et() {\n if (!S && (S = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !S))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return S(Ke);\n}\nconst w = [];\nfor (let t = 0; t < 256; ++t)\n w.push((t + 256).toString(16).slice(1));\nfunction tt(t, e = 0) {\n return w[t[e + 0]] + w[t[e + 1]] + w[t[e + 2]] + w[t[e + 3]] + \"-\" + w[t[e + 4]] + w[t[e + 5]] + \"-\" + w[t[e + 6]] + w[t[e + 7]] + \"-\" + w[t[e + 8]] + w[t[e + 9]] + \"-\" + w[t[e + 10]] + w[t[e + 11]] + w[t[e + 12]] + w[t[e + 13]] + w[t[e + 14]] + w[t[e + 15]];\n}\nconst nt = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), se = {\n randomUUID: nt\n};\nfunction ge(t, e, n) {\n if (se.randomUUID && !e && !t)\n return se.randomUUID();\n t = t || {};\n const o = t.random || (t.rng || et)();\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 tt(o);\n}\nclass ot {\n constructor(e, n, o, a, l, s) {\n this.id = e || ge(), this.rows = o, this.columns = $(n), this.config = $(a), this.table = l || $(this.createTableObject()), this.display = this.createDisplayObject(s), this.modal = $({ 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 $(n);\n }\n get zeroColumn() {\n return [\"list\", \"tree\", \"list-expansion\"].includes(this.config.view);\n }\n get numberedRowWidth() {\n return R(() => 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 lt = { key: 0 }, at = {\n class: \"atable-header-row\",\n tabindex: \"-1\"\n}, rt = {\n key: 0,\n id: \"header-index\"\n}, st = /* @__PURE__ */ C({\n __name: \"ATableHeader\",\n props: {\n columns: {},\n config: {},\n tableid: {}\n },\n setup(t) {\n de((l) => ({\n \"12d06943\": r(o)\n }));\n const n = O(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 ? (m(), b(\"thead\", lt, [\n A(\"tr\", at, [\n r(n).zeroColumn ? (m(), b(\"th\", rt)) : M(\"\", !0),\n (m(!0), b(L, null, N(l.columns, (i, d) => (m(), b(\"th\", {\n key: d,\n tabindex: \"-1\",\n style: H(a(i))\n }, [\n y(l.$slots, \"default\", {}, () => [\n Ce(T(i.label || String.fromCharCode(d + 97).toUpperCase()), 1)\n ], !0)\n ], 4))), 128))\n ])\n ])) : M(\"\", !0);\n }\n}), ve = /* @__PURE__ */ _(st, [[\"__scopeId\", \"data-v-16e66636\"]]), it = /* @__PURE__ */ C({\n __name: \"ATableModal\",\n props: {\n colIndex: {},\n rowIndex: {},\n tableid: {}\n },\n setup(t) {\n O(t.tableid);\n const n = (o) => {\n o.stopPropagation();\n };\n return (o, a) => (m(), b(\"div\", {\n ref: \"amodal\",\n class: \"amodal\",\n tabindex: \"-1\",\n onClick: n,\n onInput: n\n }, [\n y(o.$slots, \"default\", {}, void 0, !0)\n ], 544));\n }\n}), ye = /* @__PURE__ */ _(it, [[\"__scopeId\", \"data-v-10a48b2a\"]]), dt = /* @__PURE__ */ C({\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 ot(n.id, n.columns, a, n.config);\n _e(l.id, l), j(\n () => l.rows,\n (i) => {\n o(\"update:modelValue\", i);\n },\n { deep: !0 }\n );\n const s = (i) => {\n var d;\n (d = l.modal.parent) != null && d.contains(i.target) || l.modal.visible && (l.modal.visible = !1);\n };\n return window.addEventListener(\"click\", s), window.addEventListener(\"keydown\", (i) => {\n if (i.key === \"Escape\" && l.modal.visible) {\n l.modal.visible = !1;\n const d = l.modal.parent;\n d && $e().then(() => {\n const p = d.dataset.rowindex, f = d.dataset.colindex, c = document.querySelectorAll(`[data-rowindex='${p}'][data-colindex='${f}']`);\n c && c[0].focus();\n });\n }\n }), (i, d) => (m(), b(\"table\", {\n class: \"atable\",\n style: H({ width: r(l).config.fullWidth ? \"100%\" : \"auto\" })\n }, [\n y(i.$slots, \"header\", { data: r(l) }, () => [\n z(ve, {\n columns: r(l).columns,\n config: r(l).config,\n tableid: r(l).id\n }, null, 8, [\"columns\", \"config\", \"tableid\"])\n ], !0),\n A(\"tbody\", null, [\n y(i.$slots, \"body\", { data: r(l) }, () => [\n (m(!0), b(L, null, N(r(l).rows, (p, f) => (m(), P(be, {\n key: p.id || r(ge)(),\n row: p,\n rowIndex: f,\n tableid: r(l).id\n }, {\n default: G(() => [\n (m(!0), b(L, null, N(r(l).columns, (c, v) => (m(), P(he, {\n key: `${v}:${f}`,\n tableid: r(l).id,\n col: c,\n spellcheck: \"false\",\n rowIndex: f,\n colIndex: v + (r(l).zeroColumn ? 0 : -1),\n component: c.cellComponent,\n style: H({\n textAlign: (c == null ? void 0 : c.align) || \"center\",\n minWidth: (c == null ? void 0 : c.width) || \"40ch\",\n width: r(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 y(i.$slots, \"footer\", { data: r(l) }, void 0, !0),\n y(i.$slots, \"modal\", { data: r(l) }, () => [\n ce(z(ye, {\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id,\n style: H({\n left: r(l).modal.left + \"px\",\n top: r(l).modal.top + \"px\",\n maxWidth: r(l).modal.width + \"px\"\n })\n }, {\n default: G(() => [\n (m(), P(ie(r(l).modal.component), W({\n key: `${r(l).modal.rowIndex}:${r(l).modal.colIndex}`,\n colIndex: r(l).modal.colIndex,\n rowIndex: r(l).modal.rowIndex,\n tableid: r(l).id\n }, r(l).modal.componentProps), null, 16, [\"colIndex\", \"rowIndex\", \"tableid\"]))\n ]),\n _: 1\n }, 8, [\"colIndex\", \"rowIndex\", \"tableid\", \"style\"]), [\n [ue, r(l).modal.visible]\n ])\n ], !0)\n ], 4));\n }\n}), ct = /* @__PURE__ */ _(dt, [[\"__scopeId\", \"data-v-55d8ba05\"]]);\nfunction ft(t) {\n t.component(\"ACell\", he), t.component(\"AExpansionRow\", Je), t.component(\"ARow\", be), t.component(\"ATable\", ct), t.component(\"ATableHeader\", ve), t.component(\"ATableModal\", ye);\n}\nexport {\n he as ACell,\n Je as AExpansionRow,\n be as ARow,\n ct as ATable,\n ve as ATableHeader,\n ye as ATableModal,\n ot as TableDataStore,\n ft as install\n};\n//# sourceMappingURL=atable.js.map\n","\n\n\n","\n\n\n\n\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","M","o","n","s","W","Qe","N","z","G","Ne","K","ze","Ge","J","Ke","D","gt","y","l","r","p","u","c","a","S","f","v","V","x","H","Ie","Me","g","pe","le","At","It","t","Mt","Tt","_t","ae","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","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","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","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","i","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","RouterLink","defineComponent","slots","link","elClass","getLinkClass","h$1","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","onVnodeUnmounted","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","object","stringify","reducers","stringified","indexes","custom","flatten","index3","stringify_primitive","source","flags","m","d","h","_a2","newSchema","fieldValue","Ae","Te","fe","Oe","De","Ee","ke","U","me","Se","j","X","Y","Re","Z","Pe","He","Le","ee","I","te","Ue","B","ne","je","oe","Q","F","We","we","q","E","xe","Ve","Be","C","O","R","P","ie","T","_","he","Xe","Ye","Ze","de","ce","ue","be","et","w","tt","nt","se","ge","ot","$","lt","at","rt","st","A","L","Ce","ve","it","ye","dt","_e","$e","ct","config","breadcrumbs","breadcrumbsVisibile","searchVisibile","searchText","searchinput","rotateHideTabIcon","toggleBreadcrumbs","toggleSearch","handleSearchInput","handleSearch","navigateHome","ActionSet","CommandPalette","Doctype","Records","SheetNav"],"mappings":"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"} \ No newline at end of file diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 00000000..554df41b --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,3 @@ +import { defineWorkspace } from 'vitest/config' + +export default defineWorkspace(['aform/*/vite.config.ts', 'atable/*/vite.config.ts'])